]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/html/webkit.h
test whether pointer is non-NULL before using it, not after, in wxAnimation::Load...
[wxWidgets.git] / include / wx / html / webkit.h
index f3da49cb9a6304f25257430bc0b311cf29a72591..432082f09f6c33df9c9e9d10e5a95af6c85f964c 100755 (executable)
@@ -18,9 +18,6 @@
 #error "wxWebKitCtrl not implemented for this platform"
 #endif
 
-#ifdef __WXCOCOA
-#include <WebKit/WebKit.h>
-#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