OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 InputEvent_h | 5 #ifndef InputEvent_h |
6 #define InputEvent_h | 6 #define InputEvent_h |
7 | 7 |
| 8 #include "core/clipboard/DataTransfer.h" |
8 #include "core/dom/StaticRange.h" | 9 #include "core/dom/StaticRange.h" |
9 #include "core/events/InputEventInit.h" | 10 #include "core/events/InputEventInit.h" |
10 #include "core/events/UIEvent.h" | 11 #include "core/events/UIEvent.h" |
11 | 12 |
12 namespace blink { | 13 namespace blink { |
13 | 14 |
14 class InputEvent final : public UIEvent { | 15 class InputEvent final : public UIEvent { |
15 DEFINE_WRAPPERTYPEINFO(); | 16 DEFINE_WRAPPERTYPEINFO(); |
16 | 17 |
17 public: | 18 public: |
18 static InputEvent* create(const AtomicString& type, const InputEventInit& in
itializer) | 19 static InputEvent* create(const AtomicString& type, const InputEventInit& in
itializer) |
19 { | 20 { |
20 return new InputEvent(type, initializer); | 21 return new InputEvent(type, initializer); |
21 } | 22 } |
22 | 23 |
23 enum class InputType { | 24 enum class InputType { |
24 None, | 25 None, |
25 // Insertion. | 26 // Insertion. |
26 InsertText, | 27 InsertText, |
27 InsertNonText, | 28 InsertNonText, |
28 InsertLineBreak, | 29 InsertLineBreak, |
29 InsertParagraph, | 30 InsertParagraph, |
30 InsertOrderedList, | 31 InsertOrderedList, |
31 InsertUnorderedList, | 32 InsertUnorderedList, |
32 InsertHorizontalRule, | 33 InsertHorizontalRule, |
| 34 InsertFromPaste, |
33 // Deletion. | 35 // Deletion. |
34 DeleteComposedCharacterForward, | 36 DeleteComposedCharacterForward, |
35 DeleteComposedCharacterBackward, | 37 DeleteComposedCharacterBackward, |
36 DeleteWordBackward, | 38 DeleteWordBackward, |
37 DeleteWordForward, | 39 DeleteWordForward, |
38 DeleteLineBackward, | 40 DeleteLineBackward, |
39 DeleteLineForward, | 41 DeleteLineForward, |
40 DeleteContentBackward, | 42 DeleteContentBackward, |
41 DeleteContentForward, | 43 DeleteContentForward, |
| 44 DeleteByCut, |
42 // Command. | 45 // Command. |
43 Undo, | 46 Undo, |
44 Redo, | 47 Redo, |
45 Copy, | |
46 Cut, | |
47 Paste, | |
48 // Styling. | 48 // Styling. |
49 Bold, | 49 Bold, |
50 Italic, | 50 Italic, |
51 Underline, | 51 Underline, |
52 StrikeThrough, | 52 StrikeThrough, |
53 Superscript, | 53 Superscript, |
54 Subscript, | 54 Subscript, |
55 // Formatting. | 55 // Formatting. |
56 JustifyCenter, | 56 JustifyCenter, |
57 JustifyRight, | 57 JustifyRight, |
(...skipping 23 matching lines...) Expand all Loading... |
81 NotCancelable = false, | 81 NotCancelable = false, |
82 IsCancelable = true, | 82 IsCancelable = true, |
83 }; | 83 }; |
84 | 84 |
85 enum EventIsComposing : bool { | 85 enum EventIsComposing : bool { |
86 NotComposing = false, | 86 NotComposing = false, |
87 IsComposing = true, | 87 IsComposing = true, |
88 }; | 88 }; |
89 | 89 |
90 static InputEvent* createBeforeInput(InputType, const String& data, EventCan
celable, EventIsComposing, const RangeVector*); | 90 static InputEvent* createBeforeInput(InputType, const String& data, EventCan
celable, EventIsComposing, const RangeVector*); |
| 91 static InputEvent* createBeforeInput(InputType, DataTransfer*, EventCancelab
le, EventIsComposing, const RangeVector*); |
91 static InputEvent* createInput(InputType, const String& data, EventIsComposi
ng, const RangeVector*); | 92 static InputEvent* createInput(InputType, const String& data, EventIsComposi
ng, const RangeVector*); |
92 | 93 |
93 String inputType() const; | 94 String inputType() const; |
94 const String& data() const { return m_data; } | 95 const String& data() const { return m_data; } |
| 96 DataTransfer* dataTransfer() const { return m_dataTransfer.get(); } |
95 bool isComposing() const { return m_isComposing; } | 97 bool isComposing() const { return m_isComposing; } |
96 // Returns a copy of target ranges during event dispatch, and returns an emp
ty | 98 // Returns a copy of target ranges during event dispatch, and returns an emp
ty |
97 // vector after dispatch. | 99 // vector after dispatch. |
98 StaticRangeVector getRanges() const; | 100 StaticRangeVector getRanges() const; |
99 | 101 |
100 bool isInputEvent() const override; | 102 bool isInputEvent() const override; |
101 | 103 |
102 EventDispatchMediator* createMediator() override; | 104 EventDispatchMediator* createMediator() override; |
103 | 105 |
104 DECLARE_VIRTUAL_TRACE(); | 106 DECLARE_VIRTUAL_TRACE(); |
105 | 107 |
106 private: | 108 private: |
107 friend class InputEventDispatchMediator; | 109 friend class InputEventDispatchMediator; |
108 InputEvent(const AtomicString&, const InputEventInit&); | 110 InputEvent(const AtomicString&, const InputEventInit&); |
109 | 111 |
110 InputType m_inputType; | 112 InputType m_inputType; |
111 String m_data; | 113 String m_data; |
| 114 Member<DataTransfer> m_dataTransfer; |
112 bool m_isComposing; | 115 bool m_isComposing; |
113 // We have to stored |Range| internally and only expose |StaticRange|, pleas
e | 116 // We have to stored |Range| internally and only expose |StaticRange|, pleas
e |
114 // see comments in |InputEventDispatchMediator::dispatchEvent()|. | 117 // see comments in |InputEventDispatchMediator::dispatchEvent()|. |
115 RangeVector m_ranges; | 118 RangeVector m_ranges; |
116 }; | 119 }; |
117 | 120 |
118 class InputEventDispatchMediator final : public EventDispatchMediator { | 121 class InputEventDispatchMediator final : public EventDispatchMediator { |
119 public: | 122 public: |
120 static InputEventDispatchMediator* create(InputEvent*); | 123 static InputEventDispatchMediator* create(InputEvent*); |
121 | 124 |
122 private: | 125 private: |
123 explicit InputEventDispatchMediator(InputEvent*); | 126 explicit InputEventDispatchMediator(InputEvent*); |
124 InputEvent& event() const; | 127 InputEvent& event() const; |
125 DispatchEventResult dispatchEvent(EventDispatcher&) const override; | 128 DispatchEventResult dispatchEvent(EventDispatcher&) const override; |
126 }; | 129 }; |
127 | 130 |
128 DEFINE_EVENT_TYPE_CASTS(InputEvent); | 131 DEFINE_EVENT_TYPE_CASTS(InputEvent); |
129 | 132 |
130 } // namespace blink | 133 } // namespace blink |
131 | 134 |
132 #endif // InputEvent_h | 135 #endif // InputEvent_h |
OLD | NEW |