diff options
Diffstat (limited to 'embed/mozilla/GlobalHistory.cpp')
-rw-r--r-- | embed/mozilla/GlobalHistory.cpp | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/embed/mozilla/GlobalHistory.cpp b/embed/mozilla/GlobalHistory.cpp new file mode 100644 index 000000000..a559dbc10 --- /dev/null +++ b/embed/mozilla/GlobalHistory.cpp @@ -0,0 +1,169 @@ +/* + * Copyright (C) 2001 Philip Langdale + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#include "mozilla-embed-shell.h" + +#include "nsCOMPtr.h" +#include "nsISupportsArray.h" +#include "nsIFactory.h" +#include "nsIServiceManager.h" +#include "nsXPComFactory.h" +#include "nsString.h" +#include "nsReadableUtils.h" +#include "nsIGlobalHistory.h" +#include "nsIBrowserHistory.h" +#include "nsIRequestObserver.h" + +/** + * class GlobalHistory: + * + */ +class MozGlobalHistory: public nsIGlobalHistory, + public nsIBrowserHistory +{ + public: + MozGlobalHistory (); + virtual ~MozGlobalHistory(); + + NS_DECL_ISUPPORTS + NS_DECL_NSIGLOBALHISTORY + NS_DECL_NSIBROWSERHISTORY + + private: + EphyHistory *mGlobalHistory; +}; + +NS_IMPL_ADDREF(MozGlobalHistory) +NS_IMPL_RELEASE(MozGlobalHistory) +NS_INTERFACE_MAP_BEGIN(MozGlobalHistory) + NS_INTERFACE_MAP_ENTRY(nsIGlobalHistory) + NS_INTERFACE_MAP_ENTRY(nsIBrowserHistory) +NS_INTERFACE_MAP_END + +MozGlobalHistory::MozGlobalHistory () +{ + NS_INIT_ISUPPORTS(); + + mGlobalHistory = ephy_embed_shell_get_global_history (embed_shell); +} + +MozGlobalHistory::~MozGlobalHistory () +{ +} + +/* void addPage (in string aURL); */ +NS_IMETHODIMP MozGlobalHistory::AddPage (const char *aURL) +{ + ephy_history_add_page (mGlobalHistory, aURL); + + return NS_OK; +} + +/* boolean isVisited (in string aURL); */ +NS_IMETHODIMP MozGlobalHistory::IsVisited (const char *aURL, PRBool *_retval) +{ + *_retval = ephy_history_is_page_visited (mGlobalHistory, aURL); + + return NS_OK; +} + +/* void setPageTitle (in string aURL, in wstring aTitle); */ +NS_IMETHODIMP MozGlobalHistory::SetPageTitle (const char *aURL, + const PRUnichar *aTitle) +{ + const nsACString &title = NS_ConvertUCS2toUTF8 (aTitle); + + ephy_history_set_page_title (mGlobalHistory, aURL, PromiseFlatCString(title).get()); + + /* done */ + return NS_OK; +} + +/* void removePage (in string aURL); */ +NS_IMETHODIMP MozGlobalHistory::RemovePage(const char *aURL) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +/* void removePagesFromHost (in string aHost, in boolean aEntireDomain); */ +NS_IMETHODIMP MozGlobalHistory::RemovePagesFromHost(const char *aHost, + PRBool aEntireDomain) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +/* void removeAllPages (); */ +NS_IMETHODIMP MozGlobalHistory::RemoveAllPages() +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +/* readonly attribute string lastPageVisited; */ +NS_IMETHODIMP MozGlobalHistory::GetLastPageVisited(char **aLastPageVisited) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP MozGlobalHistory::HidePage(const char *url) +{ + return NS_ERROR_NOT_IMPLEMENTED; + +} + +/* readonly attribute PRUint32 count; */ +NS_IMETHODIMP MozGlobalHistory::GetCount(PRUint32 *aCount) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +/* void startBatchUpdate (); */ +NS_IMETHODIMP MozGlobalHistory::StartBatchUpdate() +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +/* void endBatchUpdate (); */ +NS_IMETHODIMP MozGlobalHistory::EndBatchUpdate() +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +/* void markPageAsTyped (in string url); */ +NS_IMETHODIMP MozGlobalHistory::MarkPageAsTyped(const char *url) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_DEF_FACTORY (MozGlobalHistory, MozGlobalHistory); + +nsresult NS_NewGlobalHistoryFactory(nsIFactory** aFactory) +{ + NS_ENSURE_ARG_POINTER(aFactory); + *aFactory = nsnull; + + nsMozGlobalHistoryFactory *result = new nsMozGlobalHistoryFactory; + if (result == NULL) + { + return NS_ERROR_OUT_OF_MEMORY; + } + + NS_ADDREF(result); + *aFactory = result; + + return NS_OK; +} |