From 5cbda74b6606482f5286a5599fc60f3f91995a52 Mon Sep 17 00:00:00 2001 From: Steve Lamerton Date: Fri, 1 Jul 2011 10:57:37 +0000 Subject: [PATCH] Extend history api using the ie backend to include loading history items, and getting the backward and forward history lists. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/SOC2011_WEBVIEW@68120 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/msw/webview_ie.h | 15 +++------------ include/wx/webview.h | 16 ++++++++++++++++ interface/wx/webview.h | 18 ++++++++++++++++++ src/msw/webview_ie.cpp | 24 ++++++++++++++++++++++++ 4 files changed, 61 insertions(+), 12 deletions(-) diff --git a/include/wx/msw/webview_ie.h b/include/wx/msw/webview_ie.h index 666e17b32b..f71e6d5297 100644 --- a/include/wx/msw/webview_ie.h +++ b/include/wx/msw/webview_ie.h @@ -19,18 +19,7 @@ #include "wx/msw/ole/automtn.h" #include "wx/msw/ole/activex.h" #include "wx/sharedptr.h" - -class WXDLLIMPEXP_WEB wxWebHistoryItem -{ -public: - wxWebHistoryItem(const wxString& url, const wxString& title) : - m_url(url), m_title(title) {} - wxString GetUrl() { return m_url; } - wxString GetTitle() { return m_title; } - -private: - wxString m_url, m_title; -}; +#include "wx/vector.h" class WXDLLIMPEXP_WEB wxWebViewIE : public wxWebView { @@ -59,6 +48,8 @@ public: virtual void LoadUrl(const wxString& url); virtual void LoadHistoryItem(wxSharedPtr item); + virtual wxVector > GetBackwardHistory(); + virtual wxVector > GetForwardHistory(); virtual bool CanGoForward(); virtual bool CanGoBack(); diff --git a/include/wx/webview.h b/include/wx/webview.h index 53317c3421..57812cbf81 100644 --- a/include/wx/webview.h +++ b/include/wx/webview.h @@ -17,6 +17,19 @@ #include #include #include +#include "wx/sharedptr.h" + +class WXDLLIMPEXP_WEB wxWebHistoryItem +{ +public: + wxWebHistoryItem(const wxString& url, const wxString& title) : + m_url(url), m_title(title) {} + wxString GetUrl() { return m_url; } + wxString GetTitle() { return m_title; } + +private: + wxString m_url, m_title; +}; /** * Zoom level in web view component @@ -175,6 +188,9 @@ public: virtual void ClearHistory() = 0; virtual void EnableHistory(bool enable = true) = 0; + virtual wxVector > GetBackwardHistory() = 0; + virtual wxVector > GetForwardHistory() = 0; + virtual void LoadHistoryItem(wxSharedPtr item) = 0; /** * Stop the current page loading process, if any. diff --git a/interface/wx/webview.h b/interface/wx/webview.h index fafba64940..55f3708bf5 100644 --- a/interface/wx/webview.h +++ b/interface/wx/webview.h @@ -208,6 +208,24 @@ public: Enable or disable the history. This will also clear the history. */ virtual void EnableHistory(bool enable = true) = 0; + + /** + Returns a list of items in the back history. The first item in the + vector is the first page that was loaded by the control. + */ + virtual wxVector > GetBackwardHistory() = 0; + + /** + Returns a list of items in the forward history. The first item in the + vector is the next item in the history with respect to the curently + loaded page. + */ + virtual wxVector > GetForwardHistory() = 0; + + /** + Loads a history item. + */ + virtual void LoadHistoryItem(wxSharedPtr item) = 0; /** Load a HTMl document (web page) from a URL diff --git a/src/msw/webview_ie.cpp b/src/msw/webview_ie.cpp index 17e6fa308e..2823949274 100644 --- a/src/msw/webview_ie.cpp +++ b/src/msw/webview_ie.cpp @@ -388,6 +388,30 @@ void wxWebViewIE::LoadHistoryItem(wxSharedPtr item) m_historyPosition = pos; } +wxVector > wxWebViewIE::GetBackwardHistory() +{ + wxVector > backhist; + //As we don't have std::copy or an iterator constructor in the wxwidgets + //native vector we construct it by hand + for(int i = 0; i < m_historyPosition; i++) + { + backhist.push_back(m_historyList[i]); + } + return backhist; +} + +wxVector > wxWebViewIE::GetForwardHistory() +{ + wxVector > forwardhist; + //As we don't have std::copy or an iterator constructor in the wxwidgets + //native vector we construct it by hand + for(int i = m_historyPosition + 1; i < m_historyList.size(); i++) + { + forwardhist.push_back(m_historyList[i]); + } + return forwardhist; +} + void wxWebViewIE::GoBack() { LoadHistoryItem(m_historyList[m_historyPosition - 1]); -- 2.47.2