]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/webkit.i
Add ToggleWindowStyle
[wxWidgets.git] / wxPython / src / webkit.i
index 4b925709ad97510b255eb66f258f96b590df1856..86e38e37ae8c4aa566f25067c96ec9b2fe488820 100644 (file)
@@ -4,13 +4,17 @@
 //
 // Author:      Robin Dunn / Kevin Ollivier
 //
-// Created:     28-Feb-2003
+// Created:     18-Oct-2004
 // RCS-ID:      $Id$
-// Copyright:   (c) 2001 by Total Control Software
+// Copyright:   (c) 2004 by Total Control Software
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
-%module webkit
+%define DOCSTRING
+"wx.webkit.WebKitCtrl for Mac OSX."
+%enddef
+
+%module(package="wx", docstring=DOCSTRING) webkit
 
 %{
 
 #define scalb scalbn
 #endif
 
+#if wxUSE_WEBKIT
 #include "wx/html/webkit.h"
+#endif
 %}
 
 //---------------------------------------------------------------------------
 
-%include typemaps.i
-%include my_typemaps.i
-
 %import core.i
-%import windows.i
-%import misc.i
+%pythoncode { wx = _core }
+%pythoncode { __docfilter__ = wx.__DocFilter(globals()) }
 
-%include _webkit_rename.i
-
-%pragma(python) code = "import wx"
 
 //---------------------------------------------------------------------------
 
-%{
-    // Put some wx default wxChar* values into wxStrings.
-    DECLARE_DEF_STRING(PanelNameStr);
-%}
+// Put some wx default wxChar* values into wxStrings.
+MAKE_CONST_WXSTRING_NOSWIG(EmptyString);
+MAKE_CONST_WXSTRING2(WebKitNameStr, wxT("webkitctrl"))
+
 
+
+    
 %{
 #if !wxUSE_WEBKIT
+// a dummy class for ports that don't have wxWebKitCtrl
 class wxWebKitCtrl : public wxControl
 {
 public:
     wxWebKitCtrl(wxWindow *parent,
-                    wxWindowID winID,
-                    const wxString& strURL,
-                    const wxPoint& pos = wxDefaultPosition,
-                    const wxSize& size = wxDefaultSize, long style = 0,
-                    const wxValidator& validator = wxDefaultValidator,
-                    const wxString& name = wxT("webkitctrl")) {}
+                 wxWindowID winID,
+                 const wxString& strURL,
+                 const wxPoint& pos = wxDefaultPosition,
+                 const wxSize& size = wxDefaultSize, long style = 0,
+                 const wxValidator& validator = wxDefaultValidator,
+                 const wxString& name = wxPyWebKitNameStr)
+    { wxPyRaiseNotImplemented(); }
+
+    wxWebKitCtrl() { wxPyRaiseNotImplemented(); }
+    
     bool Create(wxWindow *parent,
                 wxWindowID winID,
                 const wxString& strURL,
                 const wxPoint& pos = wxDefaultPosition,
                 const wxSize& size = wxDefaultSize, long style = 0,
                 const wxValidator& validator = wxDefaultValidator,
-                const wxString& name = wxT("webkitctrl")) {return false;}
+                const wxString& name = wxPyWebKitNameStr)
+    { return false; }
 
     void LoadURL(const wxString &url) {}
 
-    bool CanGoBack() {return false;}
-    bool CanGoForward() {return false;}
-    bool GoBack() {return false;}
-    bool GoForward() {return false;}
+    bool CanGoBack() { return false; }
+    bool CanGoForward() { return false; }
+    bool GoBack() { return false; }
+    bool GoForward() { return false; }
     void Reload() {}
