OLD | NEW |
---|---|
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "views/events/event.h" | 5 #include "views/events/event.h" |
6 | 6 |
7 #include <gdk/gdkx.h> | 7 #include <gdk/gdkx.h> |
8 #if defined(HAVE_XINPUT2) | 8 #if defined(HAVE_XINPUT2) |
9 #include <X11/extensions/XInput2.h> | 9 #include <X11/extensions/XInput2.h> |
10 #endif | 10 #endif |
11 | 11 |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
55 case 2: | 55 case 2: |
56 return ui::EF_MIDDLE_BUTTON_DOWN; | 56 return ui::EF_MIDDLE_BUTTON_DOWN; |
57 case 3: | 57 case 3: |
58 return ui::EF_RIGHT_BUTTON_DOWN; | 58 return ui::EF_RIGHT_BUTTON_DOWN; |
59 } | 59 } |
60 | 60 |
61 DLOG(WARNING) << "Unexpected button (" << button << ") received."; | 61 DLOG(WARNING) << "Unexpected button (" << button << ") received."; |
62 return 0; | 62 return 0; |
63 } | 63 } |
64 | 64 |
65 ui::EventType EventTypeFromNative(NativeEvent2 native_event) { | |
66 switch (native_event->type) { | |
67 case KeyPress: | |
68 return ui::ET_KEY_PRESSED; | |
69 case KeyRelease: | |
70 return ui::ET_KEY_RELEASED; | |
71 default: | |
72 NOTREACHED(); | |
73 break; | |
74 } | |
75 return ui::ET_UNKNOWN; | |
76 } | |
77 | |
65 #if defined(HAVE_XINPUT2) | 78 #if defined(HAVE_XINPUT2) |
66 int GetButtonMaskForX2Event(XIDeviceEvent* xievent) { | 79 int GetButtonMaskForX2Event(XIDeviceEvent* xievent) { |
67 int buttonflags = 0; | 80 int buttonflags = 0; |
68 | 81 |
69 for (int i = 0; i < 8 * xievent->buttons.mask_len; i++) { | 82 for (int i = 0; i < 8 * xievent->buttons.mask_len; i++) { |
70 if (XIMaskIsSet(xievent->buttons.mask, i)) { | 83 if (XIMaskIsSet(xievent->buttons.mask, i)) { |
71 buttonflags |= GetEventFlagsForButton(i); | 84 buttonflags |= GetEventFlagsForButton(i); |
72 } | 85 } |
73 } | 86 } |
74 | 87 |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
205 } | 218 } |
206 } | 219 } |
207 #endif | 220 #endif |
208 } | 221 } |
209 | 222 |
210 return 0; | 223 return 0; |
211 } | 224 } |
212 | 225 |
213 } // namespace | 226 } // namespace |
214 | 227 |
215 KeyEvent::KeyEvent(XEvent* xev) | 228 //////////////////////////////////////////////////////////////////////////////// |
216 : Event(xev->type == KeyPress ? | 229 // Event, private: |
217 ui::ET_KEY_PRESSED : ui::ET_KEY_RELEASED, | 230 |
218 GetEventFlagsFromXState(xev->xkey.state)), | 231 void Event::Init() { |
219 key_code_(ui::KeyboardCodeFromXKeyEvent(xev)), | 232 native_event_ = NULL; |
220 repeat_count_(0), | 233 native_event_2 = NULL; |
sadrul
2011/02/10 21:52:01
native_event_2_
| |
221 message_flags_(0), | |
222 native_event_(NULL) { | |
223 } | 234 } |
224 | 235 |
236 void Event::InitWithNativeEvent(NativeEvent native_event) { | |
237 native_event_ = native_event; | |
238 // TODO(beng): remove once we rid views of Gtk/Gdk. | |
239 native_event_2_ = NULL; | |
240 } | |
241 | |
242 void Event::InitWithNativeEvent2(NativeEvent2 native_event_2) { | |
243 native_event_ = NULL; | |
244 // TODO(beng): remove once we rid views of Gtk/Gdk. | |
245 native_event_2_ = native_event_2; | |
246 } | |
247 | |
248 //////////////////////////////////////////////////////////////////////////////// | |
249 // KeyEvent, public: | |
250 | |
251 KeyEvent::KeyEvent(NativeEvent2 native_event_2) | |
252 : Event(native_event_2, | |
253 EventTypeFromNative(native_event_2), | |
254 GetEventFlagsFromXState(native_event_2->xkey.state)), | |
255 key_code_(ui::KeyboardCodeFromXKeyEvent(native_event_2)) { | |
256 } | |
257 | |
258 //////////////////////////////////////////////////////////////////////////////// | |
259 // MouseEvent, public: | |
260 | |
225 MouseEvent::MouseEvent(XEvent* xev) | 261 MouseEvent::MouseEvent(XEvent* xev) |
226 : LocatedEvent(GetMouseEventType(xev), | 262 : LocatedEvent(GetMouseEventType(xev), |
227 GetMouseEventLocation(xev), | 263 GetMouseEventLocation(xev), |
228 GetMouseEventFlags(xev)) { | 264 GetMouseEventFlags(xev)) { |
229 } | 265 } |
230 | 266 |
267 //////////////////////////////////////////////////////////////////////////////// | |
268 // MouseWheelEvent, public: | |
269 | |
231 MouseWheelEvent::MouseWheelEvent(XEvent* xev) | 270 MouseWheelEvent::MouseWheelEvent(XEvent* xev) |
232 : LocatedEvent(ui::ET_MOUSEWHEEL, | 271 : LocatedEvent(ui::ET_MOUSEWHEEL, |
233 GetMouseEventLocation(xev), | 272 GetMouseEventLocation(xev), |
234 GetEventFlagsFromXState(xev->xbutton.state)), | 273 GetEventFlagsFromXState(xev->xbutton.state)), |
235 offset_(GetMouseWheelOffset(xev)) { | 274 offset_(GetMouseWheelOffset(xev)) { |
236 } | 275 } |
237 | 276 |
277 //////////////////////////////////////////////////////////////////////////////// | |
278 // TouchEvent, public: | |
279 | |
238 #if defined(HAVE_XINPUT2) | 280 #if defined(HAVE_XINPUT2) |
239 TouchEvent::TouchEvent(XEvent* xev) | 281 TouchEvent::TouchEvent(XEvent* xev) |
240 : LocatedEvent(GetTouchEventType(xev), | 282 : LocatedEvent(GetTouchEventType(xev), |
241 GetTouchEventLocation(xev), | 283 GetTouchEventLocation(xev), |
242 GetTouchEventFlags(xev)), | 284 GetTouchEventFlags(xev)), |
243 touch_id_(GetTouchIDFromXEvent(xev)) { | 285 touch_id_(GetTouchIDFromXEvent(xev)) { |
244 } | 286 } |
245 #endif | 287 #endif |
246 | 288 |
247 } // namespace views | 289 } // namespace views |
OLD | NEW |