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