X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1b88201ff5f0f9ed18db555b70eb7123c8a7c9c6..ba5787676d002f76b4c3944cb598b626f10f058d:/include/wx/html/webkit.h diff --git a/include/wx/html/webkit.h b/include/wx/html/webkit.h index f3da49cb9a..432082f09f 100755 --- a/include/wx/html/webkit.h +++ b/include/wx/html/webkit.h @@ -18,9 +18,6 @@ #error "wxWebKitCtrl not implemented for this platform" #endif -#ifdef __WXCOCOA -#include -#endif #include "wx/control.h" // ---------------------------------------------------------------------------- @@ -62,12 +59,36 @@ public: void Stop(); bool CanGetPageSource(); wxString GetPageSource(); - void SetPageSource(wxString& source, const wxString& baseUrl = wxEmptyString); - wxString GetPageURL(){ return m_currentURL; } - wxString GetPageTitle(){ return m_pageTitle; } + void SetPageSource(const wxString& source, const wxString& baseUrl = wxEmptyString); + wxString GetPageURL(){ return m_currentURL; } + void SetPageTitle(const wxString& title) { m_pageTitle = title; } + wxString GetPageTitle(){ return m_pageTitle; } + + // since these worked in 2.6, add wrappers + void SetTitle(const wxString& title) { SetPageTitle(title); } + wxString GetTitle() { return GetPageTitle(); } + + wxString GetSelection(); + + bool CanIncreaseTextSize(); + void IncreaseTextSize(); + bool CanDecreaseTextSize(); + void DecreaseTextSize(); + + void Print(bool showPrompt=FALSE); + + void MakeEditable(bool enable=TRUE); + bool IsEditable(); + + wxString RunScript(const wxString& javascript); + + void SetScrollPos(int pos); + int GetScrollPos(); //we need to resize the webview when the control size changes void OnSize(wxSizeEvent &event); + void OnMove(wxMoveEvent &event); + void OnMouseEvents(wxMouseEvent &event); protected: DECLARE_EVENT_TABLE() void MacVisibilityChanged(); @@ -77,7 +98,12 @@ private: wxWindowID m_windowID; wxString m_currentURL; wxString m_pageTitle; + struct objc_object *m_webView; + + // we may use this later to setup our own mouse events, + // so leave it in for now. + void* m_webKitCtrlEventHandler; //It should be WebView*, but WebView is an Objective-C class //TODO: look into using DECLARE_WXCOCOA_OBJC_CLASS rather than this. }; @@ -95,6 +121,39 @@ enum { wxWEBKIT_STATE_FAILED = 32 }; +enum { + wxWEBKIT_NAV_LINK_CLICKED = 1, + wxWEBKIT_NAV_BACK_NEXT = 2, + wxWEBKIT_NAV_FORM_SUBMITTED = 4, + wxWEBKIT_NAV_RELOAD = 8, + wxWEBKIT_NAV_FORM_RESUBMITTED = 16, + wxWEBKIT_NAV_OTHER = 32 + +}; + + + +class wxWebKitBeforeLoadEvent : public wxCommandEvent +{ + DECLARE_DYNAMIC_CLASS( wxWebKitBeforeLoadEvent ) + +public: + bool IsCancelled() { return m_cancelled; } + void Cancel(bool cancel = true) { m_cancelled = cancel; } + wxString GetURL() { return m_url; } + void SetURL(const wxString& url) { m_url = url; } + void SetNavigationType(int navType) { m_navType = navType; } + int GetNavigationType() { return m_navType; } + + wxWebKitBeforeLoadEvent( wxWindow* win = (wxWindow*) NULL ); + wxEvent *Clone(void) const { return new wxWebKitBeforeLoadEvent(*this); } + +protected: + bool m_cancelled; + wxString m_url; + int m_navType; +}; + class wxWebKitStateChangedEvent : public wxCommandEvent { DECLARE_DYNAMIC_CLASS( wxWebKitStateChangedEvent ) @@ -114,8 +173,10 @@ protected: }; typedef void (wxEvtHandler::*wxWebKitStateChangedEventFunction)(wxWebKitStateChangedEvent&); +typedef void (wxEvtHandler::*wxWebKitBeforeLoadEventFunction)(wxWebKitBeforeLoadEvent&); BEGIN_DECLARE_EVENT_TYPES() + DECLARE_LOCAL_EVENT_TYPE(wxEVT_WEBKIT_BEFORE_LOAD, wxID_ANY) DECLARE_LOCAL_EVENT_TYPE(wxEVT_WEBKIT_STATE_CHANGED, wxID_ANY) END_DECLARE_EVENT_TYPES() @@ -126,6 +187,14 @@ END_DECLARE_EVENT_TYPES() (wxObjectEventFunction) \ (wxWebKitStateChangedEventFunction) & func, \ (wxObject *) NULL ), + +#define EVT_WEBKIT_BEFORE_LOAD(func) \ + DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBKIT_BEFORE_LOAD, \ + wxID_ANY, \ + wxID_ANY, \ + (wxObjectEventFunction) \ + (wxWebKitBeforeLoadEventFunction) & func, \ + (wxObject *) NULL ), #endif // wxUSE_WEBKIT