]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/mouseevt.tex
quote an underscore
[wxWidgets.git] / docs / latex / wx / mouseevt.tex
CommitLineData
a660d684
KB
1\section{\class{wxMouseEvent}}\label{wxmouseevent}
2
ec760ec9
VZ
3This event class contains information about the events generated by the mouse:
4they include mouse buttons press and release events and mouse move events.
5
8e7cd32b
VZ
6All mouse events involving the buttons use {\tt wxMOUSE\_BTN\_LEFT} for the
7left mouse button, {\tt wxMOUSE\_BTN\_MIDDLE} for the middle one and
8{\tt wxMOUSE\_BTN\_RIGHT} for the right one. Note that not all mice have a
9middle button so a portable application should avoid relying on the events from
10it.
a660d684 11
faa97247 12{\bf NB:} Note that under Windows CE mouse enter and leave events are not natively supported
fc2171bd 13by the system but are generated by wxWidgets itself. This has several
4aff28fc
VZ
14drawbacks: the LEAVE\_WINDOW event might be received some time after the mouse
15left the window and the state variables for it may have changed during this
16time.
17
9b9337da
RD
18{\bf NB:} Note the difference between methods like
19\helpref{LeftDown}{wxmouseeventleftdown} and
cc81d32f 20\helpref{LeftIsDown}{wxmouseeventleftisdown}: the former returns {\tt true}
f6bcfd97 21when the event corresponds to the left mouse button click while the latter
cc81d32f 22returns {\tt true} if the left mouse button is currently being pressed. For
9b9337da 23example, when the user is dragging the mouse you can use
f6bcfd97
BP
24\helpref{LeftIsDown}{wxmouseeventleftisdown} to test
25whether the left mouse button is (still) depressed. Also, by convention, if
cc81d32f
VS
26\helpref{LeftDown}{wxmouseeventleftdown} returns {\tt true},
27\helpref{LeftIsDown}{wxmouseeventleftisdown} will also return {\tt true} in
fc2171bd 28wxWidgets whatever the underlying GUI behaviour is (which is
f6bcfd97
BP
29platform-dependent). The same applies, of course, to other mouse buttons as
30well.
31
a660d684
KB
32\wxheading{Derived from}
33
34\helpref{wxEvent}{wxevent}
35
954b8ae6
JS
36\wxheading{Include files}
37
38<wx/event.h>
39
a660d684
KB
40\wxheading{Event table macros}
41
42To process a mouse event, use these event handler macros to direct input to member
43functions that take a wxMouseEvent argument.
44
45\twocolwidtha{7cm}
46\begin{twocollist}\itemsep=0pt
58dee211
VZ
47\twocolitem{{\bf EVT\_LEFT\_DOWN(func)}}{Process a wxEVT\_LEFT\_DOWN event. The
48handler of this event should normally call \helpref{event.Skip()}{wxeventskip} to
49allow the default processing to take place as otherwise the window under mouse
50wouldn't get the focus.}
a660d684
KB
51\twocolitem{{\bf EVT\_LEFT\_UP(func)}}{Process a wxEVT\_LEFT\_UP event.}
52\twocolitem{{\bf EVT\_LEFT\_DCLICK(func)}}{Process a wxEVT\_LEFT\_DCLICK event.}
53\twocolitem{{\bf EVT\_MIDDLE\_DOWN(func)}}{Process a wxEVT\_MIDDLE\_DOWN event.}
54\twocolitem{{\bf EVT\_MIDDLE\_UP(func)}}{Process a wxEVT\_MIDDLE\_UP event.}
55\twocolitem{{\bf EVT\_MIDDLE\_DCLICK(func)}}{Process a wxEVT\_MIDDLE\_DCLICK event.}
56\twocolitem{{\bf EVT\_RIGHT\_DOWN(func)}}{Process a wxEVT\_RIGHT\_DOWN event.}
57\twocolitem{{\bf EVT\_RIGHT\_UP(func)}}{Process a wxEVT\_RIGHT\_UP event.}
58\twocolitem{{\bf EVT\_RIGHT\_DCLICK(func)}}{Process a wxEVT\_RIGHT\_DCLICK event.}
59\twocolitem{{\bf EVT\_MOTION(func)}}{Process a wxEVT\_MOTION event.}
60\twocolitem{{\bf EVT\_ENTER\_WINDOW(func)}}{Process a wxEVT\_ENTER\_WINDOW event.}
61\twocolitem{{\bf EVT\_LEAVE\_WINDOW(func)}}{Process a wxEVT\_LEAVE\_WINDOW event.}
d2c52078 62\twocolitem{{\bf EVT\_MOUSEWHEEL(func)}}{Process a wxEVT\_MOUSEWHEEL event.}
5de76427 63\twocolitem{{\bf EVT\_MOUSE\_EVENTS(func)}}{Process all mouse events.}
a660d684
KB
64\end{twocollist}%
65
66\latexignore{\rtfignore{\wxheading{Members}}}
67
6f63704f 68
3e79fa75 69\membersection{wxMouseEvent::m\_altDown}\label{wxmouseeventmaltdown}
a660d684
KB
70
71\member{bool}{m\_altDown}
72
cc81d32f 73true if the Alt key is pressed down.
a660d684 74
6f63704f 75
3e79fa75 76\membersection{wxMouseEvent::m\_controlDown}\label{wxmouseeventmcontroldown}
a660d684
KB
77
78\member{bool}{m\_controlDown}
79
cc81d32f 80true if control key is pressed down.
a660d684 81
6f63704f 82
3e79fa75 83\membersection{wxMouseEvent::m\_leftDown}\label{wxmouseeventmleftdown}
a660d684
KB
84
85\member{bool}{m\_leftDown}
86
cc81d32f 87true if the left mouse button is currently pressed down.
a660d684 88
6f63704f 89
3e79fa75 90\membersection{wxMouseEvent::m\_middleDown}\label{wxmouseeventmmiddledown}
a660d684
KB
91
92\member{bool}{m\_middleDown}
93
cc81d32f 94true if the middle mouse button is currently pressed down.
a660d684 95
6f63704f 96
3e79fa75 97\membersection{wxMouseEvent::m\_rightDown}\label{wxmouseeventmrightdown}
a660d684
KB
98
99\member{bool}{m\_rightDown}
100
cc81d32f 101true if the right mouse button is currently pressed down.
a660d684 102
6f63704f 103
3e79fa75 104\membersection{wxMouseEvent::m\_metaDown}\label{wxmouseeventmmetadown}
a660d684
KB
105
106\member{bool}{m\_metaDown}
107
cc81d32f 108true if the Meta key is pressed down.
a660d684 109
6f63704f 110
3e79fa75 111\membersection{wxMouseEvent::m\_shiftDown}\label{wxmouseeventmshiftdown}
a660d684
KB
112
113\member{bool}{m\_shiftDown}
114
cc81d32f 115true if shift is pressed down.
a660d684 116
6f63704f 117
3e79fa75 118\membersection{wxMouseEvent::m\_x}\label{wxmouseeventmx}
a660d684 119
803ef874 120\member{long}{m\_x}
a660d684
KB
121
122X-coordinate of the event.
123
6f63704f 124
3e79fa75 125\membersection{wxMouseEvent::m\_y}\label{wxmouseeventmy}
a660d684 126
803ef874 127\member{long}{m\_y}
a660d684
KB
128
129Y-coordinate of the event.
130
6f63704f 131
3e79fa75 132\membersection{wxMouseEvent::m\_wheelRotation}\label{wxmouseeventmwheelrotation}
d2c52078
RD
133
134\member{int}{m\_wheelRotation}
135
136The distance the mouse wheel is rotated.
137
6f63704f 138
3e79fa75 139\membersection{wxMouseEvent::m\_wheelDelta}\label{wxmouseeventmwheeldelta}
d2c52078
RD
140
141\member{int}{m\_wheelDelta}
142
8e7cd32b 143The wheel delta, normally $120$.
d2c52078 144
6f63704f 145
3e79fa75 146\membersection{wxMouseEvent::m\_linesPerAction}\label{wxmouseeventmlinesperaction}
d2c52078
RD
147
148\member{int}{m\_linesPerAction}
149
150The configured number of lines (or whatever) to be scrolled per wheel
151action.
152
153
6f63704f 154
3e79fa75 155\membersection{wxMouseEvent::wxMouseEvent}\label{wxmouseeventctor}
a660d684 156
f6e9a818 157\func{}{wxMouseEvent}{\param{WXTYPE}{ mouseEventType = 0}}
a660d684
KB
158
159Constructor. Valid event types are:
160
161\begin{itemize}
162\itemsep=0pt
163\item {\bf wxEVT\_ENTER\_WINDOW}
164\item {\bf wxEVT\_LEAVE\_WINDOW}
165\item {\bf wxEVT\_LEFT\_DOWN}
166\item {\bf wxEVT\_LEFT\_UP}
167\item {\bf wxEVT\_LEFT\_DCLICK}
168\item {\bf wxEVT\_MIDDLE\_DOWN}
169\item {\bf wxEVT\_MIDDLE\_UP}
170\item {\bf wxEVT\_MIDDLE\_DCLICK}
171\item {\bf wxEVT\_RIGHT\_DOWN}
172\item {\bf wxEVT\_RIGHT\_UP}
173\item {\bf wxEVT\_RIGHT\_DCLICK}
174\item {\bf wxEVT\_MOTION}
d2c52078 175\item {\bf wxEVT\_MOUSEWHEEL}
a660d684
KB
176\end{itemize}
177
6f63704f 178
3e79fa75 179\membersection{wxMouseEvent::AltDown}\label{wxmouseeventaltdown}
a660d684
KB
180
181\func{bool}{AltDown}{\void}
182
cc81d32f 183Returns true if the Alt key was down at the time of the event.
a660d684 184
6f63704f 185
8e7cd32b 186\membersection{wxMouseEvent::Button}\label{wxmouseeventbutton}
a660d684
KB
187
188\func{bool}{Button}{\param{int}{ button}}
189
cc81d32f 190Returns true if the identified mouse button is changing state. Valid
8e7cd32b 191values of {\it button} are:
a660d684 192
8e7cd32b 193\begin{twocollist}\itemsep=0pt
91fd135b 194\twocolitem{{\tt wxMOUSE\_BTN\_LEFT}}{check if left button was pressed}
dbd94b75
KH
195\twocolitem{{\tt wxMOUSE\_BTN\_MIDDLE}}{check if middle button was pressed}
196\twocolitem{{\tt wxMOUSE\_BTN\_RIGHT}}{check if right button was pressed}
91fd135b 197\twocolitem{{\tt wxMOUSE\_BTN\_ANY}}{check if any button was pressed}
8e7cd32b
VZ
198\end{twocollist}
199
6f63704f 200
3e79fa75 201\membersection{wxMouseEvent::ButtonDClick}\label{wxmouseeventbuttondclick}
a660d684 202
8e7cd32b 203\func{bool}{ButtonDClick}{\param{int}{ but = wxMOUSE\_BTN\_ANY}}
a660d684 204
cc81d32f 205If the argument is omitted, this returns true if the event was a mouse
a660d684 206double click event. Otherwise the argument specifies which double click event
8e7cd32b
VZ
207was generated (see \helpref{Button}{wxmouseeventbutton} for the possible
208values).
a660d684 209
6f63704f 210
3e79fa75 211\membersection{wxMouseEvent::ButtonDown}\label{wxmouseeventbuttondown}
a660d684
KB
212
213\func{bool}{ButtonDown}{\param{int}{ but = -1}}
214
cc81d32f 215If the argument is omitted, this returns true if the event was a mouse
a660d684 216button down event. Otherwise the argument specifies which button-down event
8e7cd32b
VZ
217was generated (see \helpref{Button}{wxmouseeventbutton} for the possible
218values).
219
a660d684 220
6f63704f 221
3e79fa75 222\membersection{wxMouseEvent::ButtonUp}\label{wxmouseeventbuttonup}
a660d684
KB
223
224\func{bool}{ButtonUp}{\param{int}{ but = -1}}
225
cc81d32f 226If the argument is omitted, this returns true if the event was a mouse
a660d684 227button up event. Otherwise the argument specifies which button-up event
8e7cd32b
VZ
228was generated (see \helpref{Button}{wxmouseeventbutton} for the possible
229values).
230
a660d684 231
6f63704f 232
9cc73180 233\membersection{wxMouseEvent::CmdDown}\label{wxmouseeventcmddown}
a2bd1520
VZ
234
235\constfunc{bool}{CmdDown}{\void}
236
237Same as \helpref{MetaDown}{wxmouseeventmetadown} under Mac, same as
238\helpref{ControlDown}{wxmouseeventcontroldown} elsewhere.
239
240\wxheading{See also}
241
dc66ae68 242\helpref{wxKeyEvent::CmdDown}{wxkeyeventcmddown}
a2bd1520
VZ
243
244
245\membersection{wxMouseEvent::ControlDown}\label{wxmouseeventcontroldown}
a660d684
KB
246
247\func{bool}{ControlDown}{\void}
248
cc81d32f 249Returns true if the control key was down at the time of the event.
a660d684 250
6f63704f 251
100cf085 252\membersection{wxMouseEvent::Dragging}\label{wxmouseeventdragging}
a660d684
KB
253
254\func{bool}{Dragging}{\void}
255
cc81d32f 256Returns true if this was a dragging event (motion while a button is depressed).
a660d684 257
100cf085
VZ
258\wxheading{See also}
259
260\helpref{Moving}{wxmouseeventmoving}
261
6f63704f 262
a660d684
KB
263\membersection{wxMouseEvent::Entering}\label{wxmouseevententering}
264
265\func{bool}{Entering}{\void}
266
cc81d32f 267Returns true if the mouse was entering the window.
a660d684
KB
268
269See also \helpref{wxMouseEvent::Leaving}{wxmouseeventleaving}.
270
6f63704f 271
ec760ec9
VZ
272\membersection{wxMouseEvent::GetButton}\label{wxmouseeventgetbutton}
273
274\constfunc{int}{GetButton}{\void}
275
8e7cd32b
VZ
276Returns the mouse button which generated this event or {\tt wxMOUSE\_BTN\_NONE}
277if no button is involved (for mouse move, enter or leave event, for example).
278Otherwise {\tt wxMOUSE\_BTN\_LEFT} is returned for the left button down, up and
279double click events, {\tt wxMOUSE\_BTN\_MIDDLE} and {\tt wxMOUSE\_BTN\_RIGHT}
280for the same events for the middle and the right buttons respectively.
ec760ec9 281
6f63704f 282
803ef874
JS
283\membersection{wxMouseEvent::GetPosition}\label{wxmouseeventgetposition}
284
285\constfunc{wxPoint}{GetPosition}{\void}
286
fa482912
JS
287\constfunc{void}{GetPosition}{\param{wxCoord*}{ x}, \param{wxCoord*}{ y}}
288
289\constfunc{void}{GetPosition}{\param{long*}{ x}, \param{long*}{ y}}
803ef874
JS
290
291Sets *x and *y to the position at which the event occurred.
292
293Returns the physical mouse position in pixels.
294
ae177b45
VZ
295Note that if the mouse event has been artificially generated from a special
296keyboard combination (e.g. under Windows when the ``menu'' key is pressed), the
297returned position is \texttt{wxDefaultPosition}.
298
6f63704f 299
803ef874
JS
300\membersection{wxMouseEvent::GetLogicalPosition}\label{wxmouseeventgetlogicalposition}
301
302\constfunc{wxPoint}{GetLogicalPosition}{\param{const wxDC\&}{ dc}}
303
304Returns the logical mouse position in pixels (i.e. translated according to the
305translation set for the DC, which usually indicates that the window has been scrolled).
306
d2c52078 307
6f63704f 308
d2c52078
RD
309\membersection{wxMouseEvent::GetLinesPerAction}\label{wxmouseeventgetlinesperaction}
310
311\constfunc{int}{GetLinesPerAction}{\void}
312
313Returns the configured number of lines (or whatever) to be scrolled per
d13d99aa 314wheel action. Defaults to three.
d2c52078 315
6f63704f 316
d2c52078
RD
317\membersection{wxMouseEvent::GetWheelRotation}\label{wxmouseeventgetwheelrotation}
318
319\constfunc{int}{GetWheelRotation}{\void}
320
321Get wheel rotation, positive or negative indicates direction of
322rotation. Current devices all send an event when rotation is equal to
323+/-WheelDelta, but this allows for finer resolution devices to be
324created in the future. Because of this you shouldn't assume that one
325event is equal to 1 line or whatever, but you should be able to either
326do partial line scrolling or wait until +/-WheelDelta rotation values
327have been accumulated before scrolling.
328
6f63704f 329
d2c52078
RD
330\membersection{wxMouseEvent::GetWheelDelta}\label{wxmouseeventgetwheeldelta}
331
332\constfunc{int}{GetWheelDelta}{\void}
333
8e7cd32b 334Get wheel delta, normally $120$. This is the threshold for action to be
d2c52078
RD
335taken, and one such action (for example, scrolling one increment)
336should occur for each delta.
337
6f63704f 338
a660d684
KB
339\membersection{wxMouseEvent::GetX}\label{wxmouseeventgetx}
340
803ef874 341\constfunc{long}{GetX}{\void}
a660d684 342
803ef874 343Returns X coordinate of the physical mouse event position.
a660d684 344
6f63704f 345
a660d684
KB
346\membersection{wxMouseEvent::GetY}\label{wxmouseeventgety}
347
803ef874 348\func{long}{GetY}{\void}
a660d684 349
803ef874 350Returns Y coordinate of the physical mouse event position.
a660d684 351
6f63704f 352
3e79fa75 353\membersection{wxMouseEvent::IsButton}\label{wxmouseeventisbutton}
a660d684 354
803ef874 355\constfunc{bool}{IsButton}{\void}
a660d684 356
cc81d32f 357Returns true if the event was a mouse button event (not necessarily a button down event -
a660d684
KB
358that may be tested using {\it ButtonDown}).
359
6f63704f 360
3e79fa75 361\membersection{wxMouseEvent::IsPageScroll}\label{wxmouseeventispagescroll}
9b9337da
RD
362
363\constfunc{bool}{IsPageScroll}{\void}
364
cc81d32f 365Returns true if the system has been setup to do page scrolling with
9b9337da
RD
366the mouse wheel instead of line scrolling.
367
6f63704f 368
a660d684
KB
369\membersection{wxMouseEvent::Leaving}\label{wxmouseeventleaving}
370
803ef874 371\constfunc{bool}{Leaving}{\void}
a660d684 372
cc81d32f 373Returns true if the mouse was leaving the window.
a660d684
KB
374
375See also \helpref{wxMouseEvent::Entering}{wxmouseevententering}.
376
6f63704f 377
3e79fa75 378\membersection{wxMouseEvent::LeftDClick}\label{wxmouseeventleftdclick}
a660d684 379
803ef874 380\constfunc{bool}{LeftDClick}{\void}
a660d684 381
cc81d32f 382Returns true if the event was a left double click.
a660d684 383
6f63704f 384
2cdd0d01 385\membersection{wxMouseEvent::LeftDown}\label{wxmouseeventleftdown}
a660d684 386
803ef874 387\constfunc{bool}{LeftDown}{\void}
a660d684 388
cc81d32f 389Returns true if the left mouse button changed to down.
a660d684 390
6f63704f 391
f6bcfd97 392\membersection{wxMouseEvent::LeftIsDown}\label{wxmouseeventleftisdown}
a660d684 393
803ef874 394\constfunc{bool}{LeftIsDown}{\void}
a660d684 395
cc81d32f 396Returns true if the left mouse button is currently down, independent
a660d684
KB
397of the current event type.
398
7430e321
VZ
399Please notice that it is \emph{not} the same as
400\helpref{LeftDown}{wxmouseeventleftdown} which returns \true if the event was
401generated by the left mouse button being pressed. Rather, it simply describes
dad0c6d3
VZ
402the state of the left mouse button at the time when the event was generated
403(so while it will be true for a left click event, it can also be true for
404a right click if it happened while the left mouse button was pressed).
2cdd0d01
VZ
405
406This event is usually used in the mouse event handlers which process "move
407mouse" messages to determine whether the user is (still) dragging the mouse.
408
6f63704f 409
3e79fa75 410\membersection{wxMouseEvent::LeftUp}\label{wxmouseeventleftup}
a660d684 411
803ef874 412\constfunc{bool}{LeftUp}{\void}
a660d684 413
cc81d32f 414Returns true if the left mouse button changed to up.
a660d684 415
6f63704f 416
a2bd1520 417\membersection{wxMouseEvent::MetaDown}\label{wxmouseeventmetadown}
a660d684 418
803ef874 419\constfunc{bool}{MetaDown}{\void}
a660d684 420
cc81d32f 421Returns true if the Meta key was down at the time of the event.
a660d684 422
6f63704f 423
3e79fa75 424\membersection{wxMouseEvent::MiddleDClick}\label{wxmouseeventmiddledclick}
a660d684 425
803ef874 426\constfunc{bool}{MiddleDClick}{\void}
a660d684 427
cc81d32f 428Returns true if the event was a middle double click.
a660d684 429
6f63704f 430
3e79fa75 431\membersection{wxMouseEvent::MiddleDown}\label{wxmouseeventmiddledown}
a660d684 432
803ef874 433\constfunc{bool}{MiddleDown}{\void}
a660d684 434
cc81d32f 435Returns true if the middle mouse button changed to down.
a660d684 436
6f63704f 437
f6bcfd97 438\membersection{wxMouseEvent::MiddleIsDown}\label{wxmouseeventmiddleisdown}
a660d684 439
803ef874 440\constfunc{bool}{MiddleIsDown}{\void}
a660d684 441
cc81d32f 442Returns true if the middle mouse button is currently down, independent
a660d684
KB
443of the current event type.
444
6f63704f 445
3e79fa75 446\membersection{wxMouseEvent::MiddleUp}\label{wxmouseeventmiddleup}
a660d684 447
803ef874 448\constfunc{bool}{MiddleUp}{\void}
a660d684 449
cc81d32f 450Returns true if the middle mouse button changed to up.
a660d684 451
6f63704f 452
100cf085 453\membersection{wxMouseEvent::Moving}\label{wxmouseeventmoving}
a660d684 454
803ef874 455\constfunc{bool}{Moving}{\void}
a660d684 456
6f63704f
VZ
457Returns true if this was a motion event and no mouse buttons were pressed.
458If any mouse button is held pressed, then this method returns \false and
459\helpref{Dragging}{wxmouseeventdragging} returns \true.
460
a660d684 461
3e79fa75 462\membersection{wxMouseEvent::RightDClick}\label{wxmouseeventrightdclick}
a660d684 463
803ef874 464\constfunc{bool}{RightDClick}{\void}
a660d684 465
cc81d32f 466Returns true if the event was a right double click.
a660d684 467
6f63704f 468
3e79fa75 469\membersection{wxMouseEvent::RightDown}\label{wxmouseeventrightdown}
a660d684 470
803ef874 471\constfunc{bool}{RightDown}{\void}
a660d684 472
cc81d32f 473Returns true if the right mouse button changed to down.
a660d684 474
6f63704f 475
f6bcfd97 476\membersection{wxMouseEvent::RightIsDown}\label{wxmouseeventrightisdown}
a660d684 477
803ef874 478\constfunc{bool}{RightIsDown}{\void}
a660d684 479
cc81d32f 480Returns true if the right mouse button is currently down, independent
a660d684
KB
481of the current event type.
482
6f63704f 483
3e79fa75 484\membersection{wxMouseEvent::RightUp}\label{wxmouseeventrightup}
a660d684 485
803ef874 486\constfunc{bool}{RightUp}{\void}
a660d684 487
cc81d32f 488Returns true if the right mouse button changed to up.
a660d684 489
6f63704f 490
3e79fa75 491\membersection{wxMouseEvent::ShiftDown}\label{wxmouseeventshiftdown}
a660d684 492
803ef874 493\constfunc{bool}{ShiftDown}{\void}
a660d684 494
cc81d32f 495Returns true if the shift key was down at the time of the event.
a660d684 496