Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(946)

Side by Side Diff: sky/engine/public/platform/WebInputEvent.h

Issue 872233002: Switch KeyboardEvents over to NewEventHandler (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Rename virtualKeyCode to key Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « sky/engine/platform/exported/WebInputEvent.cpp ('k') | sky/engine/public/web/WebFrameClient.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 87
88 // WebPointerEvent 88 // WebPointerEvent
89 PointerDown, 89 PointerDown,
90 PointerTypeFirst = PointerDown, 90 PointerTypeFirst = PointerDown,
91 PointerUp, 91 PointerUp,
92 PointerMove, 92 PointerMove,
93 PointerCancel, 93 PointerCancel,
94 PointerTypeLast = PointerCancel, 94 PointerTypeLast = PointerCancel,
95 95
96 // WebKeyboardEvent 96 // WebKeyboardEvent
97 RawKeyDown,
98 KeyboardTypeFirst = RawKeyDown,
99 KeyDown, 97 KeyDown,
98 KeyboardTypeFirst = KeyDown,
100 KeyUp, 99 KeyUp,
101 Char, 100 Char,
102 KeyboardTypeLast = Char, 101 KeyboardTypeLast = Char,
103 102
104 // WebGestureEvent 103 // WebGestureEvent
105 GestureScrollBegin, 104 GestureScrollBegin,
106 GestureTypeFirst = GestureScrollBegin, 105 GestureTypeFirst = GestureScrollBegin,
107 GestureScrollEnd, 106 GestureScrollEnd,
108 GestureScrollUpdate, 107 GestureScrollUpdate,
109 GestureScrollUpdateWithoutPropagation, 108 GestureScrollUpdateWithoutPropagation,
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 float orientation = 0; 223 float orientation = 0;
225 float tilt = 0; 224 float tilt = 0;
226 225
227 WebPointerEvent() : WebInputEvent(sizeof(WebPointerEvent)) {} 226 WebPointerEvent() : WebInputEvent(sizeof(WebPointerEvent)) {}
228 }; 227 };
229 228
230 // WebKeyboardEvent ----------------------------------------------------------- 229 // WebKeyboardEvent -----------------------------------------------------------
231 230
232 class WebKeyboardEvent : public WebInputEvent { 231 class WebKeyboardEvent : public WebInputEvent {
233 public: 232 public:
234 // Caps on string lengths so we can make them static arrays and keep 233 // |key| is the Windows key code associated with this key
235 // them PODs.
236 static const size_t textLengthCap = 4;
237
238 // http://www.w3.org/TR/DOM-Level-3-Events/keyset.html lists the
239 // identifiers. The longest is 18 characters, so we round up to the
240 // next multiple of 4.
241 static const size_t keyIdentifierLengthCap = 20;
242
243 // |windowsKeyCode| is the Windows key code associated with this key
244 // event. Sometimes it's direct from the event (i.e. on Windows), 234 // event. Sometimes it's direct from the event (i.e. on Windows),
245 // sometimes it's via a mapping function. If you want a list, see 235 // sometimes it's via a mapping function. If you want a list, see
246 // WebCore/platform/chromium/KeyboardCodes* . Note that this should 236 // WebCore/platform/chromium/KeyboardCodes* . Note that this should
247 // ALWAYS store the non-locational version of a keycode as this is 237 // ALWAYS store the non-locational version of a keycode as this is
248 // what is returned by the Windows API. For example, it should 238 // what is returned by the Windows API. For example, it should
249 // store VK_SHIFT instead of VK_RSHIFT. The location information 239 // store VK_SHIFT instead of VK_RSHIFT. The location information
250 // should be stored in |modifiers|. 240 // should be stored in |modifiers|.
251 int windowsKeyCode; 241 int key;
252 242
253 // The actual key code genenerated by the platform. The DOM spec runs 243 // |charCode| is the text generated by this keystroke. |unmodifiedCharCode|
254 // on Windows-equivalent codes (thus |windowsKeyCode| above) but it 244 // is |charCode|, but unmodified by an concurrently-held modifiers (except
255 // doesn't hurt to have this one around. 245 // shift). This is useful for working out shortcut keys.
256 int nativeKeyCode; 246 WebUChar charCode;
257 247 WebUChar unmodifiedCharCode;
258 // This identifies whether this event was tagged by the system as being
259 // a "system key" event (see
260 // http://msdn.microsoft.com/en-us/library/ms646286(VS.85).aspx for
261 // details). Other platforms don't have this concept, but it's just
262 // easier to leave it always false than ifdef.
263 // See comment at the top of the file for why an int is used here.
264 bool isSystemKey;
265
266 // |text| is the text generated by this keystroke. |unmodifiedText| is
267 // |text|, but unmodified by an concurrently-held modifiers (except
268 // shift). This is useful for working out shortcut keys. Linux and
269 // Windows guarantee one character per event. The Mac does not, but in
270 // reality that's all it ever gives. We're generous, and cap it a bit
271 // longer.
272 WebUChar text[textLengthCap];
273 WebUChar unmodifiedText[textLengthCap];
274
275 // This is a string identifying the key pressed.
276 char keyIdentifier[keyIdentifierLengthCap];
277 248
278 WebKeyboardEvent() 249 WebKeyboardEvent()
279 : WebInputEvent(sizeof(WebKeyboardEvent)) 250 : WebInputEvent(sizeof(WebKeyboardEvent))
280 , windowsKeyCode(0) 251 , key(0)
281 , nativeKeyCode(0) 252 , charCode(0)
282 , isSystemKey(false) 253 , unmodifiedCharCode(0)
283 { 254 {
284 memset(&text, 0, sizeof(text));
285 memset(&unmodifiedText, 0, sizeof(unmodifiedText));
286 memset(&keyIdentifier, 0, sizeof(keyIdentifier));
287 } 255 }
288
289 // Sets keyIdentifier based on the value of windowsKeyCode. This is
290 // handy for generating synthetic keyboard events.
291 BLINK_EXPORT void setKeyIdentifierFromWindowsKeyCode();
292
293 static int windowsKeyCodeWithoutLocation(int keycode);
294 static int locationModifiersFromWindowsKeyCode(int keycode);
295 }; 256 };
296 257
297 // WebGestureEvent ------------------------------------------------------------- - 258 // WebGestureEvent ------------------------------------------------------------- -
298 259
299 class WebGestureEvent : public WebInputEvent { 260 class WebGestureEvent : public WebInputEvent {
300 public: 261 public:
301 int x; 262 int x;
302 int y; 263 int y;
303 int globalX; 264 int globalX;
304 int globalY; 265 int globalY;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 { 327 {
367 memset(&data, 0, sizeof(data)); 328 memset(&data, 0, sizeof(data));
368 } 329 }
369 }; 330 };
370 331
371 #pragma pack(pop) 332 #pragma pack(pop)
372 333
373 } // namespace blink 334 } // namespace blink
374 335
375 #endif // SKY_ENGINE_PUBLIC_PLATFORM_WEBINPUTEVENT_H_ 336 #endif // SKY_ENGINE_PUBLIC_PLATFORM_WEBINPUTEVENT_H_
OLDNEW
« no previous file with comments | « sky/engine/platform/exported/WebInputEvent.cpp ('k') | sky/engine/public/web/WebFrameClient.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698