X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/23f681ec4840b44e265e6f71beef5a242306220b..cd79f7b0d9f3fdd716e25a46e370e613e3d4c296:/include/wx/event.h diff --git a/include/wx/event.h b/include/wx/event.h index 7531023db5..e349b45b8d 100644 --- a/include/wx/event.h +++ b/include/wx/event.h @@ -1,11 +1,11 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: event.h +// Name: wx/event.h // Purpose: Event classes // Author: Julian Smart // Modified by: // Created: 01/02/97 // RCS-ID: $Id$ -// Copyright: (c) +// Copyright: (c) wxWindows team // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -21,6 +21,7 @@ #if wxUSE_GUI #include "wx/gdicmn.h" + #include "wx/cursor.h" #endif #include "wx/thread.h" @@ -118,6 +119,9 @@ enum wxEVT_KEY_DOWN = wxEVT_FIRST + 215, wxEVT_KEY_UP = wxEVT_FIRST + 216, + /* Set cursor event */ + wxEVT_SET_CURSOR = wxEVT_FIRST + 230, + /* * wxScrollbar and wxSlider event identifiers */ @@ -128,6 +132,7 @@ enum wxEVT_SCROLL_PAGEUP = wxEVT_FIRST + 304, wxEVT_SCROLL_PAGEDOWN = wxEVT_FIRST + 305, wxEVT_SCROLL_THUMBTRACK = wxEVT_FIRST + 306, + wxEVT_SCROLL_THUMBRELEASE = wxEVT_FIRST + 307, /* * Scroll events from wxWindow @@ -139,7 +144,7 @@ enum wxEVT_SCROLLWIN_PAGEUP = wxEVT_FIRST + 324, wxEVT_SCROLLWIN_PAGEDOWN = wxEVT_FIRST + 325, wxEVT_SCROLLWIN_THUMBTRACK = wxEVT_FIRST + 326, - wxEVT_SCROLL_THUMBRELEASE = wxEVT_FIRST + 327, + wxEVT_SCROLLWIN_THUMBRELEASE = wxEVT_FIRST + 327, /* * System events @@ -263,6 +268,33 @@ enum wxEVT_CALENDAR_DOUBLECLICKED = wxEVT_FIRST + 954, wxEVT_CALENDAR_WEEKDAY_CLICKED = wxEVT_FIRST + 955, + /* Plot events */ + wxEVT_PLOT_SEL_CHANGING = wxEVT_FIRST + 1000, + wxEVT_PLOT_SEL_CHANGED = wxEVT_FIRST + 1001, + wxEVT_PLOT_CLICKED = wxEVT_FIRST + 1002, + wxEVT_PLOT_DOUBLECLICKED = wxEVT_FIRST + 1003, + wxEVT_PLOT_ZOOM_IN = wxEVT_FIRST + 1004, + wxEVT_PLOT_ZOOM_OUT = wxEVT_FIRST + 1005, + wxEVT_PLOT_VALUE_SEL_CREATING = wxEVT_FIRST + 1010, + wxEVT_PLOT_VALUE_SEL_CREATED = wxEVT_FIRST + 1011, + wxEVT_PLOT_VALUE_SEL_CHANGING = wxEVT_FIRST + 1012, + wxEVT_PLOT_VALUE_SEL_CHANGED = wxEVT_FIRST + 1013, + wxEVT_PLOT_AREA_SEL_CREATING = wxEVT_FIRST + 1014, + wxEVT_PLOT_AREA_SEL_CREATED = wxEVT_FIRST + 1015, + wxEVT_PLOT_AREA_SEL_CHANGING = wxEVT_FIRST + 1016, + wxEVT_PLOT_AREA_SEL_CHANGED = wxEVT_FIRST + 1017, + wxEVT_PLOT_BEGIN_X_LABEL_EDIT = wxEVT_FIRST + 1020, + wxEVT_PLOT_END_X_LABEL_EDIT = wxEVT_FIRST + 1021, + wxEVT_PLOT_BEGIN_Y_LABEL_EDIT = wxEVT_FIRST + 1022, + wxEVT_PLOT_END_Y_LABEL_EDIT = wxEVT_FIRST + 1023, + wxEVT_PLOT_BEGIN_TITLE_EDIT = wxEVT_FIRST + 1024, + wxEVT_PLOT_END_TITLE_EDIT = wxEVT_FIRST + 1025, + wxEVT_PLOT_AREA_CREATE = wxEVT_FIRST + 1026, + + /* Help events */ + wxEVT_HELP = wxEVT_FIRST + 1050, + wxEVT_DETAILED_HELP, + wxEVT_USER_FIRST = wxEVT_FIRST + 2000 }; @@ -415,7 +447,7 @@ public: wxString GetString() const { return m_commandString; } // Get checkbox value - bool Checked() const { return (m_commandInt != 0); } + bool IsChecked() const { return m_commandInt != 0; } // TRUE if the listbox event was a selection. bool IsSelection() const { return (m_extraLong != 0); } @@ -428,6 +460,10 @@ public: void CopyObject(wxObject& obj) const; +#ifdef WXWIN_COMPATIBILITY_2 + bool Checked() const { return IsChecked(); } +#endif // WXWIN_COMPATIBILITY_2 + public: wxString m_commandString; // String event argument int m_commandInt; @@ -670,10 +706,10 @@ public: #endif // WXWIN_COMPATIBILITY // Get X position - long GetX() const { return m_x; } + wxCoord GetX() const { return m_x; } // Get Y position - long GetY() const { return m_y; } + wxCoord GetY() const { return m_y; } void CopyObject(wxObject& obj) const; @@ -690,6 +726,35 @@ public: bool m_metaDown; }; +// Cursor set event + +/* + wxEVT_SET_CURSOR + */ + +class WXDLLEXPORT wxSetCursorEvent : public wxEvent +{ +public: + wxSetCursorEvent(wxCoord x, wxCoord y) + { + m_eventType = wxEVT_SET_CURSOR; + + m_x = x; + m_y = y; + } + + wxCoord GetX() const { return m_x; } + wxCoord GetY() const { return m_y; } + + void SetCursor(const wxCursor& cursor) { m_cursor = cursor; } + const wxCursor& GetCursor() const { return m_cursor; } + bool HasCursor() const { return m_cursor.Ok(); } + +private: + wxCoord m_x, m_y; + wxCursor m_cursor; +}; + // Keyboard input event class /* @@ -711,7 +776,11 @@ public: bool MetaDown() const { return m_metaDown; } bool AltDown() const { return m_altDown; } bool ShiftDown() const { return m_shiftDown; } - long KeyCode() const { return m_keyCode; } + + bool HasModifiers() const { return ControlDown() || AltDown() || MetaDown(); } + + // get the key code: an ASCII7 char or an element of wxKeyCode enum + int GetKeyCode() const { return (int)m_keyCode; } // Find the position of the event void GetPosition(wxCoord *xpos, wxCoord *ypos) const @@ -739,6 +808,9 @@ public: void CopyObject(wxObject& obj) const; + // deprecated + long KeyCode() const { return m_keyCode; } + public: wxCoord m_x, m_y; @@ -803,9 +875,9 @@ public: wxEVT_PAINT_ICON */ -#if defined(__WXDEBUG__) && defined(__WXMSW__) - // see comments in src/msw/dcclient.cpp where g_isPainting is defined - extern int g_isPainting; +#if defined(__WXDEBUG__) && (defined(__WXMSW__) || defined(__WXPM__)) + // see comments in src/msw|os2/dcclient.cpp where g_isPainting is defined + extern WXDLLEXPORT int g_isPainting; #endif // debug class WXDLLEXPORT wxPaintEvent : public wxEvent @@ -818,13 +890,13 @@ public: m_eventType = wxEVT_PAINT; m_id = Id; -#if defined(__WXDEBUG__) && defined(__WXMSW__) +#if defined(__WXDEBUG__) && (defined(__WXMSW__) || defined(__WXPM__)) // set the internal flag for the duration of processing of WM_PAINT g_isPainting++; #endif // debug } -#if defined(__WXDEBUG__) && defined(__WXMSW__) +#if defined(__WXDEBUG__) && (defined(__WXMSW__) || defined(__WXPM__)) ~wxPaintEvent() { g_isPainting--; @@ -1312,7 +1384,7 @@ private: wxEVT_DESTROY */ -class WXDLLEXPORT wxWindowCreateEvent : public wxEvent +class WXDLLEXPORT wxWindowCreateEvent : public wxCommandEvent { DECLARE_DYNAMIC_CLASS(wxWindowCreateEvent) @@ -1322,7 +1394,7 @@ public: wxWindow *GetWindow() const { return (wxWindow *)GetEventObject(); } }; -class WXDLLEXPORT wxWindowDestroyEvent : public wxEvent +class WXDLLEXPORT wxWindowDestroyEvent : public wxCommandEvent { DECLARE_DYNAMIC_CLASS(wxWindowDestroyEvent) @@ -1332,6 +1404,45 @@ public: wxWindow *GetWindow() const { return (wxWindow *)GetEventObject(); } }; +// A help event is sent when the user clicks on a window in context-help mode. +/* + wxEVT_HELP + wxEVT_DETAILED_HELP +*/ + +class WXDLLEXPORT wxHelpEvent : public wxCommandEvent +{ +public: + wxHelpEvent(wxEventType type = wxEVT_NULL, + wxWindowID id = 0, + const wxPoint& pt = wxDefaultPosition) + { + m_eventType = type; + m_id = id; + m_pos = pt; + } + + // Position of event (in screen coordinates) + const wxPoint& GetPosition() const { return m_pos; } + void SetPosition(const wxPoint& pos) { m_pos = pos; } + + // Optional link to further help + const wxString& GetLink() const { return m_link; } + void SetLink(const wxString& link) { m_link = link; } + + // Optional target to display help in. E.g. a window specification + const wxString& GetTarget() const { return m_target; } + void SetTarget(const wxString& target) { m_target = target; } + +protected: + wxPoint m_pos; + wxString m_target; + wxString m_link; + +private: + DECLARE_DYNAMIC_CLASS(wxHelpEvent) +}; + #endif // wxUSE_GUI // Idle event @@ -1442,7 +1553,7 @@ public: wxObjectEventFunction func = NULL, wxObject *userData = (wxObject *) NULL ) { return Disconnect(id, -1, eventType, func, userData); } - + // implementation from now on virtual bool SearchEventTable(wxEventTable& table, wxEvent& event); bool SearchDynamicEventTable( wxEvent& event ); @@ -1531,6 +1642,11 @@ typedef void (wxEvtHandler::*wxMaximizeEventFunction)(wxShowEvent&); typedef void (wxEvtHandler::*wxNavigationKeyEventFunction)(wxNavigationKeyEvent&); typedef void (wxEvtHandler::*wxPaletteChangedEventFunction)(wxPaletteChangedEvent&); typedef void (wxEvtHandler::*wxQueryNewPaletteEventFunction)(wxQueryNewPaletteEvent&); +typedef void (wxEvtHandler::*wxWindowCreateEventFunction)(wxWindowCreateEvent&); +typedef void (wxEvtHandler::*wxWindowDestroyEventFunction)(wxWindowDestroyEvent&); +typedef void (wxEvtHandler::*wxSetCursorEventFunction)(wxSetCursorEvent&); +typedef void (wxEvtHandler::*wxNotifyEventFunction)(wxNotifyEvent&); +typedef void (wxEvtHandler::*wxHelpEventFunction)(wxHelpEvent&); #endif // wxUSE_GUI // N.B. In GNU-WIN32, you *have* to take the address of a member function @@ -1589,8 +1705,9 @@ const wxEventTableEntry theClass::sm_eventTableEntries[] = { \ #define EVT_NAVIGATION_KEY(func) { wxEVT_NAVIGATION_KEY, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNavigationKeyEventFunction) & func, (wxObject *) NULL }, #define EVT_PALETTE_CHANGED(func) { wxEVT_PALETTE_CHANGED, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxPaletteChangedEventFunction) & func, (wxObject *) NULL }, #define EVT_QUERY_NEW_PALETTE(func) { wxEVT_QUERY_NEW_PALETTE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxQueryNewPaletteEventFunction) & func, (wxObject *) NULL }, -#define EVT_WINDOW_CREATE(func) { wxEVT_CREATE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxQueryNewPaletteEventFunction) & func, (wxObject *) NULL }, -#define EVT_WINDOW_DESTROY(func) { wxEVT_DESTROY, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxQueryNewPaletteEventFunction) & func, (wxObject *) NULL }, +#define EVT_WINDOW_CREATE(func) { wxEVT_CREATE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxWindowCreateEventFunction) & func, (wxObject *) NULL }, +#define EVT_WINDOW_DESTROY(func) { wxEVT_DESTROY, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxWindowDestroyEventFunction) & func, (wxObject *) NULL }, +#define EVT_SET_CURSOR(func) { wxEVT_SET_CURSOR, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxSetCursorEventFunction) & func, (wxObject *) NULL }, // Mouse events #define EVT_LEFT_DOWN(func) { wxEVT_LEFT_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL }, @@ -1733,15 +1850,30 @@ const wxEventTableEntry theClass::sm_eventTableEntries[] = { \ { wxEVT_JOY_BUTTON_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxJoystickEventFunction) & func, (wxObject *) NULL },\ { wxEVT_JOY_BUTTON_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxJoystickEventFunction) & func, (wxObject *) NULL },\ { wxEVT_JOY_MOVE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxJoystickEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_JOY_ZMOVE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxJoystickEventFunction) & func, (wxObject *) NULL },\ + { wxEVT_JOY_ZMOVE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxJoystickEventFunction) & func, (wxObject *) NULL }, // Idle event #define EVT_IDLE(func) \ - { wxEVT_IDLE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxIdleEventFunction) & func, (wxObject *) NULL },\ + { wxEVT_IDLE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxIdleEventFunction) & func, (wxObject *) NULL }, // Update UI event #define EVT_UPDATE_UI(id, func) \ - { wxEVT_UPDATE_UI, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxUpdateUIEventFunction) & func, (wxObject *) NULL },\ + { wxEVT_UPDATE_UI, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxUpdateUIEventFunction) & func, (wxObject *) NULL }, +#define EVT_UPDATE_UI_RANGE(id1, id2, func) \ + { wxEVT_UPDATE_UI, id1, id2, (wxObjectEventFunction)(wxEventFunction)(wxUpdateUIEventFunction)&func, (wxObject *) NULL }, + +// Help events +#define EVT_HELP(id, func) \ + { wxEVT_HELP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxHelpEventFunction) & func, (wxObject *) NULL }, + +#define EVT_HELP_RANGE(id1, id2, func) \ + { wxEVT_HELP, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxHelpEventFunction) & func, (wxObject *) NULL }, + +#define EVT_DETAILED_HELP(id, func) \ + { wxEVT_DETAILED_HELP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxHelpEventFunction) & func, (wxObject *) NULL }, + +#define EVT_DETAILED_HELP_RANGE(id1, id2, func) \ + { wxEVT_DETAILED_HELP, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxHelpEventFunction) & func, (wxObject *) NULL }, // ---------------------------------------------------------------------------- // Global data