//
// 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);
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 %{
%}
+
+//---------------------------------------------------------------------------