wxPython bindings build fixes after recent changes.
[WebKit.git] / WebKit / wx / WebView.h
1 /*
2  * Copyright (C) 2007 Kevin Ollivier <kevino@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
38 class WebViewPrivate;
39 class WebViewFrameData;
40 class wxWebFrame;
41
42 typedef struct OpaqueJSContext* JSGlobalContextRef;
43 typedef struct OpaqueJSValue* JSObjectRef;
44
45 namespace WebCore {
46     class ChromeClientWx;
47     class FrameLoaderClientWx;
48 }
49
50 #ifndef SWIG
51
52 #if !wxCHECK_VERSION(2,9,0) && wxCHECK_GCC_VERSION(4,0)
53 #define WXDLLIMPEXP_WEBKIT __attribute__ ((visibility("default")))
54 #elif WXMAKINGDLL_WEBKIT
55 #define WXDLLIMPEXP_WEBKIT WXEXPORT
56 #elif defined(WXUSINGDLL_WEBKIT)
57 #define WXDLLIMPEXP_WEBKIT WXIMPORT
58 #endif
59
60 #else
61 #define WXDLLIMPEXP_WEBKIT
62 #endif // SWIG
63
64 #ifndef SWIG
65 extern WXDLLIMPEXP_WEBKIT const wxChar* wxWebViewNameStr;
66 #endif
67
68 static const int defaultCacheCapacity = 8192 * 1024; // mirrors Cache.cpp
69
70 class WXDLLIMPEXP_WEBKIT wxWebViewCachePolicy
71 {
72 public:
73     wxWebViewCachePolicy(unsigned minDead = 0, unsigned maxDead = defaultCacheCapacity, unsigned totalCapacity = defaultCacheCapacity)
74         : m_minDeadCapacity(minDead)
75         , m_maxDeadCapacity(maxDead)
76         , m_capacity(totalCapacity)
77     {}
78
79     ~wxWebViewCachePolicy() {}
80
81     unsigned GetCapacity() const { return m_capacity; }
82     void SetCapacity(int capacity) { m_capacity = capacity; }
83
84     unsigned GetMinDeadCapacity() const { return m_minDeadCapacity; }
85     void SetMinDeadCapacity(unsigned minDeadCapacity) { m_minDeadCapacity = minDeadCapacity; }
86
87     unsigned GetMaxDeadCapacity() const { return m_maxDeadCapacity; }
88     void SetMaxDeadCapacity(unsigned maxDeadCapacity) { m_maxDeadCapacity = maxDeadCapacity; }
89
90 protected:
91     unsigned m_capacity;
92     unsigned m_minDeadCapacity;
93     unsigned m_maxDeadCapacity;
94 };
95
96
97 // copied from WebKit/mac/Misc/WebKitErrors[Private].h
98 enum {
99     WebKitErrorCannotShowMIMEType =                             100,
100     WebKitErrorCannotShowURL =                                  101,
101     WebKitErrorFrameLoadInterruptedByPolicyChange =             102,
102     WebKitErrorCannotUseRestrictedPort = 103,
103     WebKitErrorCannotFindPlugIn =                               200,
104     WebKitErrorCannotLoadPlugIn =                               201,
105     WebKitErrorJavaUnavailable =                                202,
106 };
107
108 class WXDLLIMPEXP_WEBKIT wxWebView : public wxWindow
109 {
110     // ChromeClientWx needs to get the Page* stored by the wxWebView
111     // for the createWindow function. 
112     friend class WebCore::ChromeClientWx;
113     friend class WebCore::FrameLoaderClientWx;
114
115 public:
116     // ctor(s)
117 #if SWIG
118     %pythonAppend wxWebView    "self._setOORInfo(self)"
119     %pythonAppend wxWebView()  ""
120 #endif
121
122     wxWebView(wxWindow* parent, int id = wxID_ANY,
123               const wxPoint& point = wxDefaultPosition,
124               const wxSize& size = wxDefaultSize,
125               long style = 0,
126               const wxString& name = wxWebViewNameStr); // For wxWebView internal data passing
127 #if SWIG
128     %rename(PreWebView) wxWebView();
129 #else
130     wxWebView();
131 #endif
132     
133     bool Create(wxWindow* parent, int id = wxID_ANY,
134                 const wxPoint& point = wxDefaultPosition,
135                 const wxSize& size = wxDefaultSize,
136                 long style = 0,
137                 const wxString& name = wxWebViewNameStr); // For wxWebView internal data passing
138     
139 #ifndef SWIG
140     virtual ~wxWebView();
141 #endif
142     
143     void LoadURL(const wxString& url);
144     bool GoBack();
145     bool GoForward();
146     void Stop();
147     void Reload();
148
149     bool CanGoBack();
150     bool CanGoForward();
151     
152     bool CanCut();
153     bool CanCopy();
154     bool CanPaste();
155     
156     void Cut();
157     void Copy();
158     void Paste();
159     
160     //bool CanGetPageSource();
161     wxString GetPageSource();
162     void SetPageSource(const wxString& source, const wxString& baseUrl = wxEmptyString);
163     
164     wxString GetInnerText();
165     wxString GetAsMarkup();
166     wxString GetExternalRepresentation();
167     
168     void SetTransparent(bool transparent);
169     bool IsTransparent() const;
170     
171     wxString RunScript(const wxString& javascript);
172
173     bool FindString(const wxString& string, bool forward = true,
174         bool caseSensitive = false, bool wrapSelection = true,
175         bool startInSelection = true);
176     
177     bool CanIncreaseTextSize() const;
178     void IncreaseTextSize();
179     bool CanDecreaseTextSize() const;
180     void DecreaseTextSize();
181     void ResetTextSize();
182     void MakeEditable(bool enable);
183     bool IsEditable() const { return m_isEditable; }
184
185     wxString GetPageTitle() const { return m_title; }
186     void SetPageTitle(const wxString& title) { m_title = title; }
187     
188     wxWebFrame* GetMainFrame() { return m_mainFrame; }
189
190     wxWebViewDOMElementInfo HitTest(const wxPoint& pos) const;
191     
192     bool ShouldClose() const;
193       
194     static void SetCachePolicy(const wxWebViewCachePolicy& cachePolicy);
195     static wxWebViewCachePolicy GetCachePolicy();
196
197 protected:
198
199     // event handlers (these functions should _not_ be virtual)
200     void OnPaint(wxPaintEvent& event);
201     void OnSize(wxSizeEvent& event);
202     void OnMouseEvents(wxMouseEvent& event);
203     void OnContextMenuEvents(wxContextMenuEvent& event);
204     void OnMenuSelectEvents(wxCommandEvent& event);
205     void OnKeyEvents(wxKeyEvent& event);
206     void OnSetFocus(wxFocusEvent& event);
207     void OnKillFocus(wxFocusEvent& event);
208     
209 private:
210     // any class wishing to process wxWindows events must use this macro
211 #ifndef SWIG
212     DECLARE_EVENT_TABLE()
213     DECLARE_DYNAMIC_CLASS(wxWebView)
214 #endif
215     float m_textMagnifier;
216     bool m_isEditable;
217     bool m_isInitialized;
218     bool m_beingDestroyed;
219     WebViewPrivate* m_impl;
220     wxWebFrame* m_mainFrame;
221     wxString m_title;
222     
223 };
224
225 // ----------------------------------------------------------------------------
226 // Web Kit Events
227 // ----------------------------------------------------------------------------
228
229 enum {
230     wxWEBVIEW_LOAD_STARTED = 1,
231     wxWEBVIEW_LOAD_NEGOTIATING = 2,
232     wxWEBVIEW_LOAD_REDIRECTING = 4,
233     wxWEBVIEW_LOAD_TRANSFERRING = 8,
234     wxWEBVIEW_LOAD_STOPPED = 16,
235     wxWEBVIEW_LOAD_FAILED = 32,
236     wxWEBVIEW_LOAD_DL_COMPLETED = 64,
237     wxWEBVIEW_LOAD_DOC_COMPLETED = 128,
238     wxWEBVIEW_LOAD_ONLOAD_HANDLED = 256,
239     wxWEBVIEW_LOAD_WINDOW_OBJECT_CLEARED = 512
240 };
241
242 enum {
243     wxWEBVIEW_NAV_LINK_CLICKED = 1,
244     wxWEBVIEW_NAV_BACK_NEXT = 2,
245     wxWEBVIEW_NAV_FORM_SUBMITTED = 4,
246     wxWEBVIEW_NAV_RELOAD = 8,
247     wxWEBVIEW_NAV_FORM_RESUBMITTED = 16,
248     wxWEBVIEW_NAV_OTHER = 32
249 };
250
251 class WXDLLIMPEXP_WEBKIT wxWebViewBeforeLoadEvent : public wxCommandEvent
252 {
253 #ifndef SWIG
254     DECLARE_DYNAMIC_CLASS( wxWebViewBeforeLoadEvent )
255 #endif
256
257 public:
258     bool IsCancelled() const { return m_cancelled; }
259     void Cancel(bool cancel = true) { m_cancelled = cancel; }
260     wxString GetURL() const { return m_url; }
261     void SetURL(const wxString& url) { m_url = url; }
262     void SetNavigationType(int navType) { m_navType = navType; }
263     int GetNavigationType() const { return m_navType; }
264
265     wxWebViewBeforeLoadEvent( wxWindow* win = (wxWindow*) NULL );
266     wxEvent *Clone(void) const { return new wxWebViewBeforeLoadEvent(*this); }
267
268 private:
269     bool m_cancelled;
270     wxString m_url;
271     int m_navType;
272 };
273
274 class WXDLLIMPEXP_WEBKIT wxWebViewLoadEvent : public wxCommandEvent
275 {
276 #ifndef SWIG
277     DECLARE_DYNAMIC_CLASS( wxWebViewLoadEvent )
278 #endif
279
280 public:
281     int GetState() const { return m_state; }
282     void SetState(const int state) { m_state = state; }
283     wxString GetURL() const { return m_url; }
284     void SetURL(const wxString& url) { m_url = url; }
285
286     wxWebViewLoadEvent( wxWindow* win = (wxWindow*) NULL );
287     wxEvent *Clone(void) const { return new wxWebViewLoadEvent(*this); }
288
289 private:
290     int m_state;
291     wxString m_url;
292 };
293
294 class WXDLLIMPEXP_WEBKIT wxWebViewNewWindowEvent : public wxCommandEvent
295 {
296 #ifndef SWIG
297     DECLARE_DYNAMIC_CLASS( wxWebViewNewWindowEvent )
298 #endif
299
300 public:
301     wxString GetURL() const { return m_url; }
302     void SetURL(const wxString& url) { m_url = url; }
303     wxString GetTargetName() const { return m_targetName; }
304     void SetTargetName(const wxString& name) { m_targetName = name; }
305
306     wxWebViewNewWindowEvent( wxWindow* win = static_cast<wxWindow*>(NULL));
307     wxEvent *Clone(void) const { return new wxWebViewNewWindowEvent(*this); }
308
309 private:
310     wxString m_url;
311     wxString m_targetName;
312 };
313
314 class WXDLLIMPEXP_WEBKIT wxWebViewRightClickEvent : public wxCommandEvent
315 {
316 #ifndef SWIG
317     DECLARE_DYNAMIC_CLASS( wxWebViewRightClickEvent )
318 #endif
319
320 public:
321     wxWebViewRightClickEvent( wxWindow* win = static_cast<wxWindow*>(NULL));
322     wxEvent *Clone(void) const { return new wxWebViewRightClickEvent(*this); }
323     
324     wxWebViewDOMElementInfo GetInfo() const { return m_info; }
325     void SetInfo(wxWebViewDOMElementInfo info) { m_info = info; }
326     
327     wxPoint GetPosition() const { return m_position; }
328     void SetPosition(wxPoint pos) { m_position = pos; }
329
330 private:
331     wxWebViewDOMElementInfo m_info;
332     wxPoint m_position;
333 };
334
335 // copied from page/Console.h
336 enum wxWebViewConsoleMessageLevel {
337     TipMessageLevel,
338     LogMessageLevel,
339     WarningMessageLevel,
340     ErrorMessageLevel
341 };
342
343 class WXDLLIMPEXP_WEBKIT wxWebViewConsoleMessageEvent : public wxCommandEvent
344 {
345 #ifndef SWIG
346     DECLARE_DYNAMIC_CLASS( wxWebViewConsoleMessageEvent )
347 #endif
348
349 public:
350     wxString GetMessage() const { return m_message; }
351     void SetMessage(const wxString& message) { m_message = message; }
352     
353     unsigned int GetLineNumber() const { return m_lineNumber; }
354     void SetLineNumber(unsigned int lineNumber) { m_lineNumber = lineNumber; }
355     
356     wxString GetSourceID() const { return m_sourceID; }
357     void SetSourceID(const wxString& sourceID) { m_sourceID = sourceID; }
358
359     wxWebViewConsoleMessageEvent( wxWindow* win = (wxWindow*) NULL );
360     wxEvent *Clone(void) const { return new wxWebViewConsoleMessageEvent(*this); }
361
362     wxWebViewConsoleMessageLevel GetLevel() const { return m_level; }
363     void SetLevel(wxWebViewConsoleMessageLevel level) { m_level = level; }
364
365 private:
366     unsigned int m_lineNumber;
367     wxString m_message;
368     wxString m_sourceID;
369     wxWebViewConsoleMessageLevel m_level;
370 };
371
372 class WXDLLIMPEXP_WEBKIT wxWebViewAlertEvent : public wxCommandEvent
373 {
374 #ifndef SWIG
375     DECLARE_DYNAMIC_CLASS( wxWebViewAlertEvent )
376 #endif
377
378 public:
379     wxString GetMessage() const { return m_message; }
380     void SetMessage(const wxString& message) { m_message = message; }
381
382     wxWebViewAlertEvent( wxWindow* win = (wxWindow*) NULL );
383     wxEvent *Clone(void) const { return new wxWebViewAlertEvent(*this); }
384
385 private:
386     wxString m_message;
387 };
388
389 class WXDLLIMPEXP_WEBKIT wxWebViewConfirmEvent : public wxWebViewAlertEvent
390 {
391 #ifndef SWIG
392     DECLARE_DYNAMIC_CLASS( wxWebViewConfirmEvent )
393 #endif
394
395 public:   
396     int GetReturnCode() const { return m_returnCode; }
397     void SetReturnCode(int code) { m_returnCode = code; }
398
399     wxWebViewConfirmEvent( wxWindow* win = (wxWindow*) NULL );
400     wxEvent *Clone(void) const { return new wxWebViewConfirmEvent(*this); }
401
402 private:
403     int m_returnCode;
404 };
405
406 class WXDLLIMPEXP_WEBKIT wxWebViewPromptEvent : public wxWebViewConfirmEvent
407 {
408 #ifndef SWIG
409     DECLARE_DYNAMIC_CLASS( wxWebViewPromptEvent )
410 #endif
411
412 public:   
413     wxString GetResponse() const { return m_response; }
414     void SetResponse(const wxString& response) { m_response = response; }
415
416     wxWebViewPromptEvent( wxWindow* win = (wxWindow*) NULL );
417     wxEvent *Clone(void) const { return new wxWebViewPromptEvent(*this); }
418
419 private:
420     wxString m_response;
421 };
422
423 class WXDLLIMPEXP_WEBKIT wxWebViewReceivedTitleEvent : public wxCommandEvent
424 {
425 #ifndef SWIG
426     DECLARE_DYNAMIC_CLASS( wxWebViewReceivedTitleEvent )
427 #endif
428
429 public:
430     wxString GetTitle() const { return m_title; }
431     void SetTitle(const wxString& title) { m_title = title; }
432
433     wxWebViewReceivedTitleEvent( wxWindow* win = static_cast<wxWindow*>(NULL));
434     wxEvent *Clone(void) const { return new wxWebViewReceivedTitleEvent(*this); }
435
436 private:
437     wxString m_title;
438 };
439
440 class WXDLLIMPEXP_WEBKIT wxWebViewWindowObjectClearedEvent : public wxCommandEvent
441 {
442 #ifndef SWIG
443     DECLARE_DYNAMIC_CLASS( wxWebViewWindowObjectClearedEvent )
444 #endif
445
446 public:
447     JSGlobalContextRef GetJSContext() const { return m_jsContext; }
448     void SetJSContext(JSGlobalContextRef context) { m_jsContext = context; }
449     
450     JSObjectRef GetWindowObject() const { return m_windowObject; }
451     void SetWindowObject(JSObjectRef object) { m_windowObject = object; }
452
453     wxWebViewWindowObjectClearedEvent( wxWindow* win = static_cast<wxWindow*>(NULL));
454     wxEvent *Clone(void) const { return new wxWebViewWindowObjectClearedEvent(*this); }
455
456 private:
457     JSGlobalContextRef m_jsContext;
458     JSObjectRef m_windowObject;
459 };
460
461 typedef void (wxEvtHandler::*wxWebViewLoadEventFunction)(wxWebViewLoadEvent&);
462 typedef void (wxEvtHandler::*wxWebViewBeforeLoadEventFunction)(wxWebViewBeforeLoadEvent&);
463 typedef void (wxEvtHandler::*wxWebViewNewWindowEventFunction)(wxWebViewNewWindowEvent&);
464 typedef void (wxEvtHandler::*wxWebViewRightClickEventFunction)(wxWebViewRightClickEvent&);
465 typedef void (wxEvtHandler::*wxWebViewConsoleMessageEventFunction)(wxWebViewConsoleMessageEvent&);
466 typedef void (wxEvtHandler::*wxWebViewAlertEventFunction)(wxWebViewAlertEvent&);
467 typedef void (wxEvtHandler::*wxWebViewConfirmEventFunction)(wxWebViewConfirmEvent&);
468 typedef void (wxEvtHandler::*wxWebViewPromptEventFunction)(wxWebViewPromptEvent&);
469 typedef void (wxEvtHandler::*wxWebViewReceivedTitleEventFunction)(wxWebViewReceivedTitleEvent&);
470 typedef void (wxEvtHandler::*wxWebViewWindowObjectClearedFunction)(wxWebViewWindowObjectClearedEvent&);
471
472 #define wxWebViewLoadEventHandler(func) \
473     (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWebViewLoadEventFunction, &func)
474 #define wxWebViewBeforeLoadEventHandler(func) \
475     (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWebViewBeforeLoadEventFunction, &func)
476 #define wxWebViewNewWindowEventHandler(func) \
477     (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWebViewNewWindowEventFunction, &func)
478 #define wxWebViewRightClickEventHandler(func) \
479     (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWebViewRightClickEventFunction, &func)
480 #define wxWebViewConsoleMessageEventHandler(func) \
481     (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWebViewConsoleMessageEventFunction, &func)
482 #define wxWebViewAlertEventHandler(func) \
483     (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWebViewAlertEventFunction, &func)
484 #define wxWebViewConfirmEventHandler(func) \
485     (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWebViewConfirmEventFunction, &func)
486 #define wxWebViewPromptEventHandler(func) \
487     (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWebViewPromptEventFunction, &func)
488 #define wxWebViewReceivedTitleEventHandler(func) \
489     (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWebViewReceivedTitleEventFunction, &func)
490 #define wxWebViewWindowObjectClearedEventHandler(func) \
491     (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxWebViewWindowObjectClearedFunction, &func)
492
493 #ifndef SWIG
494 BEGIN_DECLARE_EVENT_TYPES()
495     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_WEBKIT, wxEVT_WEBVIEW_BEFORE_LOAD, wxID_ANY)
496     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_WEBKIT, wxEVT_WEBVIEW_LOAD, wxID_ANY)
497     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_WEBKIT, wxEVT_WEBVIEW_NEW_WINDOW, wxID_ANY)
498     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_WEBKIT, wxEVT_WEBVIEW_RIGHT_CLICK, wxID_ANY)
499     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_WEBKIT, wxEVT_WEBVIEW_CONSOLE_MESSAGE, wxID_ANY)
500     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_WEBKIT, wxEVT_WEBVIEW_JS_ALERT, wxID_ANY)
501     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_WEBKIT, wxEVT_WEBVIEW_JS_CONFIRM, wxID_ANY)
502     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_WEBKIT, wxEVT_WEBVIEW_JS_PROMPT, wxID_ANY)
503     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_WEBKIT, wxEVT_WEBVIEW_RECEIVED_TITLE, wxID_ANY)
504     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_WEBKIT, wxEVT_WEBVIEW_WINDOW_OBJECT_CLEARED, wxID_ANY)
505 END_DECLARE_EVENT_TYPES()
506 #endif
507
508 #define EVT_WEBVIEW_LOAD(winid, func)                       \
509             DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBVIEW_LOAD, \
510                             winid, \
511                             wxID_ANY, \
512                             (wxObjectEventFunction)   \
513                             (wxWebViewLoadEventFunction) & func, \
514                             static_cast<wxObject*>(NULL)),
515                             
516 #define EVT_WEBVIEW_BEFORE_LOAD(winid, func)                       \
517             DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBVIEW_BEFORE_LOAD, \
518                             winid, \
519                             wxID_ANY, \
520                             (wxObjectEventFunction)   \
521                             (wxWebViewBeforeLoadEventFunction) & func, \
522                             static_cast<wxObject*>(NULL)),
523                             
524 #define EVT_WEBVIEW_NEW_WINDOW(winid, func)                       \
525             DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBVIEW_NEW_WINDOW, \
526                             winid, \
527                             wxID_ANY, \
528                             (wxObjectEventFunction)   \
529                             (wxWebViewNewWindowEventFunction) & func, \
530                             static_cast<wxObject*>(NULL)),
531
532 #define EVT_WEBVIEW_RIGHT_CLICK(winid, func)                       \
533             DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBVIEW_RIGHT_CLICK, \
534                             winid, \
535                             wxID_ANY, \
536                             (wxObjectEventFunction)   \
537                             (wxWebViewRightClickEventFunction) & func, \
538                             static_cast<wxObject*>(NULL)),
539                             
540 #define EVT_WEBVIEW_CONSOLE_MESSAGE(winid, func)                       \
541             DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBVIEW_CONSOLE_MESSAGE, \
542                             winid, \
543                             wxID_ANY, \
544                             (wxObjectEventFunction)   \
545                             (wxWebViewConsoleMessageEventFunction) & func, \
546                             static_cast<wxObject*>(NULL)),
547
548 #define EVT_WEBVIEW_JS_ALERT(winid, func)                       \
549             DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBVIEW_JS_ALERT, \
550                             winid, \
551                             wxID_ANY, \
552                             (wxObjectEventFunction)   \
553                             (wxWebViewAlertEventFunction) & func, \
554                             static_cast<wxObject*>(NULL)),
555                             
556 #define EVT_WEBVIEW_JS_CONFIRM(winid, func)                       \
557             DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBVIEW_JS_CONFIRM, \
558                             winid, \
559                             wxID_ANY, \
560                             (wxObjectEventFunction)   \
561                             (wxWebViewConfirmEventFunction) & func, \
562                             static_cast<wxObject*>(NULL)),
563                             
564 #define EVT_WEBVIEW_JS_PROMPT(winid, func)                       \
565             DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBVIEW_JS_PROMPT, \
566                             winid, \
567                             wxID_ANY, \
568                             (wxObjectEventFunction)   \
569                             (wxWebViewPromptEventFunction) & func, \
570                             static_cast<wxObject*>(NULL)),
571                             
572 #define EVT_WEBVIEW_RECEIVED_TITLE(winid, func)                       \
573             DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBVIEW_RECEIVED_TITLE, \
574                             winid, \
575                             wxID_ANY, \
576                             (wxObjectEventFunction)   \
577                             (wxWebViewReceivedTitleEventFunction) & func, \
578                             static_cast<wxObject*>(NULL)),
579                             
580 #define EVT_WEBVIEW_WINDOW_OBJECT_CLEARED(winid, func)                       \
581             DECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBVIEW_WINDOW_OBJECT_CLEARED, \
582                             winid, \
583                             wxID_ANY, \
584                             (wxObjectEventFunction)   \
585                             (wxWebViewWindowObjectClearedFunction) & func, \
586                             static_cast<wxObject*>(NULL)),
587
588 #endif // ifndef WXWEBVIEW_H