OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 UI_EVENTS_EVENT_H_ | 5 #ifndef UI_EVENTS_EVENT_H_ |
6 #define UI_EVENTS_EVENT_H_ | 6 #define UI_EVENTS_EVENT_H_ |
7 | 7 |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
10 #include "base/event_types.h" | 10 #include "base/event_types.h" |
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
549 // TODO(msw): Additional work may be needed for analogues on other platforms. | 549 // TODO(msw): Additional work may be needed for analogues on other platforms. |
550 bool IsUnicodeKeyCode() const; | 550 bool IsUnicodeKeyCode() const; |
551 | 551 |
552 std::string code() const { return code_; } | 552 std::string code() const { return code_; } |
553 | 553 |
554 // Normalizes flags_ to make it Windows/Mac compatible. Since the way | 554 // Normalizes flags_ to make it Windows/Mac compatible. Since the way |
555 // of setting modifier mask on X is very different than Windows/Mac as shown | 555 // of setting modifier mask on X is very different than Windows/Mac as shown |
556 // in http://crbug.com/127142#c8, the normalization is necessary. | 556 // in http://crbug.com/127142#c8, the normalization is necessary. |
557 void NormalizeFlags(); | 557 void NormalizeFlags(); |
558 | 558 |
| 559 // Returns true if the key event has already been processed by an input method |
| 560 // and there is no need to pass the key event to the input method again. |
| 561 bool IsTranslated() const; |
| 562 // Marks this key event as translated or not translated. |
| 563 void SetTranslated(bool translated); |
| 564 |
559 protected: | 565 protected: |
560 // This allows a subclass TranslatedKeyEvent to be a non character event. | 566 // This allows a subclass TranslatedKeyEvent to be a non character event. |
561 void set_is_char(bool is_char) { is_char_ = is_char; } | 567 void set_is_char(bool is_char) { is_char_ = is_char; } |
562 | 568 |
563 private: | 569 private: |
564 KeyboardCode key_code_; | 570 KeyboardCode key_code_; |
565 | 571 |
566 // String of 'code' defined in DOM KeyboardEvent (e.g. 'KeyA', 'Space') | 572 // String of 'code' defined in DOM KeyboardEvent (e.g. 'KeyA', 'Space') |
567 // http://www.w3.org/TR/uievents/#keyboard-key-codes. | 573 // http://www.w3.org/TR/uievents/#keyboard-key-codes. |
568 // | 574 // |
569 // This value represents the physical position in the keyboard and can be | 575 // This value represents the physical position in the keyboard and can be |
570 // converted from / to keyboard scan code like XKB. | 576 // converted from / to keyboard scan code like XKB. |
571 std::string code_; | 577 std::string code_; |
572 | 578 |
573 // True if this is a translated character event (vs. a raw key down). Both | 579 // True if this is a translated character event (vs. a raw key down). Both |
574 // share the same type: ET_KEY_PRESSED. | 580 // share the same type: ET_KEY_PRESSED. |
575 bool is_char_; | 581 bool is_char_; |
576 | 582 |
577 uint16 character_; | 583 uint16 character_; |
578 }; | 584 }; |
579 | 585 |
580 // A key event which is translated by an input method (IME). | |
581 // For example, if an IME receives a KeyEvent(VKEY_SPACE), and it does not | |
582 // consume the key, the IME usually generates and dispatches a | |
583 // TranslatedKeyEvent(VKEY_SPACE) event. If the IME receives a KeyEvent and | |
584 // it does consume the event, it might dispatch a | |
585 // TranslatedKeyEvent(VKEY_PROCESSKEY) event as defined in the DOM spec. | |
586 class EVENTS_EXPORT TranslatedKeyEvent : public KeyEvent { | |
587 public: | |
588 TranslatedKeyEvent(const base::NativeEvent& native_event, bool is_char); | |
589 | |
590 // Used for synthetic events such as a VKEY_PROCESSKEY key event. | |
591 TranslatedKeyEvent(bool is_press, KeyboardCode key_code, int flags); | |
592 | |
593 explicit TranslatedKeyEvent(const KeyEvent& key_event); | |
594 | |
595 // Changes the type() of the object from ET_TRANSLATED_KEY_* to ET_KEY_* so | |
596 // that RenderWidgetHostViewAura and NativeWidgetAura could handle the event. | |
597 void ConvertToKeyEvent(); | |
598 | |
599 private: | |
600 DISALLOW_COPY_AND_ASSIGN(TranslatedKeyEvent); | |
601 }; | |
602 | |
603 class EVENTS_EXPORT ScrollEvent : public MouseEvent { | 586 class EVENTS_EXPORT ScrollEvent : public MouseEvent { |
604 public: | 587 public: |
605 explicit ScrollEvent(const base::NativeEvent& native_event); | 588 explicit ScrollEvent(const base::NativeEvent& native_event); |
606 template <class T> | 589 template <class T> |
607 ScrollEvent(const ScrollEvent& model, | 590 ScrollEvent(const ScrollEvent& model, |
608 T* source, | 591 T* source, |
609 T* target) | 592 T* target) |
610 : MouseEvent(model, source, target), | 593 : MouseEvent(model, source, target), |
611 x_offset_(model.x_offset_), | 594 x_offset_(model.x_offset_), |
612 y_offset_(model.y_offset_), | 595 y_offset_(model.y_offset_), |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
682 // The set of indices of ones in the binary representation of | 665 // The set of indices of ones in the binary representation of |
683 // touch_ids_bitfield_ is the set of touch_ids associate with this gesture. | 666 // touch_ids_bitfield_ is the set of touch_ids associate with this gesture. |
684 // This value is stored as a bitfield because the number of touch ids varies, | 667 // This value is stored as a bitfield because the number of touch ids varies, |
685 // but we currently don't need more than 32 touches at a time. | 668 // but we currently don't need more than 32 touches at a time. |
686 const unsigned int touch_ids_bitfield_; | 669 const unsigned int touch_ids_bitfield_; |
687 }; | 670 }; |
688 | 671 |
689 } // namespace ui | 672 } // namespace ui |
690 | 673 |
691 #endif // UI_EVENTS_EVENT_H_ | 674 #endif // UI_EVENTS_EVENT_H_ |
OLD | NEW |