/////////////////////////////////////////////////////////////////////////////
// Name: include/wx/osx/webkit.h
-// Purpose: wxOSXWebKitCtrl - embeddable web kit control,
+// Purpose: wxWebViewWebKit - embeddable web kit control,
// OS X implementation of web view component
// Author: Jethro Grassie / Kevin Ollivier / Marianne Gagnon
// Modified by:
#include "wx/setup.h"
-#if wxUSE_WEBKIT && (defined(__WXMAC__) || defined(__WXCOCOA__))
+#if wxUSE_WEBVIEW && wxUSE_WEBVIEW_WEBKIT && (defined(__WXOSX_COCOA__) \
+ || defined(__WXOSX_CARBON__))
#include "wx/control.h"
#include "wx/webview.h"
+#include "wx/osx/core/objcid.h"
+
// ----------------------------------------------------------------------------
// Web Kit Control
// ----------------------------------------------------------------------------
-class WXDLLIMPEXP_WEB wxOSXWebKitCtrl : public wxWebView
+class WXDLLIMPEXP_WEBVIEW wxWebViewWebKit : public wxWebView
{
public:
- wxDECLARE_DYNAMIC_CLASS(wxOSXWebKitCtrl);
+ wxDECLARE_DYNAMIC_CLASS(wxWebViewWebKit);
- wxOSXWebKitCtrl() {}
- wxOSXWebKitCtrl(wxWindow *parent,
+ wxWebViewWebKit() {}
+ wxWebViewWebKit(wxWindow *parent,
wxWindowID winID = wxID_ANY,
const wxString& strURL = wxWebViewDefaultURLStr,
const wxPoint& pos = wxDefaultPosition,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, long style = 0,
const wxString& name = wxWebViewNameStr);
- virtual ~wxOSXWebKitCtrl();
-
- void InternalLoadURL(const wxString &url);
+ virtual ~wxWebViewWebKit();
- virtual bool CanGoBack();
- virtual bool CanGoForward();
+ virtual bool CanGoBack() const;
+ virtual bool CanGoForward() const;
virtual void GoBack();
virtual void GoForward();
virtual void Reload(wxWebViewReloadFlags flags = wxWEB_VIEW_RELOAD_DEFAULT);
virtual void Stop();
- virtual wxString GetPageSource();
- virtual void SetPageTitle(const wxString& title) { m_pageTitle = title; }
- virtual wxString GetPageTitle(){ return m_pageTitle; }
+ virtual wxString GetPageSource() const;
+ virtual wxString GetPageText() const;
+ //We do not want to hide the other overloads
+ using wxWebView::SetPage;
virtual void SetPage(const wxString& html, const wxString& baseUrl);
virtual void Print();
- virtual void LoadUrl(const wxString& url);
- virtual wxString GetCurrentURL();
- virtual wxString GetCurrentTitle();
- virtual wxWebViewZoom GetZoom();
+ virtual void LoadURL(const wxString& url);
+ virtual wxString GetCurrentURL() const;
+ virtual wxString GetCurrentTitle() const;
+ virtual wxWebViewZoom GetZoom() const;
virtual void SetZoom(wxWebViewZoom zoom);
virtual void SetZoomType(wxWebViewZoomType zoomType);
virtual wxWebViewZoomType GetZoomType() const;
virtual bool CanSetZoomType(wxWebViewZoomType type) const;
- virtual bool IsBusy() { return m_busy; }
+ virtual bool IsBusy() const { return m_busy; }
+
+ //History functions
+ virtual void ClearHistory();
+ virtual void EnableHistory(bool enable = true);
+ virtual wxVector<wxSharedPtr<wxWebViewHistoryItem> > GetBackwardHistory();
+ virtual wxVector<wxSharedPtr<wxWebViewHistoryItem> > GetForwardHistory();
+ virtual void LoadHistoryItem(wxSharedPtr<wxWebViewHistoryItem> item);
+
+ //Undo / redo functionality
+ virtual bool CanUndo() const;
+ virtual bool CanRedo() const;
+ virtual void Undo();
+ virtual void Redo();
+
+ //Clipboard functions
+ virtual bool CanCut() const { return true; }
+ virtual bool CanCopy() const { return true; }
+ virtual bool CanPaste() const { return true; }
+ virtual void Cut();
+ virtual void Copy();
+ virtual void Paste();
+
+ //Editing functions
+ virtual void SetEditable(bool enable = true);
+ virtual bool IsEditable() const;
+
+ //Selection
+ virtual void DeleteSelection();
+ virtual bool HasSelection() const;
+ virtual void SelectAll();
+ virtual wxString GetSelectedText() const;
+ virtual wxString GetSelectedSource() const;
+ virtual void ClearSelection();
+
+ void RunScript(const wxString& javascript);
+
+ //Virtual Filesystem Support
+ virtual void RegisterHandler(wxSharedPtr<wxWebViewHandler> handler);
// ---- methods not from the parent (common) interface
- wxString GetSelectedText();
-
- wxString RunScript(const wxString& javascript);
-
- bool CanGetPageSource();
+ bool CanGetPageSource() const;
void SetScrollPos(int pos);
int GetScrollPos();
- void MakeEditable(bool enable = true);
- bool IsEditable();
-
- wxString GetSelection();
-
- bool CanIncreaseTextSize();
+ bool CanIncreaseTextSize() const;
void IncreaseTextSize();
- bool CanDecreaseTextSize();
+ bool CanDecreaseTextSize() const;
void DecreaseTextSize();
- float GetWebkitZoom();
+ float GetWebkitZoom() const;
void SetWebkitZoom(float zoom);
// don't hide base class virtuals
wxWindowID m_windowID;
wxString m_pageTitle;
- struct objc_object *m_webView;
+ wxObjCID m_webView;
// we may use this later to setup our own mouse events,
// so leave it in for now.
//TODO: look into using DECLARE_WXCOCOA_OBJC_CLASS rather than this.
};
-#endif // wxUSE_WEBKIT
+#endif // wxUSE_WEBVIEW && wxUSE_WEBVIEW_WEBKIT
#endif // _WX_WEBKIT_H_