Implement GetBackwardHistory, GetForwardHistory and LoadHistoryItem for OSX WebKit.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/SOC2011_WEBVIEW@68559 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Steve Lamerton
2011-08-05 16:40:46 +00:00
parent 6a504e88df
commit 515fd027c5
3 changed files with 48 additions and 6 deletions

View File

@@ -23,8 +23,11 @@ public:
wxString GetUrl() { return m_url; } wxString GetUrl() { return m_url; }
wxString GetTitle() { return m_title; } wxString GetTitle() { return m_title; }
friend class wxWebViewWebKit;
private: private:
wxString m_url, m_title; wxString m_url, m_title;
struct objc_object *m_histItem;
}; };
#endif // wxUSE_WEBVIEW_WEBKIT && defined(__WXOSX_MAC__) #endif // wxUSE_WEBVIEW_WEBKIT && defined(__WXOSX_MAC__)

View File

@@ -85,11 +85,9 @@ public:
//History functions //History functions
virtual void ClearHistory(); virtual void ClearHistory();
virtual void EnableHistory(bool enable = true); virtual void EnableHistory(bool enable = true);
virtual wxVector<wxSharedPtr<wxWebHistoryItem> > GetBackwardHistory() virtual wxVector<wxSharedPtr<wxWebHistoryItem> > GetBackwardHistory();
{ return wxVector<wxSharedPtr<wxWebHistoryItem> >(); } virtual wxVector<wxSharedPtr<wxWebHistoryItem> > GetForwardHistory();
virtual wxVector<wxSharedPtr<wxWebHistoryItem> > GetForwardHistory() virtual void LoadHistoryItem(wxSharedPtr<wxWebHistoryItem> item);
{ return wxVector<wxSharedPtr<wxWebHistoryItem> >(); }
virtual void LoadHistoryItem(wxSharedPtr<wxWebHistoryItem> WXUNUSED(item)) {}
//Undo / redo functionality //Undo / redo functionality
virtual bool CanUndo(); virtual bool CanUndo();

View File

@@ -958,6 +958,47 @@ void wxWebViewWebKit::ClearHistory()
[m_webView setMaintainsBackForwardList:YES]; [m_webView setMaintainsBackForwardList:YES];
} }
wxVector<wxSharedPtr<wxWebHistoryItem> > wxWebViewWebKit::GetBackwardHistory()
{
wxVector<wxSharedPtr<wxWebHistoryItem> > backhist;
WebBackForwardList* history = [m_webView backForwardList];
int count = [history backListCount];
for(int i = -count; i < 0; i++)
{
WebHistoryItem* item = [history itemAtIndex:i];
wxString url = wxStringWithNSString([item URLString]);
wxString title = wxStringWithNSString([item title]);
wxWebHistoryItem* wxitem = new wxWebHistoryItem(url, title);
wxitem->m_histItem = item;
wxSharedPtr<wxWebHistoryItem> itemptr(wxitem);
backhist.push_back(itemptr);
}
return backhist;
}
wxVector<wxSharedPtr<wxWebHistoryItem> > wxWebViewWebKit::GetForwardHistory()
{
wxVector<wxSharedPtr<wxWebHistoryItem> > forwardhist;
WebBackForwardList* history = [m_webView backForwardList];
int count = [history forwardListCount];
for(int i = 1; i <= count; i++)
{
WebHistoryItem* item = [history itemAtIndex:i];
wxString url = wxStringWithNSString([item URLString]);
wxString title = wxStringWithNSString([item title]);
wxWebHistoryItem* wxitem = new wxWebHistoryItem(url, title);
wxitem->m_histItem = item;
wxSharedPtr<wxWebHistoryItem> itemptr(wxitem);
forwardhist.push_back(itemptr);
}
return forwardhist;
}
void wxWebViewWebKit::LoadHistoryItem(wxSharedPtr<wxWebHistoryItem> item)
{
[m_webView goToBackForwardItem:item->m_histItem];
}
bool wxWebViewWebKit::CanUndo() bool wxWebViewWebKit::CanUndo()
{ {
return [[m_webView undoManager] canUndo]; return [[m_webView undoManager] canUndo];