Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2006-2008 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 #ifndef VIEWS_EVENT_H_ | 5 #ifndef VIEWS_EVENTS_EVENT_H_ |
| 6 #define VIEWS_EVENT_H_ | 6 #define VIEWS_EVENTS_EVENT_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/time.h" | 10 #include "base/time.h" |
| 11 #include "ui/base/events.h" | 11 #include "ui/base/events.h" |
| 12 #include "ui/base/keycodes/keyboard_codes.h" | 12 #include "ui/base/keycodes/keyboard_codes.h" |
| 13 #include "ui/gfx/point.h" | 13 #include "ui/gfx/point.h" |
| 14 #include "views/native_types.h" | 14 #include "views/native_types.h" |
| 15 | 15 |
| 16 #if defined(OS_LINUX) | 16 #if defined(OS_LINUX) |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 38 // hierarchies. An event has a type, some flags and a time stamp. | 38 // hierarchies. An event has a type, some flags and a time stamp. |
| 39 // | 39 // |
| 40 // Each major event type has a corresponding Event subclass. | 40 // Each major event type has a corresponding Event subclass. |
| 41 // | 41 // |
| 42 // Events are immutable but support copy | 42 // Events are immutable but support copy |
| 43 // | 43 // |
| 44 //////////////////////////////////////////////////////////////////////////////// | 44 //////////////////////////////////////////////////////////////////////////////// |
| 45 class Event { | 45 class Event { |
| 46 public: | 46 public: |
| 47 const NativeEvent& native_event() const { return native_event_; } | 47 const NativeEvent& native_event() const { return native_event_; } |
| 48 const NativeEvent2& native_event_2() const { return native_event_2_; } | |
| 48 ui::EventType type() const { return type_; } | 49 ui::EventType type() const { return type_; } |
| 49 const base::Time& time_stamp() const { return time_stamp_; } | 50 const base::Time& time_stamp() const { return time_stamp_; } |
| 50 int flags() const { return flags_; } | 51 int flags() const { return flags_; } |
| 51 void set_flags(int flags) { flags_ = flags; } | 52 void set_flags(int flags) { flags_ = flags; } |
| 52 | 53 |
| 53 // The following methods return true if the respective keys were pressed at | 54 // The following methods return true if the respective keys were pressed at |
| 54 // the time the event was created. | 55 // the time the event was created. |
| 55 bool IsShiftDown() const { return (flags_ & ui::EF_SHIFT_DOWN) != 0; } | 56 bool IsShiftDown() const { return (flags_ & ui::EF_SHIFT_DOWN) != 0; } |
| 56 bool IsControlDown() const { return (flags_ & ui::EF_CONTROL_DOWN) != 0; } | 57 bool IsControlDown() const { return (flags_ & ui::EF_CONTROL_DOWN) != 0; } |
| 57 bool IsCapsLockDown() const { return (flags_ & ui::EF_CAPS_LOCK_DOWN) != 0; } | 58 bool IsCapsLockDown() const { return (flags_ & ui::EF_CAPS_LOCK_DOWN) != 0; } |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 83 | 84 |
| 84 // Convert windows flags to views::Event flags | 85 // Convert windows flags to views::Event flags |
| 85 static int ConvertWindowsFlags(uint32 win_flags); | 86 static int ConvertWindowsFlags(uint32 win_flags); |
| 86 #elif defined(OS_LINUX) | 87 #elif defined(OS_LINUX) |
| 87 // Convert the state member on a GdkEvent to views::Event flags | 88 // Convert the state member on a GdkEvent to views::Event flags |
| 88 static int GetFlagsFromGdkState(int state); | 89 static int GetFlagsFromGdkState(int state); |
| 89 #endif | 90 #endif |
| 90 | 91 |
| 91 protected: | 92 protected: |
| 92 Event(ui::EventType type, int flags); | 93 Event(ui::EventType type, int flags); |
| 94 Event(NativeEvent native_event, ui::EventType type, int flags); | |
| 95 // Because the world is complicated, sometimes we have two different kinds of | |
| 96 // NativeEvent in play in the same executable. See native_types.h for the tale | |
| 97 // of woe. | |
|
rjkroege
2011/02/10 21:15:26
I'd a TODO here or in native_types.h that was a li
Ben Goodger (Google)
2011/02/10 21:22:37
I rewrote the comment in native_types.h as:
// O
| |
| 98 Event(NativeEvent2 native_event, ui::EventType type, int flags); | |
| 93 | 99 |
| 94 Event(const Event& model) | 100 Event(const Event& model) |
| 95 : native_event_(model.native_event()), | 101 : native_event_(model.native_event()), |
| 96 type_(model.type()), | 102 type_(model.type()), |
| 97 time_stamp_(model.time_stamp()), | 103 time_stamp_(model.time_stamp()), |
| 98 flags_(model.flags()) { | 104 flags_(model.flags()) { |
| 99 } | 105 } |
| 100 | 106 |
| 101 private: | 107 private: |
| 102 void operator=(const Event&); | 108 void operator=(const Event&); |
| 103 | 109 |
| 104 NativeEvent native_event_; | 110 NativeEvent native_event_; |
| 111 NativeEvent2 native_event_2_; | |
| 105 ui::EventType type_; | 112 ui::EventType type_; |
| 106 base::Time time_stamp_; | 113 base::Time time_stamp_; |
| 107 int flags_; | 114 int flags_; |
| 108 }; | 115 }; |
| 109 | 116 |
| 110 //////////////////////////////////////////////////////////////////////////////// | 117 //////////////////////////////////////////////////////////////////////////////// |
| 111 // | 118 // |
| 112 // LocatedEvent class | 119 // LocatedEvent class |
| 113 // | 120 // |
| 114 // A generic event that is used for any events that is located at a specific | 121 // A generic event that is used for any events that is located at a specific |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 239 private: | 246 private: |
| 240 // The identity (typically finger) of the touch starting at 0 and incrementing | 247 // The identity (typically finger) of the touch starting at 0 and incrementing |
| 241 // for each separable additional touch that the hardware can detect. | 248 // for each separable additional touch that the hardware can detect. |
| 242 const int touch_id_; | 249 const int touch_id_; |
| 243 | 250 |
| 244 DISALLOW_COPY_AND_ASSIGN(TouchEvent); | 251 DISALLOW_COPY_AND_ASSIGN(TouchEvent); |
| 245 }; | 252 }; |
| 246 #endif | 253 #endif |
| 247 | 254 |
| 248 //////////////////////////////////////////////////////////////////////////////// | 255 //////////////////////////////////////////////////////////////////////////////// |
| 249 // | |
| 250 // KeyEvent class | 256 // KeyEvent class |
| 251 // | 257 // |
| 252 // A key event is used for any input event related to the keyboard. | 258 // KeyEvent encapsulates keyboard input events - key press and release. |
| 253 // Note: this event is about key pressed, not typed characters. | |
| 254 // | 259 // |
| 255 //////////////////////////////////////////////////////////////////////////////// | |
| 256 class KeyEvent : public Event { | 260 class KeyEvent : public Event { |
| 257 public: | 261 public: |
| 258 // Create a new key event | 262 explicit KeyEvent(NativeEvent native_event); |
| 263 explicit KeyEvent(NativeEvent2 native_event_2); | |
| 264 | |
| 265 // Creates a new KeyEvent synthetically (i.e. not in response to an input | |
| 266 // event from the host environment). This is typically only used in testing as | |
| 267 // some metadata obtainable from the underlying native event is not present. | |
| 268 // TODO(beng): see if we can kill this. | |
| 259 KeyEvent(ui::EventType type, | 269 KeyEvent(ui::EventType type, |
| 260 ui::KeyboardCode key_code, | 270 ui::KeyboardCode key_code, |
| 261 int event_flags, | 271 int event_flags); |
| 262 int repeat_count, | |
| 263 int message_flags); | |
| 264 | |
| 265 #if defined(OS_WIN) | |
| 266 KeyEvent(ui::EventType type, | |
| 267 ui::KeyboardCode key_code, | |
| 268 int event_flags, | |
| 269 int repeat_count, | |
| 270 int message_flags, | |
| 271 UINT message); | |
| 272 #endif | |
| 273 #if defined(OS_LINUX) | |
| 274 explicit KeyEvent(const GdkEventKey* event); | |
| 275 | |
| 276 const GdkEventKey* native_event() const { return native_event_; } | |
| 277 #endif | |
| 278 #if defined(TOUCH_UI) | |
| 279 // Create a key event from an X key event. | |
| 280 explicit KeyEvent(XEvent* xevent); | |
| 281 #endif | |
| 282 | 272 |
| 283 ui::KeyboardCode key_code() const { return key_code_; } | 273 ui::KeyboardCode key_code() const { return key_code_; } |
| 284 | 274 |
| 285 #if defined(OS_WIN) | 275 private: |
| 286 bool IsExtendedKey() const; | 276 ui::KeyboardCode key_code_; |
| 287 | 277 |
| 288 UINT message() const { return message_; } | |
| 289 #endif | |
| 290 | |
| 291 int repeat_count() const { return repeat_count_; } | |
| 292 | |
| 293 #if defined(OS_WIN) | |
| 294 static int GetKeyStateFlags(); | |
| 295 #endif | |
| 296 | |
| 297 private: | |
| 298 | |
| 299 ui::KeyboardCode key_code_; | |
| 300 int repeat_count_; | |
| 301 int message_flags_; | |
| 302 #if defined(OS_WIN) | |
| 303 UINT message_; | |
| 304 #elif defined(OS_LINUX) | |
| 305 const GdkEventKey* native_event_; | |
| 306 #endif | |
| 307 DISALLOW_COPY_AND_ASSIGN(KeyEvent); | 278 DISALLOW_COPY_AND_ASSIGN(KeyEvent); |
| 308 }; | 279 }; |
| 309 | 280 |
| 310 //////////////////////////////////////////////////////////////////////////////// | 281 //////////////////////////////////////////////////////////////////////////////// |
| 311 // | 282 // |
| 312 // MouseWheelEvent class | 283 // MouseWheelEvent class |
| 313 // | 284 // |
| 314 // A MouseWheelEvent is used to propagate mouse wheel user events. | 285 // A MouseWheelEvent is used to propagate mouse wheel user events. |
| 315 // Note: e.GetOffset() > 0 means scroll up. | 286 // Note: e.GetOffset() > 0 means scroll up. |
| 316 // | 287 // |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 362 const OSExchangeData& data_; | 333 const OSExchangeData& data_; |
| 363 | 334 |
| 364 // Bitmask of supported ui::DragDropTypes::DragOperation by the source. | 335 // Bitmask of supported ui::DragDropTypes::DragOperation by the source. |
| 365 int source_operations_; | 336 int source_operations_; |
| 366 | 337 |
| 367 DISALLOW_COPY_AND_ASSIGN(DropTargetEvent); | 338 DISALLOW_COPY_AND_ASSIGN(DropTargetEvent); |
| 368 }; | 339 }; |
| 369 | 340 |
| 370 } // namespace views | 341 } // namespace views |
| 371 | 342 |
| 372 #endif // VIEWS_EVENT_H_ | 343 #endif // VIEWS_EVENTS_EVENT_H_ |
| OLD | NEW |