/* * Copyright (c) 2010-2020, sikuli.org, sikulix.com - MIT license */ package com.tulskiy.keymaster.osx; import javax.swing.*; import java.awt.event.InputEvent; import java.util.HashMap; import java.util.Map; import static com.tulskiy.keymaster.osx.Carbon.*; import static java.awt.event.KeyEvent.*; /** * Author: Denis Tulskiy * Date: 6/17/11 */ public class KeyMap { private static Map<Integer, Integer> codes = new HashMap<Integer, Integer>() {{ put(VK_BACK_QUOTE, 50); put(VK_1, 18); put(VK_2, 19); put(VK_3, 20); put(VK_4, 21); put(VK_5, 23); put(VK_6, 22); put(VK_7, 26); put(VK_8, 28); put(VK_9, 25); put(VK_0, 29); put(VK_MINUS, 27); put(VK_UNDERSCORE, 27); put(VK_PLUS, 24); put(VK_EQUALS, 24); put(VK_BACK_SPACE, 51); put(VK_TAB, 48); put(VK_Q, 12); put(VK_W, 13); put(VK_E, 14); put(VK_R, 15); put(VK_T, 17); put(VK_Y, 16); put(VK_U, 32); put(VK_I, 34); put(VK_O, 31); put(VK_P, 35); put(VK_BRACELEFT, 33); put(VK_BRACERIGHT, 30); put(VK_BACK_SLASH, 42); put(VK_A, 0); put(VK_S, 1); put(VK_D, 2); put(VK_F, 3); put(VK_G, 5); put(VK_H, 4); put(VK_J, 38); put(VK_K, 40); put(VK_L, 37); put(VK_COLON, 41); put(VK_SEMICOLON, 41); put(VK_QUOTE, 39); put(VK_ENTER, 36); put(VK_Z, 6); put(VK_X, 7); put(VK_C, 8); put(VK_V, 9); put(VK_B, 11); put(VK_N, 45); put(VK_M, 46); put(VK_COMMA, 43); put(VK_PERIOD, 47); put(VK_SLASH, 44); put(VK_SPACE, 49); put(VK_F1, 122); put(VK_F2, 120); put(VK_F3, 99); put(VK_F4, 118); put(VK_F5, 96); put(VK_F6, 97); put(VK_F7, 98); put(VK_F8, 100); put(VK_F9, 101); put(VK_F10, 109); put(VK_F11, 103); put(VK_F12, 111); put(VK_ESCAPE, 53); put(VK_INSERT, 114); put(VK_HELP, 114); put(VK_HOME, 115); put(VK_PAGE_UP, 116); put(VK_DELETE, 117); put(VK_END, 119); put(VK_PAGE_DOWN, 121); put(VK_UP, 126); put(VK_DOWN, 125); put(VK_LEFT, 123); put(VK_RIGHT, 124); put(VK_EQUALS, 81); put(VK_DIVIDE, 75); put(VK_MULTIPLY, 67); put(VK_SUBTRACT, 78); put(VK_ADD, 69); put(VK_SUBTRACT, 78); put(VK_NUMPAD0, 82); put(VK_NUMPAD1, 83); put(VK_NUMPAD2, 84); put(VK_NUMPAD3, 85); put(VK_NUMPAD4, 86); put(VK_NUMPAD5, 87); put(VK_NUMPAD6, 88); put(VK_NUMPAD7, 89); put(VK_NUMPAD8, 91); put(VK_NUMPAD9, 92); put(VK_DECIMAL, 65); }}; public static int getKeyCode(KeyStroke keyStroke) { Integer ret = codes.get(keyStroke.getKeyCode()); if (ret != null) return ret; else return -1; } public static int getModifier(KeyStroke keyStroke) { int modifiers = 0; if ((keyStroke.getModifiers() & InputEvent.SHIFT_DOWN_MASK) != 0) { modifiers |= shiftKey; } if ((keyStroke.getModifiers() & InputEvent.CTRL_DOWN_MASK) != 0) { modifiers |= controlKey; } if ((keyStroke.getModifiers() & InputEvent.META_DOWN_MASK) != 0) { modifiers |= cmdKey; } if ((keyStroke.getModifiers() & InputEvent.ALT_DOWN_MASK) != 0) { modifiers |= optionKey; } return modifiers; } }