X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f5e27805de786dbb3976782ba2a3365c27256031..83624f79609f0d5e240c1f7d77d044bfff9702fc:/include/wx/event.h diff --git a/include/wx/event.h b/include/wx/event.h index e9eb695cd2..befa415c1d 100644 --- a/include/wx/event.h +++ b/include/wx/event.h @@ -50,6 +50,9 @@ 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; +/* Sockets send events, too */ +const wxEventType wxEVT_SOCKET = wxEVT_FIRST + 50; + /* Mouse event types */ const wxEventType wxEVT_LEFT_DOWN = wxEVT_FIRST + 100; const wxEventType wxEVT_LEFT_UP = wxEVT_FIRST + 101; @@ -66,7 +69,7 @@ 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 + /* Non-client mouse events */ 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; @@ -139,8 +142,7 @@ const wxEventType wxEVT_UPDATE_UI = wxEVT_FIRST + 439; const wxEventType wxEVT_END_PROCESS = wxEVT_FIRST + 440; /* Generic command events */ - // Note: a click is a higher-level event - // than button down/up + /* Note: a click is a higher-level event than button down/up */ 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; @@ -164,6 +166,7 @@ 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; +const wxEventType wxEVT_COMMAND_TREE_ITEM_ACTIVATED = wxEVT_FIRST + 614; /* List control event types */ const wxEventType wxEVT_COMMAND_LIST_BEGIN_DRAG = wxEVT_FIRST + 700; @@ -179,16 +182,26 @@ 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; +const wxEventType wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK = wxEVT_FIRST + 713; +const wxEventType wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK = wxEVT_FIRST + 714; +const wxEventType wxEVT_COMMAND_LIST_ITEM_ACTIVATED = wxEVT_FIRST + 715; /* Tab and notebook control event types */ const wxEventType wxEVT_COMMAND_TAB_SEL_CHANGED = wxEVT_FIRST + 800; const wxEventType wxEVT_COMMAND_TAB_SEL_CHANGING = wxEVT_FIRST + 801; + +#if defined(__BORLANDC__) && defined(__WIN16__) +/* For 16-bit BC++, these 2 are identical (truncated) */ +const wxEventType wxEVT_COMMAND_NB_PAGE_CHANGED = wxEVT_FIRST + 802; +const wxEventType wxEVT_COMMAND_NB_PAGE_CHANGING = wxEVT_FIRST + 803; +#else const wxEventType wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED = wxEVT_FIRST + 802; const wxEventType wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING = wxEVT_FIRST + 803; +#endif const wxEventType wxEVT_USER_FIRST = wxEVT_FIRST + 2000; -// Compatibility +/* Compatibility */ #if WXWIN_COMPATIBILITY @@ -345,6 +358,26 @@ class WXDLLEXPORT wxCommandEvent: public wxEvent wxClientData* m_clientObject; // Arbitrary client object }; +// this class adds a possibility to react (from the user) code to a control +// notification: allow or veto the operation being reported. +class WXDLLEXPORT wxNotifyEvent : public wxCommandEvent +{ +public: + wxNotifyEvent(wxEventType commandType = wxEVT_NULL, int id = 0) + : wxCommandEvent(commandType, id) { m_bAllow = TRUE; } + + // veto the operation (by default it's allowed) + void Veto() { m_bAllow = FALSE; } + + // for implementation code only: is the operation allowed? + bool IsAllowed() const { return m_bAllow; } + +private: + bool m_bAllow; + + DECLARE_DYNAMIC_CLASS(wxNotifyEvent) +}; + // Scroll event class /* wxEVT_SCROLL_TOP @@ -456,7 +489,7 @@ class WXDLLEXPORT wxMouseEvent: public wxEvent inline bool RightIsDown(void) const { return m_rightDown; } // True if a button is down and the mouse is moving - inline bool Dragging(void) const { return ((m_eventType == wxEVENT_TYPE_MOTION) && (LeftIsDown() || MiddleIsDown() || RightIsDown())); } + inline bool Dragging(void) const { return ((m_eventType == wxEVT_MOTION) && (LeftIsDown() || MiddleIsDown() || RightIsDown())); } // True if the mouse is moving, and no button is down inline bool Moving(void) const { return (m_eventType == wxEVT_MOTION); } @@ -1051,11 +1084,16 @@ class WXDLLEXPORT wxEvtHandler: public wxObject virtual bool ProcessEvent(wxEvent& event); virtual bool SearchEventTable(wxEventTable& table, wxEvent& event); - - void Connect( int id, int lastId, - int eventType, + + // Dynamic association of a member function handler with the event handler, id and event type + void Connect( int id, int lastId, wxEventType eventType, wxObjectEventFunction func, wxObject *userData = (wxObject *) NULL ); + + // Convenience function: take just one id + inline void Connect( int id, wxEventType eventType, + wxObjectEventFunction func, + wxObject *userData = (wxObject *) NULL ) { Connect(id, -1, eventType, func, userData); } bool SearchDynamicEventTable( wxEvent& event ); @@ -1115,7 +1153,7 @@ const wxEventTable theClass::sm_eventTable =\ const wxEventTableEntry theClass::sm_eventTableEntries[] = { \ #define END_EVENT_TABLE() \ - { 0, 0, 0, 0 } }; + { 0, 0, 0, 0, 0 } }; /* * Event table macros