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