-    void Stop(){}
-    bool CanGetPageSource(){return false;}
-    wxString GetPageSource(){return wxEmptyString;}
-    void SetPageSource(wxString& source, const wxString& baseUrl = wxEmptyString){}
+    void Stop() {}
+    bool CanGetPageSource() { return false; }
+    wxString GetPageSource() { return wxEmptyString; }
+    void SetPageSource(wxString& source, const wxString& baseUrl = wxEmptyString) {}
+    wxString GetPageURL()   { return wxEmptyString; }
+    wxString GetPageTitle() { return wxEmptyString; }
+    
+    wxString GetSelection() { return wxEmptyString; }
+    
+    bool CanIncreaseTextSize() { return false; }
+    void IncreaseTextSize() { }
+    bool CanDecreaseTextSize() { return false; }
+    void DecreaseTextSize() { }
+    
+    void Print(bool showPrompt=false) { }
+    
+    void MakeEditable(bool enable=true) { }
+    bool IsEditable() { return false; }
+    
+    wxString RunScript(const wxString& javascript) { return wxEmptyString; }
+    
+    void SetScrollPos(int pos) { }
+    int GetScrollPos() { return 0; }
+    
+};
+
+
+enum {
+    wxWEBKIT_STATE_START = 0,
+    wxWEBKIT_STATE_NEGOTIATING = 0,
+    wxWEBKIT_STATE_REDIRECTING = 0,
+    wxWEBKIT_STATE_TRANSFERRING = 0,
+    wxWEBKIT_STATE_STOP = 0,
+    wxWEBKIT_STATE_FAILED = 0,
+
+    wxEVT_WEBKIT_STATE_CHANGED = 0,
+    wxEVT_WEBKIT_BEFORE_LOAD = 0
 };
+
+enum {
+    wxWEBKIT_NAV_LINK_CLICKED = 0,
+    wxWEBKIT_NAV_BACK_NEXT = 0,
+    wxWEBKIT_NAV_FORM_SUBMITTED = 0,
+    wxWEBKIT_NAV_RELOAD = 0,
+    wxWEBKIT_NAV_FORM_RESUBMITTED = 0,
+    wxWEBKIT_NAV_OTHER = 0
+
+};
+
+class wxWebKitStateChangedEvent : public wxCommandEvent
+{
+public:
+    wxWebKitStateChangedEvent( wxWindow* win =  NULL )
+    { wxPyRaiseNotImplemented(); }
+
+    int GetState() { return 0; }
+    void SetState(const int state) {}
+    wxString GetURL() { return wxEmptyString; }
+    void SetURL(const wxString& url) {}
+};
+
+class wxWebKitBeforeLoadEvent : public wxCommandEvent
+{    
+public:
+    bool IsCancelled() { return false; }
+    void Cancel(bool cancel = true) { }
+    wxString GetURL() { return wxEmptyString; }
+    void SetURL(const wxString& url) { }
+    void SetNavigationType(int navType) { }
+    int GetNavigationType() { return 0; }
+
+    wxWebKitBeforeLoadEvent( wxWindow* win = (wxWindow*) NULL ) { wxPyRaiseNotImplemented(); }
+};
 #endif
 %}
 
+// Now define it for SWIG, using either the real class or the dummy above.
+
+MustHaveApp(wxWebKitCtrl);
+
 class wxWebKitCtrl : public wxControl
 {
 public:
+    %pythonAppend wxWebKitCtrl         "self._setOORInfo(self)"
+    %pythonAppend wxWebKitCtrl()       ""
+    
     wxWebKitCtrl(wxWindow *parent,
-                    wxWindowID winID,
-                    const wxString& strURL,
+                    wxWindowID winID = -1,
+                    const wxString& strURL = wxPyEmptyString,
                     const wxPoint& pos = wxDefaultPosition,
                     const wxSize& size = wxDefaultSize, long style = 0,
                     const wxValidator& validator = wxDefaultValidator,
-                    const wxString& name = wxT("webkitctrl"));
+                    const wxString& name = wxPyWebKitNameStr);
+
+    %RenameCtor(PreWebKitCtrl, wxWebKitCtrl());
+
+    
     bool Create(wxWindow *parent,
-                wxWindowID winID,
-                const wxString& strURL,
+                wxWindowID winID = -1,
+                const wxString& strURL = wxPyEmptyString,
                 const wxPoint& pos = wxDefaultPosition,
                 const wxSize& size = wxDefaultSize, long style = 0,
                 const wxValidator& validator = wxDefaultValidator,
-                const wxString& name = wxT("webkitctrl"));
+                const wxString& name = wxPyWebKitNameStr);
 
     void LoadURL(const wxString &url);
 
