1 // ===========================================================================
2 // Purpose:     wxEvent and other generic event classes and types
3 //              events specific to a single control are with that control
4 // Author:      J Winwood, John Labenski
5 // Created:     14/11/2001
6 // Copyright:   (c) 2001-2002 Lomtick Software. All rights reserved.
7 // Licence:     wxWidgets licence
8 // wxWidgets:   Updated to 2.8.4
9 // ===========================================================================
10 
11 // Note: wxEvtHandler and wxEvent in wxBase bindings.
12 
13 // ---------------------------------------------------------------------------
14 // wxPropagationDisabler
15 
16 #include "wx/event.h"
17 
18 class %delete wxPropagationDisabler
19 {
20     // NOTE: ALWAYS delete() this when done since Lua's gc may not delete it soon enough
21     wxPropagationDisabler(wxEvent& event);
22 };
23 
24 // ---------------------------------------------------------------------------
25 // wxPropagateOnce
26 
27 #include "wx/event.h"
28 
29 class %delete wxPropagateOnce
30 {
31     // NOTE: ALWAYS delete() this when done since Lua's gc may not delete it soon enough
32     wxPropagateOnce(wxEvent& event);
33 };
34 
35 // ---------------------------------------------------------------------------
36 // wxCommandEvent
37 
38 #include "wx/event.h"
39 %wxchkver_2_4 #include "wx/tglbtn.h"  // for wxEVT_COMMAND_TOGGLEBUTTON_CLICKED
40 
41 class %delete wxCommandEvent : public wxEvent
42 {
43     %wxEventType wxEVT_NULL // dummy placeholder nobody sends this event
44 
45     %wxEventType wxEVT_COMMAND_ENTER               // EVT_COMMAND_ENTER(winid, func);
46     %wxEventType wxEVT_COMMAND_KILL_FOCUS          // EVT_COMMAND_KILL_FOCUS(winid, func);
47     %wxEventType wxEVT_COMMAND_LEFT_CLICK          // EVT_COMMAND_LEFT_CLICK(winid, func);
48     %wxEventType wxEVT_COMMAND_LEFT_DCLICK         // EVT_COMMAND_LEFT_DCLICK(winid, func);
49     %wxEventType wxEVT_COMMAND_RIGHT_CLICK         // EVT_COMMAND_RIGHT_CLICK(winid, func);
50     %wxEventType wxEVT_COMMAND_RIGHT_DCLICK        // EVT_COMMAND_RIGHT_DCLICK(winid, func);
51     //%wxEventType wxEVT_COMMAND_SCROLLBAR_UPDATED // EVT_SCROLLBAR(winid, func) obsolete use wxEVT_SCROLL...
52     %wxchkver_3_0_0 %wxEventType wxEVT_SCROLLBAR   // wx3.0 alias for wxEVT_COMMAND_SCROLLBAR_UPDATED
53     %wxEventType wxEVT_COMMAND_SET_FOCUS           // EVT_COMMAND_SET_FOCUS(winid, func);
54     //%wxEventType wxEVT_COMMAND_VLBOX_SELECTED    // EVT_VLBOX(winid, func) unused?
55     %wxchkver_3_0_0 %wxEventType wxEVT_VLBOX       // wx3.0 alias for wxEVT_COMMAND_VLBOX_SELECTED
56 
57     %wxEventType wxEVT_COMMAND_MENU_SELECTED   // EVT_MENU(winid, func) EVT_MENU_RANGE(id1, id2, func);
58     %wxchkver_3_0_0 %wxEventType wxEVT_MENU    // wx3.0 alias for wxEVT_COMMAND_MENU_SELECTED
59 
60     %wxEventType wxEVT_COMMAND_TOOL_CLICKED    // EVT_TOOL(winid, func) EVT_TOOL_RANGE(id1, id2, func);
61     %wxEventType wxEVT_COMMAND_TOOL_ENTER      // EVT_TOOL_ENTER(winid, func);
62     %wxEventType wxEVT_COMMAND_TOOL_RCLICKED   // EVT_TOOL_RCLICKED(winid, func) EVT_TOOL_RCLICKED_RANGE(id1, id2, func);
63     %wxchkver_3_0_0 %wxEventType wxEVT_TOOL           // wx3.0 alias for wxEVT_COMMAND_TOOL_CLICKED
64     %wxchkver_3_0_0 %wxEventType wxEVT_TOOL_ENTER     // wx3.0 alias for wxEVT_COMMAND_TOOL_ENTER
65     %wxchkver_3_0_0 %wxEventType wxEVT_TOOL_RCLICKED  // wx3.0 alias for wxEVT_COMMAND_TOOL_RCLICKED
66 
67     %wxEventType wxEVT_COMMAND_TEXT_ENTER      // EVT_TEXT_ENTER(id, fn);
68     %wxEventType wxEVT_COMMAND_TEXT_UPDATED    // EVT_TEXT(id, fn);
69     %wxEventType wxEVT_COMMAND_TEXT_MAXLEN     // EVT_TEXT_MAXLEN(id, fn);
70     %wxchkver_3_0_0 %wxEventType wxEVT_TEXT_ENTER  // wx3.0 alias for wxEVT_COMMAND_TEXT_ENTER
71     %wxchkver_3_0_0 %wxEventType wxEVT_TEXT        // wx3.0 alias for wxEVT_COMMAND_TEXT_UPDATED
72     %wxchkver_3_0_0 %wxEventType wxEVT_TEXT_MAXLEN // wx3.0 alias for wxEVT_COMMAND_TEXT_MAXLEN
73     !%wxchkver_2_8_0 %wxEventType wxEVT_COMMAND_TEXT_URL        // EVT_TEXT_URL(id, fn);
74 
75     %wxEventType wxEVT_COMMAND_SPINCTRL_UPDATED        // EVT_SPINCTRL(id, fn);
76     %wxEventType wxEVT_COMMAND_SLIDER_UPDATED          // EVT_SLIDER(winid, func);
77     %wxEventType wxEVT_COMMAND_RADIOBUTTON_SELECTED    // EVT_RADIOBUTTON(winid, func);
78     %wxEventType wxEVT_COMMAND_RADIOBOX_SELECTED       // EVT_RADIOBOX(winid, func);
79     %wxEventType wxEVT_COMMAND_CHECKLISTBOX_TOGGLED    // EVT_CHECKLISTBOX(winid, func);
80     %wxEventType wxEVT_COMMAND_LISTBOX_DOUBLECLICKED   // EVT_LISTBOX_DCLICK(winid, func);
81     %wxEventType wxEVT_COMMAND_LISTBOX_SELECTED        // EVT_LISTBOX(winid, func);
82     %wxEventType wxEVT_COMMAND_COMBOBOX_SELECTED       // EVT_COMBOBOX(winid, func);
83     %wxEventType wxEVT_COMMAND_CHOICE_SELECTED         // EVT_CHOICE(winid, func);
84     %wxEventType wxEVT_COMMAND_CHECKBOX_CLICKED        // EVT_CHECKBOX(winid, func);
85     %wxEventType wxEVT_COMMAND_BUTTON_CLICKED          // EVT_BUTTON(winid, func);
86     %wxchkver_2_4 %wxEventType wxEVT_COMMAND_TOGGLEBUTTON_CLICKED // EVT_TOGGLEBUTTON(id, fn);
87     %wxchkver_3_0_0 %wxEventType wxEVT_SPINCTRL          // wx3.0 alias for wxEVT_COMMAND_SPINCTRL_UPDATED
88     %wxchkver_3_0_0 %wxEventType wxEVT_SLIDER            // wx3.0 alias for wxEVT_COMMAND_SLIDER_UPDATED
89     %wxchkver_3_0_0 %wxEventType wxEVT_RADIOBUTTON       // wx3.0 alias for wxEVT_COMMAND_RADIOBUTTON_SELECTED
90     %wxchkver_3_0_0 %wxEventType wxEVT_RADIOBOX          // wx3.0 alias for wxEVT_COMMAND_RADIOBOX_SELECTED
91     %wxchkver_3_0_0 %wxEventType wxEVT_CHECKLISTBOX      // wx3.0 alias for wxEVT_COMMAND_CHECKLISTBOX_TOGGLED
92     %wxchkver_3_0_0 %wxEventType wxEVT_LISTBOX_DCLICK    // wx3.0 alias for wxEVT_COMMAND_LISTBOX_DOUBLECLICKED
93     %wxchkver_3_0_0 %wxEventType wxEVT_LISTBOX           // wx3.0 alias for wxEVT_COMMAND_LISTBOX_SELECTED
94     %wxchkver_3_0_0 %wxEventType wxEVT_COMBOBOX          // wx3.0 alias for wxEVT_COMMAND_COMBOBOX_SELECTED
95     %wxchkver_3_0_0 %wxEventType wxEVT_CHOICE            // wx3.0 alias for wxEVT_COMMAND_CHOICE_SELECTED
96     %wxchkver_3_0_0 %wxEventType wxEVT_CHECKBOX          // wx3.0 alias for wxEVT_COMMAND_CHECKBOX_CLICKED
97     %wxchkver_3_0_0 %wxEventType wxEVT_BUTTON            // wx3.0 alias for wxEVT_COMMAND_BUTTON_CLICKED
98     %wxchkver_3_0_0 %wxEventType wxEVT_TOGGLEBUTTON      // wx3.0 alias for wxEVT_COMMAND_TOGGLEBUTTON_CLICKED
99 
100     %wxchkver_3_1_1 %wxEventType wxEVT_SEARCH_CANCEL        // EVT_SEARCH_CANCEL(winid, func);
101     %wxchkver_3_1_1 %wxEventType wxEVT_SEARCH               // EVT_SEARCH(winid, func);
102 
103     wxCommandEvent(wxEventType commandEventType = wxEVT_NULL, int id = 0);
104 
105     voidptr_long GetClientData(); // C++ returns (void *) You get a number here
106     wxClientData* GetClientObject();
107     %rename GetStringClientObject wxStringClientData* GetClientObject();
108     long GetExtraLong();
109     int GetInt();
110     int GetSelection();
111     wxString GetString();
112     bool IsChecked() const;
113     bool IsSelection();
114     void SetClientData(voidptr_long number); // C++ is (void *clientData) You can put a number here
115     void SetClientObject(wxClientData* clientObject);
116     void SetExtraLong(int extraLong);
117     void SetInt(int intCommand);
118     void SetString(const wxString &string);
119 };
120 
121 // ---------------------------------------------------------------------------
122 // wxNotifyEvent
123 
124 #include "wx/event.h"
125 
126 class %delete wxNotifyEvent : public wxCommandEvent
127 {
128     wxNotifyEvent(wxEventType eventType = wxEVT_NULL, int id = 0);
129 
130     void Allow();
131     bool IsAllowed() const;
132     void Veto();
133 };
134 
135 // ---------------------------------------------------------------------------
136 // wxActivateEvent
137 
138 #include "wx/event.h"
139 
140 class %delete wxActivateEvent : public wxEvent
141 {
142     %wxEventType wxEVT_ACTIVATE        // EVT_ACTIVATE(func);
143     %wxEventType wxEVT_ACTIVATE_APP    // EVT_ACTIVATE_APP(func);
144     %wxEventType wxEVT_HIBERNATE       // EVT_HIBERNATE(func);
145 
146     wxActivateEvent(wxEventType eventType = wxEVT_NULL, bool active = true, int id = 0);
147 
148     bool GetActive() const;
149 };
150 
151 // ---------------------------------------------------------------------------
152 // wxCloseEvent
153 
154 #include "wx/event.h"
155 
156 class %delete wxCloseEvent : public wxEvent
157 {
158     %wxEventType wxEVT_CLOSE_WINDOW        // EVT_CLOSE(func);
159     %wxEventType wxEVT_QUERY_END_SESSION   // EVT_QUERY_END_SESSION(func);
160     %wxEventType wxEVT_END_SESSION         // EVT_END_SESSION(func);
161 
162     wxCloseEvent(wxEventType commandEventType = wxEVT_NULL, int id = 0);
163 
164     bool CanVeto();
165     bool GetLoggingOff() const;
166     void SetCanVeto(bool canVeto);
167     void SetLoggingOff(bool loggingOff) const;
168     void Veto(bool veto = true);
169 };
170 
171 // ---------------------------------------------------------------------------
172 // wxDialUpEvent - TODO - the rest of wxDialUp is missing, anyone care?
173 
174 //#if !%mac
175 //%include "wx/dialup.h"
176 
177 //class %delete wxDialUpEvent : public wxCommandEvent
178 //{
179 //    %wxEventType wxEVT_DIALUP_CONNECTED      // EVT_DIALUP_CONNECTED(func);
180 //    %wxEventType wxEVT_DIALUP_DISCONNECTED   // EVT_DIALUP_DISCONNECTED(func);
181 
182 //    wxDialUpEvent(bool isConnected, bool isOwnEvent);
183 //    bool IsConnectedEvent() const;
184 //    bool IsOwnEvent() const;
185 //};
186 //#endif
187 
188 // ---------------------------------------------------------------------------
189 // wxEraseEvent
190 
191 #include "wx/event.h"
192 
193 class %delete wxEraseEvent : public wxEvent
194 {
195     %wxEventType wxEVT_ERASE_BACKGROUND // EVT_ERASE_BACKGROUND(func);
196 
197     wxEraseEvent(int id = 0, wxDC* dc = NULL);
198 
199     wxDC* GetDC() const;
200 };
201 
202 // ---------------------------------------------------------------------------
203 // wxFocusEvent
204 
205 #include "wx/event.h"
206 
207 class %delete wxFocusEvent : public wxEvent
208 {
209     %wxEventType wxEVT_SET_FOCUS   // EVT_SET_FOCUS(func);
210     %wxEventType wxEVT_KILL_FOCUS  // EVT_KILL_FOCUS(func);
211 
212     wxFocusEvent(wxEventType eventType = wxEVT_NULL, int id = 0);
213 
214     wxWindow* GetWindow();
215     void SetWindow(wxWindow *win);
216 };
217 
218 // ---------------------------------------------------------------------------
219 // wxChildFocusEvent
220 
221 #include "wx/event.h"
222 
223 class %delete wxChildFocusEvent : public wxCommandEvent
224 {
225     %wxEventType wxEVT_CHILD_FOCUS // EVT_CHILD_FOCUS(func);
226 
227     wxChildFocusEvent(wxWindow *win = NULL);
228 
229     wxWindow *GetWindow() const;
230 };
231 
232 // ---------------------------------------------------------------------------
233 // wxQueryNewPaletteEvent
234 
235 #include "wx/event.h"
236 
237 class %delete wxQueryNewPaletteEvent : public wxEvent
238 {
239     %wxEventType wxEVT_QUERY_NEW_PALETTE // EVT_QUERY_NEW_PALETTE(func);
240 
241     wxQueryNewPaletteEvent(wxWindowID winid = 0);
242 
243     void SetPaletteRealized(bool realized);
244     bool GetPaletteRealized() const;
245 };
246 
247 // ---------------------------------------------------------------------------
248 // wxPaletteChangedEvent
249 
250 #include "wx/event.h"
251 
252 class %delete wxPaletteChangedEvent : public wxEvent
253 {
254     %wxEventType wxEVT_PALETTE_CHANGED // EVT_PALETTE_CHANGED(func);
255 
256     wxPaletteChangedEvent(wxWindowID winid = 0);
257 
258     void SetChangedWindow(wxWindow* win);
259     wxWindow* GetChangedWindow() const;
260 };
261 
262 // ---------------------------------------------------------------------------
263 // wxKeyEvent
264 
265 enum wxKeyCode
266 {
267     WXK_ADD,
268     WXK_ALT,
269     WXK_BACK,
270     WXK_CANCEL,
271     WXK_CAPITAL,
272     WXK_CLEAR,
273     WXK_CONTROL,
274     WXK_DECIMAL,
275     WXK_DELETE,
276     WXK_DIVIDE,
277     WXK_DOWN,
278     WXK_END,
279     WXK_ESCAPE,
280     WXK_EXECUTE,
281     WXK_F1,
282     WXK_F10,
283     WXK_F11,
284     WXK_F12,
285     WXK_F13,
286     WXK_F14,
287     WXK_F15,
288     WXK_F16,
289     WXK_F17,
290     WXK_F18,
291     WXK_F19,
292     WXK_F2,
293     WXK_F20,
294     WXK_F21,
295     WXK_F22,
296     WXK_F23,
297     WXK_F24,
298     WXK_F3,
299     WXK_F4,
300     WXK_F5,
301     WXK_F6,
302     WXK_F7,
303     WXK_F8,
304     WXK_F9,
305     WXK_HELP,
306     WXK_HOME,
307     WXK_INSERT,
308     WXK_LBUTTON,
309     WXK_LEFT,
310     WXK_MBUTTON,
311     WXK_MENU,
312     WXK_MULTIPLY,
313     //WXK_NEXT = WXK_PAGEDOWN since 2.6
314     WXK_NUMLOCK,
315     WXK_NUMPAD_ADD,
316     WXK_NUMPAD_BEGIN,
317     WXK_NUMPAD_DECIMAL,
318     WXK_NUMPAD_DELETE,
319     WXK_NUMPAD_DIVIDE,
320     WXK_NUMPAD_DOWN,
321     WXK_NUMPAD_END,
322     WXK_NUMPAD_ENTER,
323     WXK_NUMPAD_EQUAL,
324     WXK_NUMPAD_F1,
325     WXK_NUMPAD_F2,
326     WXK_NUMPAD_F3,
327     WXK_NUMPAD_F4,
328     WXK_NUMPAD_HOME,
329     WXK_NUMPAD_INSERT,
330     WXK_NUMPAD_LEFT,
331     WXK_NUMPAD_MULTIPLY,
332     // WXK_NUMPAD_NEXT = WXK_NUMPAD_PAGEDOWN since 2.6
333     WXK_NUMPAD_PAGEDOWN,
334     WXK_NUMPAD_PAGEUP,
335     // WXK_NUMPAD_PRIOR = WXK_NUMPAD_PAGEUP since 2.6
336     WXK_NUMPAD_RIGHT,
337     WXK_NUMPAD_SEPARATOR,
338     WXK_NUMPAD_SPACE,
339     WXK_NUMPAD_SUBTRACT,
340     WXK_NUMPAD_TAB,
341     WXK_NUMPAD_UP,
342     WXK_NUMPAD0,
343     WXK_NUMPAD1,
344     WXK_NUMPAD2,
345     WXK_NUMPAD3,
346     WXK_NUMPAD4,
347     WXK_NUMPAD5,
348     WXK_NUMPAD6,
349     WXK_NUMPAD7,
350     WXK_NUMPAD8,
351     WXK_NUMPAD9,
352     WXK_PAGEDOWN,
353     WXK_PAGEUP,
354     WXK_PAUSE,
355     WXK_PRINT,
356     // WXK_PRIOR = WXK_PAGEUP since 2.6
357     WXK_RBUTTON,
358     WXK_RETURN,
359     WXK_RIGHT,
360     WXK_SCROLL,
361     WXK_SELECT,
362     WXK_SEPARATOR,
363     WXK_SHIFT,
364     WXK_SNAPSHOT,
365     WXK_SPACE,
366     WXK_START,
367     WXK_SUBTRACT,
368     WXK_TAB,
369     WXK_UP
370 };
371 
372 #include "wx/event.h"
373 
374 class %delete wxKeyEvent : public wxEvent
375 {
376     %wxEventType wxEVT_KEY_DOWN            // EVT_KEY_DOWN(func);
377     %wxEventType wxEVT_KEY_UP              // EVT_KEY_UP(func);
378     %wxEventType wxEVT_CHAR                // EVT_CHAR(func);
379     %wxEventType wxEVT_CHAR_HOOK           // EVT_CHAR_HOOK(func);
380     wxUSE_HOTKEY %wxEventType wxEVT_HOTKEY // EVT_HOTKEY(winid, func);
381 
382     wxKeyEvent(wxEventType keyEventType);
383 
384     bool AltDown() const;
385     bool CmdDown() const;
386     bool ControlDown() const;
387     int GetKeyCode() const;
388     %wxchkver_2_8 int GetModifiers() const;
389     wxPoint GetPosition() const;
390 
391     // %override [long x, long y] wxKeyEvent::GetPositionXY();
392     // C++ Func: void GetPosition(long *x, long *y) const;
393     %rename GetPositionXY void GetPosition() const;
394 
395     wxUint32 GetRawKeyCode() const;
396     wxUint32 GetRawKeyFlags() const;
397     wxChar GetUnicodeKey() const;
398     long GetX();
399     long GetY() const;
400     bool HasModifiers() const;
401     bool MetaDown() const;
402     bool ShiftDown() const;
403 };
404 
405 // ---------------------------------------------------------------------------
406 // wxNavigationKeyEvent
407 
408 #include "wx/event.h"
409 
410 enum wxNavigationKeyEvent::dummy
411 {
412     IsBackward,
413     IsForward,
414     WinChange,
415     FromTab
416 };
417 
418 class %delete wxNavigationKeyEvent : public wxEvent
419 {
420     %wxEventType wxEVT_NAVIGATION_KEY // EVT_NAVIGATION_KEY(func);
421 
422     wxNavigationKeyEvent();
423 
424     bool GetDirection() const;
425     void SetDirection(bool bForward);
426     bool IsWindowChange() const;
427     void SetWindowChange(bool bIs);
428     bool IsFromTab() const;
429     void SetFromTab(bool bIs);
430     wxWindow* GetCurrentFocus() const;
431     void SetCurrentFocus(wxWindow *win);
432     void SetFlags(long flags);
433 };
434 
435 // ---------------------------------------------------------------------------
436 // wxIdleEvent
437 
438 #include "wx/event.h"
439 
440 enum wxIdleMode
441 {
442     wxIDLE_PROCESS_ALL,
443     wxIDLE_PROCESS_SPECIFIED
444 };
445 
446 class %delete wxIdleEvent : public wxEvent
447 {
448     %wxEventType wxEVT_IDLE // EVT_IDLE(func);
449 
450     wxIdleEvent();
451 
452     !%wxchkver_2_9_2 static bool CanSend(wxWindow* window);
453     static wxIdleMode GetMode();
454     void RequestMore(bool needMore = true);
455     bool MoreRequested() const;
456     static void SetMode(wxIdleMode mode);
457 };
458 
459 // ---------------------------------------------------------------------------
460 // wxInitDialogEvent - for dialogs and panels
461 
462 #include "wx/event.h"
463 
464 class %delete wxInitDialogEvent : public wxEvent
465 {
466     %wxEventType wxEVT_INIT_DIALOG // EVT_INIT_DIALOG(func);
467 
468     wxInitDialogEvent(int id = 0);
469 };
470 
471 // ---------------------------------------------------------------------------
472 // wxContextMenuEvent
473 
474 class %delete wxContextMenuEvent : public wxCommandEvent
475 {
476     %wxEventType wxEVT_CONTEXT_MENU    // EVT_CONTEXT_MENU(func) EVT_COMMAND_CONTEXT_MENU(winid, func);
477 
478     wxContextMenuEvent(wxEventType type = wxEVT_NULL, wxWindowID winid = 0, const wxPoint& pt = wxDefaultPosition);
479     //wxContextMenuEvent(const wxContextMenuEvent& event);
480 
481     wxPoint GetPosition() const;
482     void SetPosition(const wxPoint& pos);
483 };
484 
485 // ---------------------------------------------------------------------------
486 // wxMouseEvent
487 
488 #include "wx/event.h"
489 
490 enum
491 {
492     wxMOUSE_BTN_ANY,
493     wxMOUSE_BTN_NONE,
494     wxMOUSE_BTN_LEFT,
495     wxMOUSE_BTN_MIDDLE,
496     wxMOUSE_BTN_RIGHT
497 };
498 
499 class %delete wxMouseEvent : public wxEvent
500 {
501     %wxEventType wxEVT_ENTER_WINDOW    // EVT_ENTER_WINDOW(func);
502     %wxEventType wxEVT_LEAVE_WINDOW    // EVT_LEAVE_WINDOW(func);
503     %wxEventType wxEVT_LEFT_DCLICK     // EVT_LEFT_DCLICK(func);
504     %wxEventType wxEVT_LEFT_DOWN       // EVT_LEFT_DOWN(func);
505     %wxEventType wxEVT_LEFT_UP         // EVT_LEFT_UP(func);
506     %wxEventType wxEVT_MIDDLE_DCLICK   // EVT_MIDDLE_DCLICK(func);
507     %wxEventType wxEVT_MIDDLE_DOWN     // EVT_MIDDLE_DOWN(func);
508     %wxEventType wxEVT_MIDDLE_UP       // EVT_MIDDLE_UP(func);
509     %wxEventType wxEVT_MOTION          // EVT_MOTION(func);
510     %wxEventType wxEVT_MOUSEWHEEL      // EVT_MOUSEWHEEL(func);
511     %wxEventType wxEVT_RIGHT_DCLICK    // EVT_RIGHT_DCLICK(func);
512     %wxEventType wxEVT_RIGHT_DOWN      // EVT_RIGHT_DOWN(func);
513     %wxEventType wxEVT_RIGHT_UP        // EVT_RIGHT_UP(func);
514 
515     //%wxEventType wxEVT_NC_ENTER_WINDOW // FIXME - these are not used in wxWidgets
516     //%wxEventType wxEVT_NC_LEAVE_WINDOW
517     //%wxEventType wxEVT_NC_LEFT_DCLICK
518     //%wxEventType wxEVT_NC_LEFT_DOWN
519     //%wxEventType wxEVT_NC_LEFT_UP
520     //%wxEventType wxEVT_NC_MIDDLE_DCLICK
521     //%wxEventType wxEVT_NC_MIDDLE_DOWN
522     //%wxEventType wxEVT_NC_MIDDLE_UP
523     //%wxEventType wxEVT_NC_MOTION
524     //%wxEventType wxEVT_NC_RIGHT_DCLICK
525     //%wxEventType wxEVT_NC_RIGHT_DOWN
526     //%wxEventType wxEVT_NC_RIGHT_UP
527 
528     wxMouseEvent(wxEventType mouseEventType = wxEVT_NULL);
529 
530     bool AltDown();
531     bool Button(int button);
532     bool ButtonDClick(int but = wxMOUSE_BTN_ANY);
533     bool ButtonDown(int but = wxMOUSE_BTN_ANY);
534     bool ButtonUp(int but = wxMOUSE_BTN_ANY);
535     bool CmdDown() const;
536     bool ControlDown();
537     bool Dragging();
538     bool Entering();
539     wxPoint GetPosition() const;
540 
541     // %override [long x, long y] wxMouseEvent::GetPositionXY();
542     // C++ Func: void GetPosition(wxCoord* x, wxCoord* y) const;
543     %rename GetPositionXY void GetPosition() const;
544 
545     wxPoint GetLogicalPosition(const wxDC& dc) const;
546     int GetLinesPerAction() const;
547     int GetWheelRotation() const;
548     int GetWheelDelta() const;
549     long GetX() const;
550     long GetY();
551     bool IsButton() const;
552     bool Leaving() const;
553     bool LeftDClick() const;
554     bool LeftDown() const;
555     bool LeftIsDown() const;
556     bool LeftUp() const;
557     bool MetaDown() const;
558     bool MiddleDClick() const;
559     bool MiddleDown() const;
560     bool MiddleIsDown() const;
561     bool MiddleUp() const;
562     bool Moving() const;
563     bool RightDClick() const;
564     bool RightDown() const;
565     bool RightIsDown() const;
566     bool RightUp() const;
567     bool ShiftDown() const;
568 };
569 
570 // ---------------------------------------------------------------------------
571 // wxMouseCaptureChangedEvent
572 
573 #include "wx/event.h"
574 
575 class %delete wxMouseCaptureChangedEvent : public wxEvent
576 {
577     %wxEventType wxEVT_MOUSE_CAPTURE_CHANGED // EVT_MOUSE_CAPTURE_CHANGED(func);
578 
579     wxMouseCaptureChangedEvent(wxWindowID winid = 0, wxWindow* gainedCapture = NULL);
580 
581     wxWindow* GetCapturedWindow() const;
582 };
583 
584 // ---------------------------------------------------------------------------
585 // wxMouseCaptureLostEvent
586 
587 #if %wxchkver_2_8
588 
589 #include "wx/event.h"
590 
591 class %delete wxMouseCaptureLostEvent : public wxEvent
592 {
593     %wxEventType wxEVT_MOUSE_CAPTURE_LOST // EVT_MOUSE_CAPTURE_LOST(func);
594 
595     wxMouseCaptureLostEvent(wxWindowID winid = 0);
596 };
597 
598 #endif //%wxchkver_2_8
599 
600 // ---------------------------------------------------------------------------
601 // wxMoveEvent
602 
603 #include "wx/event.h"
604 
605 class %delete wxMoveEvent : public wxEvent
606 {
607     %wxEventType wxEVT_MOVE                    // EVT_MOVE(func);
608     %wxchkver_2_6 %wxEventType wxEVT_MOVING    // EVT_MOVING(func);
609 
610     wxMoveEvent(const wxPoint& pt, int id = 0);
611 
612     wxPoint GetPosition() const;
613 };
614 
615 // ---------------------------------------------------------------------------
616 // wxPaintEvent -
617 //
618 // Note: You must ALWAYS create a wxPaintDC for the window and delete() when
619 // done to have the exposed area marked as painted, otherwise you'll continue
620 // to get endless paint events.
621 // Tip: local dc = wx.wxPaintDC(event:GetEventObject():DynamicCast("wxWindow"));
622 //      do stuff with dc...
623 //      dc:delete()  -- Absolutely necessary since the garbage collector may
624 //                   -- not immediatelly run.
625 
626 #include "wx/event.h"
627 
628 class %delete wxPaintEvent : public wxEvent
629 {
630     %wxEventType wxEVT_PAINT // EVT_PAINT(func);
631 
632     !%wxchkver_3_1_4 wxPaintEvent(int id = 0);
633 };
634 
635 // ---------------------------------------------------------------------------
636 // wxNcPaintEvent - this is not sent from anything in wxWidgets
637 
638 //#include "wx/event.h"
639 
640 //class %delete wxNcPaintEvent : public wxEvent
641 //{
642 //    %wxEventType wxEVT_NC_PAINT // EVT_NC_PAINT(func);
643 //    wxNcPaintEvent(int winid = 0);
644 //};
645 
646 // ---------------------------------------------------------------------------
647 // wxProcessEvent
648 
649 #include "wx/process.h"
650 
651 class %delete wxProcessEvent : public wxEvent
652 {
653     %wxEventType wxEVT_END_PROCESS // EVT_END_PROCESS(id, func);
654 
655     !%wxchkver_2_6 wxProcessEvent(int id = 0, int pid = 0);
656     %wxchkver_2_6 wxProcessEvent(int nId = 0, int pid = 0, int exitcode = 0);
657     int GetPid() const;
658     %wxchkver_2_6 int GetExitCode();
659 };
660 
661 // ---------------------------------------------------------------------------
662 // wxScrollEvent - for independent scrollbars and sliders
663 
664 #include "wx/event.h"
665 
666 class %delete wxScrollEvent : public wxCommandEvent
667 {
668     %wxEventType wxEVT_SCROLL_TOP          // EVT_SCROLL_TOP(func);
669     %wxEventType wxEVT_SCROLL_BOTTOM       // EVT_SCROLL_BOTTOM(func);
670     %wxEventType wxEVT_SCROLL_LINEUP       // EVT_SCROLL_LINEUP(func);
671     %wxEventType wxEVT_SCROLL_LINEDOWN     // EVT_SCROLL_LINEDOWN(func);
672     %wxEventType wxEVT_SCROLL_PAGEUP       // EVT_SCROLL_PAGEUP(func);
673     %wxEventType wxEVT_SCROLL_PAGEDOWN     // EVT_SCROLL_PAGEDOWN(func);
674     %wxEventType wxEVT_SCROLL_THUMBTRACK   // EVT_SCROLL_THUMBTRACK(func);
675     %wxEventType wxEVT_SCROLL_THUMBRELEASE // EVT_SCROLL_THUMBRELEASE(func);
676     %wxcompat_2_6 %wxEventType wxEVT_SCROLL_ENDSCROLL // EVT_SCROLL_ENDSCROLL(func) FIXME called wxEVT_SCROLL_CHANGED in 2.8
677     %wxchkver_2_8 %wxEventType wxEVT_SCROLL_CHANGED   // EVT_SCROLL_CHANGED(func);
678 
679     wxScrollEvent(wxEventType commandType = wxEVT_NULL, int id = 0, int pos = 0, int orientation = 0);
680 
681     int GetOrientation() const;
682     int GetPosition() const;
683 };
684 
685 // ---------------------------------------------------------------------------
686 // wxScrollWinEvent - for wxScrolledWindows only
687 
688 #include "wx/event.h"
689 
690 class %delete wxScrollWinEvent : public wxEvent
691 {
692     %wxEventType wxEVT_SCROLLWIN_BOTTOM        // EVT_SCROLLWIN_BOTTOM(func);
693     %wxEventType wxEVT_SCROLLWIN_LINEDOWN      // EVT_SCROLLWIN_LINEDOWN(func);
694     %wxEventType wxEVT_SCROLLWIN_LINEUP        // EVT_SCROLLWIN_LINEUP(func);
695     %wxEventType wxEVT_SCROLLWIN_PAGEDOWN      // EVT_SCROLLWIN_PAGEDOWN(func);
696     %wxEventType wxEVT_SCROLLWIN_PAGEUP        // EVT_SCROLLWIN_PAGEUP(func);
697     %wxEventType wxEVT_SCROLLWIN_THUMBRELEASE  // EVT_SCROLLWIN_THUMBRELEASE(func);
698     %wxEventType wxEVT_SCROLLWIN_THUMBTRACK    // EVT_SCROLLWIN_THUMBTRACK(func);
699     %wxEventType wxEVT_SCROLLWIN_TOP           // EVT_SCROLLWIN_TOP(func);
700 
701     wxScrollWinEvent(wxEventType commandType = wxEVT_NULL, int pos = 0, int orientation = 0);
702 
703     int GetOrientation() const;
704     int GetPosition() const;
705 };
706 
707 // ---------------------------------------------------------------------------
708 // wxSizeEvent
709 
710 #include "wx/event.h"
711 
712 class %delete wxSizeEvent : public wxEvent
713 {
714     %wxEventType wxEVT_SIZE                    // EVT_SIZE(func);
715     %wxchkver_2_6 %wxEventType wxEVT_SIZING    // EVT_SIZING(func);
716 
717     wxSizeEvent(const wxSize& sz, int id = 0);
718 
719     wxSize GetSize() const;
720 };
721 
722 // ---------------------------------------------------------------------------
723 // wxShowEvent
724 
725 #include "wx/event.h"
726 
727 class %delete wxShowEvent : public wxEvent
728 {
729     %wxEventType wxEVT_SHOW // EVT_SHOW(func);
730 
731     wxShowEvent(int winid = 0, bool show = false);
732 
733     void SetShow(bool show);
734     !%wxchkver_2_9 || %wxcompat_2_8 bool GetShow() const;
735     %wxchkver_2_8 bool IsShown() const
736 };
737 
738 // ---------------------------------------------------------------------------
739 // wxIconizeEvent
740 
741 #include "wx/event.h"
742 
743 class %delete wxIconizeEvent : public wxEvent
744 {
745     %wxEventType wxEVT_ICONIZE // EVT_ICONIZE(func);
746 
747     wxIconizeEvent(int winid = 0, bool iconized = true);
748 
749     !%wxchkver_2_9 || %wxcompat_2_8 bool Iconized() const;
750     %wxchkver_2_8 bool IsIconized() const;
751 };
752 
753 // ---------------------------------------------------------------------------
754 // wxMaximizeEvent
755 
756 #include "wx/event.h"
757 
758 class %delete wxMaximizeEvent : public wxEvent
759 {
760     %wxEventType wxEVT_MAXIMIZE // EVT_MAXIMIZE(func);
761 
762     wxMaximizeEvent(int winid = 0);
763 };
764 
765 // ---------------------------------------------------------------------------
766 // wxWindowCreateEvent
767 
768 #include "wx/event.h"
769 
770 class %delete wxWindowCreateEvent : public wxEvent
771 {
772     %wxEventType wxEVT_CREATE // EVT_WINDOW_CREATE(func);
773 
774     wxWindowCreateEvent(wxWindow *win = NULL);
775 
776     wxWindow *GetWindow() const;
777 };
778 
779 // ---------------------------------------------------------------------------
780 // wxWindowDestroyEvent
781 
782 #include "wx/event.h"
783 
784 class %delete wxWindowDestroyEvent : public wxEvent
785 {
786     %wxEventType wxEVT_DESTROY // EVT_WINDOW_DESTROY(func);
787 
788     wxWindowDestroyEvent(wxWindow *win = NULL);
789 
790     wxWindow *GetWindow() const;
791 };
792 
793 // ---------------------------------------------------------------------------
794 // wxSysColourChangedEvent
795 
796 #include "wx/event.h"
797 
798 class %delete wxSysColourChangedEvent : public wxEvent
799 {
800     %wxEventType wxEVT_SYS_COLOUR_CHANGED // EVT_SYS_COLOUR_CHANGED(func);
801 
802     wxSysColourChangedEvent();
803 };
804 
805 // ---------------------------------------------------------------------------
806 // wxDisplayChangedEvent
807 
808 #include "wx/event.h"
809 
810 class %delete wxDisplayChangedEvent : public wxEvent
811 {
812     %wxEventType wxEVT_DISPLAY_CHANGED // EVT_DISPLAY_CHANGED(func);
813 
814     wxDisplayChangedEvent();
815 };
816 
817 // ---------------------------------------------------------------------------
818 // wxDPIChangedEvent
819 
820 #if %wxchkver_3_1_3
821 
822 #include "wx/event.h"
823 
824 class %delete wxDPIChangedEvent  : public wxEvent
825 {
826     %wxEventType wxEVT_DPI_CHANGED // EVT_DPI_CHANGED(func);
827 
828     wxDPIChangedEvent();
829 
830     wxSize GetOldDPI () const;
831     wxSize GetNewDPI () const;
832 };
833 
834 #endif // %wxchkver_3_1_3
835 
836 // ---------------------------------------------------------------------------
837 // wxPowerEvent
838 
839 #if %wxchkver_2_8
840 
841 #include "wx/power.h"
842 
843 enum wxPowerType
844 {
845     wxPOWER_SOCKET,
846     wxPOWER_BATTERY,
847     wxPOWER_UNKNOWN
848 };
849 
850 enum wxBatteryState
851 {
852     wxBATTERY_NORMAL_STATE,     // system is fully usable
853     wxBATTERY_LOW_STATE,        // start to worry
854     wxBATTERY_CRITICAL_STATE,   // save quickly
855     wxBATTERY_SHUTDOWN_STATE,   // too late
856     wxBATTERY_UNKNOWN_STATE
857 };
858 
859 wxPowerType wxGetPowerType();
860 wxBatteryState wxGetBatteryState();
861 
862 #if wxHAS_POWER_EVENTS
863 
864 class %delete wxPowerEvent : public wxEvent
865 {
866     %wxEventType wxEVT_POWER_SUSPENDING        // EVT_POWER_SUSPENDING(func);
867     %wxEventType wxEVT_POWER_SUSPENDED         // EVT_POWER_SUSPENDED(func);
868     %wxEventType wxEVT_POWER_SUSPEND_CANCEL    // EVT_POWER_SUSPEND_CANCEL(func);
869     %wxEventType wxEVT_POWER_RESUME            // EVT_POWER_RESUME(func);
870 
871     wxPowerEvent(wxEventType evtType);
872 
873     void Veto();
874     bool IsVetoed() const;
875 };
876 
877 #endif // wxHAS_POWER_EVENTS
878 
879 #endif // %wxchkver_2_8
880 
881 
882 // ---------------------------------------------------------------------------
883 // wxSetCursorEvent
884 
885 #include "wx/event.h"
886 
887 class %delete wxSetCursorEvent : public wxEvent
888 {
889     %wxEventType wxEVT_SET_CURSOR // EVT_SET_CURSOR(func);
890 
891     wxSetCursorEvent(wxCoord x = 0, wxCoord y = 0);
892 
893     wxCoord GetX() const;
894     wxCoord GetY() const;
895     void SetCursor(const wxCursor& cursor);
896     wxCursor GetCursor() const;
897     bool HasCursor() const;
898 };
899 
900 // ---------------------------------------------------------------------------
901 // wxUpdateUIEvent
902 
903 #include "wx/event.h"
904 
905 enum wxUpdateUIMode
906 {
907     wxUPDATE_UI_PROCESS_ALL,
908     wxUPDATE_UI_PROCESS_SPECIFIED
909 };
910 
911 class %delete wxUpdateUIEvent : public wxCommandEvent
912 {
913     %wxEventType wxEVT_UPDATE_UI // EVT_UPDATE_UI(winid, func) EVT_UPDATE_UI_RANGE(id1, id2, func);
914 
915     wxUpdateUIEvent(wxWindowID commandId = wxID_ANY);
916 
917     static bool CanUpdate(wxWindow* window);
918     void Check(bool check);
919     void Enable(bool enable);
920     bool GetChecked() const;
921     bool GetEnabled() const;
922     %wxchkver_2_8 bool GetShown() const;
923     bool GetSetChecked() const;
924     bool GetSetEnabled() const;
925     %wxchkver_2_8 bool GetSetShown() const;
926     bool GetSetText() const;
927     wxString GetText() const;
928     static wxUpdateUIMode GetMode();
929     static long GetUpdateInterval();
930     static void ResetUpdateTime();
931     static void SetMode(wxUpdateUIMode mode);
932     void SetText(const wxString& text);
933     static void SetUpdateInterval(long updateInterval);
934     %wxchkver_2_8 void Show(bool show);
935 };
936 
937 // ---------------------------------------------------------------------------
938 // wxHelpEvent
939 
940 #include "wx/event.h"
941 
942 #if %wxchkver_2_8
943 enum wxHelpEvent::Origin
944 {
945     Origin_Unknown,    // unrecognized event source
946     Origin_Keyboard,   // event generated from F1 key press
947     Origin_HelpButton // event from [?] button on the title bar (Windows);
948 };
949 #endif //%wxchkver_2_8
950 
951 class %delete wxHelpEvent : public wxCommandEvent
952 {
953     %wxEventType wxEVT_HELP            // EVT_HELP(winid, func) EVT_HELP_RANGE(id1, id2, func);
954     %wxEventType wxEVT_DETAILED_HELP   // EVT_DETAILED_HELP(winid, func) EVT_DETAILED_HELP_RANGE(id1, id2, func);
955 
956     !%wxchkver_2_8 wxHelpEvent(wxEventType type = wxEVT_NULL, wxWindowID id = 0, const wxPoint& pt = wxDefaultPosition);
957     %wxchkver_2_8 wxHelpEvent(wxEventType type = wxEVT_NULL, wxWindowID id = 0, const wxPoint& pt = wxDefaultPosition, wxHelpEvent::Origin origin = wxHelpEvent::Origin_Unknown);
958 
959     wxString GetLink();
960     %wxchkver_2_8 wxHelpEvent::Origin GetOrigin() const;
961     wxPoint  GetPosition();
962     wxString GetTarget();
963     void SetLink(const wxString& link);
964     %wxchkver_2_8 void SetOrigin(wxHelpEvent::Origin origin);
965     void SetPosition(const wxPoint& pos);
966     void SetTarget(const wxString& target);
967 };
968