18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2006 Michael Emmel mike.emmel@gmail.com 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2007 Holger Hans Peter Freyther 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2008 Collabora, Ltd. All rights reserved. 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * All rights reserved. 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met: 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1. Redistributions of source code must retain the above copyright 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer. 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer in the 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation and/or other materials provided with the distribution. 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "config.h" 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "PlatformKeyboardEvent.h" 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3368513a70bcd92384395513322f1b801e7bf9c729Steve Block#include "GtkVersioning.h" 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "NotImplemented.h" 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "TextEncoding.h" 36dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "WindowsKeyboardCodes.h" 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <gdk/gdk.h> 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <gdk/gdkkeysyms.h> 40635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// FIXME: This is incomplete. We should change this to mirror 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// more like what Firefox does, and generate these switch statements 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// at build time. 4681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen MurdochString PlatformKeyboardEvent::keyIdentifierForGdkKeyCode(unsigned keyCode) 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project switch (keyCode) { 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Menu: 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Alt_L: 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Alt_R: 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "Alt"; 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Clear: 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "Clear"; 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Down: 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "Down"; 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // "End" 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_End: 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "End"; 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // "Enter" 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_ISO_Enter: 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_KP_Enter: 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Return: 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "Enter"; 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Execute: 668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "Execute"; 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F1: 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F1"; 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F2: 708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F2"; 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F3: 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F3"; 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F4: 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F4"; 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F5: 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F5"; 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F6: 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F6"; 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F7: 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F7"; 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F8: 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F8"; 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F9: 848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F9"; 858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F10: 868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F10"; 878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F11: 888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F11"; 898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F12: 908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F12"; 918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F13: 928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F13"; 938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F14: 948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F14"; 958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F15: 968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F15"; 978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F16: 988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F16"; 998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F17: 1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F17"; 1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F18: 1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F18"; 1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F19: 1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F19"; 1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F20: 1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F20"; 1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F21: 1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F21"; 1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F22: 1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F22"; 1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F23: 1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F23"; 1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F24: 1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "F24"; 1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Help: 1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "Help"; 1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Home: 1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "Home"; 1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Insert: 1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "Insert"; 1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Left: 1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "Left"; 1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Page_Down: 1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "PageDown"; 1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Page_Up: 1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "PageUp"; 1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Pause: 1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "Pause"; 1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_3270_PrintScreen: 130dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch case GDK_Print: 1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "PrintScreen"; 1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Right: 1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "Right"; 1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Select: 1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "Select"; 1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Up: 1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "Up"; 1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Standard says that DEL becomes U+007F. 1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Delete: 1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "U+007F"; 141231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block case GDK_BackSpace: 142231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block return "U+0008"; 1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_ISO_Left_Tab: 1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_3270_BackTab: 1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Tab: 1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return "U+0009"; 1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project default: 1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return String::format("U+%04X", gdk_keyval_to_unicode(gdk_keyval_to_upper(keyCode))); 1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 15281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdochint PlatformKeyboardEvent::windowsKeyCodeForGdkKeyCode(unsigned keycode) 1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project switch (keycode) { 1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_KP_0: 1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_NUMPAD0;// (60) Numeric keypad 0 key 1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_KP_1: 1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_NUMPAD1;// (61) Numeric keypad 1 key 1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_KP_2: 1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_NUMPAD2; // (62) Numeric keypad 2 key 1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_KP_3: 1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_NUMPAD3; // (63) Numeric keypad 3 key 1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_KP_4: 1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_NUMPAD4; // (64) Numeric keypad 4 key 1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_KP_5: 1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_NUMPAD5; //(65) Numeric keypad 5 key 1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_KP_6: 1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_NUMPAD6; // (66) Numeric keypad 6 key 1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_KP_7: 1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_NUMPAD7; // (67) Numeric keypad 7 key 1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_KP_8: 1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_NUMPAD8; // (68) Numeric keypad 8 key 1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_KP_9: 1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_NUMPAD9; // (69) Numeric keypad 9 key 1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_KP_Multiply: 1768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_MULTIPLY; // (6A) Multiply key 1778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_KP_Add: 1788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_ADD; // (6B) Add key 1798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_KP_Subtract: 1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_SUBTRACT; // (6D) Subtract key 1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_KP_Decimal: 1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_DECIMAL; // (6E) Decimal key 1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_KP_Divide: 1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_DIVIDE; // (6F) Divide key 1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 186d0825bca7fe65beaee391d30da42e937db621564Steve Block case GDK_KP_Page_Up: 187d0825bca7fe65beaee391d30da42e937db621564Steve Block return VK_PRIOR; // (21) PAGE UP key 188d0825bca7fe65beaee391d30da42e937db621564Steve Block case GDK_KP_Page_Down: 189d0825bca7fe65beaee391d30da42e937db621564Steve Block return VK_NEXT; // (22) PAGE DOWN key 190d0825bca7fe65beaee391d30da42e937db621564Steve Block case GDK_KP_End: 191d0825bca7fe65beaee391d30da42e937db621564Steve Block return VK_END; // (23) END key 192d0825bca7fe65beaee391d30da42e937db621564Steve Block case GDK_KP_Home: 193d0825bca7fe65beaee391d30da42e937db621564Steve Block return VK_HOME; // (24) HOME key 194d0825bca7fe65beaee391d30da42e937db621564Steve Block case GDK_KP_Left: 195d0825bca7fe65beaee391d30da42e937db621564Steve Block return VK_LEFT; // (25) LEFT ARROW key 196d0825bca7fe65beaee391d30da42e937db621564Steve Block case GDK_KP_Up: 197d0825bca7fe65beaee391d30da42e937db621564Steve Block return VK_UP; // (26) UP ARROW key 198d0825bca7fe65beaee391d30da42e937db621564Steve Block case GDK_KP_Right: 199d0825bca7fe65beaee391d30da42e937db621564Steve Block return VK_RIGHT; // (27) RIGHT ARROW key 200d0825bca7fe65beaee391d30da42e937db621564Steve Block case GDK_KP_Down: 201d0825bca7fe65beaee391d30da42e937db621564Steve Block return VK_DOWN; // (28) DOWN ARROW key 202d0825bca7fe65beaee391d30da42e937db621564Steve Block 2038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_BackSpace: 2048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_BACK; // (08) BACKSPACE key 2058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_ISO_Left_Tab: 2068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_3270_BackTab: 2078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Tab: 2088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_TAB; // (09) TAB key 2098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Clear: 2108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_CLEAR; // (0C) CLEAR key 2118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_ISO_Enter: 2128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_KP_Enter: 2138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Return: 2148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_RETURN; //(0D) Return key 2158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Shift_L: 2168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Shift_R: 2178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_SHIFT; // (10) SHIFT key 2188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Control_L: 2198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Control_R: 2208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_CONTROL; // (11) CTRL key 2218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Menu: 222cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block return VK_APPS; // (5D) Applications key (Natural keyboard) 2238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Alt_L: 2248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Alt_R: 2258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_MENU; // (12) ALT key 2268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Pause: 2288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_PAUSE; // (13) PAUSE key 2298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Caps_Lock: 2308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_CAPITAL; // (14) CAPS LOCK key 2318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Kana_Lock: 2328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Kana_Shift: 2338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_KANA; // (15) Input Method Editor (IME) Kana mode 2348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Hangul: 2358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_HANGUL; // VK_HANGUL (15) IME Hangul mode 2368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_JUNJA (17) IME Junja mode 2378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_FINAL (18) IME final mode 2388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Hangul_Hanja: 2398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_HANJA; // (19) IME Hanja mode 2408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Kanji: 2418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_KANJI; // (19) IME Kanji mode 2428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Escape: 2438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_ESCAPE; // (1B) ESC key 2448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_CONVERT (1C) IME convert 2458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_NONCONVERT (1D) IME nonconvert 2468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_ACCEPT (1E) IME accept 2478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_MODECHANGE (1F) IME mode change request 2488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_space: 2498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_SPACE; // (20) SPACEBAR 2508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Page_Up: 2518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_PRIOR; // (21) PAGE UP key 2528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Page_Down: 2538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_NEXT; // (22) PAGE DOWN key 2548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_End: 2558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_END; // (23) END key 2568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Home: 2578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_HOME; // (24) HOME key 2588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Left: 2598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_LEFT; // (25) LEFT ARROW key 2608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Up: 2618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_UP; // (26) UP ARROW key 2628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Right: 2638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_RIGHT; // (27) RIGHT ARROW key 2648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Down: 2658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_DOWN; // (28) DOWN ARROW key 2668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Select: 2678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_SELECT; // (29) SELECT key 2688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Print: 269db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block return VK_SNAPSHOT; // (2C) PRINT SCREEN key 2708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Execute: 2718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_EXECUTE;// (2B) EXECUTE key 2728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Insert: 273db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block case GDK_KP_Insert: 2748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_INSERT; // (2D) INS key 2758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Delete: 276db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block case GDK_KP_Delete: 2778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_DELETE; // (2E) DEL key 2788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Help: 2798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_HELP; // (2F) HELP key 2808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_0: 2815f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian case GDK_parenright: 2828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_0; // (30) 0) key 2838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_1: 2845f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian case GDK_exclam: 2858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_1; // (31) 1 ! key 2868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_2: 2878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_at: 2888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_2; // (32) 2 & key 2898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_3: 2908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_numbersign: 2918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_3; //case '3': case '#'; 2928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_4: 2938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_dollar: // (34) 4 key '$'; 2948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_4; 2958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_5: 2968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_percent: 2978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_5; // (35) 5 key '%' 2988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_6: 2998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_asciicircum: 3008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_6; // (36) 6 key '^' 3018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_7: 3028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_ampersand: 3038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_7; // (37) 7 key case '&' 3048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_8: 3058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_asterisk: 3068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_8; // (38) 8 key '*' 3078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_9: 3085f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian case GDK_parenleft: 3098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_9; // (39) 9 key '(' 3108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_a: 3118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_A: 3128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_A; // (41) A key case 'a': case 'A': return 0x41; 3138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_b: 3148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_B: 3158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_B; // (42) B key case 'b': case 'B': return 0x42; 3168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_c: 3178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_C: 3188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_C; // (43) C key case 'c': case 'C': return 0x43; 3198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_d: 3208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_D: 3218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_D; // (44) D key case 'd': case 'D': return 0x44; 3228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_e: 3238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_E: 3248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_E; // (45) E key case 'e': case 'E': return 0x45; 3258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_f: 3268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_F: 3278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_F; // (46) F key case 'f': case 'F': return 0x46; 3288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_g: 3298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_G: 3308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_G; // (47) G key case 'g': case 'G': return 0x47; 3318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_h: 3328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_H: 3338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_H; // (48) H key case 'h': case 'H': return 0x48; 3348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_i: 3358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_I: 3368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_I; // (49) I key case 'i': case 'I': return 0x49; 3378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_j: 3388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_J: 3398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_J; // (4A) J key case 'j': case 'J': return 0x4A; 3408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_k: 3418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_K: 3428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_K; // (4B) K key case 'k': case 'K': return 0x4B; 3438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_l: 3448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_L: 3458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_L; // (4C) L key case 'l': case 'L': return 0x4C; 3468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_m: 3478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_M: 3488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_M; // (4D) M key case 'm': case 'M': return 0x4D; 3498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_n: 3508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_N: 3518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_N; // (4E) N key case 'n': case 'N': return 0x4E; 3528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_o: 3538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_O: 3548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_O; // (4F) O key case 'o': case 'O': return 0x4F; 3558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_p: 3568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_P: 3578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_P; // (50) P key case 'p': case 'P': return 0x50; 3588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_q: 3598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Q: 3608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_Q; // (51) Q key case 'q': case 'Q': return 0x51; 3618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_r: 3628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_R: 3638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_R; // (52) R key case 'r': case 'R': return 0x52; 3648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_s: 3658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_S: 3668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_S; // (53) S key case 's': case 'S': return 0x53; 3678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_t: 3688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_T: 3698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_T; // (54) T key case 't': case 'T': return 0x54; 3708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_u: 3718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_U: 3728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_U; // (55) U key case 'u': case 'U': return 0x55; 3738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_v: 3748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_V: 3758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_V; // (56) V key case 'v': case 'V': return 0x56; 3768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_w: 3778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_W: 3788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_W; // (57) W key case 'w': case 'W': return 0x57; 3798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_x: 3808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_X: 3818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_X; // (58) X key case 'x': case 'X': return 0x58; 3828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_y: 3838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Y: 3848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_Y; // (59) Y key case 'y': case 'Y': return 0x59; 3858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_z: 3868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Z: 3878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_Z; // (5A) Z key case 'z': case 'Z': return 0x5A; 3888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Meta_L: 3898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_LWIN; // (5B) Left Windows key (Microsoft Natural keyboard) 3908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Meta_R: 3918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_RWIN; // (5C) Right Windows key (Natural keyboard) 3928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_SLEEP (5F) Computer Sleep key 3938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_SEPARATOR (6C) Separator key 3948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_SUBTRACT (6D) Subtract key 3958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_DECIMAL (6E) Decimal key 3968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_DIVIDE (6F) Divide key 3978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // handled by key code above 3988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Num_Lock: 4008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_NUMLOCK; // (90) NUM LOCK key 4018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Scroll_Lock: 4038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_SCROLL; // (91) SCROLL LOCK key 4048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_LSHIFT (A0) Left SHIFT key 4068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_RSHIFT (A1) Right SHIFT key 4078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_LCONTROL (A2) Left CONTROL key 4088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_RCONTROL (A3) Right CONTROL key 4098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_LMENU (A4) Left MENU key 4108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_RMENU (A5) Right MENU key 4118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_BROWSER_BACK (A6) Windows 2000/XP: Browser Back key 4128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_BROWSER_FORWARD (A7) Windows 2000/XP: Browser Forward key 4138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_BROWSER_REFRESH (A8) Windows 2000/XP: Browser Refresh key 4148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_BROWSER_STOP (A9) Windows 2000/XP: Browser Stop key 4158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_BROWSER_SEARCH (AA) Windows 2000/XP: Browser Search key 4168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_BROWSER_FAVORITES (AB) Windows 2000/XP: Browser Favorites key 4178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_BROWSER_HOME (AC) Windows 2000/XP: Browser Start and Home key 4188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_VOLUME_MUTE (AD) Windows 2000/XP: Volume Mute key 4198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_VOLUME_DOWN (AE) Windows 2000/XP: Volume Down key 4208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_VOLUME_UP (AF) Windows 2000/XP: Volume Up key 4218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_MEDIA_NEXT_TRACK (B0) Windows 2000/XP: Next Track key 4228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_MEDIA_PREV_TRACK (B1) Windows 2000/XP: Previous Track key 4238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_MEDIA_STOP (B2) Windows 2000/XP: Stop Media key 4248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_MEDIA_PLAY_PAUSE (B3) Windows 2000/XP: Play/Pause Media key 4258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_LAUNCH_MAIL (B4) Windows 2000/XP: Start Mail key 4268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_LAUNCH_MEDIA_SELECT (B5) Windows 2000/XP: Select Media key 4278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_LAUNCH_APP1 (B6) Windows 2000/XP: Start Application 1 key 4288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_LAUNCH_APP2 (B7) Windows 2000/XP: Start Application 2 key 4298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_OEM_1 (BA) Used for miscellaneous characters; it can vary by keyboard. Windows 2000/XP: For the US standard keyboard, the ';:' key 4318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_semicolon: 4328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_colon: 4338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_OEM_1; //case ';': case ':': return 0xBA; 4348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_OEM_PLUS (BB) Windows 2000/XP: For any country/region, the '+' key 4358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_plus: 4368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_equal: 4378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_OEM_PLUS; //case '=': case '+': return 0xBB; 4388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_OEM_COMMA (BC) Windows 2000/XP: For any country/region, the ',' key 4398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_comma: 4408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_less: 4418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_OEM_COMMA; //case ',': case '<': return 0xBC; 4428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_OEM_MINUS (BD) Windows 2000/XP: For any country/region, the '-' key 4438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_minus: 4448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_underscore: 4458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_OEM_MINUS; //case '-': case '_': return 0xBD; 4468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_OEM_PERIOD (BE) Windows 2000/XP: For any country/region, the '.' key 4478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_period: 4488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_greater: 4498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_OEM_PERIOD; //case '.': case '>': return 0xBE; 4508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_OEM_2 (BF) Used for miscellaneous characters; it can vary by keyboard. Windows 2000/XP: For the US standard keyboard, the '/?' key 4518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_slash: 4528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_question: 4538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_OEM_2; //case '/': case '?': return 0xBF; 4548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_OEM_3 (C0) Used for miscellaneous characters; it can vary by keyboard. Windows 2000/XP: For the US standard keyboard, the '`~' key 4558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_asciitilde: 4568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_quoteleft: 4578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_OEM_3; //case '`': case '~': return 0xC0; 4588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_OEM_4 (DB) Used for miscellaneous characters; it can vary by keyboard. Windows 2000/XP: For the US standard keyboard, the '[{' key 4598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_bracketleft: 4608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_braceleft: 4618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_OEM_4; //case '[': case '{': return 0xDB; 4628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_OEM_5 (DC) Used for miscellaneous characters; it can vary by keyboard. Windows 2000/XP: For the US standard keyboard, the '\|' key 4638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_backslash: 4648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_bar: 4658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_OEM_5; //case '\\': case '|': return 0xDC; 4668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_OEM_6 (DD) Used for miscellaneous characters; it can vary by keyboard. Windows 2000/XP: For the US standard keyboard, the ']}' key 4678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_bracketright: 4688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_braceright: 4698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_OEM_6; // case ']': case '}': return 0xDD; 4708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_OEM_7 (DE) Used for miscellaneous characters; it can vary by keyboard. Windows 2000/XP: For the US standard keyboard, the 'single-quote/double-quote' key 4718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_quoteright: 4728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_quotedbl: 4738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return VK_OEM_7; // case '\'': case '"': return 0xDE; 4748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_OEM_8 (DF) Used for miscellaneous characters; it can vary by keyboard. 4758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_OEM_102 (E2) Windows 2000/XP: Either the angle bracket key or the backslash key on the RT 102-key keyboard 4768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_PROCESSKEY (E5) Windows 95/98/Me, Windows NT 4.0, Windows 2000/XP: IME PROCESS key 4778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_PACKET (E7) Windows 2000/XP: Used to pass Unicode characters as if they were keystrokes. The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information, see Remark in KEYBDINPUT,SendInput, WM_KEYDOWN, and WM_KEYUP 4788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_ATTN (F6) Attn key 4798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_CRSEL (F7) CrSel key 4808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_EXSEL (F8) ExSel key 4818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_EREOF (F9) Erase EOF key 4828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_PLAY (FA) Play key 4838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_ZOOM (FB) Zoom key 4848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_NONAME (FC) Reserved for future use 4858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_PA1 (FD) PA1 key 4868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // VK_OEM_CLEAR (FE) Clear key 487635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F1: 488635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F2: 489635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F3: 490635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F4: 491635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F5: 492635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F6: 493635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F7: 494635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F8: 495635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F9: 496635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F10: 497635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F11: 498635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F12: 499635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F13: 500635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F14: 501635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F15: 502635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F16: 503635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F17: 504635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F18: 505635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F19: 506635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F20: 507635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F21: 508635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F22: 509635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F23: 510635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project case GDK_F24: 511635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return VK_F1 + (keycode - GDK_F1); 512635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 5138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project default: 5148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return 0; 5158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 5188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 51981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen MurdochString PlatformKeyboardEvent::singleCharacterString(unsigned val) 5208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 5218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project switch (val) { 5228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_ISO_Enter: 5238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_KP_Enter: 5248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case GDK_Return: 5258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return String("\r"); 526231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block case GDK_BackSpace: 527231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block return String("\x8"); 528643ca7872b450ea4efacab6188849e5aac2ba161Steve Block case GDK_Tab: 529643ca7872b450ea4efacab6188849e5aac2ba161Steve Block return String("\t"); 5308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project default: 5318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project gunichar c = gdk_keyval_to_unicode(val); 5328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project glong nwc; 5338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project gunichar2* uchar16 = g_ucs4_to_utf16(&c, 1, 0, &nwc, 0); 5348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String retVal; 5368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (uchar16) 5378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project retVal = String((UChar*)uchar16, nwc); 5388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project else 5398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project retVal = String(); 5408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project g_free(uchar16); 5428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return retVal; 5448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 5468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// Keep this in sync with the other platform event constructors 5488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// TODO: m_gdkEventKey should be refcounted 5498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectPlatformKeyboardEvent::PlatformKeyboardEvent(GdkEventKey* event) 5508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project : m_type((event->type == GDK_KEY_RELEASE) ? KeyUp : KeyDown) 5518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project , m_text(singleCharacterString(event->keyval)) 5528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project , m_unmodifiedText(singleCharacterString(event->keyval)) 5538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project , m_keyIdentifier(keyIdentifierForGdkKeyCode(event->keyval)) 5548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project , m_autoRepeat(false) 55581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch , m_windowsVirtualKeyCode(windowsKeyCodeForGdkKeyCode(event->keyval)) 5568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project , m_nativeVirtualKeyCode(event->keyval) 5578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project , m_isKeypad(event->keyval >= GDK_KP_Space && event->keyval <= GDK_KP_9) 5588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project , m_shiftKey((event->state & GDK_SHIFT_MASK) || (event->keyval == GDK_3270_BackTab)) 5598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project , m_ctrlKey(event->state & GDK_CONTROL_MASK) 5608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project , m_altKey(event->state & GDK_MOD1_MASK) 5618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project , m_metaKey(event->state & GDK_META_MASK) 5628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project , m_gdkEventKey(event) 5638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 5648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 5658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid PlatformKeyboardEvent::disambiguateKeyDownEvent(Type type, bool backwardCompatibilityMode) 5678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 5688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Can only change type from KeyDown to RawKeyDown or Char, as we lack information for other conversions. 5698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ASSERT(m_type == KeyDown); 5708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_type = type; 5718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (backwardCompatibilityMode) 5738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return; 5748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (type == RawKeyDown) { 5768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_text = String(); 5778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_unmodifiedText = String(); 5788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } else { 5798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_keyIdentifier = String(); 5808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_windowsVirtualKeyCode = 0; 5818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 5838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectbool PlatformKeyboardEvent::currentCapsLockState() 5858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 586ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch return gdk_keymap_get_caps_lock_state(gdk_keymap_get_default()); 5878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 5888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 589dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockvoid PlatformKeyboardEvent::getCurrentModifierState(bool& shiftKey, bool& ctrlKey, bool& altKey, bool& metaKey) 590dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{ 59181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch GdkModifierType state; 59281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch gtk_get_current_event_state(&state); 59381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 59481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch shiftKey = state & GDK_SHIFT_MASK; 59581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch ctrlKey = state & GDK_CONTROL_MASK; 59681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch altKey = state & GDK_MOD1_MASK; 59781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch metaKey = state & GDK_META_MASK; 598dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block} 599dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 6008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectGdkEventKey* PlatformKeyboardEvent::gdkEventKey() const 6018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 6028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return m_gdkEventKey; 6038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 6048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 606