]>
Commit | Line | Data |
---|---|---|
a660d684 KB |
1 | \section{\class{wxMouseEvent}}\label{wxmouseevent} |
2 | ||
fe604ccd JS |
3 | This event class contains information about mouse events. |
4 | See \helpref{wxWindow::OnMouseEvent}{wxwindowonmouseevent}. | |
a660d684 KB |
5 | |
6 | \wxheading{Derived from} | |
7 | ||
8 | \helpref{wxEvent}{wxevent} | |
9 | ||
954b8ae6 JS |
10 | \wxheading{Include files} |
11 | ||
12 | <wx/event.h> | |
13 | ||
a660d684 KB |
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.} | |
5de76427 | 33 | \twocolitem{{\bf EVT\_MOUSE\_EVENTS(func)}}{Process all mouse events.} |
a660d684 KB |
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 | ||
fe604ccd | 177 | Returns TRUE if the mouse was entering the window (MS Windows and Motif). |
a660d684 KB |
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 | ||
fe604ccd | 204 | Returns TRUE if the mouse was leaving the window (MS Windows and Motif). |
a660d684 KB |
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 | |
fe604ccd | 275 | window is a window, the position is converted to logical units |
a660d684 KB |
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 | |
fe604ccd | 278 | screen to place a dialog box associated with a window mouse event), use |
a660d684 KB |
279 | \rtfsp{\bf wxDC::LogicalToDeviceX} and {\bf wxDC::LogicalToDeviceY}. |
280 | ||
281 | For example, the following code calculates screen pixel coordinates | |
fe604ccd | 282 | from the frame position, window view start (assuming the window is the only |
a660d684 KB |
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); | |
fe604ccd JS |
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); | |
a660d684 KB |
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 | ||
a660d684 KB |
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 |