class WXDLLIMPEXP_WEB wxWebHistoryItem
{
public:
- wxWebHistoryItem(const wxString& url, const wxString& title) :
+ wxWebHistoryItem(const wxString& url, const wxString& title) :
m_url(url), m_title(title) {}
wxString GetUrl() { return m_url; }
wxString GetTitle() { return m_title; }
+ friend class wxWebViewWebKit;
+
private:
wxString m_url, m_title;
+ struct objc_object *m_histItem;
};
#endif // wxUSE_WEBVIEW_WEBKIT && defined(__WXOSX_MAC__)
//History functions
virtual void ClearHistory();
virtual void EnableHistory(bool enable = true);
- virtual wxVector<wxSharedPtr<wxWebHistoryItem> > GetBackwardHistory()
- { return wxVector<wxSharedPtr<wxWebHistoryItem> >(); }
- virtual wxVector<wxSharedPtr<wxWebHistoryItem> > GetForwardHistory()
- { return wxVector<wxSharedPtr<wxWebHistoryItem> >(); }
- virtual void LoadHistoryItem(wxSharedPtr<wxWebHistoryItem> WXUNUSED(item)) {}
+ virtual wxVector<wxSharedPtr<wxWebHistoryItem> > GetBackwardHistory();
+ virtual wxVector<wxSharedPtr<wxWebHistoryItem> > GetForwardHistory();
+ virtual void LoadHistoryItem(wxSharedPtr<wxWebHistoryItem> item);
//Undo / redo functionality
virtual bool CanUndo();
[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()
{
return [[m_webView undoManager] canUndo];