Several wxWebKitCtrl enhancements/fixes. Including:

- new methods for increasing/decreasing text size, getting selection, getting/setting scroll position, printing, enabling editing, and running JavaScripts on the page.

- added new event (wxWebKitBeforeLoadEvent) for catching, and possibly vetoing, load events before they occur.

- wxWebKitCtrl now fires mouse events for certain events that it was eating before. This improves wxSplitterWindow resizing behavior.

- refactoring of the sizing logic to move the Cocoa view. I've tested this with splitter windows, panels, notebooks and all position correctly with this.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42107 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Kevin Ollivier
2006-10-19 00:40:23 +00:00
parent bdf895fdd9
commit 448f8f12b9
3 changed files with 492 additions and 119 deletions

View File

@@ -86,6 +86,24 @@ public:
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; }
};
@@ -100,6 +118,16 @@ enum {
wxEVT_WEBKIT_STATE_CHANGED = 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:
@@ -112,6 +140,18 @@ public:
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
%}
@@ -159,9 +199,29 @@ public:
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`");
};
@@ -177,8 +237,34 @@ enum {
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
@@ -198,6 +284,7 @@ public:
%pythoncode %{
EVT_WEBKIT_STATE_CHANGED = wx.PyEventBinder(wxEVT_WEBKIT_STATE_CHANGED)
EVT_WEBKIT_BEFORE_LOAD = wx.PyEventBinder(wxEVT_WEBKIT_BEFORE_LOAD)
%}