// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifndef _WX_EVENT_H__
-#define _WX_EVENT_H__
+#ifndef _WX_EVENT_H_
+#define _WX_EVENT_H_
#include "wx/defs.h"
#include "wx/cpp.h"
#include "wx/cursor.h"
#endif
-#include "wx/thread.h"
-
#include "wx/dynarray.h"
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
class WXDLLIMPEXP_FWD_BASE wxList;
-
+#if wxUSE_THREADS
+ class WXDLLIMPEXP_FWD_BASE wxCriticalSection;
+#endif
#if wxUSE_GUI
class WXDLLIMPEXP_FWD_CORE wxDC;
class WXDLLIMPEXP_FWD_CORE wxMenu;
DECLARE_EVENT_TYPE(wxEVT_UPDATE_UI, 440)
DECLARE_EVENT_TYPE(wxEVT_SIZING, 441)
DECLARE_EVENT_TYPE(wxEVT_MOVING, 442)
- DECLARE_EVENT_TYPE(wxEVT_HIBERNATE, 443)
+ DECLARE_EVENT_TYPE(wxEVT_MOVE_START, 443)
+ DECLARE_EVENT_TYPE(wxEVT_MOVE_END, 444)
+ DECLARE_EVENT_TYPE(wxEVT_HIBERNATE, 445)
// more power events follow -- see wx/power.h
// Clipboard events
- DECLARE_EVENT_TYPE(wxEVT_COMMAND_TEXT_COPY, 444)
- DECLARE_EVENT_TYPE(wxEVT_COMMAND_TEXT_CUT, 445)
- DECLARE_EVENT_TYPE(wxEVT_COMMAND_TEXT_PASTE, 446)
+ DECLARE_EVENT_TYPE(wxEVT_COMMAND_TEXT_COPY, 446)
+ DECLARE_EVENT_TYPE(wxEVT_COMMAND_TEXT_CUT, 447)
+ DECLARE_EVENT_TYPE(wxEVT_COMMAND_TEXT_PASTE, 448)
// Generic command events
// Note: a click is a higher-level event than button down/up
{
public:
wxMouseEvent(wxEventType mouseType = wxEVT_NULL);
- wxMouseEvent(const wxMouseEvent& event) : wxEvent(event)
+ wxMouseEvent(const wxMouseEvent& event) : wxEvent(event)
{ Assign(event); }
// Was it a button event? (*doesn't* mean: is any button *down*?)
// True if the mouse is just leaving the window
bool Leaving() const { return (m_eventType == wxEVT_LEAVE_WINDOW); }
+ // Returns the number of mouse clicks associated with this event.
+ int GetClickCount() const { return m_clickCount; }
+
+
// Find the position of the event
void GetPosition(wxCoord *xpos, wxCoord *ypos) const
{
// Returns the configured number of lines (or whatever) to be scrolled per
// wheel action. Defaults to one.
int GetLinesPerAction() const { return m_linesPerAction; }
-
+
// Is the system set to do page scrolling?
bool IsPageScroll() const { return ((unsigned int)m_linesPerAction == UINT_MAX); }
bool m_shiftDown;
bool m_altDown;
bool m_metaDown;
-
+
+ int m_clickCount;
+
int m_wheelAxis;
int m_wheelRotation;
int m_wheelDelta;
// Clear table
void Clear();
-#if defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING
+#if defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING
// Clear all tables
static void ClearAll();
#endif // __WXDEBUG__ && wxUSE_MEMORY_TRACING
// process an event right now
virtual bool ProcessEvent(wxEvent& event);
+ // Process an event by calling ProcessEvent and handling any exceptions
+ // thrown by event handlers. It's mostly useful when processing wx events
+ // when called from C code (e.g. in GTK+ callback) when the exception
+ // wouldn't correctly propagate to wxEventLoop.
+ bool SafelyProcessEvent(wxEvent& event);
+
// add an event to be processed later
virtual void AddPendingEvent(const wxEvent& event);
#define EVT_SIZING(func) wx__DECLARE_EVT0(wxEVT_SIZING, wxSizeEventHandler(func))
#define EVT_MOVE(func) wx__DECLARE_EVT0(wxEVT_MOVE, wxMoveEventHandler(func))
#define EVT_MOVING(func) wx__DECLARE_EVT0(wxEVT_MOVING, wxMoveEventHandler(func))
+#define EVT_MOVE_START(func) wx__DECLARE_EVT0(wxEVT_MOVE_START, wxMoveEventHandler(func))
+#define EVT_MOVE_END(func) wx__DECLARE_EVT0(wxEVT_MOVE_END, wxMoveEventHandler(func))
#define EVT_CLOSE(func) wx__DECLARE_EVT0(wxEVT_CLOSE_WINDOW, wxCloseEventHandler(func))
#define EVT_END_SESSION(func) wx__DECLARE_EVT0(wxEVT_END_SESSION, wxCloseEventHandler(func))
#define EVT_QUERY_END_SESSION(func) wx__DECLARE_EVT0(wxEVT_QUERY_END_SESSION, wxCloseEventHandler(func))
#endif // wxUSE_GUI
-#endif // _WX_EVENT_H__
+#endif // _WX_EVENT_H_