@@ -108,9 +196,103 @@ public:
     void Stop();
     bool CanGetPageSource();
     wxString GetPageSource();
-    void SetPageSource(wxString& source, const wxString& baseUrl = wxEmptyString);
+    void SetPageSource(wxString& source, const wxString& baseUrl = wxPyEmptyString);
+    wxString GetPageURL();
+    wxString 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();
+    
+    
+    %property(PageSource, GetPageSource, SetPageSource, doc="See `GetPageSource` and `SetPageSource`");
+    %property(PageTitle, GetPageTitle, doc="See `GetPageTitle`");
+    %property(PageURL, GetPageURL, doc="See `GetPageURL`");    
+    %property(ScrollPos, GetScrollPos, SetScrollPos, doc="See `GetScrollPos and SetScrollPos`");
+    %property(Selection, GetSelection, doc="See `GetSelection`");
+};
+
+
+//---------------------------------------------------------------------------
+
+
+enum {
+    wxWEBKIT_STATE_START,
+    wxWEBKIT_STATE_NEGOTIATING,
+    wxWEBKIT_STATE_REDIRECTING,
+    wxWEBKIT_STATE_TRANSFERRING,
+    wxWEBKIT_STATE_STOP,
+    wxWEBKIT_STATE_FAILED,
+};
+
+enum {
+    wxWEBKIT_NAV_LINK_CLICKED,
+    wxWEBKIT_NAV_BACK_NEXT,
+    wxWEBKIT_NAV_FORM_SUBMITTED,
+    wxWEBKIT_NAV_RELOAD,
+    wxWEBKIT_NAV_FORM_RESUBMITTED,
+    wxWEBKIT_NAV_OTHER
+
+};
+
+%constant wxEventType wxEVT_WEBKIT_STATE_CHANGED;
+%constant wxEventType wxEVT_WEBKIT_BEFORE_LOAD;
+
+class wxWebKitBeforeLoadEvent : public wxCommandEvent
+{    
+public:
+    bool IsCancelled();
+    void Cancel(bool cancel = true);
+    wxString GetURL();
+    void SetURL(const wxString& url);
+    void SetNavigationType(int navType);
+    int GetNavigationType();
+
+    wxWebKitBeforeLoadEvent( wxWindow* win = (wxWindow*) NULL );
+
+    %property(NavigationType, GetNavigationType, SetNavigationType, doc="See `GetNavigationType` and `SetNavigationType`");
+    %property(URL, GetURL, SetURL, doc="See `GetURL` and `SetURL`");
+};
+
+
+class wxWebKitStateChangedEvent : public wxCommandEvent
+{
+public:
+    wxWebKitStateChangedEvent( wxWindow* win =  NULL );
+
+    int GetState();
+    void SetState(const int state);
+    wxString GetURL();
+    void SetURL(const wxString& url);
+
+    %property(State, GetState, SetState, doc="See `GetState` and `SetState`");
+    %property(URL, GetURL, SetURL, doc="See `GetURL` and `SetURL`");
 };
 
+
+%pythoncode %{
+    EVT_WEBKIT_STATE_CHANGED = wx.PyEventBinder(wxEVT_WEBKIT_STATE_CHANGED)
+    EVT_WEBKIT_BEFORE_LOAD = wx.PyEventBinder(wxEVT_WEBKIT_BEFORE_LOAD)
+%}
+
+
+//---------------------------------------------------------------------------
+
 %init %{
 
 %}
+
+//---------------------------------------------------------------------------