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