Home | History | Annotate | Download | only in wx
      1 /*
      2  * Copyright (C) 2007 Kevin Ollivier <kevino (at) theolliviers.com>
      3  *
      4  * All rights reserved.
      5  *
      6  * Redistribution and use in source and binary forms, with or without
      7  * modification, are permitted provided that the following conditions
      8  * are met:
      9  * 1. Redistributions of source code must retain the above copyright
     10  *    notice, this list of conditions and the following disclaimer.
     11  * 2. Redistributions in binary form must reproduce the above copyright
     12  *    notice, this list of conditions and the following disclaimer in the
     13  *    documentation and/or other materials provided with the distribution.
     14  *
     15  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
     16  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     17  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     18  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
     19  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     20  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     21  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
     22  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
     23  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     25  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     26  */
     27 
     28 #ifndef WXWEBVIEW_H
     29 #define WXWEBVIEW_H
     30 
     31 #include "wx/wxprec.h"
     32 #ifndef WX_PRECOMP
     33     #include "wx/wx.h"
     34 #endif
     35 
     36 #include "WebFrame.h"
     37 #include "WebKitDefines.h"
     38 #include "WebSettings.h"
     39 
     40 class WebViewPrivate;
     41 class WebViewFrameData;
     42 class wxWebFrame;
     43 
     44 typedef struct OpaqueJSContext* JSGlobalContextRef;
     45 typedef struct OpaqueJSValue* JSObjectRef;
     46 
     47 namespace WebCore {
     48     class ChromeClientWx;
     49     class FrameLoaderClientWx;
     50 }
     51 
     52 #ifndef SWIG
     53 extern WXDLLIMPEXP_WEBKIT const wxChar* wxWebViewNameStr;
     54 #endif
     55 
     56 static const int defaultCacheCapacity = 8192 * 1024; // mirrors Cache.cpp
     57 
     58 class WXDLLIMPEXP_WEBKIT wxWebViewCachePolicy
     59 {
     60 public:
     61     wxWebViewCachePolicy(unsigned minDead = 0, unsigned maxDead = defaultCacheCapacity, unsigned totalCapacity = defaultCacheCapacity)
     62         : m_minDeadCapacity(minDead)
     63         , m_maxDeadCapacity(maxDead)
     64         , m_capacity(totalCapacity)
     65     {}
     66 
     67     ~wxWebViewCachePolicy() {}
     68 
     69     unsigned GetCapacity() const { return m_capacity; }
     70     void SetCapacity(int capacity) { m_capacity = capacity; }
     71 
     72     unsigned GetMinDeadCapacity() const { return m_minDeadCapacity; }
     73     void SetMinDeadCapacity(unsigned minDeadCapacity) { m_minDeadCapacity = minDeadCapacity; }
     74 
     75     unsigned GetMaxDeadCapacity() const { return m_maxDeadCapacity; }
     76     void SetMaxDeadCapacity(unsigned maxDeadCapacity) { m_maxDeadCapacity = maxDeadCapacity; }
     77 
     78 protected:
     79     unsigned m_capacity;
     80     unsigned m_minDeadCapacity;
     81     unsigned m_maxDeadCapacity;
     82 };
     83 
     84 
     85 // copied from WebKit/mac/Misc/WebKitErrors[Private].h
     86 enum {
     87     WebKitErrorCannotShowMIMEType =                             100,
     88     WebKitErrorCannotShowURL =                                  101,
     89     WebKitErrorFrameLoadInterruptedByPolicyChange =             102,
     90     WebKitErrorCannotUseRestrictedPort = 103,
     91     WebKitErrorCannotFindPlugIn =                               200,
     92     WebKitErrorCannotLoadPlugIn =                               201,
     93     WebKitErrorJavaUnavailable =                                202,
     94 };
     95 
     96 enum wxProxyType {
     97     HTTP,
     98     Socks4,
     99     Socks4A,
    100     Socks5,
    101     Socks5Hostname
    102 };
    103 
    104 class WXDLLIMPEXP_WEBKIT wxWebView : public wxWindow
    105 {
    106     // ChromeClientWx needs to get the Page* stored by the wxWebView
    107     // for the createWindow function.
    108     friend class WebCore::ChromeClientWx;
    109     friend class WebCore::FrameLoaderClientWx;
    110 
    111 public:
    112     // ctor(s)
    113 #if SWIG
    114     %pythonAppend wxWebView    "self._setOORInfo(self)"
    115     %pythonAppend wxWebView()  ""
    116 #endif
    117 
    118     wxWebView(wxWindow* parent, int id = wxID_ANY,
    119               const wxPoint& point = wxDefaultPosition,
    120               const wxSize& size = wxDefaultSize,
    121               long style = 0,
    122               const wxString& name = wxWebViewNameStr); // For wxWebView internal data passing
    123 #if SWIG
    124     %rename(PreWebView) wxWebView();
    125 #else
    126     wxWebView();
    127 #endif
    128 
    129     bool Create(wxWindow* parent, int id = wxID_ANY,
    130                 const wxPoint& point = wxDefaultPosition,
    131                 const wxSize& size = wxDefaultSize,
    132                 long style = 0,
    133                 const wxString& name = wxWebViewNameStr); // For wxWebView internal data passing
    134 
    135 #ifndef SWIG
    136     virtual ~wxWebView();
    137 #endif
    138 
    139     void LoadURL(const wxString& url);
    140     bool GoBack();
    141     bool GoForward();
    142     void Stop();
    143     void Reload();
    144 
    145     bool CanGoBack();
    146     bool CanGoForward();
    147 
    148     bool CanCut();
    149     bool CanCopy();
    150     bool CanPaste();
    151 
    152     void Cut();
    153     void Copy();
    154     void Paste();
    155 
    156     //bool CanGetPageSource();
    157     wxString GetPageSource();
    158     void SetPageSource(const wxString& source, const wxString& baseUrl = wxEmptyString);
    159 
    160     wxString GetInnerText();
    161     wxString GetAsMarkup();
    162     wxString GetExternalRepresentation();
    163 
    164     void SetTransparent(bool transparent);
    165     bool IsTransparent() const;
    166 
    167     wxString RunScript(const wxString& javascript);
    168 
    169     bool FindString(const wxString& string, bool forward = true,
    170         bool caseSensitive = false, bool wrapSelection = true,
    171         bool startInSelection = true);
    172 
    173     bool CanIncreaseTextSize() const;
    174     void IncreaseTextSize();
    175     bool CanDecreaseTextSize() const;
    176     void DecreaseTextSize();
    177     void ResetTextSize();
    178     void MakeEditable(bool enable);
    179     bool IsEditable() const { return m_isEditable; }
    180 
    181     wxString GetPageTitle() const { return m_title; }
    182     void SetPageTitle(const wxString& title) { m_title = title; }
    183 
    184     wxWebFrame* GetMainFrame() { return m_mainFrame; }
    185 
    186     wxWebViewDOMElementInfo HitTest(const wxPoint& pos) const;
    187 
    188     bool ShouldClose() const;
    189 
    190     static void SetCachePolicy(const wxWebViewCachePolicy& cachePolicy);
    191     static wxWebViewCachePolicy GetCachePolicy();
    192 
    193     void SetMouseWheelZooms(bool mouseWheelZooms) { m_mouseWheelZooms = mouseWheelZooms; }
    194     bool GetMouseWheelZooms() const { return m_mouseWheelZooms; }
    195 
    196     static void SetDatabaseDirectory(const wxString& databaseDirectory);
    197     static wxString GetDatabaseDirectory();
    198 
    199     static void SetProxyInfo(const wxString& host = wxEmptyString,
    200                              unsigned long port = 0,
    201                              wxProxyType type = HTTP,
    202                              const wxString& username = wxEmptyString,
    203                              const wxString& password = wxEmptyString);
    204 
    205     wxWebSettings GetWebSettings();
    206     wxWebKitParseMode GetParseMode() const;
    207 
    208 protected:
    209 
    210     // event handlers (these functions should _not_ be virtual)
    211     void OnPaint(wxPaintEvent& event);
    212     void OnSize(wxSizeEvent& event);
    213     void OnMouseEvents(wxMouseEvent& event);
    214     void OnContextMenuEvents(wxContextMenuEvent& event);
    215     void OnMenuSelectEvents(wxCommandEvent& event);
    216     void OnKeyEvents(wxKeyEvent& event);
    217     void OnSetFocus(wxFocusEvent& event);
    218     void OnKillFocus(wxFocusEvent& event);
    219 
    220 private:
    221     // any class wishing to process wxWindows events must use this macro
    222 #ifndef SWIG
    223     DECLARE_EVENT_TABLE()
    224     DECLARE_DYNAMIC_CLASS(wxWebView)
    225 #endif
    226     float m_textMagnifier;
    227     bool m_isEditable;
    228     bool m_isInitialized;
    229     bool m_beingDestroyed;
    230     bool m_mouseWheelZooms;
    231     WebViewPrivate* m_impl;
    232     wxWebFrame* m_mainFrame;
    233     wxString m_title;
    234 
    235 };
    236 
    237 // ----------------------------------------------------------------------------
    238 // Web Kit Events
    239 // ----------------------------------------------------------------------------
    240 
    241 enum {
    242     wxWEBVIEW_LOAD_STARTED = 1,
    243     wxWEBVIEW_LOAD_NEGOTIATING = 2,
    244     wxWEBVIEW_LOAD_REDIRECTING = 4,
    245     wxWEBVIEW_LOAD_TRANSFERRING = 8,
    246     wxWEBVIEW_LOAD_STOPPED = 16,
    247     wxWEBVIEW_LOAD_FAILED = 32,
    248     wxWEBVIEW_LOAD_DL_COMPLETED = 64,
    249     wxWEBVIEW_LOAD_DOC_COMPLETED = 128,
    250     wxWEBVIEW_LOAD_ONLOAD_HANDLED = 256,
    251     wxWEBVIEW_LOAD_WINDOW_OBJECT_CLEARED = 512
    252 };
    253 
    254 enum {
    255     wxWEBVIEW_NAV_LINK_CLICKED = 1,
    256     wxWEBVIEW_NAV_BACK_NEXT = 2,
    257     wxWEBVIEW_NAV_FORM_SUBMITTED = 4,
    258     wxWEBVIEW_NAV_RELOAD = 8,
    259     wxWEBVIEW_NAV_FORM_RESUBMITTED = 16,
    260     wxWEBVIEW_NAV_OTHER = 32
    261 };
    262 
    263 class WXDLLIMPEXP_WEBKIT wxWebViewBeforeLoadEvent : public wxCommandEvent
    264 {
    265 #ifndef SWIG
    266     DECLARE_DYNAMIC_CLASS( wxWebViewBeforeLoadEvent )
    267 #endif
    268 
    269 public:
    270     bool IsCancelled() const { return m_cancelled; }
    271     void Cancel(bool cancel = true) { m_cancelled = cancel; }
    272     wxString GetURL() const { return m_url; }
    273     void SetURL(const wxString& url) { m_url = url; }
    274     void SetNavigationType(int navType) { m_navType = navType; }
    275     int GetNavigationType() const { return m_navType; }
    276 
    277     wxWebViewBeforeLoadEvent( wxWindow* win = (wxWindow*) NULL );
    278     wxEvent *Clone(void) const { return new wxWebViewBeforeLoadEvent(*this); }
    279 
    280 private:
    281     bool m_cancelled;
    282     wxString m_url;
    283     int m_navType;
    284 };
    285 
    286 class WXDLLIMPEXP_WEBKIT wxWebViewLoadEvent : public wxCommandEvent
    287 {
    288 #ifndef SWIG
    289     DECLARE_DYNAMIC_CLASS( wxWebViewLoadEvent )
    290 #endif
    291 
    292 public:
    293     int GetState() const { return m_state; }
    294     void SetState(const int state) { m_state = state; }
    295     wxString GetURL() const { return m_url; }
    296     void SetURL(const wxString& url) { m_url = url; }
    297 
    298     wxWebViewLoadEvent( wxWindow* win = (wxWindow*) NULL );
    299     wxEvent *Clone(void) const { return new wxWebViewLoadEvent(*this); }
    300 
    301 private:
    302     int m_state;
    303     wxString m_url;
    304 };
    305 
    306 class WXDLLIMPEXP_WEBKIT wxWebKitWindowFeatures
    307 {
    308 public:
    309     wxWebKitWindowFeatures()
    310         : menuBarVisible(true)
    311         , statusBarVisible(true)
    312         , toolBarVisible(true)
    313         , locationBarVisible(true)
    314         , scrollbarsVisible(true)
    315         , resizable(true)
    316         , fullscreen(false)
    317         , dialog(false)
    318     { }
    319 
    320     bool menuBarVisible;
    321     bool statusBarVisible;
    322     bool toolBarVisible;
    323     bool locationBarVisible;
    324     bool scrollbarsVisible;
    325     bool resizable;
    326     bool fullscreen;
    327     bool dialog;
    328 };
    329 
    330 class WXDLLIMPEXP_WEBKIT wxWebViewNewWindowEvent : public wxCommandEvent
    331 {
    332 #ifndef SWIG
    333     DECLARE_DYNAMIC_CLASS( wxWebViewNewWindowEvent )
    334 #endif
    335 
    336 public:
    337     wxString GetURL() const { return m_url; }
    338     void SetURL(const wxString& url) { m_url = url; }
    339     wxString GetTargetName() const { return m_targetName; }
    340     void SetTargetName(const wxString& name) { m_targetName = name; }
    341     wxWebView* GetWebView() { return m_webView; }
    342     void SetWebView(wxWebView* webView) { m_webView = webView; }
    343     wxWebKitWindowFeatures GetWindowFeatures() { return m_features; }
    344     void SetWindowFeatures(wxWebKitWindowFeatures features) { m_features = features; }
    345 
    346     wxWebViewNewWindowEvent( wxWindow* win = static_cast<wxWindow*>(NULL));
    347     wxEvent *Clone(void) const { return new wxWebViewNewWindowEvent(*this); }
    348 
    349 private:
    350     wxWebView* m_webView;
    351     wxWebKitWindowFeatures m_features;
    352     wxString m_url;
    353     wxString m_targetName;
    354 };
    355 
    356 class WXDLLIMPEXP_WEBKIT wxWebViewRightClickEvent : public wxCommandEvent
    357 {
    358 #ifndef SWIG
    359     DECLARE_DYNAMIC_CLASS( wxWebViewRightClickEvent )
    360 #endif
    361 
    362 public:
    363     wxWebViewRightClickEvent( wxWindow* win = static_cast<wxWindow*>(NULL));
    364     wxEvent *Clone(void) const { return new wxWebViewRightClickEvent(*this); }
    365 
    366     wxWebViewDOMElementInfo GetInfo() const { return m_info; }
    367     void SetInfo(wxWebViewDOMElementInfo info) { m_info = info; }
    368 
    369     wxPoint GetPosition() const { return m_position; }
    370     void SetPosition(wxPoint pos) { m_position = pos; }
    371 
    372 private:
    373     wxWebViewDOMElementInfo m_info;
    374     wxPoint m_position;
    375 };
    376 
    377 // copied from page/Console.h
    378 enum wxWebViewConsoleMessageLevel {
    379     TipMessageLevel,
    380     LogMessageLevel,
    381     WarningMessageLevel,
    382     ErrorMessageLevel
    383 };
    384 
    385 class WXDLLIMPEXP_WEBKIT wxWebViewConsoleMessageEvent : public wxCommandEvent
    386 {
    387 #ifndef SWIG
    388     DECLARE_DYNAMIC_CLASS( wxWebViewConsoleMessageEvent )
    389 #endif
    390 
    391 public:
    392     wxString GetMessage() const { return m_message; }
    393     void SetMessage(const wxString& message) { m_message = message; }
    394 
    395     unsigned int GetLineNumber() const { return m_lineNumber; }
    396     void SetLineNumber(unsigned int lineNumber) { m_lineNumber = lineNumber; }
    397 
    398     wxString GetSourceID() const { return m_sourceID; }
    399     void SetSourceID(const wxString& sourceID) { m_sourceID = sourceID; }
    400 
    401     wxWebViewConsoleMessageEvent( wxWindow* win = (wxWindow*) NULL );
    402     wxEvent *Clone(void) const { return new wxWebViewConsoleMessageEvent(*this); }
    403 
    404     wxWebViewConsoleMessageLevel GetLevel() const { return m_level; }
    405     void SetLevel(wxWebViewConsoleMessageLevel level) { m_level = level; }
    406 
    407 private:
    408     unsigned int m_lineNumber;
    409     wxString m_message;
    410     wxString m_sourceID;
    411     wxWebViewConsoleMessageLevel m_level;
    412 };
    413 
    414 class WXDLLIMPEXP_WEBKIT wxWebViewAlertEvent : public wxCommandEvent
    415 {
    416 #ifndef SWIG
    417     DECLARE_DYNAMIC_CLASS( wxWebViewAlertEvent )
    418 #endif
    419 
    420 public:
    421     wxString GetMessage() const { return m_message; }
    422     void SetMessage(const wxString& message) { m_message = message; }
    423 
    424     wxWebViewAlertEvent( wxWindow* win = (wxWindow*) NULL );
    425     wxEvent *Clone(void) const { return new wxWebViewAlertEvent(*this); }
    426 
    427 private:
    428     wxString m_message;
    429 };
    430 
    431 class WXDLLIMPEXP_WEBKIT wxWebViewConfirmEvent : public wxWebViewAlertEvent
    432 {
    433 #ifndef SWIG
    434     DECLARE_DYNAMIC_CLASS( wxWebViewConfirmEvent )
    435 #endif
    436 
    437 public:
    438     int GetReturnCode() const { return m_returnCode; }
    439     void SetReturnCode(int code) { m_returnCode = code; }
    440 
    441     wxWebViewConfirmEvent( wxWindow* win = (wxWindow*) NULL );
    442     wxEvent *Clone(void) const { return new wxWebViewConfirmEvent(*this); }
    443 
    444 private:
    445     int m_returnCode;
    446 };
    447 
    448 class WXDLLIMPEXP_WEBKIT wxWebViewPromptEvent : public wxWebViewConfirmEvent
    449 {
    450 #ifndef SWIG
    451     DECLARE_DYNAMIC_CLASS( wxWebViewPromptEvent )
    452 #endif
    453 
    454 public:
    455     wxString GetResponse() const { return m_response; }
    456     void SetResponse(const wxString& response) { m_response = response; }
    457 
    458     wxWebViewPromptEvent( wxWindow* win = (wxWindow*) NULL );
    459     wxEvent *Clone(void) const { return new wxWebViewPromptEvent(*this); }
    460 
    461 private:
    462     wxString m_response;
    463 };
    464 
    465 class WXDLLIMPEXP_WEBKIT wxWebViewReceivedTitleEvent : public wxCommandEvent
    466 {
    467 #ifndef SWIG
    468     DECLARE_DYNAMIC_CLASS( wxWebViewReceivedTitleEvent )
    469 #endif
    470 
    471 public:
    472     wxString GetTitle() const { return m_title; }
    473     void SetTitle(const wxString& title) { m_title = title; }
    474 
    475     wxWebViewReceivedTitleEvent( wxWindow* win = static_cast<wxWindow*>(NULL));
    476     wxEvent *Clone(void) const { return new wxWebViewReceivedTitleEvent(*this); }
    477 
    478 private:
    479     wxString m_title;
    480 };
    481 
    482 class WXDLLIMPEXP_WEBKIT wxWebViewWindowObjectClearedEvent : public wxCommandEvent
    483 {
    484 #ifndef SWIG
    485     DECLARE_DYNAMIC_CLASS( wxWebViewWindowObjectClearedEvent )
    486 #endif
    487 
    488 public:
    489     JSGlobalContextRef GetJSContext() const { return m_jsContext; }
    490     void SetJSContext(JSGlobalContextRef context) { m_jsContext = context; }
    491 
    492     JSObjectRef GetWindowObject() const { return m_windowObject; }
    493     void SetWindowObject(JSObjectRef object) { m_windowObject = object; }
    494 
    495     wxWebViewWindowObjectClearedEvent( wxWindow* win = static_cast<wxWindow*>(NULL));
    496     wxEvent *Clone(void) const { return new wxWebViewWindowObjectClearedEvent(*this); }
    497 
    498 private:
    499     JSGlobalContextRef m_jsContext;
    500     JSObjectRef m_windowObject;
    501 };
    502 
    503 typedef void (wxEvtHandler::*wxWebViewLoadEventFunction)(wxWebViewLoadEvent&);
    504 typedef void (wxEvtHandler::*wxWebViewBeforeLoadEventFunction)(wxWebViewBeforeLoadEvent&);
    505 typedef void (wxEvtHandler::*wxWebViewNewWindowEventFunction)(wxWebViewNewWindowEvent&);
    506 typedef void (wxEvtHandler::*wxWebViewRightClickEventFunction)(wxWebViewRightClickEvent&);
    507 typedef void (wxEvtHandler::*wxWebViewConsoleMessageEventFunction)(wxWebViewConsoleMessageEvent&);
    508 typedef void (wxEvtHandler::*wxWebViewAlertEventFunction)(wxWebViewAlertEvent&);
    509 typedef void (wxEvtHandler::*wxWebViewConfirmEventFunction)(wxWebViewConfirmEvent&);
    510 typedef void (wxEvtHandler::*wxWebViewPromptEventFunction)(wxWebViewPromptEvent&);
    511 typedef void (wxEvtHandler::*wxWebViewReceivedTitleEventFunction)(wxWebViewReceivedTitleEvent&);
    512 typedef void (wxEvtHandler::*wxWebViewWindowObjectClearedFunction)(wxWebViewWindowObjectClearedEvent&);
    513 
    514 #define wxWebViewLoadEventHandler(func) \
    515     (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWebViewLoadEventFunction, &func)
    516 #define wxWebViewBeforeLoadEventHandler(func) \
    517     (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWebViewBeforeLoadEventFunction, &func)
    518 #define wxWebViewNewWindowEventHandler(func) \
    519     (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWebViewNewWindowEventFunction, &func)
    520 #define wxWebViewRightClickEventHandler(func) \
    521     (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWebViewRightClickEventFunction, &func)
    522 #define wxWebViewConsoleMessageEventHandler(func) \
    523     (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWebViewConsoleMessageEventFunction, &func)
    524 #define wxWebViewAlertEventHandler(func) \
    525     (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWebViewAlertEventFunction, &func)
    526 #define wxWebViewConfirmEventHandler(func) \
    527     (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWebViewConfirmEventFunction, &func)
    528 #define wxWebViewPromptEventHandler(func) \
    529     (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWebViewPromptEventFunction, &func)
    530 #define wxWebViewReceivedTitleEventHandler(func) \
    531     (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWebViewReceivedTitleEventFunction, &func)
    532 #define wxWebViewWindowObjectClearedEventHandler(func) \
    533     (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWebViewWindowObjectClearedFunction, &func)
    534 
    535 #ifndef SWIG
    536 BEGIN_DECLARE_EVENT_TYPES()
    537     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_WEBKIT, wxEVT_WEBVIEW_BEFORE_LOAD, wxID_ANY)
    538     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_WEBKIT, wxEVT_WEBVIEW_LOAD, wxID_ANY)
    539     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_WEBKIT, wxEVT_WEBVIEW_NEW_WINDOW, wxID_ANY)
    540     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_WEBKIT, wxEVT_WEBVIEW_RIGHT_CLICK, wxID_ANY)
    541     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_WEBKIT, wxEVT_WEBVIEW_CONSOLE_MESSAGE, wxID_ANY)
    542     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_WEBKIT, wxEVT_WEBVIEW_JS_ALERT, wxID_ANY)
    543     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_WEBKIT, wxEVT_WEBVIEW_JS_CONFIRM, wxID_ANY)
    544     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_WEBKIT, wxEVT_WEBVIEW_JS_PROMPT, wxID_ANY)
    545     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_WEBKIT, wxEVT_WEBVIEW_RECEIVED_TITLE, wxID_ANY)
    546     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_WEBKIT, wxEVT_WEBVIEW_WINDOW_OBJECT_CLEARED, wxID_ANY)
    547 END_DECLARE_EVENT_TYPES()
    548 #endif
    549 
    550 #define EVT_WEBVIEW_LOAD(winid, func)                       \
    551             DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBVIEW_LOAD, \
    552                             winid, \
    553                             wxID_ANY, \
    554                             (wxObjectEventFunction)   \
    555                             (wxWebViewLoadEventFunction) & func, \
    556                             static_cast<wxObject*>(NULL)),
    557 
    558 #define EVT_WEBVIEW_BEFORE_LOAD(winid, func)                       \
    559             DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBVIEW_BEFORE_LOAD, \
    560                             winid, \
    561                             wxID_ANY, \
    562                             (wxObjectEventFunction)   \
    563                             (wxWebViewBeforeLoadEventFunction) & func, \
    564                             static_cast<wxObject*>(NULL)),
    565 
    566 #define EVT_WEBVIEW_NEW_WINDOW(winid, func)                       \
    567             DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBVIEW_NEW_WINDOW, \
    568                             winid, \
    569                             wxID_ANY, \
    570                             (wxObjectEventFunction)   \
    571                             (wxWebViewNewWindowEventFunction) & func, \
    572                             static_cast<wxObject*>(NULL)),
    573 
    574 #define EVT_WEBVIEW_RIGHT_CLICK(winid, func)                       \
    575             DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBVIEW_RIGHT_CLICK, \
    576                             winid, \
    577                             wxID_ANY, \
    578                             (wxObjectEventFunction)   \
    579                             (wxWebViewRightClickEventFunction) & func, \
    580                             static_cast<wxObject*>(NULL)),
    581 
    582 #define EVT_WEBVIEW_CONSOLE_MESSAGE(winid, func)                       \
    583             DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBVIEW_CONSOLE_MESSAGE, \
    584                             winid, \
    585                             wxID_ANY, \
    586                             (wxObjectEventFunction)   \
    587                             (wxWebViewConsoleMessageEventFunction) & func, \
    588                             static_cast<wxObject*>(NULL)),
    589 
    590 #define EVT_WEBVIEW_JS_ALERT(winid, func)                       \
    591             DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBVIEW_JS_ALERT, \
    592                             winid, \
    593                             wxID_ANY, \
    594                             (wxObjectEventFunction)   \
    595                             (wxWebViewAlertEventFunction) & func, \
    596                             static_cast<wxObject*>(NULL)),
    597 
    598 #define EVT_WEBVIEW_JS_CONFIRM(winid, func)                       \
    599             DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBVIEW_JS_CONFIRM, \
    600                             winid, \
    601                             wxID_ANY, \
    602                             (wxObjectEventFunction)   \
    603                             (wxWebViewConfirmEventFunction) & func, \
    604                             static_cast<wxObject*>(NULL)),
    605 
    606 #define EVT_WEBVIEW_JS_PROMPT(winid, func)                       \
    607             DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBVIEW_JS_PROMPT, \
    608                             winid, \
    609                             wxID_ANY, \
    610                             (wxObjectEventFunction)   \
    611                             (wxWebViewPromptEventFunction) & func, \
    612                             static_cast<wxObject*>(NULL)),
    613 
    614 #define EVT_WEBVIEW_RECEIVED_TITLE(winid, func)                       \
    615             DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBVIEW_RECEIVED_TITLE, \
    616                             winid, \
    617                             wxID_ANY, \
    618                             (wxObjectEventFunction)   \
    619                             (wxWebViewReceivedTitleEventFunction) & func, \
    620                             static_cast<wxObject*>(NULL)),
    621 
    622 #define EVT_WEBVIEW_WINDOW_OBJECT_CLEARED(winid, func)                       \
    623             DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBVIEW_WINDOW_OBJECT_CLEARED, \
    624                             winid, \
    625                             wxID_ANY, \
    626                             (wxObjectEventFunction)   \
    627                             (wxWebViewWindowObjectClearedFunction) & func, \
    628                             static_cast<wxObject*>(NULL)),
    629 
    630 #endif // ifndef WXWEBVIEW_H
    631