added support for 2 extra mouse buttons (patch 1757630)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47802 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -150,6 +150,7 @@ All (GUI):
|
|||||||
- Support wxAPPLY and wxCLOSE in CreateStdDialogButtonSizer() (Marcin Wojdyr)
|
- Support wxAPPLY and wxCLOSE in CreateStdDialogButtonSizer() (Marcin Wojdyr)
|
||||||
- Show standard options in wxCmdLineParser usage message (Francesco Montorsi)
|
- Show standard options in wxCmdLineParser usage message (Francesco Montorsi)
|
||||||
- Added wxRect::operator+ (union) and * (intersection) (bdonner)
|
- Added wxRect::operator+ (union) and * (intersection) (bdonner)
|
||||||
|
- Added support for two auxiliary mouse buttons to wxMouseEvent (Chris Weiland)
|
||||||
|
|
||||||
wxGTK:
|
wxGTK:
|
||||||
|
|
||||||
|
@@ -5,9 +5,12 @@ they include mouse buttons press and release events and mouse move events.
|
|||||||
|
|
||||||
All mouse events involving the buttons use {\tt wxMOUSE\_BTN\_LEFT} for the
|
All mouse events involving the buttons use {\tt wxMOUSE\_BTN\_LEFT} for the
|
||||||
left mouse button, {\tt wxMOUSE\_BTN\_MIDDLE} for the middle one and
|
left mouse button, {\tt wxMOUSE\_BTN\_MIDDLE} for the middle one and
|
||||||
{\tt wxMOUSE\_BTN\_RIGHT} for the right one. Note that not all mice have a
|
{\tt wxMOUSE\_BTN\_RIGHT} for the right one. And if the system supports more
|
||||||
middle button so a portable application should avoid relying on the events from
|
buttons, the \texttt{wxMOUSE\_BTN\_AUX1} and \texttt{wxMOUSE\_BTN\_AUX2} events
|
||||||
it.
|
can also be generated. Note that not all mice have even a middle button so a
|
||||||
|
portable application should avoid relying on the events from it (but the right
|
||||||
|
button click can be emulated using the left mouse button with the control key
|
||||||
|
under Mac platforms with a single button mouse).
|
||||||
|
|
||||||
For the \texttt{wxEVT\_ENTER\_WINDOW} and \texttt{wxEVT\_LEAVE\_WINDOW} events
|
For the \texttt{wxEVT\_ENTER\_WINDOW} and \texttt{wxEVT\_LEAVE\_WINDOW} events
|
||||||
purposes, the mouse is considered to be inside the window if it is in the
|
purposes, the mouse is considered to be inside the window if it is in the
|
||||||
@@ -66,6 +69,12 @@ wouldn't get the focus.}
|
|||||||
\twocolitem{{\bf EVT\_RIGHT\_DOWN(func)}}{Process a wxEVT\_RIGHT\_DOWN event.}
|
\twocolitem{{\bf EVT\_RIGHT\_DOWN(func)}}{Process a wxEVT\_RIGHT\_DOWN event.}
|
||||||
\twocolitem{{\bf EVT\_RIGHT\_UP(func)}}{Process a wxEVT\_RIGHT\_UP event.}
|
\twocolitem{{\bf EVT\_RIGHT\_UP(func)}}{Process a wxEVT\_RIGHT\_UP event.}
|
||||||
\twocolitem{{\bf EVT\_RIGHT\_DCLICK(func)}}{Process a wxEVT\_RIGHT\_DCLICK event.}
|
\twocolitem{{\bf EVT\_RIGHT\_DCLICK(func)}}{Process a wxEVT\_RIGHT\_DCLICK event.}
|
||||||
|
\twocolitem{{\bf EVT\_MOUSE\_AUX1\_DOWN(func)}}{Process a wxEVT\_MOUSE\_AUX1\_DOWN event.}
|
||||||
|
\twocolitem{{\bf EVT\_MOUSE\_AUX1\_UP(func)}}{Process a wxEVT\_MOUSE\_AUX1\_UP event.}
|
||||||
|
\twocolitem{{\bf EVT\_MOUSE\_AUX1\_DCLICK(func)}}{Process a wxEVT\_MOUSE\_AUX1\_DCLICK event.}
|
||||||
|
\twocolitem{{\bf EVT\_MOUSE\_AUX2\_DOWN(func)}}{Process a wxEVT\_MOUSE\_AUX2\_DOWN event.}
|
||||||
|
\twocolitem{{\bf EVT\_MOUSE\_AUX2\_UP(func)}}{Process a wxEVT\_MOUSE\_AUX2\_UP event.}
|
||||||
|
\twocolitem{{\bf EVT\_MOUSE\_AUX2\_DCLICK(func)}}{Process a wxEVT\_MOUSE\_AUX2\_DCLICK event.}
|
||||||
\twocolitem{{\bf EVT\_MOTION(func)}}{Process a wxEVT\_MOTION event.}
|
\twocolitem{{\bf EVT\_MOTION(func)}}{Process a wxEVT\_MOTION event.}
|
||||||
\twocolitem{{\bf EVT\_ENTER\_WINDOW(func)}}{Process a wxEVT\_ENTER\_WINDOW event.}
|
\twocolitem{{\bf EVT\_ENTER\_WINDOW(func)}}{Process a wxEVT\_ENTER\_WINDOW event.}
|
||||||
\twocolitem{{\bf EVT\_LEAVE\_WINDOW(func)}}{Process a wxEVT\_LEAVE\_WINDOW event.}
|
\twocolitem{{\bf EVT\_LEAVE\_WINDOW(func)}}{Process a wxEVT\_LEAVE\_WINDOW event.}
|
||||||
@@ -181,6 +190,12 @@ Constructor. Valid event types are:
|
|||||||
\item {\bf wxEVT\_RIGHT\_DOWN}
|
\item {\bf wxEVT\_RIGHT\_DOWN}
|
||||||
\item {\bf wxEVT\_RIGHT\_UP}
|
\item {\bf wxEVT\_RIGHT\_UP}
|
||||||
\item {\bf wxEVT\_RIGHT\_DCLICK}
|
\item {\bf wxEVT\_RIGHT\_DCLICK}
|
||||||
|
\item {\bf wxEVT\_MOUSE\_AUX1\_DOWN}
|
||||||
|
\item {\bf wxEVT\_MOUSE\_AUX1\_UP}
|
||||||
|
\item {\bf wxEVT\_MOUSE\_AUX1\_DCLICK}
|
||||||
|
\item {\bf wxEVT\_MOUSE\_AUX2\_DOWN}
|
||||||
|
\item {\bf wxEVT\_MOUSE\_AUX2\_UP}
|
||||||
|
\item {\bf wxEVT\_MOUSE\_AUX2\_DCLICK}
|
||||||
\item {\bf wxEVT\_MOTION}
|
\item {\bf wxEVT\_MOTION}
|
||||||
\item {\bf wxEVT\_MOUSEWHEEL}
|
\item {\bf wxEVT\_MOUSEWHEEL}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
@@ -193,6 +208,64 @@ Constructor. Valid event types are:
|
|||||||
Returns true if the Alt key was down at the time of the event.
|
Returns true if the Alt key was down at the time of the event.
|
||||||
|
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::Aux1DClick}\label{wxmouseeventaux1dclick}
|
||||||
|
|
||||||
|
\constfunc{bool}{Aux1DClick}{\void}
|
||||||
|
|
||||||
|
Returns true if the event was a first extra button double click.
|
||||||
|
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::Aux1Down}\label{wxmouseeventaux1down}
|
||||||
|
|
||||||
|
\constfunc{bool}{Aux1Down}{\void}
|
||||||
|
|
||||||
|
Returns true if the first extra button mouse button changed to down.
|
||||||
|
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::Aux1IsDown}\label{wxmouseeventaux1isdown}
|
||||||
|
|
||||||
|
\constfunc{bool}{Aux1IsDown}{\void}
|
||||||
|
|
||||||
|
Returns true if the first extra button mouse button is currently down, independent
|
||||||
|
of the current event type.
|
||||||
|
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::Aux1Up}\label{wxmouseeventaux1up}
|
||||||
|
|
||||||
|
\constfunc{bool}{Aux1Up}{\void}
|
||||||
|
|
||||||
|
Returns true if the first extra button mouse button changed to up.
|
||||||
|
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::Aux2DClick}\label{wxmouseeventaux2dclick}
|
||||||
|
|
||||||
|
\constfunc{bool}{Aux2DClick}{\void}
|
||||||
|
|
||||||
|
Returns true if the event was a second extra button double click.
|
||||||
|
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::Aux2Down}\label{wxmouseeventaux2down}
|
||||||
|
|
||||||
|
\constfunc{bool}{Aux2Down}{\void}
|
||||||
|
|
||||||
|
Returns true if the second extra button mouse button changed to down.
|
||||||
|
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::Aux2IsDown}\label{wxmouseeventaux2isdown}
|
||||||
|
|
||||||
|
\constfunc{bool}{Aux2IsDown}{\void}
|
||||||
|
|
||||||
|
Returns true if the second extra button mouse button is currently down, independent
|
||||||
|
of the current event type.
|
||||||
|
|
||||||
|
|
||||||
|
\membersection{wxMouseEvent::Aux2Up}\label{wxmouseeventaux2up}
|
||||||
|
|
||||||
|
\constfunc{bool}{Aux2Up}{\void}
|
||||||
|
|
||||||
|
Returns true if the second extra button mouse button changed to up.
|
||||||
|
|
||||||
|
|
||||||
\membersection{wxMouseEvent::Button}\label{wxmouseeventbutton}
|
\membersection{wxMouseEvent::Button}\label{wxmouseeventbutton}
|
||||||
|
|
||||||
\func{bool}{Button}{\param{int}{ button}}
|
\func{bool}{Button}{\param{int}{ button}}
|
||||||
@@ -204,6 +277,8 @@ values of {\it button} are:
|
|||||||
\twocolitem{{\tt wxMOUSE\_BTN\_LEFT}}{check if left button was pressed}
|
\twocolitem{{\tt wxMOUSE\_BTN\_LEFT}}{check if left button was pressed}
|
||||||
\twocolitem{{\tt wxMOUSE\_BTN\_MIDDLE}}{check if middle button was pressed}
|
\twocolitem{{\tt wxMOUSE\_BTN\_MIDDLE}}{check if middle button was pressed}
|
||||||
\twocolitem{{\tt wxMOUSE\_BTN\_RIGHT}}{check if right button was pressed}
|
\twocolitem{{\tt wxMOUSE\_BTN\_RIGHT}}{check if right button was pressed}
|
||||||
|
\twocolitem{{\tt wxMOUSE\_BTN\_AUX1}}{check if the first extra button was pressed}
|
||||||
|
\twocolitem{{\tt wxMOUSE\_BTN\_AUX2}}{check if the second extra button was pressed}
|
||||||
\twocolitem{{\tt wxMOUSE\_BTN\_ANY}}{check if any button was pressed}
|
\twocolitem{{\tt wxMOUSE\_BTN\_ANY}}{check if any button was pressed}
|
||||||
\end{twocollist}
|
\end{twocollist}
|
||||||
|
|
||||||
|
@@ -179,6 +179,12 @@ BEGIN_DECLARE_EVENT_TYPES()
|
|||||||
DECLARE_EVENT_TYPE(wxEVT_KILL_FOCUS, 113)
|
DECLARE_EVENT_TYPE(wxEVT_KILL_FOCUS, 113)
|
||||||
DECLARE_EVENT_TYPE(wxEVT_CHILD_FOCUS, 114)
|
DECLARE_EVENT_TYPE(wxEVT_CHILD_FOCUS, 114)
|
||||||
DECLARE_EVENT_TYPE(wxEVT_MOUSEWHEEL, 115)
|
DECLARE_EVENT_TYPE(wxEVT_MOUSEWHEEL, 115)
|
||||||
|
DECLARE_EVENT_TYPE(wxEVT_AUX1_DOWN, 116)
|
||||||
|
DECLARE_EVENT_TYPE(wxEVT_AUX1_UP, 117)
|
||||||
|
DECLARE_EVENT_TYPE(wxEVT_AUX1_DCLICK, 118)
|
||||||
|
DECLARE_EVENT_TYPE(wxEVT_AUX2_DOWN, 119)
|
||||||
|
DECLARE_EVENT_TYPE(wxEVT_AUX2_UP, 120)
|
||||||
|
DECLARE_EVENT_TYPE(wxEVT_AUX2_DCLICK, 121)
|
||||||
|
|
||||||
// Non-client mouse events
|
// Non-client mouse events
|
||||||
DECLARE_EVENT_TYPE(wxEVT_NC_LEFT_DOWN, 200)
|
DECLARE_EVENT_TYPE(wxEVT_NC_LEFT_DOWN, 200)
|
||||||
@@ -676,7 +682,10 @@ enum
|
|||||||
wxMOUSE_BTN_NONE = 0,
|
wxMOUSE_BTN_NONE = 0,
|
||||||
wxMOUSE_BTN_LEFT = 1,
|
wxMOUSE_BTN_LEFT = 1,
|
||||||
wxMOUSE_BTN_MIDDLE = 2,
|
wxMOUSE_BTN_MIDDLE = 2,
|
||||||
wxMOUSE_BTN_RIGHT = 3
|
wxMOUSE_BTN_RIGHT = 3,
|
||||||
|
wxMOUSE_BTN_AUX1 = 4,
|
||||||
|
wxMOUSE_BTN_AUX2 = 5,
|
||||||
|
wxMOUSE_BTN_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxMouseEvent : public wxEvent
|
class WXDLLIMPEXP_CORE wxMouseEvent : public wxEvent
|
||||||
@@ -725,20 +734,28 @@ public:
|
|||||||
bool LeftDown() const { return (m_eventType == wxEVT_LEFT_DOWN); }
|
bool LeftDown() const { return (m_eventType == wxEVT_LEFT_DOWN); }
|
||||||
bool MiddleDown() const { return (m_eventType == wxEVT_MIDDLE_DOWN); }
|
bool MiddleDown() const { return (m_eventType == wxEVT_MIDDLE_DOWN); }
|
||||||
bool RightDown() const { return (m_eventType == wxEVT_RIGHT_DOWN); }
|
bool RightDown() const { return (m_eventType == wxEVT_RIGHT_DOWN); }
|
||||||
|
bool Aux1Down() const { return (m_eventType == wxEVT_AUX1_DOWN); }
|
||||||
|
bool Aux2Down() const { return (m_eventType == wxEVT_AUX2_DOWN); }
|
||||||
|
|
||||||
bool LeftUp() const { return (m_eventType == wxEVT_LEFT_UP); }
|
bool LeftUp() const { return (m_eventType == wxEVT_LEFT_UP); }
|
||||||
bool MiddleUp() const { return (m_eventType == wxEVT_MIDDLE_UP); }
|
bool MiddleUp() const { return (m_eventType == wxEVT_MIDDLE_UP); }
|
||||||
bool RightUp() const { return (m_eventType == wxEVT_RIGHT_UP); }
|
bool RightUp() const { return (m_eventType == wxEVT_RIGHT_UP); }
|
||||||
|
bool Aux1Up() const { return (m_eventType == wxEVT_AUX1_UP); }
|
||||||
|
bool Aux2Up() const { return (m_eventType == wxEVT_AUX2_UP); }
|
||||||
|
|
||||||
bool LeftDClick() const { return (m_eventType == wxEVT_LEFT_DCLICK); }
|
bool LeftDClick() const { return (m_eventType == wxEVT_LEFT_DCLICK); }
|
||||||
bool MiddleDClick() const { return (m_eventType == wxEVT_MIDDLE_DCLICK); }
|
bool MiddleDClick() const { return (m_eventType == wxEVT_MIDDLE_DCLICK); }
|
||||||
bool RightDClick() const { return (m_eventType == wxEVT_RIGHT_DCLICK); }
|
bool RightDClick() const { return (m_eventType == wxEVT_RIGHT_DCLICK); }
|
||||||
|
bool Aux1DClick() const { return (m_eventType == wxEVT_AUX1_UP); }
|
||||||
|
bool Aux2DClick() const { return (m_eventType == wxEVT_AUX2_UP); }
|
||||||
|
|
||||||
// Find the current state of the mouse buttons (regardless
|
// Find the current state of the mouse buttons (regardless
|
||||||
// of current event type)
|
// of current event type)
|
||||||
bool LeftIsDown() const { return m_leftDown; }
|
bool LeftIsDown() const { return m_leftDown; }
|
||||||
bool MiddleIsDown() const { return m_middleDown; }
|
bool MiddleIsDown() const { return m_middleDown; }
|
||||||
bool RightIsDown() const { return m_rightDown; }
|
bool RightIsDown() const { return m_rightDown; }
|
||||||
|
bool Aux1IsDown() const { return m_aux1Down; }
|
||||||
|
bool Aux2IsDown() const { return m_aux2Down; }
|
||||||
|
|
||||||
// True if a button is down and the mouse is moving
|
// True if a button is down and the mouse is moving
|
||||||
bool Dragging() const
|
bool Dragging() const
|
||||||
@@ -823,6 +840,8 @@ public:
|
|||||||
bool m_leftDown;
|
bool m_leftDown;
|
||||||
bool m_middleDown;
|
bool m_middleDown;
|
||||||
bool m_rightDown;
|
bool m_rightDown;
|
||||||
|
bool m_aux1Down;
|
||||||
|
bool m_aux2Down;
|
||||||
|
|
||||||
bool m_controlDown;
|
bool m_controlDown;
|
||||||
bool m_shiftDown;
|
bool m_shiftDown;
|
||||||
@@ -2882,19 +2901,31 @@ typedef void (wxEvtHandler::*wxClipboardTextEventFunction)(wxClipboardTextEvent&
|
|||||||
#define EVT_LEAVE_WINDOW(func) wx__DECLARE_EVT0(wxEVT_LEAVE_WINDOW, wxMouseEventHandler(func))
|
#define EVT_LEAVE_WINDOW(func) wx__DECLARE_EVT0(wxEVT_LEAVE_WINDOW, wxMouseEventHandler(func))
|
||||||
#define EVT_ENTER_WINDOW(func) wx__DECLARE_EVT0(wxEVT_ENTER_WINDOW, wxMouseEventHandler(func))
|
#define EVT_ENTER_WINDOW(func) wx__DECLARE_EVT0(wxEVT_ENTER_WINDOW, wxMouseEventHandler(func))
|
||||||
#define EVT_MOUSEWHEEL(func) wx__DECLARE_EVT0(wxEVT_MOUSEWHEEL, wxMouseEventHandler(func))
|
#define EVT_MOUSEWHEEL(func) wx__DECLARE_EVT0(wxEVT_MOUSEWHEEL, wxMouseEventHandler(func))
|
||||||
|
#define EVT_MOUSE_AUX1_DOWN(func) wx__DECLARE_EVT0(wxEVT_AUX1_DOWN, wxMouseEventHandler(func))
|
||||||
|
#define EVT_MOUSE_AUX1_UP(func) wx__DECLARE_EVT0(wxEVT_AUX1_UP, wxMouseEventHandler(func))
|
||||||
|
#define EVT_MOUSE_AUX1_DCLICK(func) wx__DECLARE_EVT0(wxEVT_AUX1_DCLICK, wxMouseEventHandler(func))
|
||||||
|
#define EVT_MOUSE_AUX2_DOWN(func) wx__DECLARE_EVT0(wxEVT_AUX2_DOWN, wxMouseEventHandler(func))
|
||||||
|
#define EVT_MOUSE_AUX2_UP(func) wx__DECLARE_EVT0(wxEVT_AUX2_UP, wxMouseEventHandler(func))
|
||||||
|
#define EVT_MOUSE_AUX2_DCLICK(func) wx__DECLARE_EVT0(wxEVT_AUX2_DCLICK, wxMouseEventHandler(func))
|
||||||
|
|
||||||
// All mouse events
|
// All mouse events
|
||||||
#define EVT_MOUSE_EVENTS(func) \
|
#define EVT_MOUSE_EVENTS(func) \
|
||||||
EVT_LEFT_DOWN(func) \
|
EVT_LEFT_DOWN(func) \
|
||||||
EVT_LEFT_UP(func) \
|
EVT_LEFT_UP(func) \
|
||||||
|
EVT_LEFT_DCLICK(func) \
|
||||||
EVT_MIDDLE_DOWN(func) \
|
EVT_MIDDLE_DOWN(func) \
|
||||||
EVT_MIDDLE_UP(func) \
|
EVT_MIDDLE_UP(func) \
|
||||||
|
EVT_MIDDLE_DCLICK(func) \
|
||||||
EVT_RIGHT_DOWN(func) \
|
EVT_RIGHT_DOWN(func) \
|
||||||
EVT_RIGHT_UP(func) \
|
EVT_RIGHT_UP(func) \
|
||||||
EVT_MOTION(func) \
|
|
||||||
EVT_LEFT_DCLICK(func) \
|
|
||||||
EVT_MIDDLE_DCLICK(func) \
|
|
||||||
EVT_RIGHT_DCLICK(func) \
|
EVT_RIGHT_DCLICK(func) \
|
||||||
|
EVT_MOUSE_AUX1_DOWN(func) \
|
||||||
|
EVT_MOUSE_AUX1_UP(func) \
|
||||||
|
EVT_MOUSE_AUX1_DCLICK(func) \
|
||||||
|
EVT_MOUSE_AUX2_DOWN(func) \
|
||||||
|
EVT_MOUSE_AUX2_UP(func) \
|
||||||
|
EVT_MOUSE_AUX2_DCLICK(func) \
|
||||||
|
EVT_MOTION(func) \
|
||||||
EVT_LEAVE_WINDOW(func) \
|
EVT_LEAVE_WINDOW(func) \
|
||||||
EVT_ENTER_WINDOW(func) \
|
EVT_ENTER_WINDOW(func) \
|
||||||
EVT_MOUSEWHEEL(func)
|
EVT_MOUSEWHEEL(func)
|
||||||
|
@@ -212,6 +212,7 @@ public:
|
|||||||
wxMouseState()
|
wxMouseState()
|
||||||
: m_x(0), m_y(0),
|
: m_x(0), m_y(0),
|
||||||
m_leftDown(false), m_middleDown(false), m_rightDown(false),
|
m_leftDown(false), m_middleDown(false), m_rightDown(false),
|
||||||
|
m_aux1Down(false), m_aux2Down(false),
|
||||||
m_controlDown(false), m_shiftDown(false), m_altDown(false),
|
m_controlDown(false), m_shiftDown(false), m_altDown(false),
|
||||||
m_metaDown(false)
|
m_metaDown(false)
|
||||||
{}
|
{}
|
||||||
@@ -222,6 +223,8 @@ public:
|
|||||||
bool LeftDown() { return m_leftDown; }
|
bool LeftDown() { return m_leftDown; }
|
||||||
bool MiddleDown() { return m_middleDown; }
|
bool MiddleDown() { return m_middleDown; }
|
||||||
bool RightDown() { return m_rightDown; }
|
bool RightDown() { return m_rightDown; }
|
||||||
|
bool Aux1Down() { return m_aux1Down; }
|
||||||
|
bool Aux2Down() { return m_aux2Down; }
|
||||||
|
|
||||||
bool ControlDown() { return m_controlDown; }
|
bool ControlDown() { return m_controlDown; }
|
||||||
bool ShiftDown() { return m_shiftDown; }
|
bool ShiftDown() { return m_shiftDown; }
|
||||||
@@ -242,6 +245,8 @@ public:
|
|||||||
void SetLeftDown(bool down) { m_leftDown = down; }
|
void SetLeftDown(bool down) { m_leftDown = down; }
|
||||||
void SetMiddleDown(bool down) { m_middleDown = down; }
|
void SetMiddleDown(bool down) { m_middleDown = down; }
|
||||||
void SetRightDown(bool down) { m_rightDown = down; }
|
void SetRightDown(bool down) { m_rightDown = down; }
|
||||||
|
void SetAux1Down(bool down) { m_aux1Down = down; }
|
||||||
|
void SetAux2Down(bool down) { m_aux2Down = down; }
|
||||||
|
|
||||||
void SetControlDown(bool down) { m_controlDown = down; }
|
void SetControlDown(bool down) { m_controlDown = down; }
|
||||||
void SetShiftDown(bool down) { m_shiftDown = down; }
|
void SetShiftDown(bool down) { m_shiftDown = down; }
|
||||||
@@ -255,6 +260,8 @@ private:
|
|||||||
bool m_leftDown : 1;
|
bool m_leftDown : 1;
|
||||||
bool m_middleDown : 1;
|
bool m_middleDown : 1;
|
||||||
bool m_rightDown : 1;
|
bool m_rightDown : 1;
|
||||||
|
bool m_aux1Down : 1;
|
||||||
|
bool m_aux2Down : 1;
|
||||||
|
|
||||||
bool m_controlDown : 1;
|
bool m_controlDown : 1;
|
||||||
bool m_shiftDown : 1;
|
bool m_shiftDown : 1;
|
||||||
|
@@ -197,6 +197,12 @@ DEFINE_EVENT_TYPE(wxEVT_SET_FOCUS)
|
|||||||
DEFINE_EVENT_TYPE(wxEVT_KILL_FOCUS)
|
DEFINE_EVENT_TYPE(wxEVT_KILL_FOCUS)
|
||||||
DEFINE_EVENT_TYPE(wxEVT_CHILD_FOCUS)
|
DEFINE_EVENT_TYPE(wxEVT_CHILD_FOCUS)
|
||||||
DEFINE_EVENT_TYPE(wxEVT_MOUSEWHEEL)
|
DEFINE_EVENT_TYPE(wxEVT_MOUSEWHEEL)
|
||||||
|
DEFINE_EVENT_TYPE(wxEVT_AUX1_DOWN)
|
||||||
|
DEFINE_EVENT_TYPE(wxEVT_AUX1_UP)
|
||||||
|
DEFINE_EVENT_TYPE(wxEVT_AUX1_DCLICK)
|
||||||
|
DEFINE_EVENT_TYPE(wxEVT_AUX2_DOWN)
|
||||||
|
DEFINE_EVENT_TYPE(wxEVT_AUX2_UP)
|
||||||
|
DEFINE_EVENT_TYPE(wxEVT_AUX2_DCLICK)
|
||||||
|
|
||||||
// Non-client mouse events
|
// Non-client mouse events
|
||||||
DEFINE_EVENT_TYPE(wxEVT_NC_LEFT_DOWN)
|
DEFINE_EVENT_TYPE(wxEVT_NC_LEFT_DOWN)
|
||||||
@@ -518,6 +524,8 @@ wxMouseEvent::wxMouseEvent(wxEventType commandType)
|
|||||||
m_leftDown = false;
|
m_leftDown = false;
|
||||||
m_rightDown = false;
|
m_rightDown = false;
|
||||||
m_middleDown = false;
|
m_middleDown = false;
|
||||||
|
m_aux1Down = false;
|
||||||
|
m_aux2Down = false;
|
||||||
m_x = 0;
|
m_x = 0;
|
||||||
m_y = 0;
|
m_y = 0;
|
||||||
m_wheelRotation = 0;
|
m_wheelRotation = 0;
|
||||||
@@ -536,6 +544,8 @@ void wxMouseEvent::Assign(const wxMouseEvent& event)
|
|||||||
m_leftDown = event.m_leftDown;
|
m_leftDown = event.m_leftDown;
|
||||||
m_middleDown = event.m_middleDown;
|
m_middleDown = event.m_middleDown;
|
||||||
m_rightDown = event.m_rightDown;
|
m_rightDown = event.m_rightDown;
|
||||||
|
m_aux1Down = event.m_aux1Down;
|
||||||
|
m_aux2Down = event.m_aux2Down;
|
||||||
|
|
||||||
m_controlDown = event.m_controlDown;
|
m_controlDown = event.m_controlDown;
|
||||||
m_shiftDown = event.m_shiftDown;
|
m_shiftDown = event.m_shiftDown;
|
||||||
@@ -558,7 +568,8 @@ bool wxMouseEvent::ButtonDClick(int but) const
|
|||||||
// fall through
|
// fall through
|
||||||
|
|
||||||
case wxMOUSE_BTN_ANY:
|
case wxMOUSE_BTN_ANY:
|
||||||
return (LeftDClick() || MiddleDClick() || RightDClick());
|
return (LeftDClick() || MiddleDClick() || RightDClick() ||
|
||||||
|
Aux1DClick() || Aux2DClick());
|
||||||
|
|
||||||
case wxMOUSE_BTN_LEFT:
|
case wxMOUSE_BTN_LEFT:
|
||||||
return LeftDClick();
|
return LeftDClick();
|
||||||
@@ -568,6 +579,12 @@ bool wxMouseEvent::ButtonDClick(int but) const
|
|||||||
|
|
||||||
case wxMOUSE_BTN_RIGHT:
|
case wxMOUSE_BTN_RIGHT:
|
||||||
return RightDClick();
|
return RightDClick();
|
||||||
|
|
||||||
|
case wxMOUSE_BTN_AUX1:
|
||||||
|
return Aux1DClick();
|
||||||
|
|
||||||
|
case wxMOUSE_BTN_AUX2:
|
||||||
|
return Aux2DClick();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -581,7 +598,8 @@ bool wxMouseEvent::ButtonDown(int but) const
|
|||||||
// fall through
|
// fall through
|
||||||
|
|
||||||
case wxMOUSE_BTN_ANY:
|
case wxMOUSE_BTN_ANY:
|
||||||
return (LeftDown() || MiddleDown() || RightDown());
|
return (LeftDown() || MiddleDown() || RightDown() ||
|
||||||
|
Aux1Down() || Aux2Down());
|
||||||
|
|
||||||
case wxMOUSE_BTN_LEFT:
|
case wxMOUSE_BTN_LEFT:
|
||||||
return LeftDown();
|
return LeftDown();
|
||||||
@@ -591,6 +609,12 @@ bool wxMouseEvent::ButtonDown(int but) const
|
|||||||
|
|
||||||
case wxMOUSE_BTN_RIGHT:
|
case wxMOUSE_BTN_RIGHT:
|
||||||
return RightDown();
|
return RightDown();
|
||||||
|
|
||||||
|
case wxMOUSE_BTN_AUX1:
|
||||||
|
return Aux1Down();
|
||||||
|
|
||||||
|
case wxMOUSE_BTN_AUX2:
|
||||||
|
return Aux2Down();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -604,7 +628,8 @@ bool wxMouseEvent::ButtonUp(int but) const
|
|||||||
// fall through
|
// fall through
|
||||||
|
|
||||||
case wxMOUSE_BTN_ANY:
|
case wxMOUSE_BTN_ANY:
|
||||||
return (LeftUp() || MiddleUp() || RightUp());
|
return (LeftUp() || MiddleUp() || RightUp() ||
|
||||||
|
Aux1Up() || Aux2Up());
|
||||||
|
|
||||||
case wxMOUSE_BTN_LEFT:
|
case wxMOUSE_BTN_LEFT:
|
||||||
return LeftUp();
|
return LeftUp();
|
||||||
@@ -614,6 +639,12 @@ bool wxMouseEvent::ButtonUp(int but) const
|
|||||||
|
|
||||||
case wxMOUSE_BTN_RIGHT:
|
case wxMOUSE_BTN_RIGHT:
|
||||||
return RightUp();
|
return RightUp();
|
||||||
|
|
||||||
|
case wxMOUSE_BTN_AUX1:
|
||||||
|
return Aux1Up();
|
||||||
|
|
||||||
|
case wxMOUSE_BTN_AUX2:
|
||||||
|
return Aux2Up();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -639,6 +670,12 @@ bool wxMouseEvent::Button(int but) const
|
|||||||
|
|
||||||
case wxMOUSE_BTN_RIGHT:
|
case wxMOUSE_BTN_RIGHT:
|
||||||
return RightDown() || RightUp() || RightDClick();
|
return RightDown() || RightUp() || RightDClick();
|
||||||
|
|
||||||
|
case wxMOUSE_BTN_AUX1:
|
||||||
|
return Aux1Down() || Aux1Up() || Aux1DClick();
|
||||||
|
|
||||||
|
case wxMOUSE_BTN_AUX2:
|
||||||
|
return Aux2Down() || Aux2Up() || Aux2DClick();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -651,7 +688,7 @@ bool wxMouseEvent::ButtonIsDown(int but) const
|
|||||||
// fall through
|
// fall through
|
||||||
|
|
||||||
case wxMOUSE_BTN_ANY:
|
case wxMOUSE_BTN_ANY:
|
||||||
return LeftIsDown() || MiddleIsDown() || RightIsDown();
|
return LeftIsDown() || MiddleIsDown() || RightIsDown() || Aux1Down() || Aux2Down();
|
||||||
|
|
||||||
case wxMOUSE_BTN_LEFT:
|
case wxMOUSE_BTN_LEFT:
|
||||||
return LeftIsDown();
|
return LeftIsDown();
|
||||||
@@ -661,12 +698,18 @@ bool wxMouseEvent::ButtonIsDown(int but) const
|
|||||||
|
|
||||||
case wxMOUSE_BTN_RIGHT:
|
case wxMOUSE_BTN_RIGHT:
|
||||||
return RightIsDown();
|
return RightIsDown();
|
||||||
|
|
||||||
|
case wxMOUSE_BTN_AUX1:
|
||||||
|
return Aux1IsDown();
|
||||||
|
|
||||||
|
case wxMOUSE_BTN_AUX2:
|
||||||
|
return Aux2IsDown();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int wxMouseEvent::GetButton() const
|
int wxMouseEvent::GetButton() const
|
||||||
{
|
{
|
||||||
for ( int i = 1; i <= 3; i++ )
|
for ( int i = 1; i < wxMOUSE_BTN_MAX; i++ )
|
||||||
{
|
{
|
||||||
if ( Button(i) )
|
if ( Button(i) )
|
||||||
{
|
{
|
||||||
|
@@ -2652,6 +2652,9 @@ WXLRESULT wxWindowMSW::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM l
|
|||||||
case WM_MBUTTONDOWN:
|
case WM_MBUTTONDOWN:
|
||||||
case WM_MBUTTONUP:
|
case WM_MBUTTONUP:
|
||||||
case WM_MBUTTONDBLCLK:
|
case WM_MBUTTONDBLCLK:
|
||||||
|
case WM_XBUTTONDOWN:
|
||||||
|
case WM_XBUTTONUP:
|
||||||
|
case WM_XBUTTONDBLCLK:
|
||||||
{
|
{
|
||||||
#ifdef __WXMICROWIN__
|
#ifdef __WXMICROWIN__
|
||||||
// MicroWindows seems to ignore the fact that a window is
|
// MicroWindows seems to ignore the fact that a window is
|
||||||
@@ -4794,6 +4797,8 @@ void wxWindowMSW::InitMouseEvent(wxMouseEvent& event,
|
|||||||
event.m_leftDown = (flags & MK_LBUTTON) != 0;
|
event.m_leftDown = (flags & MK_LBUTTON) != 0;
|
||||||
event.m_middleDown = (flags & MK_MBUTTON) != 0;
|
event.m_middleDown = (flags & MK_MBUTTON) != 0;
|
||||||
event.m_rightDown = (flags & MK_RBUTTON) != 0;
|
event.m_rightDown = (flags & MK_RBUTTON) != 0;
|
||||||
|
event.m_aux1Down = (flags & MK_XBUTTON1) != 0;
|
||||||
|
event.m_aux2Down = (flags & MK_XBUTTON2) != 0;
|
||||||
event.m_altDown = ::GetKeyState(VK_MENU) < 0;
|
event.m_altDown = ::GetKeyState(VK_MENU) < 0;
|
||||||
|
|
||||||
#ifndef __WXWINCE__
|
#ifndef __WXWINCE__
|
||||||
@@ -4892,9 +4897,27 @@ bool wxWindowMSW::HandleMouseEvent(WXUINT msg, int x, int y, WXUINT flags)
|
|||||||
wxEVT_RIGHT_DCLICK,
|
wxEVT_RIGHT_DCLICK,
|
||||||
wxEVT_MIDDLE_DOWN,
|
wxEVT_MIDDLE_DOWN,
|
||||||
wxEVT_MIDDLE_UP,
|
wxEVT_MIDDLE_UP,
|
||||||
wxEVT_MIDDLE_DCLICK
|
wxEVT_MIDDLE_DCLICK,
|
||||||
|
0, // this one is for wxEVT_MOTION which is not used here
|
||||||
|
wxEVT_AUX1_DOWN,
|
||||||
|
wxEVT_AUX1_UP,
|
||||||
|
wxEVT_AUX1_DCLICK,
|
||||||
|
wxEVT_AUX2_DOWN,
|
||||||
|
wxEVT_AUX2_UP,
|
||||||
|
wxEVT_AUX2_DCLICK
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// the same messages are used for both auxillary mouse buttons so we need
|
||||||
|
// to adjust the index manually
|
||||||
|
switch ( msg )
|
||||||
|
{
|
||||||
|
case WM_XBUTTONDOWN:
|
||||||
|
case WM_XBUTTONUP:
|
||||||
|
case WM_XBUTTONDBLCLK:
|
||||||
|
if ( flags & MK_XBUTTON2 )
|
||||||
|
msg += wxEVT_AUX2_DOWN - wxEVT_AUX1_DOWN;
|
||||||
|
}
|
||||||
|
|
||||||
wxMouseEvent event(eventsMouse[msg - WM_MOUSEMOVE]);
|
wxMouseEvent event(eventsMouse[msg - WM_MOUSEMOVE]);
|
||||||
InitMouseEvent(event, x, y, flags);
|
InitMouseEvent(event, x, y, flags);
|
||||||
|
|
||||||
@@ -5810,6 +5833,8 @@ wxMouseState wxGetMouseState()
|
|||||||
ms.SetLeftDown(wxIsKeyDown(VK_LBUTTON));
|
ms.SetLeftDown(wxIsKeyDown(VK_LBUTTON));
|
||||||
ms.SetMiddleDown(wxIsKeyDown(VK_MBUTTON));
|
ms.SetMiddleDown(wxIsKeyDown(VK_MBUTTON));
|
||||||
ms.SetRightDown(wxIsKeyDown(VK_RBUTTON));
|
ms.SetRightDown(wxIsKeyDown(VK_RBUTTON));
|
||||||
|
ms.SetAux1Down(wxIsKeyDown(VK_XBUTTON1));
|
||||||
|
ms.SetAux2Down(wxIsKeyDown(VK_XBUTTON2));
|
||||||
|
|
||||||
ms.SetControlDown(wxIsKeyDown(VK_CONTROL));
|
ms.SetControlDown(wxIsKeyDown(VK_CONTROL));
|
||||||
ms.SetShiftDown(wxIsKeyDown(VK_SHIFT));
|
ms.SetShiftDown(wxIsKeyDown(VK_SHIFT));
|
||||||
@@ -6140,6 +6165,9 @@ const wxChar *wxGetMessageName(int message)
|
|||||||
case 0x0208: return wxT("WM_MBUTTONUP");
|
case 0x0208: return wxT("WM_MBUTTONUP");
|
||||||
case 0x0209: return wxT("WM_MBUTTONDBLCLK");
|
case 0x0209: return wxT("WM_MBUTTONDBLCLK");
|
||||||
case 0x020A: return wxT("WM_MOUSEWHEEL");
|
case 0x020A: return wxT("WM_MOUSEWHEEL");
|
||||||
|
case 0x020B: return wxT("WM_XBUTTONDOWN");
|
||||||
|
case 0x020C: return wxT("WM_XBUTTONUP");
|
||||||
|
case 0x020D: return wxT("WM_XBUTTONDBLCLK");
|
||||||
case 0x0210: return wxT("WM_PARENTNOTIFY");
|
case 0x0210: return wxT("WM_PARENTNOTIFY");
|
||||||
case 0x0211: return wxT("WM_ENTERMENULOOP");
|
case 0x0211: return wxT("WM_ENTERMENULOOP");
|
||||||
case 0x0212: return wxT("WM_EXITMENULOOP");
|
case 0x0212: return wxT("WM_EXITMENULOOP");
|
||||||
|
Reference in New Issue
Block a user