]> git.saurik.com Git - wxWidgets.git/blame - wxPython/src/events.i
added a comment about the default button handling
[wxWidgets.git] / wxPython / src / events.i
CommitLineData
7bf85405
RD
1/////////////////////////////////////////////////////////////////////////////
2// Name: events.i
3// Purpose: SWIGgable Event classes for wxPython
4//
5// Author: Robin Dunn
6//
7// Created: 5/24/98
8// RCS-ID: $Id$
9// Copyright: (c) 1998 by Total Control Software
10// Licence: wxWindows license
11/////////////////////////////////////////////////////////////////////////////
12
13
03e9bead
RD
14%module events
15
16%{
7bf85405 17#include "helpers.h"
62bd0874 18#include <wx/spinbutt.h>
7bf85405
RD
19%}
20
21//----------------------------------------------------------------------
22
23%include typemaps.i
24%include my_typemaps.i
25
26// Import some definitions of other classes, etc.
27%import _defs.i
28%import misc.i
f6bcfd97 29%import gdi.i
7bf85405
RD
30
31//---------------------------------------------------------------------------
32
83b18bab
RD
33
34int wxNewEventType();
35
9416aa89 36class wxEvent : public wxObject {
7bf85405 37public:
ebf4302c 38 // wxEvent(int id = 0); // *** This class is now an ABC
1475671a
RD
39 ~wxEvent();
40
7bf85405
RD
41 wxObject* GetEventObject();
42 wxEventType GetEventType();
43 int GetId();
44 bool GetSkipped();
45 long GetTimestamp();
46 void SetEventObject(wxObject* object);
47 void SetEventType(wxEventType typ);
48 void SetId(int id);
49 void SetTimestamp(long timeStamp);
50 void Skip(bool skip = TRUE);
07b2e1cd
RD
51
52 wxEvent *Clone();
7bf85405
RD
53};
54
55//---------------------------------------------------------------------------
56
57class wxSizeEvent : public wxEvent {
58public:
1475671a 59 wxSizeEvent(const wxSize& sz, int id = 0);
7bf85405
RD
60 wxSize GetSize();
61};
62
63//---------------------------------------------------------------------------
64
65class wxCloseEvent : public wxEvent {
66public:
1475671a
RD
67 wxCloseEvent(int commandEventType = 0, int id = 0);
68
e980740a 69 void SetLoggingOff(bool loggingOff);
7bf85405
RD
70 bool GetLoggingOff();
71 void Veto(bool veto = TRUE);
e980740a 72 bool CanVeto();
7bf85405 73 bool GetVeto();
b8b8dda7 74 void SetCanVeto(bool canVeto);
7bf85405
RD
75};
76
77//---------------------------------------------------------------------------
78
79class wxCommandEvent : public wxEvent {
80public:
1475671a
RD
81 wxCommandEvent(int commandEventType = 0, int id = 0);
82
3ca6a5f0
BP
83 bool IsChecked();
84 %name(Checked)bool IsChecked();
7bf85405
RD
85 long GetExtraLong();
86 int GetInt();
87 int GetSelection();
cf694132 88 wxString GetString();
7bf85405 89 bool IsSelection();
6999b0d8
RD
90 void SetString(const wxString& s);
91 void SetExtraLong(long extraLong);
92 void SetInt(int i);
93
900d9886
RD
94 %addmethods {
95 PyObject* GetClientData() {
96 wxPyClientData* data = (wxPyClientData*)self->GetClientObject();
97 if (data) {
98 Py_INCREF(data->m_obj);
99 return data->m_obj;
100 } else {
101 Py_INCREF(Py_None);
102 return Py_None;
103 }
104 }
105 }
7bf85405
RD
106};
107
108
109//---------------------------------------------------------------------------
110
111class wxScrollEvent: public wxCommandEvent {
112public:
1475671a
RD
113 wxScrollEvent(int commandType = 0, int id = 0, int pos = 0,
114 int orientation = 0);
115
7bf85405
RD
116 int GetOrientation();
117 int GetPosition();
118};
119
120//---------------------------------------------------------------------------
121
d426c97e
RD
122class wxScrollWinEvent: public wxEvent {
123public:
1475671a
RD
124 wxScrollWinEvent(int commandType = 0, int pos = 0,
125 int orientation = 0);
126
d426c97e
RD
127 int GetOrientation();
128 int GetPosition();
129};
130
131//---------------------------------------------------------------------------
132
62bd0874
RD
133class wxSpinEvent : public wxScrollEvent {
134public:
1475671a 135 wxSpinEvent(int commandType = 0, int id = 0);
62bd0874
RD
136
137};
138
139//---------------------------------------------------------------------------
140
7bf85405
RD
141class wxMouseEvent: public wxEvent {
142public:
1475671a
RD
143 wxMouseEvent(int mouseEventType = 0);
144
7bf85405
RD
145 bool IsButton();
146 bool ButtonDown(int but = -1);
147 bool ButtonDClick(int but = -1);
148 bool ButtonUp(int but = -1);
149 bool Button(int but);
150 bool ButtonIsDown(int but);
151 bool ControlDown();
152 bool MetaDown();
153 bool AltDown();
154 bool ShiftDown();
155 bool LeftDown();
156 bool MiddleDown();
157 bool RightDown();
158 bool LeftUp();
159 bool MiddleUp();
160 bool RightUp();
161 bool LeftDClick();
162 bool MiddleDClick();
163 bool RightDClick();
164 bool LeftIsDown();
165 bool MiddleIsDown();
166 bool RightIsDown();
167 bool Dragging();
168 bool Moving();
169 bool Entering();
170 bool Leaving();
7bf85405 171 wxPoint GetPosition();
b1462dfa 172 %name(GetPositionTuple)void GetPosition(long *OUTPUT, long *OUTPUT);
7bf85405
RD
173 wxPoint GetLogicalPosition(const wxDC& dc);
174 long GetX();
175 long GetY();
c368d904 176
d1679124
RD
177 int GetWheelRotation() const { return m_wheelRotation; }
178 int GetWheelDelta() const { return m_wheelDelta; }
179 int GetLinesPerAction() const { return m_linesPerAction; }
180
c368d904
RD
181 long m_x, m_y;
182 bool m_leftDown;
183 bool m_middleDown;
184 bool m_rightDown;
185 bool m_controlDown;
186 bool m_shiftDown;
187 bool m_altDown;
188 bool m_metaDown;
d1679124
RD
189 int m_wheelRotation;
190 int m_wheelDelta;
191 int m_linesPerAction;
7bf85405
RD
192};
193
194//---------------------------------------------------------------------------
195
6d26dc89
RD
196class wxMouseCaptureChangedEvent : public wxEvent
197{
198public:
199 wxMouseCaptureChangedEvent(wxWindowID id = 0, wxWindow* gainedCapture = NULL);
200 wxWindow* GetCapturedWindow() const;
201};
202
203//---------------------------------------------------------------------------
204
7bf85405
RD
205class wxKeyEvent: public wxEvent {
206public:
1475671a
RD
207 wxKeyEvent(int keyEventType);
208
7bf85405
RD
209 bool ControlDown();
210 bool MetaDown();
211 bool AltDown();
212 bool ShiftDown();
213 long KeyCode();
e980740a 214
f6bcfd97
BP
215 long GetKeyCode();
216 bool HasModifiers();
217
db0ff83e
RD
218 // get the raw key code (platform-dependent)
219 long GetRawKeyCode() const;
220
221 // get the raw key flags (platform-dependent)
222 long GetRawKeyFlags() const;
223
1475671a
RD
224 long GetX();
225 long GetY();
226 wxPoint GetPosition();
227 %name(GetPositionTuple) void GetPosition(long* OUTPUT, long* OUTPUT);
c368d904 228
db0ff83e
RD
229 long m_x, m_y;
230 long m_keyCode;
231 bool m_controlDown;
232 bool m_shiftDown;
233 bool m_altDown;
234 bool m_metaDown;
235 bool m_scanCode;
236 long m_rawCode;
237 long m_rawFlags;
c368d904 238
7bf85405
RD
239};
240
2f90df85
RD
241//---------------------------------------------------------------------------
242
eec92d76 243class wxNavigationKeyEvent : public wxEvent {
1475671a
RD
244public:
245 wxNavigationKeyEvent();
246
247 bool GetDirection();
248 void SetDirection(bool bForward);
249 bool IsWindowChange();
250 void SetWindowChange(bool bIs);
251 wxWindow* GetCurrentFocus();
252 void SetCurrentFocus(wxWindow *win);
253};
2f90df85
RD
254
255
7bf85405
RD
256//---------------------------------------------------------------------------
257
258class wxMoveEvent: public wxEvent {
259public:
1475671a
RD
260 wxMoveEvent(const wxPoint& pt, int id = 0);
261
7bf85405
RD
262 wxPoint GetPosition();
263};
264
265//---------------------------------------------------------------------------
266
267class wxPaintEvent: public wxEvent {
268public:
1475671a 269 wxPaintEvent(int id = 0);
7bf85405
RD
270
271};
272
273//---------------------------------------------------------------------------
274
275class wxEraseEvent: public wxEvent {
276public:
1475671a
RD
277 wxEraseEvent(int id = 0, wxDC* dc = NULL);
278
7bf85405
RD
279 wxDC *GetDC();
280};
281
282//---------------------------------------------------------------------------
283
284class wxFocusEvent: public wxEvent {
285public:
1475671a 286 wxFocusEvent(WXTYPE eventType = 0, int id = 0);
7bf85405
RD
287};
288
7b7ac0ab
RD
289//---------------------------------------------------------------------------
290
291// wxChildFocusEvent notifies the parent that a child has got the focus: unlike
292// wxFocusEvent it is propgated upwards the window chain
293class wxChildFocusEvent : public wxCommandEvent
294{
295public:
296 wxChildFocusEvent(wxWindow *win = NULL);
297 wxWindow *GetWindow() const;
298};
299
300
7bf85405
RD
301//---------------------------------------------------------------------------
302
303class wxActivateEvent: public wxEvent{
304public:
1475671a 305 wxActivateEvent(WXTYPE eventType = 0, int active = TRUE, int id = 0);
7bf85405
RD
306 bool GetActive();
307};
308
309//---------------------------------------------------------------------------
310
311class wxInitDialogEvent: public wxEvent {
312public:
1475671a 313 wxInitDialogEvent(int id = 0);
7bf85405
RD
314};
315
316//---------------------------------------------------------------------------
317
318class wxMenuEvent: public wxEvent {
319public:
1475671a 320 wxMenuEvent(WXTYPE id = 0, int id = 0);
7bf85405 321 int GetMenuId();
afb810d9 322 bool IsPopup();
7bf85405
RD
323};
324
325//---------------------------------------------------------------------------
326
327class wxShowEvent: public wxEvent {
328public:
1475671a 329 wxShowEvent(int id = 0, int show = FALSE);
7bf85405
RD
330 void SetShow(bool show);
331 bool GetShow();
332};
333
334//---------------------------------------------------------------------------
335
336class wxIconizeEvent: public wxEvent {
337public:
d56cebe7
RD
338 wxIconizeEvent(int id = 0, bool iconized = TRUE);
339 bool Iconized();
7bf85405
RD
340};
341
342//---------------------------------------------------------------------------
343
344class wxMaximizeEvent: public wxEvent {
345public:
1475671a 346 wxMaximizeEvent(int id = 0);
7bf85405
RD
347};
348
349//---------------------------------------------------------------------------
350
351class wxJoystickEvent: public wxEvent {
352public:
1475671a
RD
353 wxJoystickEvent(int type = wxEVT_NULL,
354 int state = 0,
355 int joystick = wxJOYSTICK1,
356 int change = 0);
7bf85405
RD
357 wxPoint GetPosition();
358 int GetZPosition();
359 int GetButtonState();
360 int GetButtonChange();
361 int GetJoystick();
362 void SetJoystick(int stick);
363 void SetButtonState(int state);
364 void SetButtonChange(int change);
365 void SetPosition(const wxPoint& pos);
366 void SetZPosition(int zPos);
367 bool IsButton();
368 bool IsMove();
369 bool IsZMove();
370 bool ButtonDown(int but = wxJOY_BUTTON_ANY);
371 bool ButtonUp(int but = wxJOY_BUTTON_ANY);
372 bool ButtonIsDown(int but = wxJOY_BUTTON_ANY);
373};
374
375//---------------------------------------------------------------------------
376
377class wxDropFilesEvent: public wxEvent {
378public:
379 wxPoint GetPosition();
380 int GetNumberOfFiles();
381
382 %addmethods {
383 PyObject* GetFiles() {
384 int count = self->GetNumberOfFiles();
385 wxString* files = self->GetFiles();
386 PyObject* list = PyList_New(count);
387
388 if (!list) {
389 PyErr_SetString(PyExc_MemoryError, "Can't allocate list of files!");
390 return NULL;
391 }
392
393 for (int i=0; i<count; i++) {
c8bc7bb8
RD
394#if wxUSE_UNICODE
395 PyList_SetItem(list, i, PyUnicode_FromUnicode(files[i], files[i].Len()));
396#else
7bf85405 397 PyList_SetItem(list, i, PyString_FromString((const char*)files[i]));
c8bc7bb8 398#endif
7bf85405
RD
399 }
400 return list;
401 }
402 }
403};
404
405//---------------------------------------------------------------------------
406
407class wxIdleEvent: public wxEvent {
408public:
1475671a 409 wxIdleEvent();
7bf85405
RD
410 void RequestMore(bool needMore = TRUE);
411 bool MoreRequested();
412};
413
414//---------------------------------------------------------------------------
415
416class wxUpdateUIEvent: public wxEvent {
417public:
1475671a 418 wxUpdateUIEvent(wxWindowID commandId = 0);
7bf85405
RD
419 bool GetChecked();
420 bool GetEnabled();
421 wxString GetText();
422 bool GetSetText();
423 bool GetSetChecked();
424 bool GetSetEnabled();
425
426 void Check(bool check);
427 void Enable(bool enable);
428 void SetText(const wxString& text);
429};
430
431//---------------------------------------------------------------------------
432
433class wxSysColourChangedEvent: public wxEvent {
434public:
1475671a 435 wxSysColourChangedEvent();
7bf85405
RD
436};
437
438//---------------------------------------------------------------------------
439
2f90df85
RD
440
441class wxNotifyEvent : public wxCommandEvent {
cf694132 442public:
1475671a 443 wxNotifyEvent(int commandType = wxEVT_NULL, int id = 0);
2f90df85 444 bool IsAllowed();
185d7c3e 445 void Allow();
2f90df85
RD
446 void Veto();
447};
448
449
be43cc44
RD
450//---------------------------------------------------------------------------
451
452class wxDisplayChangedEvent : public wxEvent
453{
454public:
455 wxDisplayChangedEvent();
456};
457
458
2f90df85 459//---------------------------------------------------------------------------
1475671a
RD
460
461class wxPaletteChangedEvent : public wxEvent {
462public:
463 wxPaletteChangedEvent(wxWindowID id = 0);
464
465 void SetChangedWindow(wxWindow* win);
466 wxWindow* GetChangedWindow();
467
468};
469
470//---------------------------------------------------------------------------
471
472class wxQueryNewPaletteEvent : public wxEvent {
473public:
474 wxQueryNewPaletteEvent(wxWindowID id = 0);
475
476 void SetPaletteRealized(bool realized);
477 bool GetPaletteRealized();
478};
479
480
481//---------------------------------------------------------------------------
482
f6bcfd97 483class wxWindowCreateEvent : public wxCommandEvent {
1475671a
RD
484public:
485 wxWindowCreateEvent(wxWindow *win = NULL);
486
487 wxWindow *GetWindow();
488};
489
f6bcfd97 490class wxWindowDestroyEvent : public wxCommandEvent {
1475671a
RD
491public:
492 wxWindowDestroyEvent(wxWindow *win = NULL);
493
494 wxWindow *GetWindow();
495};
496
f6bcfd97
BP
497//---------------------------------------------------------------------------
498
499class wxTimerEvent : public wxEvent
500{
501public:
502 wxTimerEvent(int id = 0, int interval = 0);
503 int GetInterval();
504};
505
c7e7022c
RD
506//---------------------------------------------------------------------------
507
508class wxTextUrlEvent : public wxCommandEvent
509{
510public:
511 wxTextUrlEvent(int id, const wxMouseEvent& evtMouse,
512 long start, long end);
513 const wxMouseEvent& GetMouseEvent();
514 long GetURLStart();
515 long GetURLEnd();
516};
1475671a
RD
517
518//---------------------------------------------------------------------------
519//---------------------------------------------------------------------------
65dd82cb
RD
520// These classes can be derived from in Python and passed through the event
521// system without loosing anything. They do this by keeping a reference to
522// themselves and some special case handling in wxPyCallback::EventThunker.
cf694132 523
2f90df85
RD
524class wxPyEvent : public wxEvent {
525public:
65dd82cb 526 wxPyEvent(int id=0);
2f90df85
RD
527 ~wxPyEvent();
528
65dd82cb
RD
529 %pragma(python) addtomethod = "__init__:self.SetSelf(self)"
530
531 void SetSelf(PyObject* self);
532 PyObject* GetSelf();
2f90df85
RD
533};
534
bb0054cd 535
2f90df85 536class wxPyCommandEvent : public wxCommandEvent {
bb0054cd 537public:
65dd82cb
RD
538 wxPyCommandEvent(wxEventType commandType = wxEVT_NULL, int id=0);
539 ~wxPyCommandEvent();
2f90df85 540
65dd82cb 541 %pragma(python) addtomethod = "__init__:self.SetSelf(self)"
2f90df85 542
65dd82cb
RD
543 void SetSelf(PyObject* self);
544 PyObject* GetSelf();
2f90df85
RD
545};
546
2f90df85 547
bb0054cd 548
2f90df85 549
bb0054cd
RD
550//---------------------------------------------------------------------------
551//---------------------------------------------------------------------------
7bf85405 552