X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8e193f384f7b98daef459653ddb8485173fba8ba..0148fe1e2a2ea076bcd7a647c0b7946de0e0f990:/include/wx/event.h diff --git a/include/wx/event.h b/include/wx/event.h index 66b6a3bf43..d125990a06 100644 --- a/include/wx/event.h +++ b/include/wx/event.h @@ -23,9 +23,7 @@ #include "wx/gdicmn.h" #endif -#if wxUSE_THREADS - #include "wx/thread.h" -#endif +#include "wx/thread.h" // ---------------------------------------------------------------------------- // forward declarations @@ -68,6 +66,7 @@ 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; +const wxEventType wxEVT_COMMAND_SPINCTRL_UPDATED = wxEVT_FIRST + 18; /* Sockets send events, too */ const wxEventType wxEVT_SOCKET = wxEVT_FIRST + 50; @@ -251,6 +250,12 @@ const wxEventType wxEVT_WIZARD_PAGE_CHANGED = wxEVT_FIRST + 900; const wxEventType wxEVT_WIZARD_PAGE_CHANGING = wxEVT_FIRST + 901; const wxEventType wxEVT_WIZARD_CANCEL = wxEVT_FIRST + 902; +/* Calendar events */ +const wxEventType wxEVT_CALENDAR_SEL_CHANGED = wxEVT_FIRST + 950; +const wxEventType wxEVT_CALENDAR_DAY_CHANGED = wxEVT_FIRST + 951; +const wxEventType wxEVT_CALENDAR_MONTH_CHANGED = wxEVT_FIRST + 952; +const wxEventType wxEVT_CALENDAR_YEAR_CHANGED = wxEVT_FIRST + 953; + const wxEventType wxEVT_USER_FIRST = wxEVT_FIRST + 2000; /* Compatibility */ @@ -437,6 +442,10 @@ public: // for implementation code only: is the operation allowed? bool IsAllowed() const { return m_bAllow; } + // probably useless: CopyObject() is used for deferred event + // handling but wxNotifyEvent must be processed immediately + void CopyObject(wxObject& obj) const; + private: bool m_bAllow; @@ -508,7 +517,7 @@ public: void CopyObject(wxObject& object_dest) const; public: int m_commandInt; // Additional information - long m_extraLong; + long m_extraLong; }; // Mouse event class @@ -607,8 +616,23 @@ public: bool Leaving() const { return (m_eventType == wxEVT_LEAVE_WINDOW); } // Find the position of the event - void GetPosition(long *xpos, long *ypos) const { *xpos = m_x; *ypos = m_y; } - void Position(long *xpos, long *ypos) const { *xpos = m_x; *ypos = m_y; } + void GetPosition(wxCoord *xpos, wxCoord *ypos) const + { + if (xpos) + *xpos = m_x; + if (ypos) + *ypos = m_y; + } + +#ifndef __WIN16__ + void GetPosition(long *xpos, long *ypos) const + { + if (xpos) + *xpos = (long)m_x; + if (ypos) + *ypos = (long)m_y; + } +#endif // Find the position of the event wxPoint GetPosition() const { return wxPoint(m_x, m_y); } @@ -618,6 +642,14 @@ public: // Compatibility #if WXWIN_COMPATIBILITY + void Position(long *xpos, long *ypos) const + { + if (xpos) + *xpos = (long)m_x; + if (ypos) + *ypos = (long)m_y; + } + void Position(float *xpos, float *ypos) const { *xpos = (float) m_x; *ypos = (float) m_y; @@ -633,8 +665,8 @@ public: void CopyObject(wxObject& obj) const; public: - long m_x; - long m_y; + wxCoord m_x, m_y; + bool m_leftDown; bool m_middleDown; bool m_rightDown; @@ -669,24 +701,36 @@ public: long KeyCode() const { return m_keyCode; } // Find the position of the event + void GetPosition(wxCoord *xpos, wxCoord *ypos) const + { + if (xpos) *xpos = m_x; + if (ypos) *ypos = m_y; + } + +#ifndef __WIN16__ void GetPosition(long *xpos, long *ypos) const - { *xpos = m_x; *ypos = m_y; } + { + if (xpos) *xpos = (long)m_x; + if (ypos) *ypos = (long)m_y; + } +#endif wxPoint GetPosition() const { return wxPoint(m_x, m_y); } // 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; public: - long m_x; - long m_y; + wxCoord m_x, m_y; + long m_keyCode; + bool m_controlDown; bool m_shiftDown; bool m_altDown; @@ -1330,7 +1374,7 @@ public: // process all pending events void ProcessPendingEvents(); - // add a + // add a #if wxUSE_THREADS bool ProcessThreadEvent(wxEvent& event); #endif @@ -1347,12 +1391,28 @@ public: wxObject *userData = (wxObject *) NULL ) { Connect(id, -1, eventType, func, userData); } + bool Disconnect( int id, int lastId = -1, wxEventType eventType = wxEVT_NULL, + wxObjectEventFunction func = NULL, + wxObject *userData = (wxObject *) NULL ); + + // Convenience function: take just one id + bool Disconnect( int id, wxEventType eventType = wxEVT_NULL, + 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 ); #if wxUSE_THREADS - void ClearEventLocker() { delete m_eventsLocker; m_eventsLocker = NULL; }; + void ClearEventLocker() + { +# if !defined(__VISAGECPP__) + delete m_eventsLocker; + m_eventsLocker = NULL; +#endif + }; #endif // old stuff @@ -1387,7 +1447,11 @@ protected: wxList* m_dynamicEvents; wxList* m_pendingEvents; #if wxUSE_THREADS +#if defined (__VISAGECPP__) + wxCriticalSection m_eventsLocker; +# else wxCriticalSection* m_eventsLocker; +# endif #endif // optimization: instead of using costly IsKindOf() to decide whether we're @@ -1596,6 +1660,7 @@ const wxEventTableEntry theClass::sm_eventTableEntries[] = { \ #define EVT_TOOL_RCLICKED_RANGE(id1, id2, fn) { wxEVT_COMMAND_TOOL_RCLICKED, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, #define EVT_TOOL_ENTER(id, fn) { wxEVT_COMMAND_TOOL_ENTER, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, #define EVT_CHECKLISTBOX(id, fn) { wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, +#define EVT_SPINCTRL(id, fn) { wxEVT_COMMAND_SPINCTRL_UPDATED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, // Generic command events #define EVT_COMMAND_LEFT_CLICK(id, fn) { wxEVT_COMMAND_LEFT_CLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL },