From 0b5eceb638d6fc9cfa5326cd00b10028fc823187 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 26 Jan 2001 18:58:14 +0000 Subject: [PATCH] dynamic event types actually work with these changes, also corrected more event macro in the sources git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9173 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/calctrl.h | 12 +- include/wx/event.h | 382 ++++++++++---------- include/wx/generic/gridg.h | 18 +- include/wx/motif/tabctrl.h | 8 +- include/wx/msw/tabctrl.h | 8 +- include/wx/msw/taskbar.h | 14 +- include/wx/wizard.h | 6 +- src/common/event.cpp | 694 +++++++++++++++++++++++++------------ 8 files changed, 686 insertions(+), 456 deletions(-) diff --git a/include/wx/calctrl.h b/include/wx/calctrl.h index 75c9f6666f..23540485f7 100644 --- a/include/wx/calctrl.h +++ b/include/wx/calctrl.h @@ -156,11 +156,11 @@ private: typedef void (wxEvtHandler::*wxCalendarEventFunction)(wxCalendarEvent&); -#define EVT_CALENDAR(id, fn) wxEventTableEntry( wxEVT_CALENDAR_DOUBLECLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxCalendarEventFunction) & fn, (wxObject *) NULL ), -#define EVT_CALENDAR_SEL_CHANGED(id, fn) wxEventTableEntry( wxEVT_CALENDAR_SEL_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxCalendarEventFunction) & fn, (wxObject *) NULL ), -#define EVT_CALENDAR_DAY(id, fn) wxEventTableEntry( wxEVT_CALENDAR_DAY_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxCalendarEventFunction) & fn, (wxObject *) NULL ), -#define EVT_CALENDAR_MONTH(id, fn) wxEventTableEntry( wxEVT_CALENDAR_MONTH_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxCalendarEventFunction) & fn, (wxObject *) NULL ), -#define EVT_CALENDAR_YEAR(id, fn) wxEventTableEntry( wxEVT_CALENDAR_YEAR_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxCalendarEventFunction) & fn, (wxObject *) NULL ), -#define EVT_CALENDAR_WEEKDAY_CLICKED(id, fn) wxEventTableEntry( wxEVT_CALENDAR_WEEKDAY_CLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxCalendarEventFunction) & fn, (wxObject *) NULL ), +#define EVT_CALENDAR(id, fn) wxEventTableEntry(wxEVT_CALENDAR_DOUBLECLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxCalendarEventFunction) & fn, (wxObject *) NULL), +#define EVT_CALENDAR_SEL_CHANGED(id, fn) wxEventTableEntry(wxEVT_CALENDAR_SEL_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxCalendarEventFunction) & fn, (wxObject *) NULL), +#define EVT_CALENDAR_DAY(id, fn) wxEventTableEntry(wxEVT_CALENDAR_DAY_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxCalendarEventFunction) & fn, (wxObject *) NULL), +#define EVT_CALENDAR_MONTH(id, fn) wxEventTableEntry(wxEVT_CALENDAR_MONTH_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxCalendarEventFunction) & fn, (wxObject *) NULL), +#define EVT_CALENDAR_YEAR(id, fn) wxEventTableEntry(wxEVT_CALENDAR_YEAR_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxCalendarEventFunction) & fn, (wxObject *) NULL), +#define EVT_CALENDAR_WEEKDAY_CLICKED(id, fn) wxEventTableEntry(wxEVT_CALENDAR_WEEKDAY_CLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxCalendarEventFunction) & fn, (wxObject *) NULL), #endif // _WX_CALCTRL_H diff --git a/include/wx/event.h b/include/wx/event.h index b6cf7ea36d..abab134ccc 100644 --- a/include/wx/event.h +++ b/include/wx/event.h @@ -52,219 +52,219 @@ class WXDLLEXPORT wxList; typedef int wxEventType; // generate a new unique event type -int wxNewEventType(); +extern wxEventType wxNewEventType(); // the standard event types -extern const int wxEVT_NULL; -extern const int wxEVT_FIRST; +extern wxEventType wxEVT_NULL; +extern wxEventType wxEVT_FIRST; -extern const int wxEVT_COMMAND_BUTTON_CLICKED; -extern const int wxEVT_COMMAND_CHECKBOX_CLICKED; -extern const int wxEVT_COMMAND_CHOICE_SELECTED; -extern const int wxEVT_COMMAND_LISTBOX_SELECTED; -extern const int wxEVT_COMMAND_LISTBOX_DOUBLECLICKED; -extern const int wxEVT_COMMAND_CHECKLISTBOX_TOGGLED; -extern const int wxEVT_COMMAND_TEXT_UPDATED; -extern const int wxEVT_COMMAND_TEXT_ENTER; -extern const int wxEVT_COMMAND_MENU_SELECTED; -extern const int wxEVT_COMMAND_TOOL_CLICKED; -extern const int wxEVT_COMMAND_SLIDER_UPDATED; -extern const int wxEVT_COMMAND_RADIOBOX_SELECTED; -extern const int wxEVT_COMMAND_RADIOBUTTON_SELECTED; -extern const int wxEVT_COMMAND_SCROLLBAR_UPDATED; -extern const int wxEVT_COMMAND_VLBOX_SELECTED; -extern const int wxEVT_COMMAND_COMBOBOX_SELECTED; -extern const int wxEVT_COMMAND_TOOL_RCLICKED; -extern const int wxEVT_COMMAND_TOOL_ENTER; -extern const int wxEVT_COMMAND_SPINCTRL_UPDATED; +extern wxEventType wxEVT_COMMAND_BUTTON_CLICKED; +extern wxEventType wxEVT_COMMAND_CHECKBOX_CLICKED; +extern wxEventType wxEVT_COMMAND_CHOICE_SELECTED; +extern wxEventType wxEVT_COMMAND_LISTBOX_SELECTED; +extern wxEventType wxEVT_COMMAND_LISTBOX_DOUBLECLICKED; +extern wxEventType wxEVT_COMMAND_CHECKLISTBOX_TOGGLED; +extern wxEventType wxEVT_COMMAND_TEXT_UPDATED; +extern wxEventType wxEVT_COMMAND_TEXT_ENTER; +extern wxEventType wxEVT_COMMAND_MENU_SELECTED; +extern wxEventType wxEVT_COMMAND_TOOL_CLICKED; +extern wxEventType wxEVT_COMMAND_SLIDER_UPDATED; +extern wxEventType wxEVT_COMMAND_RADIOBOX_SELECTED; +extern wxEventType wxEVT_COMMAND_RADIOBUTTON_SELECTED; +extern wxEventType wxEVT_COMMAND_SCROLLBAR_UPDATED; +extern wxEventType wxEVT_COMMAND_VLBOX_SELECTED; +extern wxEventType wxEVT_COMMAND_COMBOBOX_SELECTED; +extern wxEventType wxEVT_COMMAND_TOOL_RCLICKED; +extern wxEventType wxEVT_COMMAND_TOOL_ENTER; +extern wxEventType wxEVT_COMMAND_SPINCTRL_UPDATED; // Sockets and timers send events, too -extern const int wxEVT_SOCKET; -extern const int wxEVT_TIMER; +extern wxEventType wxEVT_SOCKET; +extern wxEventType wxEVT_TIMER; // Mouse event types -extern const int wxEVT_LEFT_DOWN; -extern const int wxEVT_LEFT_UP; -extern const int wxEVT_MIDDLE_DOWN; -extern const int wxEVT_MIDDLE_UP; -extern const int wxEVT_RIGHT_DOWN; -extern const int wxEVT_RIGHT_UP; -extern const int wxEVT_MOTION; -extern const int wxEVT_ENTER_WINDOW; -extern const int wxEVT_LEAVE_WINDOW; -extern const int wxEVT_LEFT_DCLICK; -extern const int wxEVT_MIDDLE_DCLICK; -extern const int wxEVT_RIGHT_DCLICK; -extern const int wxEVT_SET_FOCUS; -extern const int wxEVT_KILL_FOCUS; +extern wxEventType wxEVT_LEFT_DOWN; +extern wxEventType wxEVT_LEFT_UP; +extern wxEventType wxEVT_MIDDLE_DOWN; +extern wxEventType wxEVT_MIDDLE_UP; +extern wxEventType wxEVT_RIGHT_DOWN; +extern wxEventType wxEVT_RIGHT_UP; +extern wxEventType wxEVT_MOTION; +extern wxEventType wxEVT_ENTER_WINDOW; +extern wxEventType wxEVT_LEAVE_WINDOW; +extern wxEventType wxEVT_LEFT_DCLICK; +extern wxEventType wxEVT_MIDDLE_DCLICK; +extern wxEventType wxEVT_RIGHT_DCLICK; +extern wxEventType wxEVT_SET_FOCUS; +extern wxEventType wxEVT_KILL_FOCUS; // Non-client mouse events -extern const int wxEVT_NC_LEFT_DOWN; -extern const int wxEVT_NC_LEFT_UP; -extern const int wxEVT_NC_MIDDLE_DOWN; -extern const int wxEVT_NC_MIDDLE_UP; -extern const int wxEVT_NC_RIGHT_DOWN; -extern const int wxEVT_NC_RIGHT_UP; -extern const int wxEVT_NC_MOTION; -extern const int wxEVT_NC_ENTER_WINDOW; -extern const int wxEVT_NC_LEAVE_WINDOW; -extern const int wxEVT_NC_LEFT_DCLICK; -extern const int wxEVT_NC_MIDDLE_DCLICK; -extern const int wxEVT_NC_RIGHT_DCLICK; +extern wxEventType wxEVT_NC_LEFT_DOWN; +extern wxEventType wxEVT_NC_LEFT_UP; +extern wxEventType wxEVT_NC_MIDDLE_DOWN; +extern wxEventType wxEVT_NC_MIDDLE_UP; +extern wxEventType wxEVT_NC_RIGHT_DOWN; +extern wxEventType wxEVT_NC_RIGHT_UP; +extern wxEventType wxEVT_NC_MOTION; +extern wxEventType wxEVT_NC_ENTER_WINDOW; +extern wxEventType wxEVT_NC_LEAVE_WINDOW; +extern wxEventType wxEVT_NC_LEFT_DCLICK; +extern wxEventType wxEVT_NC_MIDDLE_DCLICK; +extern wxEventType wxEVT_NC_RIGHT_DCLICK; // Character input event type -extern const int wxEVT_CHAR; -extern const int wxEVT_CHAR_HOOK; -extern const int wxEVT_NAVIGATION_KEY; -extern const int wxEVT_KEY_DOWN; -extern const int wxEVT_KEY_UP; +extern wxEventType wxEVT_CHAR; +extern wxEventType wxEVT_CHAR_HOOK; +extern wxEventType wxEVT_NAVIGATION_KEY; +extern wxEventType wxEVT_KEY_DOWN; +extern wxEventType wxEVT_KEY_UP; // Set cursor event -extern const int wxEVT_SET_CURSOR; +extern wxEventType wxEVT_SET_CURSOR; // wxScrollbar and wxSlider event identifiers -extern const int wxEVT_SCROLL_TOP; -extern const int wxEVT_SCROLL_BOTTOM; -extern const int wxEVT_SCROLL_LINEUP; -extern const int wxEVT_SCROLL_LINEDOWN; -extern const int wxEVT_SCROLL_PAGEUP; -extern const int wxEVT_SCROLL_PAGEDOWN; -extern const int wxEVT_SCROLL_THUMBTRACK; -extern const int wxEVT_SCROLL_THUMBRELEASE; +extern wxEventType wxEVT_SCROLL_TOP; +extern wxEventType wxEVT_SCROLL_BOTTOM; +extern wxEventType wxEVT_SCROLL_LINEUP; +extern wxEventType wxEVT_SCROLL_LINEDOWN; +extern wxEventType wxEVT_SCROLL_PAGEUP; +extern wxEventType wxEVT_SCROLL_PAGEDOWN; +extern wxEventType wxEVT_SCROLL_THUMBTRACK; +extern wxEventType wxEVT_SCROLL_THUMBRELEASE; // Scroll events from wxWindow -extern const int wxEVT_SCROLLWIN_TOP; -extern const int wxEVT_SCROLLWIN_BOTTOM; -extern const int wxEVT_SCROLLWIN_LINEUP; -extern const int wxEVT_SCROLLWIN_LINEDOWN; -extern const int wxEVT_SCROLLWIN_PAGEUP; -extern const int wxEVT_SCROLLWIN_PAGEDOWN; -extern const int wxEVT_SCROLLWIN_THUMBTRACK; -extern const int wxEVT_SCROLLWIN_THUMBRELEASE; +extern wxEventType wxEVT_SCROLLWIN_TOP; +extern wxEventType wxEVT_SCROLLWIN_BOTTOM; +extern wxEventType wxEVT_SCROLLWIN_LINEUP; +extern wxEventType wxEVT_SCROLLWIN_LINEDOWN; +extern wxEventType wxEVT_SCROLLWIN_PAGEUP; +extern wxEventType wxEVT_SCROLLWIN_PAGEDOWN; +extern wxEventType wxEVT_SCROLLWIN_THUMBTRACK; +extern wxEventType wxEVT_SCROLLWIN_THUMBRELEASE; // System events -extern const int wxEVT_SIZE; -extern const int wxEVT_MOVE; -extern const int wxEVT_CLOSE_WINDOW; -extern const int wxEVT_END_SESSION; -extern const int wxEVT_QUERY_END_SESSION; -extern const int wxEVT_ACTIVATE_APP; -extern const int wxEVT_POWER; -extern const int wxEVT_ACTIVATE; -extern const int wxEVT_CREATE; -extern const int wxEVT_DESTROY; -extern const int wxEVT_SHOW; -extern const int wxEVT_ICONIZE; -extern const int wxEVT_MAXIMIZE; -extern const int wxEVT_MOUSE_CAPTURE_CHANGED; -extern const int wxEVT_PAINT; -extern const int wxEVT_ERASE_BACKGROUND; -extern const int wxEVT_NC_PAINT; -extern const int wxEVT_PAINT_ICON; -extern const int wxEVT_MENU_CHAR; -extern const int wxEVT_MENU_INIT; -extern const int wxEVT_MENU_HIGHLIGHT; -extern const int wxEVT_POPUP_MENU_INIT; -extern const int wxEVT_CONTEXT_MENU; -extern const int wxEVT_SYS_COLOUR_CHANGED; -extern const int wxEVT_SETTING_CHANGED; -extern const int wxEVT_QUERY_NEW_PALETTE; -extern const int wxEVT_PALETTE_CHANGED; -extern const int wxEVT_JOY_BUTTON_DOWN; -extern const int wxEVT_JOY_BUTTON_UP; -extern const int wxEVT_JOY_MOVE; -extern const int wxEVT_JOY_ZMOVE; -extern const int wxEVT_DROP_FILES; -extern const int wxEVT_DRAW_ITEM; -extern const int wxEVT_MEASURE_ITEM; -extern const int wxEVT_COMPARE_ITEM; -extern const int wxEVT_INIT_DIALOG; -extern const int wxEVT_IDLE; -extern const int wxEVT_UPDATE_UI; +extern wxEventType wxEVT_SIZE; +extern wxEventType wxEVT_MOVE; +extern wxEventType wxEVT_CLOSE_WINDOW; +extern wxEventType wxEVT_END_SESSION; +extern wxEventType wxEVT_QUERY_END_SESSION; +extern wxEventType wxEVT_ACTIVATE_APP; +extern wxEventType wxEVT_POWER; +extern wxEventType wxEVT_ACTIVATE; +extern wxEventType wxEVT_CREATE; +extern wxEventType wxEVT_DESTROY; +extern wxEventType wxEVT_SHOW; +extern wxEventType wxEVT_ICONIZE; +extern wxEventType wxEVT_MAXIMIZE; +extern wxEventType wxEVT_MOUSE_CAPTURE_CHANGED; +extern wxEventType wxEVT_PAINT; +extern wxEventType wxEVT_ERASE_BACKGROUND; +extern wxEventType wxEVT_NC_PAINT; +extern wxEventType wxEVT_PAINT_ICON; +extern wxEventType wxEVT_MENU_CHAR; +extern wxEventType wxEVT_MENU_INIT; +extern wxEventType wxEVT_MENU_HIGHLIGHT; +extern wxEventType wxEVT_POPUP_MENU_INIT; +extern wxEventType wxEVT_CONTEXT_MENU; +extern wxEventType wxEVT_SYS_COLOUR_CHANGED; +extern wxEventType wxEVT_SETTING_CHANGED; +extern wxEventType wxEVT_QUERY_NEW_PALETTE; +extern wxEventType wxEVT_PALETTE_CHANGED; +extern wxEventType wxEVT_JOY_BUTTON_DOWN; +extern wxEventType wxEVT_JOY_BUTTON_UP; +extern wxEventType wxEVT_JOY_MOVE; +extern wxEventType wxEVT_JOY_ZMOVE; +extern wxEventType wxEVT_DROP_FILES; +extern wxEventType wxEVT_DRAW_ITEM; +extern wxEventType wxEVT_MEASURE_ITEM; +extern wxEventType wxEVT_COMPARE_ITEM; +extern wxEventType wxEVT_INIT_DIALOG; +extern wxEventType wxEVT_IDLE; +extern wxEventType wxEVT_UPDATE_UI; // System misc. -extern const int wxEVT_END_PROCESS; +extern wxEventType wxEVT_END_PROCESS; // Dial up events -extern const int wxEVT_DIALUP_CONNECTED; -extern const int wxEVT_DIALUP_DISCONNECTED; +extern wxEventType wxEVT_DIALUP_CONNECTED; +extern wxEventType wxEVT_DIALUP_DISCONNECTED; // Generic command events // Note: a click is a higher-level event than button down/up -extern const int wxEVT_COMMAND_LEFT_CLICK; -extern const int wxEVT_COMMAND_LEFT_DCLICK; -extern const int wxEVT_COMMAND_RIGHT_CLICK; -extern const int wxEVT_COMMAND_RIGHT_DCLICK; -extern const int wxEVT_COMMAND_SET_FOCUS; -extern const int wxEVT_COMMAND_KILL_FOCUS; -extern const int wxEVT_COMMAND_ENTER; +extern wxEventType wxEVT_COMMAND_LEFT_CLICK; +extern wxEventType wxEVT_COMMAND_LEFT_DCLICK; +extern wxEventType wxEVT_COMMAND_RIGHT_CLICK; +extern wxEventType wxEVT_COMMAND_RIGHT_DCLICK; +extern wxEventType wxEVT_COMMAND_SET_FOCUS; +extern wxEventType wxEVT_COMMAND_KILL_FOCUS; +extern wxEventType wxEVT_COMMAND_ENTER; // Tree control event types -extern const int wxEVT_COMMAND_TREE_BEGIN_DRAG; -extern const int wxEVT_COMMAND_TREE_BEGIN_RDRAG; -extern const int wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT; -extern const int wxEVT_COMMAND_TREE_END_LABEL_EDIT; -extern const int wxEVT_COMMAND_TREE_DELETE_ITEM; -extern const int wxEVT_COMMAND_TREE_GET_INFO; -extern const int wxEVT_COMMAND_TREE_SET_INFO; -extern const int wxEVT_COMMAND_TREE_ITEM_EXPANDED; -extern const int wxEVT_COMMAND_TREE_ITEM_EXPANDING; -extern const int wxEVT_COMMAND_TREE_ITEM_COLLAPSED; -extern const int wxEVT_COMMAND_TREE_ITEM_COLLAPSING; -extern const int wxEVT_COMMAND_TREE_SEL_CHANGED; -extern const int wxEVT_COMMAND_TREE_SEL_CHANGING; -extern const int wxEVT_COMMAND_TREE_KEY_DOWN; -extern const int wxEVT_COMMAND_TREE_ITEM_ACTIVATED; -extern const int wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK; -extern const int wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK; -extern const int wxEVT_COMMAND_TREE_END_DRAG; +extern wxEventType wxEVT_COMMAND_TREE_BEGIN_DRAG; +extern wxEventType wxEVT_COMMAND_TREE_BEGIN_RDRAG; +extern wxEventType wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT; +extern wxEventType wxEVT_COMMAND_TREE_END_LABEL_EDIT; +extern wxEventType wxEVT_COMMAND_TREE_DELETE_ITEM; +extern wxEventType wxEVT_COMMAND_TREE_GET_INFO; +extern wxEventType wxEVT_COMMAND_TREE_SET_INFO; +extern wxEventType wxEVT_COMMAND_TREE_ITEM_EXPANDED; +extern wxEventType wxEVT_COMMAND_TREE_ITEM_EXPANDING; +extern wxEventType wxEVT_COMMAND_TREE_ITEM_COLLAPSED; +extern wxEventType wxEVT_COMMAND_TREE_ITEM_COLLAPSING; +extern wxEventType wxEVT_COMMAND_TREE_SEL_CHANGED; +extern wxEventType wxEVT_COMMAND_TREE_SEL_CHANGING; +extern wxEventType wxEVT_COMMAND_TREE_KEY_DOWN; +extern wxEventType wxEVT_COMMAND_TREE_ITEM_ACTIVATED; +extern wxEventType wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK; +extern wxEventType wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK; +extern wxEventType wxEVT_COMMAND_TREE_END_DRAG; // List control event types -extern const int wxEVT_COMMAND_LIST_BEGIN_DRAG; -extern const int wxEVT_COMMAND_LIST_BEGIN_RDRAG; -extern const int wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT; -extern const int wxEVT_COMMAND_LIST_END_LABEL_EDIT; -extern const int wxEVT_COMMAND_LIST_DELETE_ITEM; -extern const int wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS; -extern const int wxEVT_COMMAND_LIST_GET_INFO; -extern const int wxEVT_COMMAND_LIST_SET_INFO; -extern const int wxEVT_COMMAND_LIST_ITEM_SELECTED; -extern const int wxEVT_COMMAND_LIST_ITEM_DESELECTED; -extern const int wxEVT_COMMAND_LIST_KEY_DOWN; -extern const int wxEVT_COMMAND_LIST_INSERT_ITEM; -extern const int wxEVT_COMMAND_LIST_COL_CLICK; -extern const int wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK; -extern const int wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK; -extern const int wxEVT_COMMAND_LIST_ITEM_ACTIVATED; +extern wxEventType wxEVT_COMMAND_LIST_BEGIN_DRAG; +extern wxEventType wxEVT_COMMAND_LIST_BEGIN_RDRAG; +extern wxEventType wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT; +extern wxEventType wxEVT_COMMAND_LIST_END_LABEL_EDIT; +extern wxEventType wxEVT_COMMAND_LIST_DELETE_ITEM; +extern wxEventType wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS; +extern wxEventType wxEVT_COMMAND_LIST_GET_INFO; +extern wxEventType wxEVT_COMMAND_LIST_SET_INFO; +extern wxEventType wxEVT_COMMAND_LIST_ITEM_SELECTED; +extern wxEventType wxEVT_COMMAND_LIST_ITEM_DESELECTED; +extern wxEventType wxEVT_COMMAND_LIST_KEY_DOWN; +extern wxEventType wxEVT_COMMAND_LIST_INSERT_ITEM; +extern wxEventType wxEVT_COMMAND_LIST_COL_CLICK; +extern wxEventType wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK; +extern wxEventType wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK; +extern wxEventType wxEVT_COMMAND_LIST_ITEM_ACTIVATED; // Tab and notebook control event types -extern const int wxEVT_COMMAND_TAB_SEL_CHANGED; -extern const int wxEVT_COMMAND_TAB_SEL_CHANGING; -extern const int wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED; -extern const int wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING; +extern wxEventType wxEVT_COMMAND_TAB_SEL_CHANGED; +extern wxEventType wxEVT_COMMAND_TAB_SEL_CHANGING; +extern wxEventType wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED; +extern wxEventType wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING; // Splitter events -extern const int wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED; -extern const int wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING; -extern const int wxEVT_COMMAND_SPLITTER_DOUBLECLICKED; -extern const int wxEVT_COMMAND_SPLITTER_UNSPLIT; +extern wxEventType wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED; +extern wxEventType wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING; +extern wxEventType wxEVT_COMMAND_SPLITTER_DOUBLECLICKED; +extern wxEventType wxEVT_COMMAND_SPLITTER_UNSPLIT; // Wizard events -extern const int wxEVT_WIZARD_PAGE_CHANGED; -extern const int wxEVT_WIZARD_PAGE_CHANGING; -extern const int wxEVT_WIZARD_CANCEL; +extern wxEventType wxEVT_WIZARD_PAGE_CHANGED; +extern wxEventType wxEVT_WIZARD_PAGE_CHANGING; +extern wxEventType wxEVT_WIZARD_CANCEL; // Calendar events -extern const int wxEVT_CALENDAR_SEL_CHANGED; -extern const int wxEVT_CALENDAR_DAY_CHANGED; -extern const int wxEVT_CALENDAR_MONTH_CHANGED; -extern const int wxEVT_CALENDAR_YEAR_CHANGED; -extern const int wxEVT_CALENDAR_DOUBLECLICKED; -extern const int wxEVT_CALENDAR_WEEKDAY_CLICKED; +extern wxEventType wxEVT_CALENDAR_SEL_CHANGED; +extern wxEventType wxEVT_CALENDAR_DAY_CHANGED; +extern wxEventType wxEVT_CALENDAR_MONTH_CHANGED; +extern wxEventType wxEVT_CALENDAR_YEAR_CHANGED; +extern wxEventType wxEVT_CALENDAR_DOUBLECLICKED; +extern wxEventType wxEVT_CALENDAR_WEEKDAY_CLICKED; // Help events -extern const int wxEVT_HELP; -extern const int wxEVT_DETAILED_HELP; +extern wxEventType wxEVT_HELP; +extern wxEventType wxEVT_DETAILED_HELP; // Compatibility @@ -1454,21 +1454,10 @@ typedef void (wxObject::*wxObjectEventFunction)(wxEvent&); struct WXDLLEXPORT wxEventTableEntry { - wxEventTableEntry( const int &eventType, - int id, - int lastId, - wxObjectEventFunction fn, - wxObject *data ) : - m_eventType(eventType) - { - m_id = id; - m_lastId = lastId; - m_fn = fn; - m_callbackUserData = data; - } + wxEventTableEntry(int evType, int id, int idLast, + wxObjectEventFunction fn, wxObject *data); - // For some reason, this can't be wxEventType, or VC++ complains. - int m_eventType; // main event type + int m_eventType; // the event type int m_id; // control/menu/toolbar id int m_lastId; // used for ranges of ids wxObjectEventFunction m_fn; // function to call: not wxEventFunction, @@ -1477,22 +1466,19 @@ struct WXDLLEXPORT wxEventTableEntry wxObject* m_callbackUserData; }; -struct WXDLLEXPORT wxDynamicEventTableEntry +struct WXDLLEXPORT wxDynamicEventTableEntry : public wxEventTableEntry { - // For some reason, this can't be wxEventType, or VC++ complains. - int m_eventType; // main event type - int m_id; // control/menu/toolbar id - int m_lastId; // used for ranges of ids - wxObjectEventFunction m_fn; // function to call: not wxEventFunction, - // because of dependency problems - - wxObject* m_callbackUserData; + wxDynamicEventTableEntry(int evType, int id, int idLast, + wxObjectEventFunction fn, wxObject *data) + : wxEventTableEntry(evType, id, idLast, fn, data) + { + } }; struct WXDLLEXPORT wxEventTable { - const wxEventTable *baseTable; // Points to base event table (next in chain) - const wxEventTableEntry *entries; // Points to bottom of entry array + const wxEventTable *baseTable; // base event table (next in chain) + const wxEventTableEntry *entries; // bottom of entry array }; class WXDLLEXPORT wxEvtHandler : public wxObject diff --git a/include/wx/generic/gridg.h b/include/wx/generic/gridg.h index 9e0278cfab..110176f7f4 100644 --- a/include/wx/generic/gridg.h +++ b/include/wx/generic/gridg.h @@ -410,15 +410,15 @@ const wxEventType wxEVT_GRID_LABEL_RCLICK = wxEVT_FIRST + 1583; typedef void (wxEvtHandler::*wxGridEventFunction)(wxGridEvent&); -#define EVT_GRID_SELECT_CELL(fn) { wxEVT_GRID_SELECT_CELL, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL }, -#define EVT_GRID_CREATE_CELL(fn) { wxEVT_GRID_CREATE_CELL, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL }, -#define EVT_GRID_CHANGE_LABELS(fn) { wxEVT_GRID_CHANGE_LABELS, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL }, -#define EVT_GRID_CHANGE_SEL_LABEL(fn) { wxEVT_GRID_CHANGE_SEL_LABEL, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL }, -#define EVT_GRID_CELL_CHANGE(fn) { wxEVT_GRID_CELL_CHANGE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL }, -#define EVT_GRID_CELL_LCLICK(fn) { wxEVT_GRID_CELL_LCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL }, -#define EVT_GRID_CELL_RCLICK(fn) { wxEVT_GRID_CELL_RCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL }, -#define EVT_GRID_LABEL_LCLICK(fn) { wxEVT_GRID_LABEL_LCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL }, -#define EVT_GRID_LABEL_RCLICK(fn) { wxEVT_GRID_LABEL_RCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL }, +#define EVT_GRID_SELECT_CELL(fn) wxEventTableEntry(wxEVT_GRID_SELECT_CELL, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL), +#define EVT_GRID_CREATE_CELL(fn) wxEventTableEntry(wxEVT_GRID_CREATE_CELL, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL), +#define EVT_GRID_CHANGE_LABELS(fn) wxEventTableEntry(wxEVT_GRID_CHANGE_LABELS, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL), +#define EVT_GRID_CHANGE_SEL_LABEL(fn) wxEventTableEntry(wxEVT_GRID_CHANGE_SEL_LABEL, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL), +#define EVT_GRID_CELL_CHANGE(fn) wxEventTableEntry(wxEVT_GRID_CELL_CHANGE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL), +#define EVT_GRID_CELL_LCLICK(fn) wxEventTableEntry(wxEVT_GRID_CELL_LCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL), +#define EVT_GRID_CELL_RCLICK(fn) wxEventTableEntry(wxEVT_GRID_CELL_RCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL), +#define EVT_GRID_LABEL_LCLICK(fn) wxEventTableEntry(wxEVT_GRID_LABEL_LCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL), +#define EVT_GRID_LABEL_RCLICK(fn) wxEventTableEntry(wxEVT_GRID_LABEL_RCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL), #endif // __GRIDH_G__ diff --git a/include/wx/motif/tabctrl.h b/include/wx/motif/tabctrl.h index c7ffd57bf7..1cf660b6b1 100644 --- a/include/wx/motif/tabctrl.h +++ b/include/wx/motif/tabctrl.h @@ -129,10 +129,10 @@ class WXDLLEXPORT wxTabEvent: public wxCommandEvent typedef void (wxEvtHandler::*wxTabEventFunction)(wxTabEvent&); -#define EVT_TAB_SEL_CHANGED(id, fn) { wxEVT_COMMAND_TAB_SEL_CHANGED, \ - id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTabEventFunction) & fn, NULL }, -#define EVT_TAB_SEL_CHANGING(id, fn) { wxEVT_COMMAND_TAB_SEL_CHANGING, \ - id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTabEventFunction) & fn, NULL }, +#define EVT_TAB_SEL_CHANGED(id, fn) wxEventTableEntry(wxEVT_COMMAND_TAB_SEL_CHANGED, \ + id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTabEventFunction) & fn, NULL ), +#define EVT_TAB_SEL_CHANGING(id, fn) wxEventTableEntry(wxEVT_COMMAND_TAB_SEL_CHANGING, \ + id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTabEventFunction) & fn, NULL ), #endif // _WX_TABCTRL_H_ diff --git a/include/wx/msw/tabctrl.h b/include/wx/msw/tabctrl.h index c193c9d44c..9989b5ffc7 100644 --- a/include/wx/msw/tabctrl.h +++ b/include/wx/msw/tabctrl.h @@ -136,10 +136,10 @@ class WXDLLEXPORT wxTabEvent: public wxCommandEvent typedef void (wxEvtHandler::*wxTabEventFunction)(wxTabEvent&); -#define EVT_TAB_SEL_CHANGED(id, fn) { wxEVT_COMMAND_TAB_SEL_CHANGED, \ - id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTabEventFunction) & fn, NULL }, -#define EVT_TAB_SEL_CHANGING(id, fn) { wxEVT_COMMAND_TAB_SEL_CHANGING, \ - id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTabEventFunction) & fn, NULL }, +#define EVT_TAB_SEL_CHANGED(id, fn) wxEventTableEntry(wxEVT_COMMAND_TAB_SEL_CHANGED, \ + id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTabEventFunction) & fn, NULL), +#define EVT_TAB_SEL_CHANGING(id, fn) wxEventTableEntry(wxEVT_COMMAND_TAB_SEL_CHANGING, \ + id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTabEventFunction) & fn, NULL), #endif // _WX_TABCTRL_H_ diff --git a/include/wx/msw/taskbar.h b/include/wx/msw/taskbar.h index 966f030ee8..ae55f9971f 100644 --- a/include/wx/msw/taskbar.h +++ b/include/wx/msw/taskbar.h @@ -86,13 +86,13 @@ const wxEventType wxEVT_TASKBAR_LEFT_DCLICK = wxEVT_FIRST + 1555; const wxEventType wxEVT_TASKBAR_RIGHT_DCLICK = wxEVT_FIRST + 1556; -#define EVT_TASKBAR_MOVE(fn) { wxEVT_TASKBAR_MOVE, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL }, -#define EVT_TASKBAR_LEFT_DOWN(fn) { wxEVT_TASKBAR_LEFT_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL }, -#define EVT_TASKBAR_LEFT_UP(fn) { wxEVT_TASKBAR_LEFT_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL }, -#define EVT_TASKBAR_RIGHT_DOWN(fn) { wxEVT_TASKBAR_RIGHT_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL }, -#define EVT_TASKBAR_RIGHT_UP(fn) { wxEVT_TASKBAR_RIGHT_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL }, -#define EVT_TASKBAR_LEFT_DCLICK(fn) { wxEVT_TASKBAR_LEFT_DCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL }, -#define EVT_TASKBAR_RIGHT_DCLICK(fn) { wxEVT_TASKBAR_RIGHT_DCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL }, +#define EVT_TASKBAR_MOVE(fn) wxEventTableEntry(wxEVT_TASKBAR_MOVE, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL), +#define EVT_TASKBAR_LEFT_DOWN(fn) wxEventTableEntry(wxEVT_TASKBAR_LEFT_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL), +#define EVT_TASKBAR_LEFT_UP(fn) wxEventTableEntry(wxEVT_TASKBAR_LEFT_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL), +#define EVT_TASKBAR_RIGHT_DOWN(fn) wxEventTableEntry(wxEVT_TASKBAR_RIGHT_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL), +#define EVT_TASKBAR_RIGHT_UP(fn) wxEventTableEntry(wxEVT_TASKBAR_RIGHT_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL), +#define EVT_TASKBAR_LEFT_DCLICK(fn) wxEventTableEntry(wxEVT_TASKBAR_LEFT_DCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL), +#define EVT_TASKBAR_RIGHT_DCLICK(fn) wxEventTableEntry(wxEVT_TASKBAR_RIGHT_DCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL), #endif diff --git a/include/wx/wizard.h b/include/wx/wizard.h index ec311b7cb9..6ad0c43140 100644 --- a/include/wx/wizard.h +++ b/include/wx/wizard.h @@ -178,14 +178,14 @@ private: typedef void (wxEvtHandler::*wxWizardEventFunction)(wxWizardEvent&); // notifies that the page has just been changed (can't be vetoed) -#define EVT_WIZARD_PAGE_CHANGED(id, fn) { wxEVT_WIZARD_PAGE_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxWizardEventFunction) & fn, (wxObject *)NULL }, +#define EVT_WIZARD_PAGE_CHANGED(id, fn) wxEventTableEntry(wxEVT_WIZARD_PAGE_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxWizardEventFunction) & fn, (wxObject *)NULL), // the user pressed "" button and the page is going to be // changed - unless the event handler vetoes the event -#define EVT_WIZARD_PAGE_CHANGING(id, fn) { wxEVT_WIZARD_PAGE_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxWizardEventFunction) & fn, (wxObject *)NULL }, +#define EVT_WIZARD_PAGE_CHANGING(id, fn) wxEventTableEntry(wxEVT_WIZARD_PAGE_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxWizardEventFunction) & fn, (wxObject *)NULL), // the user pressed "Cancel" button and the wizard is going to be dismissed - // unless the event handler vetoes the event -#define EVT_WIZARD_CANCEL(id, fn) { wxEVT_WIZARD_CANCEL, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxWizardEventFunction) & fn, (wxObject *)NULL }, +#define EVT_WIZARD_CANCEL(id, fn) wxEventTableEntry(wxEVT_WIZARD_CANCEL, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxWizardEventFunction) & fn, (wxObject *)NULL), #endif // _WX_WIZARD_H_ diff --git a/src/common/event.cpp b/src/common/event.cpp index 297e223555..89a55d9a7e 100644 --- a/src/common/event.cpp +++ b/src/common/event.cpp @@ -50,223 +50,8 @@ // events // ---------------------------------------------------------------------------- -int wxNewEventType() -{ - static int wxCurrentEventType = 10000; - - return wxCurrentEventType++; -} - -const int wxEVT_NULL = 0; -const int wxEVT_FIRST = 10000; - -const int wxEVT_COMMAND_BUTTON_CLICKED = wxNewEventType(); -const int wxEVT_COMMAND_CHECKBOX_CLICKED = wxNewEventType(); -const int wxEVT_COMMAND_CHOICE_SELECTED = wxNewEventType(); -const int wxEVT_COMMAND_LISTBOX_SELECTED = wxNewEventType(); -const int wxEVT_COMMAND_LISTBOX_DOUBLECLICKED = wxNewEventType(); -const int wxEVT_COMMAND_CHECKLISTBOX_TOGGLED = wxNewEventType(); -const int wxEVT_COMMAND_TEXT_UPDATED = wxNewEventType(); -const int wxEVT_COMMAND_TEXT_ENTER = wxNewEventType(); -const int wxEVT_COMMAND_MENU_SELECTED = wxNewEventType(); -const int wxEVT_COMMAND_TOOL_CLICKED = wxNewEventType(); -const int wxEVT_COMMAND_SLIDER_UPDATED = wxNewEventType(); -const int wxEVT_COMMAND_RADIOBOX_SELECTED = wxNewEventType(); -const int wxEVT_COMMAND_RADIOBUTTON_SELECTED = wxNewEventType(); -const int wxEVT_COMMAND_SCROLLBAR_UPDATED = wxNewEventType(); -const int wxEVT_COMMAND_VLBOX_SELECTED = wxNewEventType(); -const int wxEVT_COMMAND_COMBOBOX_SELECTED = wxNewEventType(); -const int wxEVT_COMMAND_TOOL_RCLICKED = wxNewEventType(); -const int wxEVT_COMMAND_TOOL_ENTER = wxNewEventType(); -const int wxEVT_COMMAND_SPINCTRL_UPDATED = wxNewEventType(); - -// Sockets and timers send events, too -const int wxEVT_SOCKET = wxNewEventType(); -const int wxEVT_TIMER = wxNewEventType(); - -// Mouse event types -const int wxEVT_LEFT_DOWN = wxNewEventType(); -const int wxEVT_LEFT_UP = wxNewEventType(); -const int wxEVT_MIDDLE_DOWN = wxNewEventType(); -const int wxEVT_MIDDLE_UP = wxNewEventType(); -const int wxEVT_RIGHT_DOWN = wxNewEventType(); -const int wxEVT_RIGHT_UP = wxNewEventType(); -const int wxEVT_MOTION = wxNewEventType(); -const int wxEVT_ENTER_WINDOW = wxNewEventType(); -const int wxEVT_LEAVE_WINDOW = wxNewEventType(); -const int wxEVT_LEFT_DCLICK = wxNewEventType(); -const int wxEVT_MIDDLE_DCLICK = wxNewEventType(); -const int wxEVT_RIGHT_DCLICK = wxNewEventType(); -const int wxEVT_SET_FOCUS = wxNewEventType(); -const int wxEVT_KILL_FOCUS = wxNewEventType(); - -// Non-client mouse events -const int wxEVT_NC_LEFT_DOWN = wxNewEventType(); -const int wxEVT_NC_LEFT_UP = wxNewEventType(); -const int wxEVT_NC_MIDDLE_DOWN = wxNewEventType(); -const int wxEVT_NC_MIDDLE_UP = wxNewEventType(); -const int wxEVT_NC_RIGHT_DOWN = wxNewEventType(); -const int wxEVT_NC_RIGHT_UP = wxNewEventType(); -const int wxEVT_NC_MOTION = wxNewEventType(); -const int wxEVT_NC_ENTER_WINDOW = wxNewEventType(); -const int wxEVT_NC_LEAVE_WINDOW = wxNewEventType(); -const int wxEVT_NC_LEFT_DCLICK = wxNewEventType(); -const int wxEVT_NC_MIDDLE_DCLICK = wxNewEventType(); -const int wxEVT_NC_RIGHT_DCLICK = wxNewEventType(); - -// Character input event type -const int wxEVT_CHAR = wxNewEventType(); -const int wxEVT_CHAR_HOOK = wxNewEventType(); -const int wxEVT_NAVIGATION_KEY = wxNewEventType(); -const int wxEVT_KEY_DOWN = wxNewEventType(); -const int wxEVT_KEY_UP = wxNewEventType(); - -// Set cursor event -const int wxEVT_SET_CURSOR = wxNewEventType(); - -// wxScrollbar and wxSlider event identifiers -const int wxEVT_SCROLL_TOP = wxNewEventType(); -const int wxEVT_SCROLL_BOTTOM = wxNewEventType(); -const int wxEVT_SCROLL_LINEUP = wxNewEventType(); -const int wxEVT_SCROLL_LINEDOWN = wxNewEventType(); -const int wxEVT_SCROLL_PAGEUP = wxNewEventType(); -const int wxEVT_SCROLL_PAGEDOWN = wxNewEventType(); -const int wxEVT_SCROLL_THUMBTRACK = wxNewEventType(); -const int wxEVT_SCROLL_THUMBRELEASE = wxNewEventType(); - -// Scroll events from wxWindow -const int wxEVT_SCROLLWIN_TOP = wxNewEventType(); -const int wxEVT_SCROLLWIN_BOTTOM = wxNewEventType(); -const int wxEVT_SCROLLWIN_LINEUP = wxNewEventType(); -const int wxEVT_SCROLLWIN_LINEDOWN = wxNewEventType(); -const int wxEVT_SCROLLWIN_PAGEUP = wxNewEventType(); -const int wxEVT_SCROLLWIN_PAGEDOWN = wxNewEventType(); -const int wxEVT_SCROLLWIN_THUMBTRACK = wxNewEventType(); -const int wxEVT_SCROLLWIN_THUMBRELEASE = wxNewEventType(); - -// System events -const int wxEVT_SIZE = wxNewEventType(); -const int wxEVT_MOVE = wxNewEventType(); -const int wxEVT_CLOSE_WINDOW = wxNewEventType(); -const int wxEVT_END_SESSION = wxNewEventType(); -const int wxEVT_QUERY_END_SESSION = wxNewEventType(); -const int wxEVT_ACTIVATE_APP = wxNewEventType(); -const int wxEVT_POWER = wxNewEventType(); -const int wxEVT_ACTIVATE = wxNewEventType(); -const int wxEVT_CREATE = wxNewEventType(); -const int wxEVT_DESTROY = wxNewEventType(); -const int wxEVT_SHOW = wxNewEventType(); -const int wxEVT_ICONIZE = wxNewEventType(); -const int wxEVT_MAXIMIZE = wxNewEventType(); -const int wxEVT_MOUSE_CAPTURE_CHANGED = wxNewEventType(); -const int wxEVT_PAINT = wxNewEventType(); -const int wxEVT_ERASE_BACKGROUND = wxNewEventType(); -const int wxEVT_NC_PAINT = wxNewEventType(); -const int wxEVT_PAINT_ICON = wxNewEventType(); -const int wxEVT_MENU_CHAR = wxNewEventType(); -const int wxEVT_MENU_INIT = wxNewEventType(); -const int wxEVT_MENU_HIGHLIGHT = wxNewEventType(); -const int wxEVT_POPUP_MENU_INIT = wxNewEventType(); -const int wxEVT_CONTEXT_MENU = wxNewEventType(); -const int wxEVT_SYS_COLOUR_CHANGED = wxNewEventType(); -const int wxEVT_SETTING_CHANGED = wxNewEventType(); -const int wxEVT_QUERY_NEW_PALETTE = wxNewEventType(); -const int wxEVT_PALETTE_CHANGED = wxNewEventType(); -const int wxEVT_JOY_BUTTON_DOWN = wxNewEventType(); -const int wxEVT_JOY_BUTTON_UP = wxNewEventType(); -const int wxEVT_JOY_MOVE = wxNewEventType(); -const int wxEVT_JOY_ZMOVE = wxNewEventType(); -const int wxEVT_DROP_FILES = wxNewEventType(); -const int wxEVT_DRAW_ITEM = wxNewEventType(); -const int wxEVT_MEASURE_ITEM = wxNewEventType(); -const int wxEVT_COMPARE_ITEM = wxNewEventType(); -const int wxEVT_INIT_DIALOG = wxNewEventType(); -const int wxEVT_IDLE = wxNewEventType(); -const int wxEVT_UPDATE_UI = wxNewEventType(); - -// System misc. -const int wxEVT_END_PROCESS = wxNewEventType(); - -// Dial up events -const int wxEVT_DIALUP_CONNECTED = wxNewEventType(); -const int wxEVT_DIALUP_DISCONNECTED = wxNewEventType(); - -// Generic command events -// Note: a click is a higher-level event than button down/up -const int wxEVT_COMMAND_LEFT_CLICK = wxNewEventType(); -const int wxEVT_COMMAND_LEFT_DCLICK = wxNewEventType(); -const int wxEVT_COMMAND_RIGHT_CLICK = wxNewEventType(); -const int wxEVT_COMMAND_RIGHT_DCLICK = wxNewEventType(); -const int wxEVT_COMMAND_SET_FOCUS = wxNewEventType(); -const int wxEVT_COMMAND_KILL_FOCUS = wxNewEventType(); -const int wxEVT_COMMAND_ENTER = wxNewEventType(); - -// Tree control event types -const int wxEVT_COMMAND_TREE_BEGIN_DRAG = wxNewEventType(); -const int wxEVT_COMMAND_TREE_BEGIN_RDRAG = wxNewEventType(); -const int wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT = wxNewEventType(); -const int wxEVT_COMMAND_TREE_END_LABEL_EDIT = wxNewEventType(); -const int wxEVT_COMMAND_TREE_DELETE_ITEM = wxNewEventType(); -const int wxEVT_COMMAND_TREE_GET_INFO = wxNewEventType(); -const int wxEVT_COMMAND_TREE_SET_INFO = wxNewEventType(); -const int wxEVT_COMMAND_TREE_ITEM_EXPANDED = wxNewEventType(); -const int wxEVT_COMMAND_TREE_ITEM_EXPANDING = wxNewEventType(); -const int wxEVT_COMMAND_TREE_ITEM_COLLAPSED = wxNewEventType(); -const int wxEVT_COMMAND_TREE_ITEM_COLLAPSING = wxNewEventType(); -const int wxEVT_COMMAND_TREE_SEL_CHANGED = wxNewEventType(); -const int wxEVT_COMMAND_TREE_SEL_CHANGING = wxNewEventType(); -const int wxEVT_COMMAND_TREE_KEY_DOWN = wxNewEventType(); -const int wxEVT_COMMAND_TREE_ITEM_ACTIVATED = wxNewEventType(); -const int wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK = wxNewEventType(); -const int wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK = wxNewEventType(); -const int wxEVT_COMMAND_TREE_END_DRAG = wxNewEventType(); - -// List control event types -const int wxEVT_COMMAND_LIST_BEGIN_DRAG = wxNewEventType(); -const int wxEVT_COMMAND_LIST_BEGIN_RDRAG = wxNewEventType(); -const int wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT = wxNewEventType(); -const int wxEVT_COMMAND_LIST_END_LABEL_EDIT = wxNewEventType(); -const int wxEVT_COMMAND_LIST_DELETE_ITEM = wxNewEventType(); -const int wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS = wxNewEventType(); -const int wxEVT_COMMAND_LIST_GET_INFO = wxNewEventType(); -const int wxEVT_COMMAND_LIST_SET_INFO = wxNewEventType(); -const int wxEVT_COMMAND_LIST_ITEM_SELECTED = wxNewEventType(); -const int wxEVT_COMMAND_LIST_ITEM_DESELECTED = wxNewEventType(); -const int wxEVT_COMMAND_LIST_KEY_DOWN = wxNewEventType(); -const int wxEVT_COMMAND_LIST_INSERT_ITEM = wxNewEventType(); -const int wxEVT_COMMAND_LIST_COL_CLICK = wxNewEventType(); -const int wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK = wxNewEventType(); -const int wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK = wxNewEventType(); -const int wxEVT_COMMAND_LIST_ITEM_ACTIVATED = wxNewEventType(); - -// Tab and notebook control event types -const int wxEVT_COMMAND_TAB_SEL_CHANGED = wxNewEventType(); -const int wxEVT_COMMAND_TAB_SEL_CHANGING = wxNewEventType(); -const int wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED = wxNewEventType(); -const int wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING = wxNewEventType(); - -// Splitter events -const int wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED = wxNewEventType(); -const int wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING = wxNewEventType(); -const int wxEVT_COMMAND_SPLITTER_DOUBLECLICKED = wxNewEventType(); -const int wxEVT_COMMAND_SPLITTER_UNSPLIT = wxNewEventType(); - -// Wizard events -const int wxEVT_WIZARD_PAGE_CHANGED = wxNewEventType(); -const int wxEVT_WIZARD_PAGE_CHANGING = wxNewEventType(); -const int wxEVT_WIZARD_CANCEL = wxNewEventType(); - -// Calendar events -const int wxEVT_CALENDAR_SEL_CHANGED = wxNewEventType(); -const int wxEVT_CALENDAR_DAY_CHANGED = wxNewEventType(); -const int wxEVT_CALENDAR_MONTH_CHANGED = wxNewEventType(); -const int wxEVT_CALENDAR_YEAR_CHANGED = wxNewEventType(); -const int wxEVT_CALENDAR_DOUBLECLICKED = wxNewEventType(); -const int wxEVT_CALENDAR_WEEKDAY_CLICKED = wxNewEventType(); - -// Help events -const int wxEVT_HELP = wxNewEventType(); -const int wxEVT_DETAILED_HELP = wxNewEventType(); +wxEventType wxEVT_NULL = 0; +wxEventType wxEVT_FIRST = 10000; // ---------------------------------------------------------------------------- // wxWin macros @@ -314,8 +99,7 @@ const wxEventTable wxEvtHandler::sm_eventTable = { (const wxEventTable *)NULL, &wxEvtHandler::sm_eventTableEntries[0] }; const wxEventTableEntry wxEvtHandler::sm_eventTableEntries[] = - { wxEventTableEntry( 0, 0, 0, (wxObjectEventFunction) NULL, (wxObject*) NULL ) }; - + { wxEventTableEntry(0, 0, 0, (wxObjectEventFunction)NULL, NULL) }; // ---------------------------------------------------------------------------- // global variables @@ -329,10 +113,474 @@ wxList *wxPendingEvents = (wxList *)NULL; wxCriticalSection *wxPendingEventsLocker = (wxCriticalSection *)NULL; #endif +wxEventType wxEVT_COMMAND_BUTTON_CLICKED; +wxEventType wxEVT_COMMAND_CHECKBOX_CLICKED; +wxEventType wxEVT_COMMAND_CHOICE_SELECTED; +wxEventType wxEVT_COMMAND_LISTBOX_SELECTED; +wxEventType wxEVT_COMMAND_LISTBOX_DOUBLECLICKED; +wxEventType wxEVT_COMMAND_CHECKLISTBOX_TOGGLED; +wxEventType wxEVT_COMMAND_TEXT_UPDATED; +wxEventType wxEVT_COMMAND_TEXT_ENTER; +wxEventType wxEVT_COMMAND_MENU_SELECTED; +wxEventType wxEVT_COMMAND_TOOL_CLICKED; +wxEventType wxEVT_COMMAND_SLIDER_UPDATED; +wxEventType wxEVT_COMMAND_RADIOBOX_SELECTED; +wxEventType wxEVT_COMMAND_RADIOBUTTON_SELECTED; +wxEventType wxEVT_COMMAND_SCROLLBAR_UPDATED; +wxEventType wxEVT_COMMAND_VLBOX_SELECTED; +wxEventType wxEVT_COMMAND_COMBOBOX_SELECTED; +wxEventType wxEVT_COMMAND_TOOL_RCLICKED; +wxEventType wxEVT_COMMAND_TOOL_ENTER; +wxEventType wxEVT_COMMAND_SPINCTRL_UPDATED; + +// Sockets and timers send events, too +wxEventType wxEVT_SOCKET; +wxEventType wxEVT_TIMER; + +// Mouse event types +wxEventType wxEVT_LEFT_DOWN; +wxEventType wxEVT_LEFT_UP; +wxEventType wxEVT_MIDDLE_DOWN; +wxEventType wxEVT_MIDDLE_UP; +wxEventType wxEVT_RIGHT_DOWN; +wxEventType wxEVT_RIGHT_UP; +wxEventType wxEVT_MOTION; +wxEventType wxEVT_ENTER_WINDOW; +wxEventType wxEVT_LEAVE_WINDOW; +wxEventType wxEVT_LEFT_DCLICK; +wxEventType wxEVT_MIDDLE_DCLICK; +wxEventType wxEVT_RIGHT_DCLICK; +wxEventType wxEVT_SET_FOCUS; +wxEventType wxEVT_KILL_FOCUS; + +// Non-client mouse events +wxEventType wxEVT_NC_LEFT_DOWN; +wxEventType wxEVT_NC_LEFT_UP; +wxEventType wxEVT_NC_MIDDLE_DOWN; +wxEventType wxEVT_NC_MIDDLE_UP; +wxEventType wxEVT_NC_RIGHT_DOWN; +wxEventType wxEVT_NC_RIGHT_UP; +wxEventType wxEVT_NC_MOTION; +wxEventType wxEVT_NC_ENTER_WINDOW; +wxEventType wxEVT_NC_LEAVE_WINDOW; +wxEventType wxEVT_NC_LEFT_DCLICK; +wxEventType wxEVT_NC_MIDDLE_DCLICK; +wxEventType wxEVT_NC_RIGHT_DCLICK; + +// Character input event type +wxEventType wxEVT_CHAR; +wxEventType wxEVT_CHAR_HOOK; +wxEventType wxEVT_NAVIGATION_KEY; +wxEventType wxEVT_KEY_DOWN; +wxEventType wxEVT_KEY_UP; + +// Set cursor event +wxEventType wxEVT_SET_CURSOR; + +// wxScrollbar and wxSlider event identifiers +wxEventType wxEVT_SCROLL_TOP; +wxEventType wxEVT_SCROLL_BOTTOM; +wxEventType wxEVT_SCROLL_LINEUP; +wxEventType wxEVT_SCROLL_LINEDOWN; +wxEventType wxEVT_SCROLL_PAGEUP; +wxEventType wxEVT_SCROLL_PAGEDOWN; +wxEventType wxEVT_SCROLL_THUMBTRACK; +wxEventType wxEVT_SCROLL_THUMBRELEASE; + +// Scroll events from wxWindow +wxEventType wxEVT_SCROLLWIN_TOP; +wxEventType wxEVT_SCROLLWIN_BOTTOM; +wxEventType wxEVT_SCROLLWIN_LINEUP; +wxEventType wxEVT_SCROLLWIN_LINEDOWN; +wxEventType wxEVT_SCROLLWIN_PAGEUP; +wxEventType wxEVT_SCROLLWIN_PAGEDOWN; +wxEventType wxEVT_SCROLLWIN_THUMBTRACK; +wxEventType wxEVT_SCROLLWIN_THUMBRELEASE; + +// System events +wxEventType wxEVT_SIZE; +wxEventType wxEVT_MOVE; +wxEventType wxEVT_CLOSE_WINDOW; +wxEventType wxEVT_END_SESSION; +wxEventType wxEVT_QUERY_END_SESSION; +wxEventType wxEVT_ACTIVATE_APP; +wxEventType wxEVT_POWER; +wxEventType wxEVT_ACTIVATE; +wxEventType wxEVT_CREATE; +wxEventType wxEVT_DESTROY; +wxEventType wxEVT_SHOW; +wxEventType wxEVT_ICONIZE; +wxEventType wxEVT_MAXIMIZE; +wxEventType wxEVT_MOUSE_CAPTURE_CHANGED; +wxEventType wxEVT_PAINT; +wxEventType wxEVT_ERASE_BACKGROUND; +wxEventType wxEVT_NC_PAINT; +wxEventType wxEVT_PAINT_ICON; +wxEventType wxEVT_MENU_CHAR; +wxEventType wxEVT_MENU_INIT; +wxEventType wxEVT_MENU_HIGHLIGHT; +wxEventType wxEVT_POPUP_MENU_INIT; +wxEventType wxEVT_CONTEXT_MENU; +wxEventType wxEVT_SYS_COLOUR_CHANGED; +wxEventType wxEVT_SETTING_CHANGED; +wxEventType wxEVT_QUERY_NEW_PALETTE; +wxEventType wxEVT_PALETTE_CHANGED; +wxEventType wxEVT_JOY_BUTTON_DOWN; +wxEventType wxEVT_JOY_BUTTON_UP; +wxEventType wxEVT_JOY_MOVE; +wxEventType wxEVT_JOY_ZMOVE; +wxEventType wxEVT_DROP_FILES; +wxEventType wxEVT_DRAW_ITEM; +wxEventType wxEVT_MEASURE_ITEM; +wxEventType wxEVT_COMPARE_ITEM; +wxEventType wxEVT_INIT_DIALOG; +wxEventType wxEVT_IDLE; +wxEventType wxEVT_UPDATE_UI; + +// System misc. +wxEventType wxEVT_END_PROCESS; + +// Dial up events +wxEventType wxEVT_DIALUP_CONNECTED; +wxEventType wxEVT_DIALUP_DISCONNECTED; + +// Generic command events +// Note: a click is a higher-level event than button down/up +wxEventType wxEVT_COMMAND_LEFT_CLICK; +wxEventType wxEVT_COMMAND_LEFT_DCLICK; +wxEventType wxEVT_COMMAND_RIGHT_CLICK; +wxEventType wxEVT_COMMAND_RIGHT_DCLICK; +wxEventType wxEVT_COMMAND_SET_FOCUS; +wxEventType wxEVT_COMMAND_KILL_FOCUS; +wxEventType wxEVT_COMMAND_ENTER; + +// Tree control event types +wxEventType wxEVT_COMMAND_TREE_BEGIN_DRAG; +wxEventType wxEVT_COMMAND_TREE_BEGIN_RDRAG; +wxEventType wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT; +wxEventType wxEVT_COMMAND_TREE_END_LABEL_EDIT; +wxEventType wxEVT_COMMAND_TREE_DELETE_ITEM; +wxEventType wxEVT_COMMAND_TREE_GET_INFO; +wxEventType wxEVT_COMMAND_TREE_SET_INFO; +wxEventType wxEVT_COMMAND_TREE_ITEM_EXPANDED; +wxEventType wxEVT_COMMAND_TREE_ITEM_EXPANDING; +wxEventType wxEVT_COMMAND_TREE_ITEM_COLLAPSED; +wxEventType wxEVT_COMMAND_TREE_ITEM_COLLAPSING; +wxEventType wxEVT_COMMAND_TREE_SEL_CHANGED; +wxEventType wxEVT_COMMAND_TREE_SEL_CHANGING; +wxEventType wxEVT_COMMAND_TREE_KEY_DOWN; +wxEventType wxEVT_COMMAND_TREE_ITEM_ACTIVATED; +wxEventType wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK; +wxEventType wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK; +wxEventType wxEVT_COMMAND_TREE_END_DRAG; + +// List control event types +wxEventType wxEVT_COMMAND_LIST_BEGIN_DRAG; +wxEventType wxEVT_COMMAND_LIST_BEGIN_RDRAG; +wxEventType wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT; +wxEventType wxEVT_COMMAND_LIST_END_LABEL_EDIT; +wxEventType wxEVT_COMMAND_LIST_DELETE_ITEM; +wxEventType wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS; +wxEventType wxEVT_COMMAND_LIST_GET_INFO; +wxEventType wxEVT_COMMAND_LIST_SET_INFO; +wxEventType wxEVT_COMMAND_LIST_ITEM_SELECTED; +wxEventType wxEVT_COMMAND_LIST_ITEM_DESELECTED; +wxEventType wxEVT_COMMAND_LIST_KEY_DOWN; +wxEventType wxEVT_COMMAND_LIST_INSERT_ITEM; +wxEventType wxEVT_COMMAND_LIST_COL_CLICK; +wxEventType wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK; +wxEventType wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK; +wxEventType wxEVT_COMMAND_LIST_ITEM_ACTIVATED; + +// Tab and notebook control event types +wxEventType wxEVT_COMMAND_TAB_SEL_CHANGED; +wxEventType wxEVT_COMMAND_TAB_SEL_CHANGING; +wxEventType wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED; +wxEventType wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING; + +// Splitter events +wxEventType wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED; +wxEventType wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING; +wxEventType wxEVT_COMMAND_SPLITTER_DOUBLECLICKED; +wxEventType wxEVT_COMMAND_SPLITTER_UNSPLIT; + +// Wizard events +wxEventType wxEVT_WIZARD_PAGE_CHANGED; +wxEventType wxEVT_WIZARD_PAGE_CHANGING; +wxEventType wxEVT_WIZARD_CANCEL; + +// Calendar events +wxEventType wxEVT_CALENDAR_SEL_CHANGED; +wxEventType wxEVT_CALENDAR_DAY_CHANGED; +wxEventType wxEVT_CALENDAR_MONTH_CHANGED; +wxEventType wxEVT_CALENDAR_YEAR_CHANGED; +wxEventType wxEVT_CALENDAR_DOUBLECLICKED; +wxEventType wxEVT_CALENDAR_WEEKDAY_CLICKED; + +// Help events +wxEventType wxEVT_HELP; +wxEventType wxEVT_DETAILED_HELP; + // ============================================================================ // implementation // ============================================================================ +// ---------------------------------------------------------------------------- +// event initialization +// ---------------------------------------------------------------------------- + +int wxNewEventType() +{ + // MT-FIXME + static int s_lastUsedEventType = wxEVT_FIRST; + + return s_lastUsedEventType++; +} + +static void InitEvents() +{ +#ifdef __WXDEBUG__ + // this function is supposed to be called only once, as normally this + // should be always true we only do this check in debug mode + static bool s_inInitEvents = FALSE; + wxCHECK_RET( !s_inInitEvents, _T("InitEvents() reentrancy!") ); + + // note that we don't reset it to FALSE any more as we shouldn't be called + // again + s_inInitEvents = TRUE; +#endif // __WXDEBUG__ + + wxEVT_COMMAND_BUTTON_CLICKED = wxNewEventType(); + wxEVT_COMMAND_CHECKBOX_CLICKED = wxNewEventType(); + wxEVT_COMMAND_CHOICE_SELECTED = wxNewEventType(); + wxEVT_COMMAND_LISTBOX_SELECTED = wxNewEventType(); + wxEVT_COMMAND_LISTBOX_DOUBLECLICKED = wxNewEventType(); + wxEVT_COMMAND_CHECKLISTBOX_TOGGLED = wxNewEventType(); + wxEVT_COMMAND_TEXT_UPDATED = wxNewEventType(); + wxEVT_COMMAND_TEXT_ENTER = wxNewEventType(); + wxEVT_COMMAND_MENU_SELECTED = wxNewEventType(); + wxEVT_COMMAND_TOOL_CLICKED = wxNewEventType(); + wxEVT_COMMAND_SLIDER_UPDATED = wxNewEventType(); + wxEVT_COMMAND_RADIOBOX_SELECTED = wxNewEventType(); + wxEVT_COMMAND_RADIOBUTTON_SELECTED = wxNewEventType(); + wxEVT_COMMAND_SCROLLBAR_UPDATED = wxNewEventType(); + wxEVT_COMMAND_VLBOX_SELECTED = wxNewEventType(); + wxEVT_COMMAND_COMBOBOX_SELECTED = wxNewEventType(); + wxEVT_COMMAND_TOOL_RCLICKED = wxNewEventType(); + wxEVT_COMMAND_TOOL_ENTER = wxNewEventType(); + wxEVT_COMMAND_SPINCTRL_UPDATED = wxNewEventType(); + + // Sockets and timers send events, too + wxEVT_SOCKET = wxNewEventType(); + wxEVT_TIMER = wxNewEventType(); + + // Mouse event types + wxEVT_LEFT_DOWN = wxNewEventType(); + wxEVT_LEFT_UP = wxNewEventType(); + wxEVT_MIDDLE_DOWN = wxNewEventType(); + wxEVT_MIDDLE_UP = wxNewEventType(); + wxEVT_RIGHT_DOWN = wxNewEventType(); + wxEVT_RIGHT_UP = wxNewEventType(); + wxEVT_MOTION = wxNewEventType(); + wxEVT_ENTER_WINDOW = wxNewEventType(); + wxEVT_LEAVE_WINDOW = wxNewEventType(); + wxEVT_LEFT_DCLICK = wxNewEventType(); + wxEVT_MIDDLE_DCLICK = wxNewEventType(); + wxEVT_RIGHT_DCLICK = wxNewEventType(); + wxEVT_SET_FOCUS = wxNewEventType(); + wxEVT_KILL_FOCUS = wxNewEventType(); + + // Non-client mouse events + wxEVT_NC_LEFT_DOWN = wxNewEventType(); + wxEVT_NC_LEFT_UP = wxNewEventType(); + wxEVT_NC_MIDDLE_DOWN = wxNewEventType(); + wxEVT_NC_MIDDLE_UP = wxNewEventType(); + wxEVT_NC_RIGHT_DOWN = wxNewEventType(); + wxEVT_NC_RIGHT_UP = wxNewEventType(); + wxEVT_NC_MOTION = wxNewEventType(); + wxEVT_NC_ENTER_WINDOW = wxNewEventType(); + wxEVT_NC_LEAVE_WINDOW = wxNewEventType(); + wxEVT_NC_LEFT_DCLICK = wxNewEventType(); + wxEVT_NC_MIDDLE_DCLICK = wxNewEventType(); + wxEVT_NC_RIGHT_DCLICK = wxNewEventType(); + + // Character input event type + wxEVT_CHAR = wxNewEventType(); + wxEVT_CHAR_HOOK = wxNewEventType(); + wxEVT_NAVIGATION_KEY = wxNewEventType(); + wxEVT_KEY_DOWN = wxNewEventType(); + wxEVT_KEY_UP = wxNewEventType(); + + // Set cursor event + wxEVT_SET_CURSOR = wxNewEventType(); + + // wxScrollbar and wxSlider event identifiers + wxEVT_SCROLL_TOP = wxNewEventType(); + wxEVT_SCROLL_BOTTOM = wxNewEventType(); + wxEVT_SCROLL_LINEUP = wxNewEventType(); + wxEVT_SCROLL_LINEDOWN = wxNewEventType(); + wxEVT_SCROLL_PAGEUP = wxNewEventType(); + wxEVT_SCROLL_PAGEDOWN = wxNewEventType(); + wxEVT_SCROLL_THUMBTRACK = wxNewEventType(); + wxEVT_SCROLL_THUMBRELEASE = wxNewEventType(); + + // Scroll events from wxWindow + wxEVT_SCROLLWIN_TOP = wxNewEventType(); + wxEVT_SCROLLWIN_BOTTOM = wxNewEventType(); + wxEVT_SCROLLWIN_LINEUP = wxNewEventType(); + wxEVT_SCROLLWIN_LINEDOWN = wxNewEventType(); + wxEVT_SCROLLWIN_PAGEUP = wxNewEventType(); + wxEVT_SCROLLWIN_PAGEDOWN = wxNewEventType(); + wxEVT_SCROLLWIN_THUMBTRACK = wxNewEventType(); + wxEVT_SCROLLWIN_THUMBRELEASE = wxNewEventType(); + + // System events + wxEVT_SIZE = wxNewEventType(); + wxEVT_MOVE = wxNewEventType(); + wxEVT_CLOSE_WINDOW = wxNewEventType(); + wxEVT_END_SESSION = wxNewEventType(); + wxEVT_QUERY_END_SESSION = wxNewEventType(); + wxEVT_ACTIVATE_APP = wxNewEventType(); + wxEVT_POWER = wxNewEventType(); + wxEVT_ACTIVATE = wxNewEventType(); + wxEVT_CREATE = wxNewEventType(); + wxEVT_DESTROY = wxNewEventType(); + wxEVT_SHOW = wxNewEventType(); + wxEVT_ICONIZE = wxNewEventType(); + wxEVT_MAXIMIZE = wxNewEventType(); + wxEVT_MOUSE_CAPTURE_CHANGED = wxNewEventType(); + wxEVT_PAINT = wxNewEventType(); + wxEVT_ERASE_BACKGROUND = wxNewEventType(); + wxEVT_NC_PAINT = wxNewEventType(); + wxEVT_PAINT_ICON = wxNewEventType(); + wxEVT_MENU_CHAR = wxNewEventType(); + wxEVT_MENU_INIT = wxNewEventType(); + wxEVT_MENU_HIGHLIGHT = wxNewEventType(); + wxEVT_POPUP_MENU_INIT = wxNewEventType(); + wxEVT_CONTEXT_MENU = wxNewEventType(); + wxEVT_SYS_COLOUR_CHANGED = wxNewEventType(); + wxEVT_SETTING_CHANGED = wxNewEventType(); + wxEVT_QUERY_NEW_PALETTE = wxNewEventType(); + wxEVT_PALETTE_CHANGED = wxNewEventType(); + wxEVT_JOY_BUTTON_DOWN = wxNewEventType(); + wxEVT_JOY_BUTTON_UP = wxNewEventType(); + wxEVT_JOY_MOVE = wxNewEventType(); + wxEVT_JOY_ZMOVE = wxNewEventType(); + wxEVT_DROP_FILES = wxNewEventType(); + wxEVT_DRAW_ITEM = wxNewEventType(); + wxEVT_MEASURE_ITEM = wxNewEventType(); + wxEVT_COMPARE_ITEM = wxNewEventType(); + wxEVT_INIT_DIALOG = wxNewEventType(); + wxEVT_IDLE = wxNewEventType(); + wxEVT_UPDATE_UI = wxNewEventType(); + + // System misc. + wxEVT_END_PROCESS = wxNewEventType(); + + // Dial up events + wxEVT_DIALUP_CONNECTED = wxNewEventType(); + wxEVT_DIALUP_DISCONNECTED = wxNewEventType(); + + // Generic command events + // Note: a click is a higher-level event than button down/up + wxEVT_COMMAND_LEFT_CLICK = wxNewEventType(); + wxEVT_COMMAND_LEFT_DCLICK = wxNewEventType(); + wxEVT_COMMAND_RIGHT_CLICK = wxNewEventType(); + wxEVT_COMMAND_RIGHT_DCLICK = wxNewEventType(); + wxEVT_COMMAND_SET_FOCUS = wxNewEventType(); + wxEVT_COMMAND_KILL_FOCUS = wxNewEventType(); + wxEVT_COMMAND_ENTER = wxNewEventType(); + + // Tree control event types + wxEVT_COMMAND_TREE_BEGIN_DRAG = wxNewEventType(); + wxEVT_COMMAND_TREE_BEGIN_RDRAG = wxNewEventType(); + wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT = wxNewEventType(); + wxEVT_COMMAND_TREE_END_LABEL_EDIT = wxNewEventType(); + wxEVT_COMMAND_TREE_DELETE_ITEM = wxNewEventType(); + wxEVT_COMMAND_TREE_GET_INFO = wxNewEventType(); + wxEVT_COMMAND_TREE_SET_INFO = wxNewEventType(); + wxEVT_COMMAND_TREE_ITEM_EXPANDED = wxNewEventType(); + wxEVT_COMMAND_TREE_ITEM_EXPANDING = wxNewEventType(); + wxEVT_COMMAND_TREE_ITEM_COLLAPSED = wxNewEventType(); + wxEVT_COMMAND_TREE_ITEM_COLLAPSING = wxNewEventType(); + wxEVT_COMMAND_TREE_SEL_CHANGED = wxNewEventType(); + wxEVT_COMMAND_TREE_SEL_CHANGING = wxNewEventType(); + wxEVT_COMMAND_TREE_KEY_DOWN = wxNewEventType(); + wxEVT_COMMAND_TREE_ITEM_ACTIVATED = wxNewEventType(); + wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK = wxNewEventType(); + wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK = wxNewEventType(); + wxEVT_COMMAND_TREE_END_DRAG = wxNewEventType(); + + // List control event types + wxEVT_COMMAND_LIST_BEGIN_DRAG = wxNewEventType(); + wxEVT_COMMAND_LIST_BEGIN_RDRAG = wxNewEventType(); + wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT = wxNewEventType(); + wxEVT_COMMAND_LIST_END_LABEL_EDIT = wxNewEventType(); + wxEVT_COMMAND_LIST_DELETE_ITEM = wxNewEventType(); + wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS = wxNewEventType(); + wxEVT_COMMAND_LIST_GET_INFO = wxNewEventType(); + wxEVT_COMMAND_LIST_SET_INFO = wxNewEventType(); + wxEVT_COMMAND_LIST_ITEM_SELECTED = wxNewEventType(); + wxEVT_COMMAND_LIST_ITEM_DESELECTED = wxNewEventType(); + wxEVT_COMMAND_LIST_KEY_DOWN = wxNewEventType(); + wxEVT_COMMAND_LIST_INSERT_ITEM = wxNewEventType(); + wxEVT_COMMAND_LIST_COL_CLICK = wxNewEventType(); + wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK = wxNewEventType(); + wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK = wxNewEventType(); + wxEVT_COMMAND_LIST_ITEM_ACTIVATED = wxNewEventType(); + + // Tab and notebook control event types + wxEVT_COMMAND_TAB_SEL_CHANGED = wxNewEventType(); + wxEVT_COMMAND_TAB_SEL_CHANGING = wxNewEventType(); + wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED = wxNewEventType(); + wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING = wxNewEventType(); + + // Splitter events + wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED = wxNewEventType(); + wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING = wxNewEventType(); + wxEVT_COMMAND_SPLITTER_DOUBLECLICKED = wxNewEventType(); + wxEVT_COMMAND_SPLITTER_UNSPLIT = wxNewEventType(); + + // Wizard events + wxEVT_WIZARD_PAGE_CHANGED = wxNewEventType(); + wxEVT_WIZARD_PAGE_CHANGING = wxNewEventType(); + wxEVT_WIZARD_CANCEL = wxNewEventType(); + + // Calendar events + wxEVT_CALENDAR_SEL_CHANGED = wxNewEventType(); + wxEVT_CALENDAR_DAY_CHANGED = wxNewEventType(); + wxEVT_CALENDAR_MONTH_CHANGED = wxNewEventType(); + wxEVT_CALENDAR_YEAR_CHANGED = wxNewEventType(); + wxEVT_CALENDAR_DOUBLECLICKED = wxNewEventType(); + wxEVT_CALENDAR_WEEKDAY_CLICKED = wxNewEventType(); + + // Help events + wxEVT_HELP = wxNewEventType(); + wxEVT_DETAILED_HELP = wxNewEventType(); +} + +// ---------------------------------------------------------------------------- +// wxEventTableEntry +// ---------------------------------------------------------------------------- + +wxEventTableEntry::wxEventTableEntry(int evType, int id, int idLast, + wxObjectEventFunction fn, wxObject *data) +{ + static bool s_initEventsDone = FALSE; + if ( !s_initEventsDone ) + { + InitEvents(); + + s_initEventsDone = TRUE; + } + + m_eventType = evType; + m_id = id; + m_lastId = idLast; + m_fn = fn; + m_callbackUserData = data; +} + // ---------------------------------------------------------------------------- // wxEvent // ---------------------------------------------------------------------------- @@ -1065,12 +1313,8 @@ void wxEvtHandler::Connect( int id, int lastId, wxObjectEventFunction func, wxObject *userData ) { - wxDynamicEventTableEntry *entry = new wxDynamicEventTableEntry; - entry->m_id = id; - entry->m_lastId = lastId; - entry->m_eventType = eventType; - entry->m_fn = func; - entry->m_callbackUserData = userData; + wxDynamicEventTableEntry *entry = + new wxDynamicEventTableEntry(eventType, id, lastId, func, userData); if (!m_dynamicEvents) m_dynamicEvents = new wxList;