1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: SWIGgable Event classes for wxPython
9 // Copyright: (c) 1998 by Total Control Software
10 // Licence: wxWindows license
11 /////////////////////////////////////////////////////////////////////////////
18 #include <wx/spinbutt.h>
21 //----------------------------------------------------------------------
24 %include my_typemaps.i
26 // Import some definitions of other classes, etc.
31 //---------------------------------------------------------------------------
36 class wxEvent : public wxObject {
38 // wxEvent(int id = 0); // *** This class is now an ABC
41 wxObject* GetEventObject();
42 wxEventType GetEventType();
46 void SetEventObject(wxObject* object);
47 void SetEventType(wxEventType typ);
49 void SetTimestamp(long timeStamp);
50 void Skip(bool skip = TRUE);
55 //---------------------------------------------------------------------------
57 class wxSizeEvent : public wxEvent {
59 wxSizeEvent(const wxSize& sz, int id = 0);
63 //---------------------------------------------------------------------------
65 class wxCloseEvent : public wxEvent {
67 wxCloseEvent(int commandEventType = 0, int id = 0);
69 void SetLoggingOff(bool loggingOff);
71 void Veto(bool veto = TRUE);
74 void SetCanVeto(bool canVeto);
77 //---------------------------------------------------------------------------
79 class wxCommandEvent : public wxEvent {
81 wxCommandEvent(int commandEventType = 0, int id = 0);
84 %name(Checked)bool IsChecked();
90 void SetString(const wxString& s);
91 void SetExtraLong(long extraLong);
95 PyObject* GetClientData() {
96 wxPyClientData* data = (wxPyClientData*)self->GetClientObject();
98 Py_INCREF(data->m_obj);
109 //---------------------------------------------------------------------------
111 class wxScrollEvent: public wxCommandEvent {
113 wxScrollEvent(int commandType = 0, int id = 0, int pos = 0,
114 int orientation = 0);
116 int GetOrientation();
120 //---------------------------------------------------------------------------
122 class wxScrollWinEvent: public wxEvent {
124 wxScrollWinEvent(int commandType = 0, int pos = 0,
125 int orientation = 0);
127 int GetOrientation();
131 //---------------------------------------------------------------------------
133 class wxSpinEvent : public wxScrollEvent {
135 wxSpinEvent(int commandType = 0, int id = 0);
139 //---------------------------------------------------------------------------
141 class wxMouseEvent: public wxEvent {
143 wxMouseEvent(int mouseEventType = 0);
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);
171 wxPoint GetPosition();
172 %name(GetPositionTuple)void GetPosition(long *OUTPUT, long *OUTPUT);
173 wxPoint GetLogicalPosition(const wxDC& dc);
177 int GetWheelRotation() const { return m_wheelRotation; }
178 int GetWheelDelta() const { return m_wheelDelta; }
179 int GetLinesPerAction() const { return m_linesPerAction; }
191 int m_linesPerAction;
194 //---------------------------------------------------------------------------
196 class wxMouseCaptureChangedEvent : public wxEvent
199 wxMouseCaptureChangedEvent(wxWindowID id = 0, wxWindow* gainedCapture = NULL);
200 wxWindow* GetCapturedWindow() const;
203 //---------------------------------------------------------------------------
205 class wxSetCursorEvent : public wxEvent
208 wxSetCursorEvent(wxCoord x = 0, wxCoord y = 0);
210 wxCoord GetX() const;
211 wxCoord GetY() const;
213 void SetCursor(const wxCursor& cursor);
214 const wxCursor& GetCursor() const;
215 bool HasCursor() const;
218 //---------------------------------------------------------------------------
220 class wxKeyEvent: public wxEvent {
222 wxKeyEvent(int keyEventType);
233 // get the raw key code (platform-dependent)
234 long GetRawKeyCode() const;
236 // get the raw key flags (platform-dependent)
237 long GetRawKeyFlags() const;
241 wxPoint GetPosition();
242 %name(GetPositionTuple) void GetPosition(long* OUTPUT, long* OUTPUT);
256 //---------------------------------------------------------------------------
258 class wxNavigationKeyEvent : public wxEvent {
260 wxNavigationKeyEvent();
263 void SetDirection(bool bForward);
264 bool IsWindowChange();
265 void SetWindowChange(bool bIs);
266 wxWindow* GetCurrentFocus();
267 void SetCurrentFocus(wxWindow *win);
271 //---------------------------------------------------------------------------
273 class wxMoveEvent: public wxEvent {
275 wxMoveEvent(const wxPoint& pt, int id = 0);
277 wxPoint GetPosition();
280 //---------------------------------------------------------------------------
282 class wxPaintEvent: public wxEvent {
284 wxPaintEvent(int id = 0);
288 //---------------------------------------------------------------------------
290 class wxEraseEvent: public wxEvent {
292 wxEraseEvent(int id = 0, wxDC* dc = NULL);
297 //---------------------------------------------------------------------------
299 class wxFocusEvent: public wxEvent {
301 wxFocusEvent(WXTYPE eventType = 0, int id = 0);
304 //---------------------------------------------------------------------------
306 // wxChildFocusEvent notifies the parent that a child has got the focus: unlike
307 // wxFocusEvent it is propgated upwards the window chain
308 class wxChildFocusEvent : public wxCommandEvent
311 wxChildFocusEvent(wxWindow *win = NULL);
312 wxWindow *GetWindow() const;
316 //---------------------------------------------------------------------------
318 class wxActivateEvent: public wxEvent{
320 wxActivateEvent(WXTYPE eventType = 0, int active = TRUE, int id = 0);
324 //---------------------------------------------------------------------------
326 class wxInitDialogEvent: public wxEvent {
328 wxInitDialogEvent(int id = 0);
331 //---------------------------------------------------------------------------
333 class wxMenuEvent: public wxEvent {
335 wxMenuEvent(WXTYPE id = 0, int id = 0);
340 //---------------------------------------------------------------------------
342 class wxShowEvent: public wxEvent {
344 wxShowEvent(int id = 0, int show = FALSE);
345 void SetShow(bool show);
349 //---------------------------------------------------------------------------
351 class wxIconizeEvent: public wxEvent {
353 wxIconizeEvent(int id = 0, bool iconized = TRUE);
357 //---------------------------------------------------------------------------
359 class wxMaximizeEvent: public wxEvent {
361 wxMaximizeEvent(int id = 0);
364 //---------------------------------------------------------------------------
366 class wxJoystickEvent: public wxEvent {
368 wxJoystickEvent(int type = wxEVT_NULL,
370 int joystick = wxJOYSTICK1,
372 wxPoint GetPosition();
374 int GetButtonState();
375 int GetButtonChange();
377 void SetJoystick(int stick);
378 void SetButtonState(int state);
379 void SetButtonChange(int change);
380 void SetPosition(const wxPoint& pos);
381 void SetZPosition(int zPos);
385 bool ButtonDown(int but = wxJOY_BUTTON_ANY);
386 bool ButtonUp(int but = wxJOY_BUTTON_ANY);
387 bool ButtonIsDown(int but = wxJOY_BUTTON_ANY);
390 //---------------------------------------------------------------------------
392 class wxDropFilesEvent: public wxEvent {
394 wxPoint GetPosition();
395 int GetNumberOfFiles();
398 PyObject* GetFiles() {
399 int count = self->GetNumberOfFiles();
400 wxString* files = self->GetFiles();
401 PyObject* list = PyList_New(count);
404 PyErr_SetString(PyExc_MemoryError, "Can't allocate list of files!");
408 for (int i=0; i<count; i++) {
410 PyList_SetItem(list, i, PyUnicode_FromUnicode(files[i], files[i].Len()));
412 PyList_SetItem(list, i, PyString_FromString((const char*)files[i]));
420 //---------------------------------------------------------------------------
422 class wxIdleEvent: public wxEvent {
425 void RequestMore(bool needMore = TRUE);
426 bool MoreRequested();
429 //---------------------------------------------------------------------------
431 class wxUpdateUIEvent: public wxEvent {
433 wxUpdateUIEvent(wxWindowID commandId = 0);
438 bool GetSetChecked();
439 bool GetSetEnabled();
441 void Check(bool check);
442 void Enable(bool enable);
443 void SetText(const wxString& text);
446 //---------------------------------------------------------------------------
448 class wxSysColourChangedEvent: public wxEvent {
450 wxSysColourChangedEvent();
453 //---------------------------------------------------------------------------
456 class wxNotifyEvent : public wxCommandEvent {
458 wxNotifyEvent(int commandType = wxEVT_NULL, int id = 0);
465 //---------------------------------------------------------------------------
467 class wxDisplayChangedEvent : public wxEvent
470 wxDisplayChangedEvent();
474 //---------------------------------------------------------------------------
476 class wxPaletteChangedEvent : public wxEvent {
478 wxPaletteChangedEvent(wxWindowID id = 0);
480 void SetChangedWindow(wxWindow* win);
481 wxWindow* GetChangedWindow();
485 //---------------------------------------------------------------------------
487 class wxQueryNewPaletteEvent : public wxEvent {
489 wxQueryNewPaletteEvent(wxWindowID id = 0);
491 void SetPaletteRealized(bool realized);
492 bool GetPaletteRealized();
496 //---------------------------------------------------------------------------
498 class wxWindowCreateEvent : public wxCommandEvent {
500 wxWindowCreateEvent(wxWindow *win = NULL);
502 wxWindow *GetWindow();
505 class wxWindowDestroyEvent : public wxCommandEvent {
507 wxWindowDestroyEvent(wxWindow *win = NULL);
509 wxWindow *GetWindow();
512 //---------------------------------------------------------------------------
514 class wxTimerEvent : public wxEvent
517 wxTimerEvent(int id = 0, int interval = 0);
521 //---------------------------------------------------------------------------
523 class wxTextUrlEvent : public wxCommandEvent
526 wxTextUrlEvent(int id, const wxMouseEvent& evtMouse,
527 long start, long end);
528 const wxMouseEvent& GetMouseEvent();
533 //---------------------------------------------------------------------------
534 //---------------------------------------------------------------------------
535 // These classes can be derived from in Python and passed through the event
536 // system without loosing anything. They do this by keeping a reference to
537 // themselves and some special case handling in wxPyCallback::EventThunker.
539 class wxPyEvent : public wxEvent {
544 %pragma(python) addtomethod = "__init__:self.SetSelf(self)"
546 void SetSelf(PyObject* self);
551 class wxPyCommandEvent : public wxCommandEvent {
553 wxPyCommandEvent(wxEventType commandType = wxEVT_NULL, int id=0);
556 %pragma(python) addtomethod = "__init__:self.SetSelf(self)"
558 void SetSelf(PyObject* self);
565 //---------------------------------------------------------------------------
566 //---------------------------------------------------------------------------