| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 |
- /////////////////////////////////////////////////////////////////////////////
- // Name: wx/html/webkit.h
- // Purpose: wxWebKitCtrl - embeddable web kit control
- // Author: Jethro Grassie / Kevin Ollivier
- // Modified by:
- // Created: 2004-4-16
- // Copyright: (c) Jethro Grassie / Kevin Ollivier
- // Licence: wxWindows licence
- /////////////////////////////////////////////////////////////////////////////
- #ifndef _WX_WEBKIT_H
- #define _WX_WEBKIT_H
- #if wxUSE_WEBKIT
- #if !defined(__WXMAC__) && !defined(__WXCOCOA__)
- #error "wxWebKitCtrl not implemented for this platform"
- #endif
- #include "wx/control.h"
- DECLARE_WXCOCOA_OBJC_CLASS(WebView);
- // ----------------------------------------------------------------------------
- // Web Kit Control
- // ----------------------------------------------------------------------------
- extern WXDLLIMPEXP_DATA_CORE(const char) wxWebKitCtrlNameStr[];
- class WXDLLIMPEXP_CORE wxWebKitCtrl : public wxControl
- {
- public:
- DECLARE_DYNAMIC_CLASS(wxWebKitCtrl)
- wxWebKitCtrl() {}
- 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 = wxWebKitCtrlNameStr)
- {
- Create(parent, winID, strURL, pos, size, style, validator, name);
- }
- 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 = wxWebKitCtrlNameStr);
- virtual ~wxWebKitCtrl();
- void LoadURL(const wxString &url);
- bool CanGoBack();
- bool CanGoForward();
- bool GoBack();
- bool GoForward();
- void Reload();
- void Stop();
- bool CanGetPageSource();
- wxString GetPageSource();
- 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();
- // don't hide base class virtuals
- virtual void SetScrollPos( int orient, int pos, bool refresh = true )
- { return wxControl::SetScrollPos(orient, pos, refresh); }
- virtual int GetScrollPos( int orient ) const
- { return wxControl::GetScrollPos(orient); }
- //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();
- private:
- wxWindow *m_parent;
- wxWindowID m_windowID;
- wxString m_currentURL;
- wxString m_pageTitle;
- WX_WebView m_webView;
- // we may use this later to setup our own mouse events,
- // so leave it in for now.
- void* m_webKitCtrlEventHandler;
- };
- // ----------------------------------------------------------------------------
- // Web Kit Events
- // ----------------------------------------------------------------------------
- enum {
- wxWEBKIT_STATE_START = 1,
- wxWEBKIT_STATE_NEGOTIATING = 2,
- wxWEBKIT_STATE_REDIRECTING = 4,
- wxWEBKIT_STATE_TRANSFERRING = 8,
- wxWEBKIT_STATE_STOP = 16,
- 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 WXDLLIMPEXP_CORE 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 = NULL );
- wxEvent *Clone(void) const { return new wxWebKitBeforeLoadEvent(*this); }
- protected:
- bool m_cancelled;
- wxString m_url;
- int m_navType;
- };
- class WXDLLIMPEXP_CORE wxWebKitStateChangedEvent : public wxCommandEvent
- {
- DECLARE_DYNAMIC_CLASS( wxWebKitStateChangedEvent )
- public:
- int GetState() { return m_state; }
- void SetState(const int state) { m_state = state; }
- wxString GetURL() { return m_url; }
- void SetURL(const wxString& url) { m_url = url; }
- wxWebKitStateChangedEvent( wxWindow* win = NULL );
- wxEvent *Clone(void) const { return new wxWebKitStateChangedEvent(*this); }
- protected:
- int m_state;
- wxString m_url;
- };
- class WXDLLIMPEXP_CORE wxWebKitNewWindowEvent : public wxCommandEvent
- {
- DECLARE_DYNAMIC_CLASS( wxWebKitNewWindowEvent )
- public:
- wxString GetURL() const { return m_url; }
- void SetURL(const wxString& url) { m_url = url; }
- wxString GetTargetName() const { return m_targetName; }
- void SetTargetName(const wxString& name) { m_targetName = name; }
- wxWebKitNewWindowEvent( wxWindow* win = (wxWindow*)(NULL));
- wxEvent *Clone(void) const { return new wxWebKitNewWindowEvent(*this); }
- private:
- wxString m_url;
- wxString m_targetName;
- };
- typedef void (wxEvtHandler::*wxWebKitStateChangedEventFunction)(wxWebKitStateChangedEvent&);
- typedef void (wxEvtHandler::*wxWebKitBeforeLoadEventFunction)(wxWebKitBeforeLoadEvent&);
- typedef void (wxEvtHandler::*wxWebKitNewWindowEventFunction)(wxWebKitNewWindowEvent&);
- #define wxWebKitStateChangedEventHandler( func ) \
- wxEVENT_HANDLER_CAST( wxWebKitStateChangedEventFunction, func )
- #define wxWebKitBeforeLoadEventHandler( func ) \
- wxEVENT_HANDLER_CAST( wxWebKitBeforeLoadEventFunction, func )
- #define wxWebKitNewWindowEventHandler( func ) \
- wxEVENT_HANDLER_CAST( wxWebKitNewWindowEventFunction, func )
- wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_WEBKIT_STATE_CHANGED, wxWebKitStateChangedEvent );
- wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_WEBKIT_BEFORE_LOAD, wxWebKitBeforeLoadEvent );
- wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_WEBKIT_NEW_WINDOW, wxWebKitNewWindowEvent );
- #define EVT_WEBKIT_STATE_CHANGED(func) \
- wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBKIT_STATE_CHANGED, \
- wxID_ANY, \
- wxID_ANY, \
- wxWebKitStateChangedEventHandler( func ), \
- NULL ),
- #define EVT_WEBKIT_BEFORE_LOAD(func) \
- wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBKIT_BEFORE_LOAD, \
- wxID_ANY, \
- wxID_ANY, \
- wxWebKitBeforeLoadEventHandler( func ), \
- NULL ),
- #define EVT_WEBKIT_NEW_WINDOW(func) \
- wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBKIT_NEW_WINDOW, \
- wxID_ANY, \
- wxID_ANY, \
- wxWebKitNewWindowEventHandler( func ), \
- NULL ),
- #endif // wxUSE_WEBKIT
- #endif
- // _WX_WEBKIT_H_
|