OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "webkit/glue/plugins/pepper_event_conversion.h" | 5 #include "webkit/glue/plugins/pepper_event_conversion.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/scoped_ptr.h" | 8 #include "base/scoped_ptr.h" |
9 #include "third_party/ppapi/c/pp_event.h" | 9 #include "third_party/ppapi/c/pp_event.h" |
10 #include "third_party/WebKit/WebKit/chromium/public/WebInputEvent.h" | 10 #include "third_party/WebKit/WebKit/chromium/public/WebInputEvent.h" |
11 | 11 |
12 using WebKit::WebInputEvent; | 12 using WebKit::WebInputEvent; |
13 using WebKit::WebKeyboardEvent; | 13 using WebKit::WebKeyboardEvent; |
14 using WebKit::WebMouseEvent; | 14 using WebKit::WebMouseEvent; |
15 using WebKit::WebMouseWheelEvent; | 15 using WebKit::WebMouseWheelEvent; |
16 | 16 |
17 namespace { | 17 namespace { |
18 // Anonymous namespace for functions converting WebInputEvent to PP_Event and | 18 // Anonymous namespace for functions converting WebInputEvent to PP_Event and |
19 // back. | 19 // back. |
20 PP_Event_Type ConvertEventTypes(WebInputEvent::Type wetype) { | 20 PP_Event_Type ConvertEventTypes(WebInputEvent::Type wetype) { |
21 switch (wetype) { | 21 switch (wetype) { |
22 case WebInputEvent::MouseDown: | 22 case WebInputEvent::MouseDown: |
23 return PP_Event_Type_MouseDown; | 23 return PP_EVENT_TYPE_MOUSEDOWN; |
24 case WebInputEvent::MouseUp: | 24 case WebInputEvent::MouseUp: |
25 return PP_Event_Type_MouseUp; | 25 return PP_EVENT_TYPE_MOUSEUP; |
26 case WebInputEvent::MouseMove: | 26 case WebInputEvent::MouseMove: |
27 return PP_Event_Type_MouseMove; | 27 return PP_EVENT_TYPE_MOUSEMOVE; |
28 case WebInputEvent::MouseEnter: | 28 case WebInputEvent::MouseEnter: |
29 return PP_Event_Type_MouseEnter; | 29 return PP_EVENT_TYPE_MOUSEENTER; |
30 case WebInputEvent::MouseLeave: | 30 case WebInputEvent::MouseLeave: |
31 return PP_Event_Type_MouseLeave; | 31 return PP_EVENT_TYPE_MOUSELEAVE; |
32 case WebInputEvent::MouseWheel: | 32 case WebInputEvent::MouseWheel: |
33 return PP_Event_Type_MouseWheel; | 33 return PP_EVENT_TYPE_MOUSEWHEEL; |
34 case WebInputEvent::RawKeyDown: | 34 case WebInputEvent::RawKeyDown: |
35 return PP_Event_Type_RawKeyDown; | 35 return PP_EVENT_TYPE_RAWKEYDOWN; |
36 case WebInputEvent::KeyDown: | 36 case WebInputEvent::KeyDown: |
37 return PP_Event_Type_KeyDown; | 37 return PP_EVENT_TYPE_KEYDOWN; |
38 case WebInputEvent::KeyUp: | 38 case WebInputEvent::KeyUp: |
39 return PP_Event_Type_KeyUp; | 39 return PP_EVENT_TYPE_KEYUP; |
40 case WebInputEvent::Char: | 40 case WebInputEvent::Char: |
41 return PP_Event_Type_Char; | 41 return PP_EVENT_TYPE_CHAR; |
42 case WebInputEvent::Undefined: | 42 case WebInputEvent::Undefined: |
43 default: | 43 default: |
44 return PP_Event_Type_Undefined; | 44 return PP_EVENT_TYPE_UNDEFINED; |
45 } | 45 } |
46 } | 46 } |
47 | 47 |
48 void BuildKeyEvent(const WebInputEvent* event, PP_Event* pp_event) { | 48 void BuildKeyEvent(const WebInputEvent* event, PP_Event* pp_event) { |
49 const WebKeyboardEvent* key_event = | 49 const WebKeyboardEvent* key_event = |
50 reinterpret_cast<const WebKeyboardEvent*>(event); | 50 reinterpret_cast<const WebKeyboardEvent*>(event); |
51 pp_event->u.key.modifier = key_event->modifiers; | 51 pp_event->u.key.modifier = key_event->modifiers; |
52 pp_event->u.key.normalizedKeyCode = key_event->windowsKeyCode; | 52 pp_event->u.key.normalizedKeyCode = key_event->windowsKeyCode; |
53 } | 53 } |
54 | 54 |
(...skipping 29 matching lines...) Expand all Loading... |
84 pp_event->u.wheel.deltaY = mouse_wheel_event->deltaY; | 84 pp_event->u.wheel.deltaY = mouse_wheel_event->deltaY; |
85 pp_event->u.wheel.wheelTicksX = mouse_wheel_event->wheelTicksX; | 85 pp_event->u.wheel.wheelTicksX = mouse_wheel_event->wheelTicksX; |
86 pp_event->u.wheel.wheelTicksY = mouse_wheel_event->wheelTicksY; | 86 pp_event->u.wheel.wheelTicksY = mouse_wheel_event->wheelTicksY; |
87 pp_event->u.wheel.scrollByPage = mouse_wheel_event->scrollByPage; | 87 pp_event->u.wheel.scrollByPage = mouse_wheel_event->scrollByPage; |
88 } | 88 } |
89 | 89 |
90 | 90 |
91 WebKeyboardEvent* BuildKeyEvent(const PP_Event& event) { | 91 WebKeyboardEvent* BuildKeyEvent(const PP_Event& event) { |
92 WebKeyboardEvent* key_event = new WebKeyboardEvent(); | 92 WebKeyboardEvent* key_event = new WebKeyboardEvent(); |
93 switch (event.type) { | 93 switch (event.type) { |
94 case PP_Event_Type_RawKeyDown: | 94 case PP_EVENT_TYPE_RAWKEYDOWN: |
95 key_event->type = WebInputEvent::RawKeyDown; | 95 key_event->type = WebInputEvent::RawKeyDown; |
96 break; | 96 break; |
97 case PP_Event_Type_KeyDown: | 97 case PP_EVENT_TYPE_KEYDOWN: |
98 key_event->type = WebInputEvent::KeyDown; | 98 key_event->type = WebInputEvent::KeyDown; |
99 break; | 99 break; |
100 case PP_Event_Type_KeyUp: | 100 case PP_EVENT_TYPE_KEYUP: |
101 key_event->type = WebInputEvent::KeyUp; | 101 key_event->type = WebInputEvent::KeyUp; |
102 break; | 102 break; |
103 } | 103 } |
104 key_event->timeStampSeconds = event.time_stamp_seconds; | 104 key_event->timeStampSeconds = event.time_stamp_seconds; |
105 key_event->modifiers = event.u.key.modifier; | 105 key_event->modifiers = event.u.key.modifier; |
106 key_event->windowsKeyCode = event.u.key.normalizedKeyCode; | 106 key_event->windowsKeyCode = event.u.key.normalizedKeyCode; |
107 return key_event; | 107 return key_event; |
108 } | 108 } |
109 | 109 |
110 WebKeyboardEvent* BuildCharEvent(const PP_Event& event) { | 110 WebKeyboardEvent* BuildCharEvent(const PP_Event& event) { |
111 WebKeyboardEvent* key_event = new WebKeyboardEvent(); | 111 WebKeyboardEvent* key_event = new WebKeyboardEvent(); |
112 key_event->type = WebInputEvent::Char; | 112 key_event->type = WebInputEvent::Char; |
113 key_event->timeStampSeconds = event.time_stamp_seconds; | 113 key_event->timeStampSeconds = event.time_stamp_seconds; |
114 key_event->modifiers = event.u.character.modifier; | 114 key_event->modifiers = event.u.character.modifier; |
115 // For consistency, check that the sizes of the texts agree. | 115 // For consistency, check that the sizes of the texts agree. |
116 DCHECK(sizeof(event.u.character.text) == sizeof(key_event->text)); | 116 DCHECK(sizeof(event.u.character.text) == sizeof(key_event->text)); |
117 DCHECK(sizeof(event.u.character.unmodifiedText) == | 117 DCHECK(sizeof(event.u.character.unmodifiedText) == |
118 sizeof(key_event->unmodifiedText)); | 118 sizeof(key_event->unmodifiedText)); |
119 for (size_t i = 0; i < WebKeyboardEvent::textLengthCap; ++i) { | 119 for (size_t i = 0; i < WebKeyboardEvent::textLengthCap; ++i) { |
120 key_event->text[i] = event.u.character.text[i]; | 120 key_event->text[i] = event.u.character.text[i]; |
121 key_event->unmodifiedText[i] = event.u.character.unmodifiedText[i]; | 121 key_event->unmodifiedText[i] = event.u.character.unmodifiedText[i]; |
122 } | 122 } |
123 return key_event; | 123 return key_event; |
124 } | 124 } |
125 | 125 |
126 WebMouseEvent* BuildMouseEvent(const PP_Event& event) { | 126 WebMouseEvent* BuildMouseEvent(const PP_Event& event) { |
127 WebMouseEvent* mouse_event = new WebMouseEvent(); | 127 WebMouseEvent* mouse_event = new WebMouseEvent(); |
128 switch (event.type) { | 128 switch (event.type) { |
129 case PP_Event_Type_MouseDown: | 129 case PP_EVENT_TYPE_MOUSEDOWN: |
130 mouse_event->type = WebInputEvent::MouseDown; | 130 mouse_event->type = WebInputEvent::MouseDown; |
131 break; | 131 break; |
132 case PP_Event_Type_MouseUp: | 132 case PP_EVENT_TYPE_MOUSEUP: |
133 mouse_event->type = WebInputEvent::MouseUp; | 133 mouse_event->type = WebInputEvent::MouseUp; |
134 break; | 134 break; |
135 case PP_Event_Type_MouseMove: | 135 case PP_EVENT_TYPE_MOUSEMOVE: |
136 mouse_event->type = WebInputEvent::MouseMove; | 136 mouse_event->type = WebInputEvent::MouseMove; |
137 break; | 137 break; |
138 case PP_Event_Type_MouseEnter: | 138 case PP_EVENT_TYPE_MOUSEENTER: |
139 mouse_event->type = WebInputEvent::MouseEnter; | 139 mouse_event->type = WebInputEvent::MouseEnter; |
140 break; | 140 break; |
141 case PP_Event_Type_MouseLeave: | 141 case PP_EVENT_TYPE_MOUSELEAVE: |
142 mouse_event->type = WebInputEvent::MouseLeave; | 142 mouse_event->type = WebInputEvent::MouseLeave; |
143 break; | 143 break; |
144 } | 144 } |
145 mouse_event->timeStampSeconds = event.time_stamp_seconds; | 145 mouse_event->timeStampSeconds = event.time_stamp_seconds; |
146 mouse_event->modifiers = event.u.mouse.modifier; | 146 mouse_event->modifiers = event.u.mouse.modifier; |
147 mouse_event->button = | 147 mouse_event->button = |
148 static_cast<WebMouseEvent::Button>(event.u.mouse.button); | 148 static_cast<WebMouseEvent::Button>(event.u.mouse.button); |
149 mouse_event->x = event.u.mouse.x; | 149 mouse_event->x = event.u.mouse.x; |
150 mouse_event->y = event.u.mouse.y; | 150 mouse_event->y = event.u.mouse.y; |
151 mouse_event->clickCount = event.u.mouse.clickCount; | 151 mouse_event->clickCount = event.u.mouse.clickCount; |
(...skipping 17 matching lines...) Expand all Loading... |
169 | 169 |
170 namespace pepper { | 170 namespace pepper { |
171 | 171 |
172 PP_Event* CreatePP_Event(const WebInputEvent& event) { | 172 PP_Event* CreatePP_Event(const WebInputEvent& event) { |
173 scoped_ptr<PP_Event> pp_event(new PP_Event); | 173 scoped_ptr<PP_Event> pp_event(new PP_Event); |
174 | 174 |
175 pp_event->type = ConvertEventTypes(event.type); | 175 pp_event->type = ConvertEventTypes(event.type); |
176 pp_event->size = sizeof(pp_event); | 176 pp_event->size = sizeof(pp_event); |
177 pp_event->time_stamp_seconds = event.timeStampSeconds; | 177 pp_event->time_stamp_seconds = event.timeStampSeconds; |
178 switch (pp_event->type) { | 178 switch (pp_event->type) { |
179 case PP_Event_Type_Undefined: | 179 case PP_EVENT_TYPE_UNDEFINED: |
180 return NULL; | 180 return NULL; |
181 case PP_Event_Type_MouseDown: | 181 case PP_EVENT_TYPE_MOUSEDOWN: |
182 case PP_Event_Type_MouseUp: | 182 case PP_EVENT_TYPE_MOUSEUP: |
183 case PP_Event_Type_MouseMove: | 183 case PP_EVENT_TYPE_MOUSEMOVE: |
184 case PP_Event_Type_MouseEnter: | 184 case PP_EVENT_TYPE_MOUSEENTER: |
185 case PP_Event_Type_MouseLeave: | 185 case PP_EVENT_TYPE_MOUSELEAVE: |
186 BuildMouseEvent(&event, pp_event.get()); | 186 BuildMouseEvent(&event, pp_event.get()); |
187 break; | 187 break; |
188 case PP_Event_Type_MouseWheel: | 188 case PP_EVENT_TYPE_MOUSEWHEEL: |
189 BuildMouseWheelEvent(&event, pp_event.get()); | 189 BuildMouseWheelEvent(&event, pp_event.get()); |
190 break; | 190 break; |
191 case PP_Event_Type_RawKeyDown: | 191 case PP_EVENT_TYPE_RAWKEYDOWN: |
192 case PP_Event_Type_KeyDown: | 192 case PP_EVENT_TYPE_KEYDOWN: |
193 case PP_Event_Type_KeyUp: | 193 case PP_EVENT_TYPE_KEYUP: |
194 BuildKeyEvent(&event, pp_event.get()); | 194 BuildKeyEvent(&event, pp_event.get()); |
195 break; | 195 break; |
196 case PP_Event_Type_Char: | 196 case PP_EVENT_TYPE_CHAR: |
197 BuildCharEvent(&event, pp_event.get()); | 197 BuildCharEvent(&event, pp_event.get()); |
198 break; | 198 break; |
199 } | 199 } |
200 | 200 |
201 return pp_event.release(); | 201 return pp_event.release(); |
202 } | 202 } |
203 | 203 |
204 WebInputEvent* CreateWebInputEvent(const PP_Event& event) { | 204 WebInputEvent* CreateWebInputEvent(const PP_Event& event) { |
205 scoped_ptr<WebInputEvent> web_input_event; | 205 scoped_ptr<WebInputEvent> web_input_event; |
206 switch (event.type) { | 206 switch (event.type) { |
207 case PP_Event_Type_Undefined: | 207 case PP_EVENT_TYPE_UNDEFINED: |
208 return NULL; | 208 return NULL; |
209 case PP_Event_Type_MouseDown: | 209 case PP_EVENT_TYPE_MOUSEDOWN: |
210 case PP_Event_Type_MouseUp: | 210 case PP_EVENT_TYPE_MOUSEUP: |
211 case PP_Event_Type_MouseMove: | 211 case PP_EVENT_TYPE_MOUSEMOVE: |
212 case PP_Event_Type_MouseEnter: | 212 case PP_EVENT_TYPE_MOUSEENTER: |
213 case PP_Event_Type_MouseLeave: | 213 case PP_EVENT_TYPE_MOUSELEAVE: |
214 web_input_event.reset(BuildMouseEvent(event)); | 214 web_input_event.reset(BuildMouseEvent(event)); |
215 break; | 215 break; |
216 case PP_Event_Type_MouseWheel: | 216 case PP_EVENT_TYPE_MOUSEWHEEL: |
217 web_input_event.reset(BuildMouseWheelEvent(event)); | 217 web_input_event.reset(BuildMouseWheelEvent(event)); |
218 break; | 218 break; |
219 case PP_Event_Type_RawKeyDown: | 219 case PP_EVENT_TYPE_RAWKEYDOWN: |
220 case PP_Event_Type_KeyDown: | 220 case PP_EVENT_TYPE_KEYDOWN: |
221 case PP_Event_Type_KeyUp: | 221 case PP_EVENT_TYPE_KEYUP: |
222 web_input_event.reset(BuildKeyEvent(event)); | 222 web_input_event.reset(BuildKeyEvent(event)); |
223 break; | 223 break; |
224 case PP_Event_Type_Char: | 224 case PP_EVENT_TYPE_CHAR: |
225 web_input_event.reset(BuildCharEvent(event)); | 225 web_input_event.reset(BuildCharEvent(event)); |
226 break; | 226 break; |
227 case PP_Event_Type_Focus: | 227 case PP_EVENT_TYPE_FOCUS: |
228 // NOTIMPLEMENTED(); | 228 // NOTIMPLEMENTED(); |
229 return NULL; | 229 return NULL; |
230 } | 230 } |
231 | 231 |
232 return web_input_event.release(); | 232 return web_input_event.release(); |
233 } | 233 } |
234 | 234 |
235 } // namespace pepper | 235 } // namespace pepper |
OLD | NEW |