X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/646930985a7a9bd840086a0011026b2bac188c29..d0fff5cb110810d3bee6fa255292f161f7752911:/include/wx/event.h diff --git a/include/wx/event.h b/include/wx/event.h index dc26feec37..418cfd5aae 100644 --- a/include/wx/event.h +++ b/include/wx/event.h @@ -9,8 +9,8 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef __EVENTH__ -#define __EVENTH__ +#ifndef _WX_EVENTH__ +#define _WX_EVENTH__ #ifdef __GNUG__ #pragma interface "event.h" @@ -25,162 +25,166 @@ * */ -enum wxEventType { - wxEVT_NULL = 0, - wxEVT_FIRST = 10000, - - // New names - wxEVT_COMMAND_BUTTON_CLICKED, - wxEVT_COMMAND_CHECKBOX_CLICKED, - wxEVT_COMMAND_CHOICE_SELECTED, - wxEVT_COMMAND_LISTBOX_SELECTED, - wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, - wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, - wxEVT_COMMAND_TEXT_UPDATED, - wxEVT_COMMAND_TEXT_ENTER, - wxEVT_COMMAND_MENU_SELECTED, - wxEVT_COMMAND_SLIDER_UPDATED, - wxEVT_COMMAND_RADIOBOX_SELECTED, - wxEVT_COMMAND_RADIOBUTTON_SELECTED, -// wxEVT_COMMAND_SCROLLBAR_UPDATED is now obsolete since we use wxEVT_SCROLL... events - wxEVT_COMMAND_SCROLLBAR_UPDATED, - wxEVT_COMMAND_VLBOX_SELECTED, - wxEVT_COMMAND_COMBOBOX_SELECTED, - wxEVT_COMMAND_TOOL_CLICKED, - wxEVT_COMMAND_TOOL_RCLICKED, - wxEVT_COMMAND_TOOL_ENTER, - wxEVT_SET_FOCUS, - wxEVT_KILL_FOCUS, +typedef int wxEventType; + +const wxEventType wxEVT_NULL = 0; +const wxEventType wxEVT_FIRST = 10000; + +const wxEventType wxEVT_COMMAND_BUTTON_CLICKED = wxEVT_FIRST + 1; +const wxEventType wxEVT_COMMAND_CHECKBOX_CLICKED = wxEVT_FIRST + 2; +const wxEventType wxEVT_COMMAND_CHOICE_SELECTED = wxEVT_FIRST + 3; +const wxEventType wxEVT_COMMAND_LISTBOX_SELECTED = wxEVT_FIRST + 4; +const wxEventType wxEVT_COMMAND_LISTBOX_DOUBLECLICKED = wxEVT_FIRST + 5; +const wxEventType wxEVT_COMMAND_CHECKLISTBOX_TOGGLED = wxEVT_FIRST + 6; +const wxEventType wxEVT_COMMAND_TEXT_UPDATED = wxEVT_FIRST + 7; +const wxEventType wxEVT_COMMAND_TEXT_ENTER = wxEVT_FIRST + 8; +const wxEventType wxEVT_COMMAND_MENU_SELECTED = wxEVT_FIRST + 9; +const wxEventType wxEVT_COMMAND_TOOL_CLICKED = wxEVT_COMMAND_MENU_SELECTED; +const wxEventType wxEVT_COMMAND_SLIDER_UPDATED = wxEVT_FIRST + 10; +const wxEventType wxEVT_COMMAND_RADIOBOX_SELECTED = wxEVT_FIRST + 11; +const wxEventType wxEVT_COMMAND_RADIOBUTTON_SELECTED = wxEVT_FIRST + 12; +//const wxEventType wxEVT_COMMAND_SCROLLBAR_UPDATED is now obsolete since we use wxEVT_SCROLL... events +const wxEventType wxEVT_COMMAND_SCROLLBAR_UPDATED = wxEVT_FIRST + 13; +const wxEventType wxEVT_COMMAND_VLBOX_SELECTED = wxEVT_FIRST + 14; +const wxEventType wxEVT_COMMAND_COMBOBOX_SELECTED = wxEVT_FIRST + 15; +const wxEventType wxEVT_COMMAND_TOOL_RCLICKED = wxEVT_FIRST + 16; +const wxEventType wxEVT_COMMAND_TOOL_ENTER = wxEVT_FIRST + 17; /* Mouse event types */ - wxEVT_LEFT_DOWN, - wxEVT_LEFT_UP, - wxEVT_MIDDLE_DOWN, - wxEVT_MIDDLE_UP, - wxEVT_RIGHT_DOWN, - wxEVT_RIGHT_UP, - wxEVT_MOTION, - wxEVT_ENTER_WINDOW, - wxEVT_LEAVE_WINDOW, - wxEVT_LEFT_DCLICK, - wxEVT_MIDDLE_DCLICK, - wxEVT_RIGHT_DCLICK, +const wxEventType wxEVT_LEFT_DOWN = wxEVT_FIRST + 100; +const wxEventType wxEVT_LEFT_UP = wxEVT_FIRST + 101; +const wxEventType wxEVT_MIDDLE_DOWN = wxEVT_FIRST + 102; +const wxEventType wxEVT_MIDDLE_UP = wxEVT_FIRST + 103; +const wxEventType wxEVT_RIGHT_DOWN = wxEVT_FIRST + 104; +const wxEventType wxEVT_RIGHT_UP = wxEVT_FIRST + 105; +const wxEventType wxEVT_MOTION = wxEVT_FIRST + 106; +const wxEventType wxEVT_ENTER_WINDOW = wxEVT_FIRST + 107; +const wxEventType wxEVT_LEAVE_WINDOW = wxEVT_FIRST + 108; +const wxEventType wxEVT_LEFT_DCLICK = wxEVT_FIRST + 109; +const wxEventType wxEVT_MIDDLE_DCLICK = wxEVT_FIRST + 110; +const wxEventType wxEVT_RIGHT_DCLICK = wxEVT_FIRST + 111; +const wxEventType wxEVT_SET_FOCUS = wxEVT_FIRST + 112; +const wxEventType wxEVT_KILL_FOCUS = wxEVT_FIRST + 113; // Non-client mouse events - wxEVT_NC_LEFT_DOWN = wxEVT_FIRST + 100, - wxEVT_NC_LEFT_UP, - wxEVT_NC_MIDDLE_DOWN, - wxEVT_NC_MIDDLE_UP, - wxEVT_NC_RIGHT_DOWN, - wxEVT_NC_RIGHT_UP, - wxEVT_NC_MOTION, - wxEVT_NC_ENTER_WINDOW, - wxEVT_NC_LEAVE_WINDOW, - wxEVT_NC_LEFT_DCLICK, - wxEVT_NC_MIDDLE_DCLICK, - wxEVT_NC_RIGHT_DCLICK, +const wxEventType wxEVT_NC_LEFT_DOWN = wxEVT_FIRST + 200; +const wxEventType wxEVT_NC_LEFT_UP = wxEVT_FIRST + 201; +const wxEventType wxEVT_NC_MIDDLE_DOWN = wxEVT_FIRST + 202; +const wxEventType wxEVT_NC_MIDDLE_UP = wxEVT_FIRST + 203; +const wxEventType wxEVT_NC_RIGHT_DOWN = wxEVT_FIRST + 204; +const wxEventType wxEVT_NC_RIGHT_UP = wxEVT_FIRST + 205; +const wxEventType wxEVT_NC_MOTION = wxEVT_FIRST + 206; +const wxEventType wxEVT_NC_ENTER_WINDOW = wxEVT_FIRST + 207; +const wxEventType wxEVT_NC_LEAVE_WINDOW = wxEVT_FIRST + 208; +const wxEventType wxEVT_NC_LEFT_DCLICK = wxEVT_FIRST + 209; +const wxEventType wxEVT_NC_MIDDLE_DCLICK = wxEVT_FIRST + 210; +const wxEventType wxEVT_NC_RIGHT_DCLICK = wxEVT_FIRST + 211; /* Character input event type */ - wxEVT_CHAR, +const wxEventType wxEVT_CHAR = wxEVT_FIRST + 212; +const wxEventType wxEVT_NAVIGATION_KEY = wxEVT_FIRST + 213; /* * Scrollbar event identifiers */ - wxEVT_SCROLL_TOP, - wxEVT_SCROLL_BOTTOM, - wxEVT_SCROLL_LINEUP, - wxEVT_SCROLL_LINEDOWN, - wxEVT_SCROLL_PAGEUP, - wxEVT_SCROLL_PAGEDOWN, - wxEVT_SCROLL_THUMBTRACK, - - wxEVT_SIZE = wxEVT_FIRST + 200, - wxEVT_MOVE, - wxEVT_CLOSE_WINDOW, - wxEVT_END_SESSION, - wxEVT_QUERY_END_SESSION, - wxEVT_ACTIVATE_APP, - wxEVT_POWER, - wxEVT_CHAR_HOOK, - wxEVT_KEY_UP, - wxEVT_ACTIVATE, - wxEVT_CREATE, - wxEVT_DESTROY, - wxEVT_SHOW, - wxEVT_ICONIZE, - wxEVT_MAXIMIZE, - wxEVT_MOUSE_CAPTURE_CHANGED, - wxEVT_PAINT, - wxEVT_ERASE_BACKGROUND, - wxEVT_NC_PAINT, - wxEVT_PAINT_ICON, - wxEVT_MENU_CHAR, - wxEVT_MENU_INIT, - wxEVT_MENU_HIGHLIGHT, - wxEVT_POPUP_MENU_INIT, - wxEVT_CONTEXT_MENU, - wxEVT_SYS_COLOUR_CHANGED, - wxEVT_SETTING_CHANGED, - wxEVT_QUERY_NEW_PALETTE, - wxEVT_PALETTE_CHANGED, - wxEVT_JOY_BUTTON_DOWN, - wxEVT_JOY_BUTTON_UP, - wxEVT_JOY_MOVE, - wxEVT_JOY_ZMOVE, - wxEVT_DROP_FILES, - wxEVT_DRAW_ITEM, - wxEVT_MEASURE_ITEM, - wxEVT_COMPARE_ITEM, - wxEVT_INIT_DIALOG, - wxEVT_IDLE, - wxEVT_UPDATE_UI, +const wxEventType wxEVT_SCROLL_TOP = wxEVT_FIRST + 300; +const wxEventType wxEVT_SCROLL_BOTTOM = wxEVT_FIRST + 301; +const wxEventType wxEVT_SCROLL_LINEUP = wxEVT_FIRST + 302; +const wxEventType wxEVT_SCROLL_LINEDOWN = wxEVT_FIRST + 303; +const wxEventType wxEVT_SCROLL_PAGEUP = wxEVT_FIRST + 304; +const wxEventType wxEVT_SCROLL_PAGEDOWN = wxEVT_FIRST + 305; +const wxEventType wxEVT_SCROLL_THUMBTRACK = wxEVT_FIRST + 306; + +const wxEventType wxEVT_SIZE = wxEVT_FIRST + 400; +const wxEventType wxEVT_MOVE = wxEVT_FIRST + 401; +const wxEventType wxEVT_CLOSE_WINDOW = wxEVT_FIRST + 402; +const wxEventType wxEVT_END_SESSION = wxEVT_FIRST + 403; +const wxEventType wxEVT_QUERY_END_SESSION = wxEVT_FIRST + 404; +const wxEventType wxEVT_ACTIVATE_APP = wxEVT_FIRST + 405; +const wxEventType wxEVT_POWER = wxEVT_FIRST + 406; +const wxEventType wxEVT_CHAR_HOOK = wxEVT_FIRST + 407; +const wxEventType wxEVT_KEY_UP = wxEVT_FIRST + 408; +const wxEventType wxEVT_ACTIVATE = wxEVT_FIRST + 409; +const wxEventType wxEVT_CREATE = wxEVT_FIRST + 410; +const wxEventType wxEVT_DESTROY = wxEVT_FIRST + 411; +const wxEventType wxEVT_SHOW = wxEVT_FIRST + 412; +const wxEventType wxEVT_ICONIZE = wxEVT_FIRST + 413; +const wxEventType wxEVT_MAXIMIZE = wxEVT_FIRST + 414; +const wxEventType wxEVT_MOUSE_CAPTURE_CHANGED = wxEVT_FIRST + 415; +const wxEventType wxEVT_PAINT = wxEVT_FIRST + 416; +const wxEventType wxEVT_ERASE_BACKGROUND = wxEVT_FIRST + 417; +const wxEventType wxEVT_NC_PAINT = wxEVT_FIRST + 418; +const wxEventType wxEVT_PAINT_ICON = wxEVT_FIRST + 419; +const wxEventType wxEVT_MENU_CHAR = wxEVT_FIRST + 420; +const wxEventType wxEVT_MENU_INIT = wxEVT_FIRST + 421; +const wxEventType wxEVT_MENU_HIGHLIGHT = wxEVT_FIRST + 422; +const wxEventType wxEVT_POPUP_MENU_INIT = wxEVT_FIRST + 423; +const wxEventType wxEVT_CONTEXT_MENU = wxEVT_FIRST + 424; +const wxEventType wxEVT_SYS_COLOUR_CHANGED = wxEVT_FIRST + 425; +const wxEventType wxEVT_SETTING_CHANGED = wxEVT_FIRST + 426; +const wxEventType wxEVT_QUERY_NEW_PALETTE = wxEVT_FIRST + 427; +const wxEventType wxEVT_PALETTE_CHANGED = wxEVT_FIRST + 428; +const wxEventType wxEVT_JOY_BUTTON_DOWN = wxEVT_FIRST + 429; +const wxEventType wxEVT_JOY_BUTTON_UP = wxEVT_FIRST + 430; +const wxEventType wxEVT_JOY_MOVE = wxEVT_FIRST + 431; +const wxEventType wxEVT_JOY_ZMOVE = wxEVT_FIRST + 432; +const wxEventType wxEVT_DROP_FILES = wxEVT_FIRST + 433; +const wxEventType wxEVT_DRAW_ITEM = wxEVT_FIRST + 434; +const wxEventType wxEVT_MEASURE_ITEM = wxEVT_FIRST + 435; +const wxEventType wxEVT_COMPARE_ITEM = wxEVT_FIRST + 436; +const wxEventType wxEVT_INIT_DIALOG = wxEVT_FIRST + 437; +const wxEventType wxEVT_IDLE = wxEVT_FIRST + 438; +const wxEventType wxEVT_UPDATE_UI = wxEVT_FIRST + 439; + /* System misc. */ +const wxEventType wxEVT_END_PROCESS = wxEVT_FIRST + 440; /* Generic command events */ // Note: a click is a higher-level event // than button down/up - wxEVT_COMMAND_LEFT_CLICK, - wxEVT_COMMAND_LEFT_DCLICK, - wxEVT_COMMAND_RIGHT_CLICK, - wxEVT_COMMAND_RIGHT_DCLICK, - wxEVT_COMMAND_SET_FOCUS, - wxEVT_COMMAND_KILL_FOCUS, - wxEVT_COMMAND_ENTER, +const wxEventType wxEVT_COMMAND_LEFT_CLICK = wxEVT_FIRST + 500; +const wxEventType wxEVT_COMMAND_LEFT_DCLICK = wxEVT_FIRST + 501; +const wxEventType wxEVT_COMMAND_RIGHT_CLICK = wxEVT_FIRST + 502; +const wxEventType wxEVT_COMMAND_RIGHT_DCLICK = wxEVT_FIRST + 503; +const wxEventType wxEVT_COMMAND_SET_FOCUS = wxEVT_FIRST + 504; +const wxEventType wxEVT_COMMAND_KILL_FOCUS = wxEVT_FIRST + 505; +const wxEventType wxEVT_COMMAND_ENTER = wxEVT_FIRST + 506; /* Tree control event types */ - wxEVT_COMMAND_TREE_BEGIN_DRAG, - wxEVT_COMMAND_TREE_BEGIN_RDRAG, - wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, - wxEVT_COMMAND_TREE_END_LABEL_EDIT, - wxEVT_COMMAND_TREE_DELETE_ITEM, - wxEVT_COMMAND_TREE_GET_INFO, - wxEVT_COMMAND_TREE_SET_INFO, - wxEVT_COMMAND_TREE_ITEM_EXPANDED, - wxEVT_COMMAND_TREE_ITEM_EXPANDING, - wxEVT_COMMAND_TREE_SEL_CHANGED, - wxEVT_COMMAND_TREE_SEL_CHANGING, - wxEVT_COMMAND_TREE_KEY_DOWN, +const wxEventType wxEVT_COMMAND_TREE_BEGIN_DRAG = wxEVT_FIRST + 600; +const wxEventType wxEVT_COMMAND_TREE_BEGIN_RDRAG = wxEVT_FIRST + 601; +const wxEventType wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT = wxEVT_FIRST + 602; +const wxEventType wxEVT_COMMAND_TREE_END_LABEL_EDIT = wxEVT_FIRST + 603; +const wxEventType wxEVT_COMMAND_TREE_DELETE_ITEM = wxEVT_FIRST + 604; +const wxEventType wxEVT_COMMAND_TREE_GET_INFO = wxEVT_FIRST + 605; +const wxEventType wxEVT_COMMAND_TREE_SET_INFO = wxEVT_FIRST + 606; +const wxEventType wxEVT_COMMAND_TREE_ITEM_EXPANDED = wxEVT_FIRST + 607; +const wxEventType wxEVT_COMMAND_TREE_ITEM_EXPANDING = wxEVT_FIRST + 608; +const wxEventType wxEVT_COMMAND_TREE_ITEM_COLLAPSED = wxEVT_FIRST + 609; +const wxEventType wxEVT_COMMAND_TREE_ITEM_COLLAPSING = wxEVT_FIRST + 610; +const wxEventType wxEVT_COMMAND_TREE_SEL_CHANGED = wxEVT_FIRST + 611; +const wxEventType wxEVT_COMMAND_TREE_SEL_CHANGING = wxEVT_FIRST + 612; +const wxEventType wxEVT_COMMAND_TREE_KEY_DOWN = wxEVT_FIRST + 613; /* List control event types */ - wxEVT_COMMAND_LIST_BEGIN_DRAG, - wxEVT_COMMAND_LIST_BEGIN_RDRAG, - wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT, - wxEVT_COMMAND_LIST_END_LABEL_EDIT, - wxEVT_COMMAND_LIST_DELETE_ITEM, - wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS, - wxEVT_COMMAND_LIST_GET_INFO, - wxEVT_COMMAND_LIST_SET_INFO, - wxEVT_COMMAND_LIST_ITEM_SELECTED, - wxEVT_COMMAND_LIST_ITEM_DESELECTED, - wxEVT_COMMAND_LIST_KEY_DOWN, - wxEVT_COMMAND_LIST_INSERT_ITEM, - wxEVT_COMMAND_LIST_COL_CLICK, +const wxEventType wxEVT_COMMAND_LIST_BEGIN_DRAG = wxEVT_FIRST + 700; +const wxEventType wxEVT_COMMAND_LIST_BEGIN_RDRAG = wxEVT_FIRST + 701; +const wxEventType wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT = wxEVT_FIRST + 702; +const wxEventType wxEVT_COMMAND_LIST_END_LABEL_EDIT = wxEVT_FIRST + 703; +const wxEventType wxEVT_COMMAND_LIST_DELETE_ITEM = wxEVT_FIRST + 704; +const wxEventType wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS = wxEVT_FIRST + 705; +const wxEventType wxEVT_COMMAND_LIST_GET_INFO = wxEVT_FIRST + 706; +const wxEventType wxEVT_COMMAND_LIST_SET_INFO = wxEVT_FIRST + 707; +const wxEventType wxEVT_COMMAND_LIST_ITEM_SELECTED = wxEVT_FIRST + 708; +const wxEventType wxEVT_COMMAND_LIST_ITEM_DESELECTED = wxEVT_FIRST + 709; +const wxEventType wxEVT_COMMAND_LIST_KEY_DOWN = wxEVT_FIRST + 710; +const wxEventType wxEVT_COMMAND_LIST_INSERT_ITEM = wxEVT_FIRST + 711; +const wxEventType wxEVT_COMMAND_LIST_COL_CLICK = wxEVT_FIRST + 712; /* Tab and notebook control event types */ - wxEVT_COMMAND_TAB_SEL_CHANGED, - wxEVT_COMMAND_TAB_SEL_CHANGING, - wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, - wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING -}; +const wxEventType wxEVT_COMMAND_TAB_SEL_CHANGED = wxEVT_FIRST + 800; +const wxEventType wxEVT_COMMAND_TAB_SEL_CHANGING = wxEVT_FIRST + 801; +const wxEventType wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED = wxEVT_FIRST + 802; +const wxEventType wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING = wxEVT_FIRST + 803; // Compatibility @@ -258,7 +262,7 @@ public: // Can instruct event processor that we wish to ignore this event // (treat as if the event table entry had not been found) - inline void Skip(const bool skip = TRUE) { m_skipped = skip; } + inline void Skip(bool skip = TRUE) { m_skipped = skip; } inline bool GetSkipped(void) const { return m_skipped; }; public: @@ -391,6 +395,7 @@ class WXDLLEXPORT wxScrollEvent: public wxCommandEvent wxEVT_NC_RIGHT_DCLICK, */ +class WXDLLEXPORT wxDC; class WXDLLEXPORT wxMouseEvent: public wxEvent { DECLARE_DYNAMIC_CLASS(wxMouseEvent) @@ -903,14 +908,79 @@ class WXDLLEXPORT wxSysColourChangedEvent: public wxEvent { m_eventType = wxEVT_SYS_COLOUR_CHANGED; } }; +/* + wxEVT_PALETTE_CHANGED + */ + +class WXDLLEXPORT wxPaletteChangedEvent: public wxEvent +{ + DECLARE_DYNAMIC_CLASS(wxPaletteChangedEvent) + +public: + inline wxPaletteChangedEvent(wxWindowID id = 0): wxEvent(id) + { m_eventType = wxEVT_PALETTE_CHANGED; m_changedWindow = NULL; } + + inline void SetChangedWindow(wxWindow* win) { m_changedWindow = win; } + inline wxWindow* GetChangedWindow() const { return m_changedWindow; } + +protected: + wxWindow* m_changedWindow; +}; + +/* + wxEVT_QUERY_NEW_PALETTE + Indicates the window is getting keyboard focus and should re-do its palette. + */ + +class WXDLLEXPORT wxQueryNewPaletteEvent: public wxEvent +{ + DECLARE_DYNAMIC_CLASS(wxQueryNewPaletteEvent) + +public: + inline wxQueryNewPaletteEvent(wxWindowID id = 0): wxEvent(id) + { m_eventType = wxEVT_QUERY_NEW_PALETTE; m_paletteRealized = FALSE; } + + // App sets this if it changes the palette. + inline void SetPaletteRealized(bool realized) { m_paletteRealized = realized; } + inline bool GetPaletteRealized() const { return m_paletteRealized; } + +protected: + bool m_paletteRealized; +}; + +/* + Event generated by dialog navigation keys + wxEVT_NAVIGATION_KEY + */ +// must derive from command event to be propagated to the parent +class WXDLLEXPORT wxNavigationKeyEvent : public wxCommandEvent +{ + DECLARE_DYNAMIC_CLASS(wxNavigationKeyEvent) + +public: + wxNavigationKeyEvent() : wxCommandEvent(wxEVT_NAVIGATION_KEY) { } + + // direction: forward (true) or backward (false) + bool GetDirection() const { return m_commandInt == 1; } + void SetDirection(bool bForward) { m_commandInt = bForward; } + + // it may be a window change event (MDI, notebook pages...) or a control + // change event + bool IsWindowChange() const { return m_extraLong == 1; } + void SetWindowChange(bool bIs) { m_extraLong = bIs; } + + // the child which has the focus currently (may be NULL - use + // wxWindow::FindFocus then) + wxWindow* GetCurrentFocus() const { return (wxWindow *)m_clientData; } + void SetCurrentFocus(wxWindow *win) { m_clientData = (char *)win; } +}; + /* TODO wxEVT_POWER, wxEVT_CREATE, wxEVT_DESTROY, wxEVT_MOUSE_CAPTURE_CHANGED, wxEVT_SETTING_CHANGED, // WM_WININICHANGE (NT) / WM_SETTINGCHANGE (Win95) - wxEVT_QUERY_NEW_PALETTE, - wxEVT_PALETTE_CHANGED, // wxEVT_FONT_CHANGED, // WM_FONTCHANGE: roll into wxEVT_SETTING_CHANGED, but remember to propagate // wxEVT_FONT_CHANGED to all other windows (maybe). wxEVT_DRAW_ITEM, // Leave these three as virtual functions in wxControl?? Platform-specific. @@ -927,9 +997,10 @@ typedef void (wxObject::*wxObjectEventFunction)(wxEvent&); struct WXDLLEXPORT wxEventTableEntry { - int m_eventType; // main event type - int m_id; // control/menu/toolbar id - int m_lastId; // used for ranges of ids + // 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; @@ -961,29 +1032,8 @@ class WXDLLEXPORT wxEvtHandler: public wxObject // callback function // Default behaviour virtual long Default(void) { if (GetNextHandler()) return GetNextHandler()->Default(); else return 0; }; -#if WXWIN_COMPATIBILITY - virtual void OldOnMenuCommand(int WXUNUSED(cmd)); - virtual void OldOnMenuSelect(int WXUNUSED(cmd)); - virtual void OldOnInitMenuPopup(int WXUNUSED(pos)); - virtual void OldOnScroll(wxCommandEvent& WXUNUSED(event)); - virtual void OldOnPaint(void); - virtual void OldOnSize(int WXUNUSED(width), int WXUNUSED(height)); - virtual void OldOnMove(int WXUNUSED(x), int WXUNUSED(y)); - virtual void OldOnMouseEvent(wxMouseEvent& WXUNUSED(event)); - virtual void OldOnChar(wxKeyEvent& WXUNUSED(event)); - // Under Windows, we can intercept character input per dialog or frame - virtual bool OldOnCharHook(wxKeyEvent& WXUNUSED(event)); - virtual void OldOnActivate(bool WXUNUSED(active)); - virtual void OldOnSetFocus(void); - virtual void OldOnKillFocus(void); - virtual bool OldOnSysColourChange(void); - virtual void OldOnDropFiles(int n, char *files[], int x, int y); -#endif virtual bool OnClose(void); - virtual void OnDefaultAction(wxControl *WXUNUSED(initiatingItem)) {}; - virtual void OnChangeFocus(wxControl *WXUNUSED(from), wxControl *WXUNUSED(to)) {}; - virtual bool OnFunctionKey(wxKeyEvent &WXUNUSED(event)) { return FALSE; }; inline char *GetClientData(void) const { return m_clientData; } inline void SetClientData(char *clientData) { m_clientData = clientData; } @@ -991,8 +1041,8 @@ class WXDLLEXPORT wxEvtHandler: public wxObject virtual bool ProcessEvent(wxEvent& event); virtual bool SearchEventTable(wxEventTable& table, wxEvent& event); - void Connect( const int id, const int lastId, - const int eventType, + void Connect( int id, int lastId, + int eventType, wxObjectEventFunction func, wxObject *userData = NULL ); @@ -1034,6 +1084,9 @@ typedef void (wxEvtHandler::*wxCloseEventFunction)(wxCloseEvent&); typedef void (wxEvtHandler::*wxShowEventFunction)(wxShowEvent&); typedef void (wxEvtHandler::*wxIconizeEventFunction)(wxShowEvent&); typedef void (wxEvtHandler::*wxMaximizeEventFunction)(wxShowEvent&); +typedef void (wxEvtHandler::*wxNavigationKeyEventFunction)(wxNavigationKeyEvent&); +typedef void (wxEvtHandler::*wxPaletteChangedEventFunction)(wxPaletteChangedEvent&); +typedef void (wxEvtHandler::*wxQueryNewPaletteEventFunction)(wxQueryNewPaletteEvent&); // N.B. In GNU-WIN32, you *have* to take the address of a member function // (use &) or the compiler crashes... @@ -1084,6 +1137,9 @@ const wxEventTableEntry theClass::sm_eventTableEntries[] = { \ #define EVT_SHOW(func) { wxEVT_SHOW, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxShowEventFunction) & func, NULL }, #define EVT_MAXIMIZE(func) { wxEVT_MAXIMIZE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMaximizeEventFunction) & func, NULL }, #define EVT_ICONIZE(func) { wxEVT_ICONIZE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxIconizeEventFunction) & func, NULL }, +#define EVT_NAVIGATION_KEY(func) { wxEVT_NAVIGATION_KEY, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNavigationKeyEventFunction) & func, NULL }, +#define EVT_PALETTE_CHANGED(func) { wxEVT_PALETTE_CHANGED, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxPaletteChangedEventFunction) & func, NULL }, +#define EVT_QUERY_NEW_PALETTE(func) { wxEVT_QUERY_NEW_PALETTE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxQueryNewPaletteEventFunction) & func, NULL }, // Mouse events #define EVT_LEFT_DOWN(func) { wxEVT_LEFT_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, NULL }, @@ -1159,6 +1215,7 @@ const wxEventTableEntry theClass::sm_eventTableEntries[] = { \ #define EVT_CHECKBOX(id, fn) { wxEVT_COMMAND_CHECKBOX_CLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, NULL }, #define EVT_CHOICE(id, fn) { wxEVT_COMMAND_CHOICE_SELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, NULL }, #define EVT_LISTBOX(id, fn) { wxEVT_COMMAND_LISTBOX_SELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, NULL }, +#define EVT_LISTBOX_DCLICK(id, fn) { wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, NULL }, #define EVT_TEXT(id, fn) { wxEVT_COMMAND_TEXT_UPDATED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, NULL }, #define EVT_TEXT_ENTER(id, fn) { wxEVT_COMMAND_TEXT_ENTER, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, NULL }, #define EVT_MENU(id, fn) { wxEVT_COMMAND_MENU_SELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, NULL }, @@ -1171,7 +1228,9 @@ const wxEventTableEntry theClass::sm_eventTableEntries[] = { \ #define EVT_VLBOX(id, fn) { wxEVT_COMMAND_VLBOX_SELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, NULL }, #define EVT_COMBOBOX(id, fn) { wxEVT_COMMAND_COMBOBOX_SELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, NULL }, #define EVT_TOOL(id, fn) { wxEVT_COMMAND_TOOL_CLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, NULL }, +#define EVT_TOOL_RANGE(id1, id2, fn) { wxEVT_COMMAND_TOOL_CLICKED, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, NULL }, #define EVT_TOOL_RCLICKED(id, fn) { wxEVT_COMMAND_TOOL_RCLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, NULL }, +#define EVT_TOOL_RCLICKED_RANGE(id1, id2, fn) { wxEVT_COMMAND_TOOL_RCLICKED, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, NULL }, #define EVT_TOOL_ENTER(id, fn) { wxEVT_COMMAND_TOOL_ENTER, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, NULL }, #define EVT_CHECKLISTBOX(id, fn) { wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, NULL }, @@ -1210,4 +1269,4 @@ const wxEventTableEntry theClass::sm_eventTableEntries[] = { \ { wxEVT_UPDATE_UI, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxUpdateUIEventFunction) & func, NULL },\ #endif - // __EVENTH__ + // _WX_EVENTH__