]> git.saurik.com Git - wxWidgets.git/blob - docs/latex/wx/mouseevt.tex
Fixed wxMSW arrow key bug, changed wxPoem window to a wxWindow
[wxWidgets.git] / docs / latex / wx / mouseevt.tex
1 \section{\class{wxMouseEvent}}\label{wxmouseevent}
2
3 This event class contains information about mouse events.
4 See \helpref{wxWindow::OnMouseEvent}{wxwindowonmouseevent}.
5
6 \wxheading{Derived from}
7
8 \helpref{wxEvent}{wxevent}
9
10 \wxheading{Include files}
11
12 <wx/event.h>
13
14 \wxheading{Event table macros}
15
16 To process a mouse event, use these event handler macros to direct input to member
17 functions that take a wxMouseEvent argument.
18
19 \twocolwidtha{7cm}
20 \begin{twocollist}\itemsep=0pt
21 \twocolitem{{\bf EVT\_LEFT\_DOWN(func)}}{Process a wxEVT\_LEFT\_DOWN event.}
22 \twocolitem{{\bf EVT\_LEFT\_UP(func)}}{Process a wxEVT\_LEFT\_UP event.}
23 \twocolitem{{\bf EVT\_LEFT\_DCLICK(func)}}{Process a wxEVT\_LEFT\_DCLICK event.}
24 \twocolitem{{\bf EVT\_MIDDLE\_DOWN(func)}}{Process a wxEVT\_MIDDLE\_DOWN event.}
25 \twocolitem{{\bf EVT\_MIDDLE\_UP(func)}}{Process a wxEVT\_MIDDLE\_UP event.}
26 \twocolitem{{\bf EVT\_MIDDLE\_DCLICK(func)}}{Process a wxEVT\_MIDDLE\_DCLICK event.}
27 \twocolitem{{\bf EVT\_RIGHT\_DOWN(func)}}{Process a wxEVT\_RIGHT\_DOWN event.}
28 \twocolitem{{\bf EVT\_RIGHT\_UP(func)}}{Process a wxEVT\_RIGHT\_UP event.}
29 \twocolitem{{\bf EVT\_RIGHT\_DCLICK(func)}}{Process a wxEVT\_RIGHT\_DCLICK event.}
30 \twocolitem{{\bf EVT\_MOTION(func)}}{Process a wxEVT\_MOTION event.}
31 \twocolitem{{\bf EVT\_ENTER\_WINDOW(func)}}{Process a wxEVT\_ENTER\_WINDOW event.}
32 \twocolitem{{\bf EVT\_LEAVE\_WINDOW(func)}}{Process a wxEVT\_LEAVE\_WINDOW event.}
33 \twocolitem{{\bf EVT\_MOUSE\_EVENTS(func)}}{Process all mouse events.}
34 \end{twocollist}%
35
36 \latexignore{\rtfignore{\wxheading{Members}}}
37
38 \membersection{wxMouseEvent::m\_altDown}
39
40 \member{bool}{m\_altDown}
41
42 TRUE if the Alt key is pressed down.
43
44 \membersection{wxMouseEvent::m\_controlDown}
45
46 \member{bool}{m\_controlDown}
47
48 TRUE if control key is pressed down.
49
50 \membersection{wxMouseEvent::m\_leftDown}
51
52 \member{bool}{m\_leftDown}
53
54 TRUE if the left mouse button is currently pressed down.
55
56 \membersection{wxMouseEvent::m\_middleDown}
57
58 \member{bool}{m\_middleDown}
59
60 TRUE if the middle mouse button is currently pressed down.
61
62 \membersection{wxMouseEvent::m\_rightDown}
63
64 \member{bool}{m\_rightDown}
65
66 TRUE if the right mouse button is currently pressed down.
67
68 \membersection{wxMouseEvent::m\_leftDown}
69
70 \member{bool}{m\_leftDown}
71
72 TRUE if the left mouse button is currently pressed down.
73
74 \membersection{wxMouseEvent::m\_metaDown}
75
76 \member{bool}{m\_metaDown}
77
78 TRUE if the Meta key is pressed down.
79
80 \membersection{wxMouseEvent::m\_shiftDown}
81
82 \member{bool}{m\_shiftDown}
83
84 TRUE if shift is pressed down.
85
86 \membersection{wxMouseEvent::m\_x}
87
88 \member{float}{m\_x}
89
90 X-coordinate of the event.
91
92 \membersection{wxMouseEvent::m\_y}
93
94 \member{float}{m\_y}
95
96 Y-coordinate of the event.
97
98 \membersection{wxMouseEvent::wxMouseEvent}
99
100 \func{}{wxMouseEvent}{\param{WXTYPE}{ mouseEventType = 0}, \param{int}{ id = 0}}
101
102 Constructor. Valid event types are:
103
104 \begin{itemize}
105 \itemsep=0pt
106 \item {\bf wxEVT\_ENTER\_WINDOW}
107 \item {\bf wxEVT\_LEAVE\_WINDOW}
108 \item {\bf wxEVT\_LEFT\_DOWN}
109 \item {\bf wxEVT\_LEFT\_UP}
110 \item {\bf wxEVT\_LEFT\_DCLICK}
111 \item {\bf wxEVT\_MIDDLE\_DOWN}
112 \item {\bf wxEVT\_MIDDLE\_UP}
113 \item {\bf wxEVT\_MIDDLE\_DCLICK}
114 \item {\bf wxEVT\_RIGHT\_DOWN}
115 \item {\bf wxEVT\_RIGHT\_UP}
116 \item {\bf wxEVT\_RIGHT\_DCLICK}
117 \item {\bf wxEVT\_MOTION}
118 \end{itemize}
119
120 \membersection{wxMouseEvent::AltDown}
121
122 \func{bool}{AltDown}{\void}
123
124 Returns TRUE if the Alt key was down at the time of the event.
125
126 \membersection{wxMouseEvent::Button}
127
128 \func{bool}{Button}{\param{int}{ button}}
129
130 Returns TRUE if the identified mouse button is changing state. Valid
131 values of {\it button} are 1, 2 or 3 for left, middle and right
132 buttons respectively.
133
134 Not all mice have middle buttons so a portable application should avoid
135 this one.
136
137 \membersection{wxMouseEvent::ButtonDClick}\label{buttondclick}
138
139 \func{bool}{ButtonDClick}{\param{int}{ but = -1}}
140
141 If the argument is omitted, this returns TRUE if the event was a mouse
142 double click event. Otherwise the argument specifies which double click event
143 was generated (1, 2 or 3 for left, middle and right buttons respectively).
144
145 \membersection{wxMouseEvent::ButtonDown}
146
147 \func{bool}{ButtonDown}{\param{int}{ but = -1}}
148
149 If the argument is omitted, this returns TRUE if the event was a mouse
150 button down event. Otherwise the argument specifies which button-down event
151 was generated (1, 2 or 3 for left, middle and right buttons respectively).
152
153 \membersection{wxMouseEvent::ButtonUp}
154
155 \func{bool}{ButtonUp}{\param{int}{ but = -1}}
156
157 If the argument is omitted, this returns TRUE if the event was a mouse
158 button up event. Otherwise the argument specifies which button-up event
159 was generated (1, 2 or 3 for left, middle and right buttons respectively).
160
161 \membersection{wxMouseEvent::ControlDown}
162
163 \func{bool}{ControlDown}{\void}
164
165 Returns TRUE if the control key was down at the time of the event.
166
167 \membersection{wxMouseEvent::Dragging}
168
169 \func{bool}{Dragging}{\void}
170
171 Returns TRUE if this was a dragging event (motion while a button is depressed).
172
173 \membersection{wxMouseEvent::Entering}\label{wxmouseevententering}
174
175 \func{bool}{Entering}{\void}
176
177 Returns TRUE if the mouse was entering the window (MS Windows and Motif).
178
179 See also \helpref{wxMouseEvent::Leaving}{wxmouseeventleaving}.
180
181 \membersection{wxMouseEvent::GetX}\label{wxmouseeventgetx}
182
183 \func{float}{GetX}{\void}
184
185 Returns X coordinate of the mouse event position.
186
187 \membersection{wxMouseEvent::GetY}\label{wxmouseeventgety}
188
189 \func{float}{GetY}{\void}
190
191 Returns Y coordinate of the mouse event position.
192
193 \membersection{wxMouseEvent::IsButton}
194
195 \func{bool}{IsButton}{\void}
196
197 Returns TRUE if the event was a mouse button event (not necessarily a button down event -
198 that may be tested using {\it ButtonDown}).
199
200 \membersection{wxMouseEvent::Leaving}\label{wxmouseeventleaving}
201
202 \func{bool}{Leaving}{\void}
203
204 Returns TRUE if the mouse was leaving the window (MS Windows and Motif).
205
206 See also \helpref{wxMouseEvent::Entering}{wxmouseevententering}.
207
208 \membersection{wxMouseEvent::LeftDClick}
209
210 \func{bool}{LeftDClick}{\void}
211
212 Returns TRUE if the event was a left double click.
213
214 \membersection{wxMouseEvent::LeftDown}
215
216 \func{bool}{LeftDown}{\void}
217
218 Returns TRUE if the left mouse button changed to down.
219
220 \membersection{wxMouseEvent::LeftIsDown}
221
222 \func{bool}{LeftIsDown}{\void}
223
224 Returns TRUE if the left mouse button is currently down, independent
225 of the current event type.
226
227 \membersection{wxMouseEvent::LeftUp}
228
229 \func{bool}{LeftUp}{\void}
230
231 Returns TRUE if the left mouse button changed to up.
232
233 \membersection{wxMouseEvent::MetaDown}
234
235 \func{bool}{MetaDown}{\void}
236
237 Returns TRUE if the Meta key was down at the time of the event.
238
239 \membersection{wxMouseEvent::MiddleDClick}
240
241 \func{bool}{MiddleDClick}{\void}
242
243 Returns TRUE if the event was a middle double click.
244
245 \membersection{wxMouseEvent::MiddleDown}
246
247 \func{bool}{MiddleDown}{\void}
248
249 Returns TRUE if the middle mouse button changed to down.
250
251 \membersection{wxMouseEvent::MiddleIsDown}
252
253 \func{bool}{MiddleIsDown}{\void}
254
255 Returns TRUE if the middle mouse button is currently down, independent
256 of the current event type.
257
258 \membersection{wxMouseEvent::MiddleUp}
259
260 \func{bool}{MiddleUp}{\void}
261
262 Returns TRUE if the middle mouse button changed to up.
263
264 \membersection{wxMouseEvent::Moving}
265
266 \func{bool}{Moving}{\void}
267
268 Returns TRUE if this was a motion event (no buttons depressed).
269
270 \membersection{wxMouseEvent::Position}
271
272 \func{void}{Position}{\param{float *}{x}, \param{float *}{y}}
273
274 Sets *x and *y to the position at which the event occurred. If the
275 window is a window, the position is converted to logical units
276 (according to the current mapping mode) with scrolling taken into
277 account. To get back to device units (for example to calculate where on the
278 screen to place a dialog box associated with a window mouse event), use
279 \rtfsp{\bf wxDC::LogicalToDeviceX} and {\bf wxDC::LogicalToDeviceY}.
280
281 For example, the following code calculates screen pixel coordinates
282 from the frame position, window view start (assuming the window is the only
283 subwindow on the frame and therefore at the top left of it), and the
284 logical event position. A menu is popped up at the position where the
285 mouse click occurred. (Note that the application should also check that
286 the dialog box will be visible on the screen, since the click could have
287 occurred near the screen edge!)
288
289 \begin{verbatim}
290 float event_x, event_y;
291 event.Position(&event_x, &event_y);
292 frame->GetPosition(&x, &y);
293 window->ViewStart(&x1, &y1);
294 int mouse_x = (int)(window->GetDC()->LogicalToDeviceX(event_x + x - x1);
295 int mouse_y = (int)(window->GetDC()->LogicalToDeviceY(event_y + y - y1);
296
297 char *choice = wxGetSingleChoice("Menu", "Pick a node action",
298 no_choices, choices, frame, mouse_x, mouse_y);
299 \end{verbatim}
300
301 \membersection{wxMouseEvent::RightDClick}
302
303 \func{bool}{RightDClick}{\void}
304
305 Returns TRUE if the event was a right double click.
306
307 \membersection{wxMouseEvent::RightDown}
308
309 \func{bool}{RightDown}{\void}
310
311 Returns TRUE if the right mouse button changed to down.
312
313 \membersection{wxMouseEvent::RightIsDown}
314
315 \func{bool}{RightIsDown}{\void}
316
317 Returns TRUE if the right mouse button is currently down, independent
318 of the current event type.
319
320 \membersection{wxMouseEvent::RightUp}
321
322 \func{bool}{RightUp}{\void}
323
324 Returns TRUE if the right mouse button changed to up.
325
326 \membersection{wxMouseEvent::ShiftDown}
327
328 \func{bool}{ShiftDown}{\void}
329
330 Returns TRUE if the shift key was down at the time of the event.
331