1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332
|
/*
* Java ATK Wrapper for GNOME
* Copyright (C) 2009 Sun Microsystems Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
package org.GNOME.Accessibility;
import java.awt.event.*;
import java.util.HashMap;
public class AtkKeyEvent {
private static HashMap<String,String>nonAlphaNumericMap = null;
public static final int ATK_KEY_EVENT_PRESSED = 0;
public static final int ATK_KEY_EVENT_RELEASED = 1;
public int type;
public boolean isShiftKeyDown = false;
public boolean isCtrlKeyDown = false;
public boolean isAltKeyDown = false;
public boolean isMetaKeyDown = false;
public boolean isAltGrKeyDown = false;
public int keyval = 0;
public String string;
public int keycode;
public int timestamp;
static {
// Non-alphanumeric symbols that need to be mapped to X11 keysym names
nonAlphaNumericMap = new HashMap<>( 40 );
nonAlphaNumericMap.put("!", "exclam");
nonAlphaNumericMap.put("@", "at");
nonAlphaNumericMap.put("#", "numbersign");
nonAlphaNumericMap.put("$", "dollar");
nonAlphaNumericMap.put("%", "percent");
nonAlphaNumericMap.put("^", "asciicircum");
nonAlphaNumericMap.put("&", "ampersand");
nonAlphaNumericMap.put("*", "asterisk");
nonAlphaNumericMap.put("(", "parenleft");
nonAlphaNumericMap.put(")", "parenright");
nonAlphaNumericMap.put("-", "minus");
nonAlphaNumericMap.put("_", "underscore");
nonAlphaNumericMap.put("=", "equal");
nonAlphaNumericMap.put("+", "plus");
nonAlphaNumericMap.put("\\", "backslash");
nonAlphaNumericMap.put("|", "bar");
nonAlphaNumericMap.put("`", "grave");
nonAlphaNumericMap.put("~", "asciitilde");
nonAlphaNumericMap.put("[", "bracketleft");
nonAlphaNumericMap.put("{", "braceleft");
nonAlphaNumericMap.put("]", "bracketright");
nonAlphaNumericMap.put("}", "braceright");
nonAlphaNumericMap.put(";", "semicolon");
nonAlphaNumericMap.put(":", "colon");
nonAlphaNumericMap.put("'", "apostrophe");
nonAlphaNumericMap.put("\"", "quotedbl");
nonAlphaNumericMap.put(",", "comma");
nonAlphaNumericMap.put("<", "less");
nonAlphaNumericMap.put(".", "period");
nonAlphaNumericMap.put(">", "greater");
nonAlphaNumericMap.put("/", "slash");
nonAlphaNumericMap.put("?", "question");
}
public AtkKeyEvent (KeyEvent e) {
//type
switch (e.getID()) {
case KeyEvent.KEY_PRESSED:
case KeyEvent.KEY_TYPED:
type = ATK_KEY_EVENT_PRESSED;
break;
case KeyEvent.KEY_RELEASED:
type = ATK_KEY_EVENT_RELEASED;
break;
default:
type = ATK_KEY_EVENT_PRESSED;
}
//modifiers
int modifierMask = e.getModifiersEx();
if ((modifierMask & InputEvent.SHIFT_DOWN_MASK) != 0) {
isShiftKeyDown = true;
}
if ((modifierMask & InputEvent.CTRL_DOWN_MASK) != 0) {
isCtrlKeyDown = true;
}
if ((modifierMask & InputEvent.ALT_DOWN_MASK) != 0) {
isAltKeyDown = true;
}
if ((modifierMask & InputEvent.META_DOWN_MASK) != 0) {
isMetaKeyDown = true;
}
if ((modifierMask & InputEvent.ALT_GRAPH_DOWN_MASK) != 0) {
isAltGrKeyDown = true;
}
GNOMEKeyMapping.GNOMEKeyInfo keyInfo = GNOMEKeyMapping.getKey(e);
switch (e.getKeyChar()) {
case KeyEvent.CHAR_UNDEFINED:
{
if (keyInfo != null) {
keyval = keyInfo.getGdkKeyCode();
string = keyInfo.getGdkKeyString();
} else {
string = KeyEvent.getKeyText(e.getKeyCode());
if (string == null) string = "";
}
break;
}
default:
{
char[] chars = new char[1];
if (keyInfo == null) {
keyval = e.getKeyChar();
chars[0] = (char)keyval;
string = new String(chars);
} else {
keyval = keyInfo.getGdkKeyCode();
string = keyInfo.getGdkKeyString();
}
}
}
// Yes, this is crude, but Java does not provide another way.
String s = e.paramString();
int begin = s.lastIndexOf("rawCode=") + 8;
int end = s.indexOf(',', begin);
String rawcode_s = s.substring(begin, end);
keycode = Integer.valueOf(rawcode_s);
timestamp = (int)e.getWhen();
String nonAlphaNumericString = (String) nonAlphaNumericMap.get(string);
if (nonAlphaNumericString != null)
string = nonAlphaNumericString;
}
}
class GNOMEKeyMapping {
private static HashMap<Integer,Object>keyMap = null;
public static final class GNOMEKeyInfo {
private int gdkKeyCode;
private String gdkKeyString;
public GNOMEKeyInfo ( int code, String string ) {
gdkKeyCode = code;
gdkKeyString = string;
}
public int getGdkKeyCode() { return gdkKeyCode; }
public String getGdkKeyString() { return gdkKeyString; }
}
// Used to offset VK for NUMPAD keys that don't have a VK_KP_* equivalent.
// // At present max VK_* value is 0x0000FFFF
// // Also need to support Left/Right variations
private final static int NUMPAD_OFFSET = 0xFEFE0000;
private final static int LEFT_OFFSET = 0xFEFD0000;
private final static int RIGHT_OFFSET = 0xFEFC0000;
static {
initializeMap();
}
public static GNOMEKeyInfo getKey( KeyEvent e ) {
GNOMEKeyInfo gdkKeyInfo;
int javaKeyCode = e.getKeyCode();
int javaKeyLocation = e.getKeyLocation();
if (javaKeyLocation == KeyEvent.KEY_LOCATION_NUMPAD)
javaKeyCode += NUMPAD_OFFSET;
else if (javaKeyLocation == KeyEvent.KEY_LOCATION_LEFT)
javaKeyCode += LEFT_OFFSET;
else if (javaKeyLocation == KeyEvent.KEY_LOCATION_RIGHT)
javaKeyCode += RIGHT_OFFSET;
if ( (gdkKeyInfo = (GNOMEKeyInfo)keyMap.get ( Integer.valueOf(javaKeyCode) )) != null ) {
return ( gdkKeyInfo );
} else {
return null;
}
}
private GNOMEKeyMapping() {
}
private static void initializeMap() {
keyMap = new HashMap<>( 146 ); // Currently only 110, so allocate 110 / 0.75
keyMap.put( Integer.valueOf(KeyEvent.VK_COLON), new GNOMEKeyInfo( 0x20a1, "ColonSign" ) ); // GDK_ColonSign
keyMap.put( Integer.valueOf(KeyEvent.VK_EURO_SIGN), new GNOMEKeyInfo( 0x20ac, "EuroSign" ) ); // GDK_EuroSign
keyMap.put( Integer.valueOf(KeyEvent.VK_BACK_SPACE), new GNOMEKeyInfo( 0xFF08, "BackSpace" ) ); // GDK_BackSpace
keyMap.put( Integer.valueOf(KeyEvent.VK_TAB), new GNOMEKeyInfo( 0xFF09, "Tab" ) ); // GDK_Tab
keyMap.put( Integer.valueOf(KeyEvent.VK_CLEAR), new GNOMEKeyInfo( 0xFF0B, "Clear" ) ); // GDK_Clear
keyMap.put( Integer.valueOf(KeyEvent.VK_ENTER), new GNOMEKeyInfo( 0xFF0D, "Return" ) ); // GDK_Return
keyMap.put( Integer.valueOf(KeyEvent.VK_PAUSE), new GNOMEKeyInfo( 0xFF13, "Pause" ) ); // GDK_Pause
keyMap.put( Integer.valueOf(KeyEvent.VK_SCROLL_LOCK), new GNOMEKeyInfo( 0xFF14, "Scroll_Lock" ) ); // GDK_Scroll_Lock
keyMap.put( Integer.valueOf(KeyEvent.VK_ESCAPE), new GNOMEKeyInfo( 0xFF1B, "Escape" ) ); // GDK_Escape
keyMap.put( Integer.valueOf(KeyEvent.VK_KANJI), new GNOMEKeyInfo( 0xFF21, "Kanji" ) ); // GDK_Kanji
keyMap.put( Integer.valueOf(KeyEvent.VK_HIRAGANA), new GNOMEKeyInfo( 0xFF25, "Hiragana" ) ); // GDK_Hiragana
keyMap.put( Integer.valueOf(KeyEvent.VK_KATAKANA), new GNOMEKeyInfo( 0xFF26, "Katakana" ) ); // GDK_Katakana
keyMap.put( Integer.valueOf(KeyEvent.VK_KANA_LOCK), new GNOMEKeyInfo( 0xFF2D, "Kana_Lock" ) ); // GDK_Kana_Lock
keyMap.put( Integer.valueOf(KeyEvent.VK_KANA), new GNOMEKeyInfo( 0xFF2E, "Kana_Shift" ) ); // GDK_Kana_Shift
keyMap.put( Integer.valueOf(KeyEvent.VK_KANJI), new GNOMEKeyInfo( 0xFF37, "Kanji_Bangou" ) ); // GDK_Kanji_Bangou
keyMap.put( Integer.valueOf(KeyEvent.VK_HOME), new GNOMEKeyInfo( 0xFF50, "Home" ) ); // GDK_Home
keyMap.put( Integer.valueOf(KeyEvent.VK_LEFT), new GNOMEKeyInfo( 0xFF51, "Left" ) ); // GDK_Left
keyMap.put( Integer.valueOf(KeyEvent.VK_UP), new GNOMEKeyInfo( 0xFF52, "Up" ) ); // GDK_Up
keyMap.put( Integer.valueOf(KeyEvent.VK_RIGHT), new GNOMEKeyInfo( 0xFF53, "Right" ) ); // GDK_Right
keyMap.put( Integer.valueOf(KeyEvent.VK_DOWN), new GNOMEKeyInfo( 0xFF54, "Down" ) ); // GDK_Down
keyMap.put( Integer.valueOf(KeyEvent.VK_PAGE_UP), new GNOMEKeyInfo( 0xFF55, "Page_Up" ) ); // GDK_Page_Up
keyMap.put( Integer.valueOf(KeyEvent.VK_PAGE_DOWN), new GNOMEKeyInfo( 0xFF56, "Page_Down" ) ); // GDK_Page_Down
keyMap.put( Integer.valueOf(KeyEvent.VK_END), new GNOMEKeyInfo( 0xFF57, "End" ) ); // GDK_End
keyMap.put( Integer.valueOf(KeyEvent.VK_PRINTSCREEN), new GNOMEKeyInfo( 0xFF61, "Print" ) ); // GDK_Print
keyMap.put( Integer.valueOf(KeyEvent.VK_INSERT), new GNOMEKeyInfo( 0xFF63, "Insert" ) ); // GDK_Insert
keyMap.put( Integer.valueOf(KeyEvent.VK_UNDO), new GNOMEKeyInfo( 0xFF65, "Undo" ) ); // GDK_Undo
keyMap.put( Integer.valueOf(KeyEvent.VK_AGAIN), new GNOMEKeyInfo( 0xFF66, "Redo" ) ); // GDK_Redo
keyMap.put( Integer.valueOf(KeyEvent.VK_FIND), new GNOMEKeyInfo( 0xFF68, "Find" ) ); // GDK_Find
keyMap.put( Integer.valueOf(KeyEvent.VK_CANCEL), new GNOMEKeyInfo( 0xFF69, "Cancel" ) ); // GDK_Cancel
keyMap.put( Integer.valueOf(KeyEvent.VK_HELP), new GNOMEKeyInfo( 0xFF6A, "Help" ) ); // GDK_Help
keyMap.put( Integer.valueOf(KeyEvent.VK_ALT_GRAPH), new GNOMEKeyInfo( 0xFF7E, "Mode_Switch" ) ); // GDK_Mode_Switch
keyMap.put( Integer.valueOf(KeyEvent.VK_NUM_LOCK), new GNOMEKeyInfo( 0xFF7F, "Num_Lock" ) ); // GDK_Num_Lock
keyMap.put( Integer.valueOf(KeyEvent.VK_KP_LEFT), new GNOMEKeyInfo( 0xFF96, "KP_Left" ) ); // GDK_KP_Left
keyMap.put( Integer.valueOf(KeyEvent.VK_KP_UP), new GNOMEKeyInfo( 0xFF97, "KP_Up" ) ); // GDK_KP_Up
keyMap.put( Integer.valueOf(KeyEvent.VK_KP_RIGHT), new GNOMEKeyInfo( 0xFF98, "KP_Right" ) ); // GDK_KP_Right
keyMap.put( Integer.valueOf(KeyEvent.VK_KP_DOWN), new GNOMEKeyInfo( 0xFF99, "KP_Down" ) ); // GDK_KP_Down
// For Key's that are NUMPAD, but no VK_KP_* equivalent exists
// NOTE: Some syms do have VK_KP equivalents, but may or may not have
// KeyLocation() set to NUMPAD - so these are in twice with and
// without the offset..
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_NUM_LOCK), new GNOMEKeyInfo( 0xFF7F, "Num_Lock" ) ); // GDK_Num_Lock
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_ENTER), new GNOMEKeyInfo( 0xFF8D, "KP_Enter" ) ); // GDK_KP_Enter
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_HOME), new GNOMEKeyInfo( 0xFF95, "KP_Home" ) ); // GDK_KP_Home
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_KP_LEFT), new GNOMEKeyInfo( 0xFF96, "KP_Left" ) ); // GDK_KP_Left
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_KP_UP), new GNOMEKeyInfo( 0xFF97, "KP_Up" ) ); // GDK_KP_Up
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_KP_RIGHT), new GNOMEKeyInfo( 0xFF98, "KP_Right" ) ); // GDK_KP_Right
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_KP_DOWN), new GNOMEKeyInfo( 0xFF99, "KP_Down" ) ); // GDK_KP_Down
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_PAGE_UP), new GNOMEKeyInfo( 0xFF9A, "KP_Page_Up" ) ); // GDK_KP_Page_Up
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_PAGE_DOWN), new GNOMEKeyInfo( 0xFF9B, "KP_Page_Down" ) ); // GDK_KP_Page_Down
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_END), new GNOMEKeyInfo( 0xFF9C, "KP_End" ) ); // GDK_KP_End
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_BEGIN), new GNOMEKeyInfo( 0xFF9D, "KP_Begin" ) ); // GDK_KP_Begin
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_INSERT), new GNOMEKeyInfo( 0xFF9E, "KP_Insert" ) ); // GDK_KP_Insert
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_DELETE), new GNOMEKeyInfo( 0xFF9F, "KP_Delete" ) ); // GDK_KP_Delete
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_MULTIPLY), new GNOMEKeyInfo( 0xFFAA, "KP_Multiply" ) ); // GDK_KP_Multiply
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_ADD), new GNOMEKeyInfo( 0xFFAB, "KP_Add" ) ); // GDK_KP_Add
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_SEPARATOR), new GNOMEKeyInfo( 0xFFAC, "KP_Separator" ) ); // GDK_KP_Separator
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_SUBTRACT), new GNOMEKeyInfo( 0xFFAD, "KP_Subtract" ) ); // GDK_KP_Subtract
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_DECIMAL), new GNOMEKeyInfo( 0xFFAE, "KP_Decimal" ) ); // GDK_KP_Decimal
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_DIVIDE), new GNOMEKeyInfo( 0xFFAF, "KP_Divide" ) ); // GDK_KP_Divide
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_NUMPAD0), new GNOMEKeyInfo( 0xFFB0, "KP_0" ) ); // GDK_KP_0
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_NUMPAD1), new GNOMEKeyInfo( 0xFFB1, "KP_1" ) ); // GDK_KP_1
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_NUMPAD2), new GNOMEKeyInfo( 0xFFB2, "KP_2" ) ); // GDK_KP_2
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_NUMPAD3), new GNOMEKeyInfo( 0xFFB3, "KP_3" ) ); // GDK_KP_3
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_NUMPAD4), new GNOMEKeyInfo( 0xFFB4, "KP_4" ) ); // GDK_KP_4
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_NUMPAD5), new GNOMEKeyInfo( 0xFFB5, "KP_5" ) ); // GDK_KP_5
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_NUMPAD6), new GNOMEKeyInfo( 0xFFB6, "KP_6" ) ); // GDK_KP_6
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_NUMPAD7), new GNOMEKeyInfo( 0xFFB7, "KP_7" ) ); // GDK_KP_7
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_NUMPAD8), new GNOMEKeyInfo( 0xFFB8, "KP_8" ) ); // GDK_KP_8
keyMap.put( Integer.valueOf(NUMPAD_OFFSET + KeyEvent.VK_NUMPAD9), new GNOMEKeyInfo( 0xFFB9, "KP_9" ) ); // GDK_KP_9
keyMap.put( Integer.valueOf(KeyEvent.VK_NUMPAD0), new GNOMEKeyInfo( 0xFFB0, "KP_0" ) ); // GDK_KP_0
keyMap.put( Integer.valueOf(KeyEvent.VK_NUMPAD1), new GNOMEKeyInfo( 0xFFB1, "KP_1" ) ); // GDK_KP_1
keyMap.put( Integer.valueOf(KeyEvent.VK_NUMPAD2), new GNOMEKeyInfo( 0xFFB2, "KP_2" ) ); // GDK_KP_2
keyMap.put( Integer.valueOf(KeyEvent.VK_NUMPAD3), new GNOMEKeyInfo( 0xFFB3, "KP_3" ) ); // GDK_KP_3
keyMap.put( Integer.valueOf(KeyEvent.VK_NUMPAD4), new GNOMEKeyInfo( 0xFFB4, "KP_4" ) ); // GDK_KP_4
keyMap.put( Integer.valueOf(KeyEvent.VK_NUMPAD5), new GNOMEKeyInfo( 0xFFB5, "KP_5" ) ); // GDK_KP_5
keyMap.put( Integer.valueOf(KeyEvent.VK_NUMPAD6), new GNOMEKeyInfo( 0xFFB6, "KP_6" ) ); // GDK_KP_6
keyMap.put( Integer.valueOf(KeyEvent.VK_NUMPAD7), new GNOMEKeyInfo( 0xFFB7, "KP_7" ) ); // GDK_KP_7
keyMap.put( Integer.valueOf(KeyEvent.VK_NUMPAD8), new GNOMEKeyInfo( 0xFFB8, "KP_8" ) ); // GDK_KP_8
keyMap.put( Integer.valueOf(KeyEvent.VK_NUMPAD9), new GNOMEKeyInfo( 0xFFB9, "KP_9" ) ); // GDK_KP_9
keyMap.put( Integer.valueOf(KeyEvent.VK_F1), new GNOMEKeyInfo( 0xFFBE, "F1" ) ); // GDK_F1
keyMap.put( Integer.valueOf(KeyEvent.VK_F2), new GNOMEKeyInfo( 0xFFBF, "F2" ) ); // GDK_F2
keyMap.put( Integer.valueOf(KeyEvent.VK_F3), new GNOMEKeyInfo( 0xFFC0, "F3" ) ); // GDK_F3
keyMap.put( Integer.valueOf(KeyEvent.VK_F4), new GNOMEKeyInfo( 0xFFC1, "F4" ) ); // GDK_F4
keyMap.put( Integer.valueOf(KeyEvent.VK_F5), new GNOMEKeyInfo( 0xFFC2, "F5" ) ); // GDK_F5
keyMap.put( Integer.valueOf(KeyEvent.VK_F6), new GNOMEKeyInfo( 0xFFC3, "F6" ) ); // GDK_F6
keyMap.put( Integer.valueOf(KeyEvent.VK_F7), new GNOMEKeyInfo( 0xFFC4, "F7" ) ); // GDK_F7
keyMap.put( Integer.valueOf(KeyEvent.VK_F8), new GNOMEKeyInfo( 0xFFC5, "F8" ) ); // GDK_F8
keyMap.put( Integer.valueOf(KeyEvent.VK_F9), new GNOMEKeyInfo( 0xFFC6, "F9" ) ); // GDK_F9
keyMap.put( Integer.valueOf(KeyEvent.VK_F10), new GNOMEKeyInfo( 0xFFC7, "F10" ) ); // GDK_F10
keyMap.put( Integer.valueOf(KeyEvent.VK_F11), new GNOMEKeyInfo( 0xFFC8, "F11" ) ); // GDK_F11
keyMap.put( Integer.valueOf(KeyEvent.VK_F12), new GNOMEKeyInfo( 0xFFC9, "F12" ) ); // GDK_F12
keyMap.put( Integer.valueOf(KeyEvent.VK_F13), new GNOMEKeyInfo( 0xFFCA, "F13" ) ); // GDK_F13
keyMap.put( Integer.valueOf(KeyEvent.VK_F14), new GNOMEKeyInfo( 0xFFCB, "F14" ) ); // GDK_F14
keyMap.put( Integer.valueOf(KeyEvent.VK_F15), new GNOMEKeyInfo( 0xFFCC, "F15" ) ); // GDK_F15
keyMap.put( Integer.valueOf(KeyEvent.VK_F16), new GNOMEKeyInfo( 0xFFCD, "F16" ) ); // GDK_F16
keyMap.put( Integer.valueOf(KeyEvent.VK_F17), new GNOMEKeyInfo( 0xFFCE, "F17" ) ); // GDK_F17
keyMap.put( Integer.valueOf(KeyEvent.VK_F18), new GNOMEKeyInfo( 0xFFCF, "F18" ) ); // GDK_F18
keyMap.put( Integer.valueOf(KeyEvent.VK_F19), new GNOMEKeyInfo( 0xFFD0, "F19" ) ); // GDK_F19
keyMap.put( Integer.valueOf(KeyEvent.VK_F20), new GNOMEKeyInfo( 0xFFD1, "F20" ) ); // GDK_F20
keyMap.put( Integer.valueOf(KeyEvent.VK_F21), new GNOMEKeyInfo( 0xFFD2, "F21" ) ); // GDK_F21
keyMap.put( Integer.valueOf(KeyEvent.VK_F22), new GNOMEKeyInfo( 0xFFD3, "F22" ) ); // GDK_F22
keyMap.put( Integer.valueOf(KeyEvent.VK_F23), new GNOMEKeyInfo( 0xFFD4, "F23" ) ); // GDK_F23
keyMap.put( Integer.valueOf(KeyEvent.VK_F24), new GNOMEKeyInfo( 0xFFD5, "F24" ) ); // GDK_F24
keyMap.put( Integer.valueOf(KeyEvent.VK_SHIFT), new GNOMEKeyInfo( 0xFFE2, "Shift_R" ) ); // GDK_Shift_R
keyMap.put( Integer.valueOf(KeyEvent.VK_CONTROL), new GNOMEKeyInfo( 0xFFE4, "Control_R" ) ); // GDK_Control_R
keyMap.put( Integer.valueOf(KeyEvent.VK_CAPS_LOCK), new GNOMEKeyInfo( 0xFFE5, "Caps_Lock" ) ); // GDK_Caps_Lock
keyMap.put( Integer.valueOf(KeyEvent.VK_META), new GNOMEKeyInfo( 0xFFE8, "Meta_R" ) ); // GDK_Meta_R
keyMap.put( Integer.valueOf(KeyEvent.VK_ALT), new GNOMEKeyInfo( 0xFFEA, "Alt_R" ) ); // GDK_Alt_R
keyMap.put( Integer.valueOf(KeyEvent.VK_DELETE), new GNOMEKeyInfo( 0xFFFF, "Delete" ) ); // GDK_Delete
// Left & Right Variations, default (set above) will be right...
keyMap.put( Integer.valueOf(LEFT_OFFSET + KeyEvent.VK_SHIFT), new GNOMEKeyInfo( 0xFFE1, "Shift_L" ) ); // GDK_Shift_L
keyMap.put( Integer.valueOf(RIGHT_OFFSET + KeyEvent.VK_SHIFT), new GNOMEKeyInfo( 0xFFE2, "Shift_R" ) ); // GDK_Shift_R
keyMap.put( Integer.valueOf(LEFT_OFFSET + KeyEvent.VK_CONTROL),new GNOMEKeyInfo( 0xFFE3, "Control_L" ) ); // GDK_Control_L
keyMap.put( Integer.valueOf(RIGHT_OFFSET + KeyEvent.VK_CONTROL),new GNOMEKeyInfo( 0xFFE4, "Control_R" ) ); // GDK_Control_R
keyMap.put( Integer.valueOf(LEFT_OFFSET + KeyEvent.VK_META), new GNOMEKeyInfo( 0xFFE7, "Meta_L" ) ); // GDK_Meta_L
keyMap.put( Integer.valueOf(RIGHT_OFFSET + KeyEvent.VK_META), new GNOMEKeyInfo( 0xFFE8, "Meta_R" ) ); // GDK_Meta_R
keyMap.put( Integer.valueOf(LEFT_OFFSET + KeyEvent.VK_ALT), new GNOMEKeyInfo( 0xFFE9, "Alt_L" ) ); // GDK_Alt_L
keyMap.put( Integer.valueOf(RIGHT_OFFSET + KeyEvent.VK_ALT), new GNOMEKeyInfo( 0xFFEA, "Alt_R" ) ); // GDK_Alt_R
}
}
|