// This is a generated file: do not edit! Edit keysym2ucs.h if necessary.
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code 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 General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
public class XKeysym {
}
private XKeysym() {}
static class Keysym2JavaKeycode {
int jkeycode;
int keyLocation;
int getJavaKeycode() {
return jkeycode;
}
int getKeyLocation() {
return keyLocation;
}
keyLocation = loc;
}
};
static Hashtable<Long, Keysym2JavaKeycode> keysym2JavaKeycodeHash = new Hashtable<Long, Keysym2JavaKeycode>();
// TODO: or not to do: add reverse lookup javakeycode2keysym,
// for robot only it seems to me. After that, we can remove lookup table
// from XWindow.c altogether.
// Another use for reverse lookup: query keyboard state, for some keys.
/* First check for Latin-1 characters (1:1 mapping) */
ks &= 0x1F;
}
}
return (char)ks;
}
/* XXX: Also check for directly encoded 24-bit UCS characters:
*/
return (char)(ks & 0x00ffffff);
}
try {
} finally {
}
}
try {
// I don't know all possible meanings of 'ndx' in case of XKB
// and don't want to speculate. But this particular case
// clearly means that caller needs a so called primary keysym.
}
if( kbdDesc != 0 ) {
}else{
// xkb resources already gone
return 0;
}
//XXX unconsumed modifiers?
} finally {
}
}
try {
if (XToolkit.canUseXKBCalls()) {
}else{
}
} finally {
}
}
}
{
// Xsun without XKB uses keysymarray[2] keysym to determine if it is KP event.
// Otherwise, it is [1].
// Even if XKB is enabled, we have another problem: some symbol tables (e.g. cz) force
// a regular comma instead of KP_comma for a decimal separator. Result is,
// bugs like 6454041. So, we will try for keypadness a keysym with ndx==0 as well.
try {
return (XlibWrapper.IsKeypadKey(
} finally {
}
}
/**
Return uppercase keysym correspondent to a given keysym.
*/
long lc = -1;
long uc = -1;
}
try {
//not applicable
uc = -1;
}
} finally {
}
return uc;
}
/**
Get a keypad keysym derived from a keycode.
I do not check if this is a keypad event, I just presume it.
*/
int ndx = 0;
if( XToolkit.isXsunKPBehavior() &&
! XToolkit.isXKBenabled() ) {
ndx = 3;
} else {
ndx = 2;
}
} else {
ndx = 0;
} else {
ndx = 1;
}
}
return keysym;
}
/**
Return java.awt.KeyEvent constant meaning (Java) keycode, derived from X keysym.
Some keysyms maps to more than one keycode, these would require extra processing.
*/
/* XK_Mode_switch on solaris maps either to VK_ALT_GRAPH (default) or VK_KANA_LOCK */
if( XToolkit.isKanaKeyboard() ) {
return kanaLock;
}
/* if it is Sun keyboard, trick hash to return VK_STOP else VK_F11 (default) */
if( XToolkit.isSunKeyboard() ) {
}
/* if it is Sun keyboard, trick hash to return VK_AGAIN else VK_F12 (default) */
if( XToolkit.isSunKeyboard() ) {
}
}
}
/**
Return java.awt.KeyEvent constant meaning (Java) keycode, derived from X Window KeyEvent.
Algorithm is, extract via XKeycodeToKeysym a proper keysym according to Xlib spec rules and
err exceptions, then search a java keycode in a table.
*/
// get from keysym2JavaKeycodeHash.
int ndx = 0;
} else {
// we only need primary-layer keysym to derive a java keycode.
ndx = 0;
}
return jkc;
}
}
/**
* Return an integer java keycode apprx as it was before extending keycodes range.
* This call would ignore for instance XKB and process whatever is on the bottom
* of keysym stack. Result will not depend on actual locale, will differ between
* but will be someway compatible with old releases.
*/
int ndx = 0;
} else {
// we only need primary-layer keysym to derive a java keycode.
ndx = 0;
}
}
}
/**
Return keysym derived from a keycode and modifiers.
Usually an input method does this. However non-system input methods (e.g. Java IMs) do not.
For rules, see "Xlib - C Language X Interface",
MIT X Consortium Standard
X Version 11, Release 6
Ch. 12.7
XXX TODO: or maybe not to do: process Mode Lock and therefore
not only 0-th and 1-st but 2-nd and 3-rd keysyms for a keystroke.
*/
int ndx = 0;
boolean getUppercase = false;
} else {
// XXX: at this point, anything in keysym[23] is ignored.
//
// Shift & Lock are off ===> ndx = 0;
// Shift off & Lock on & Lock is CapsLock ===> ndx = 0;
// if keysym[ndx] is lowecase alphabetic, then corresp. uppercase used.
// Shift on & Lock on & Lock is CapsLock ===> ndx == 1;
// if keysym[ndx] is lowecase alphabetic, then corresp. uppercase used.
// Shift on || (Lock on & Lock is ShiftLock) ===> ndx = 1.
ndx = 0;
getUppercase = false;
ndx = 0;
getUppercase = true;
ndx = 1;
getUppercase = false;
}
} else { // shift on
ndx = 1;
getUppercase = true;
} else {
ndx = 1;
getUppercase = false;
}
}
}
}
return keysym;
}
static {
keysym2UCSHash.put( (long)0x1a1, (char)0x0104); // XK_Aogonek --> LATIN CAPITAL LETTER A WITH OGONEK
keysym2UCSHash.put( (long)0x1a3, (char)0x0141); // XK_Lstroke --> LATIN CAPITAL LETTER L WITH STROKE
keysym2UCSHash.put( (long)0x1aa, (char)0x015e); // XK_Scedilla --> LATIN CAPITAL LETTER S WITH CEDILLA
keysym2UCSHash.put( (long)0x1af, (char)0x017b); // XK_Zabovedot --> LATIN CAPITAL LETTER Z WITH DOT ABOVE
keysym2UCSHash.put( (long)0x1ba, (char)0x015f); // XK_scedilla --> LATIN SMALL LETTER S WITH CEDILLA
keysym2UCSHash.put( (long)0x1bf, (char)0x017c); // XK_zabovedot --> LATIN SMALL LETTER Z WITH DOT ABOVE
keysym2UCSHash.put( (long)0x1ca, (char)0x0118); // XK_Eogonek --> LATIN CAPITAL LETTER E WITH OGONEK
keysym2UCSHash.put( (long)0x1d0, (char)0x0110); // XK_Dstroke --> LATIN CAPITAL LETTER D WITH STROKE
keysym2UCSHash.put( (long)0x1d5, (char)0x0150); // XK_Odoubleacute --> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
keysym2UCSHash.put( (long)0x1d9, (char)0x016e); // XK_Uring --> LATIN CAPITAL LETTER U WITH RING ABOVE
keysym2UCSHash.put( (long)0x1db, (char)0x0170); // XK_Udoubleacute --> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
keysym2UCSHash.put( (long)0x1de, (char)0x0162); // XK_Tcedilla --> LATIN CAPITAL LETTER T WITH CEDILLA
keysym2UCSHash.put( (long)0x1f5, (char)0x0151); // XK_odoubleacute --> LATIN SMALL LETTER O WITH DOUBLE ACUTE
keysym2UCSHash.put( (long)0x1fb, (char)0x0171); // XK_udoubleacute --> LATIN SMALL LETTER U WITH DOUBLE ACUTE
keysym2UCSHash.put( (long)0x1f9, (char)0x016f); // XK_uring --> LATIN SMALL LETTER U WITH RING ABOVE
keysym2UCSHash.put( (long)0x1fe, (char)0x0163); // XK_tcedilla --> LATIN SMALL LETTER T WITH CEDILLA
keysym2UCSHash.put( (long)0x2a1, (char)0x0126); // XK_Hstroke --> LATIN CAPITAL LETTER H WITH STROKE
keysym2UCSHash.put( (long)0x2a6, (char)0x0124); // XK_Hcircumflex --> LATIN CAPITAL LETTER H WITH CIRCUMFLEX
keysym2UCSHash.put( (long)0x2a9, (char)0x0130); // XK_Iabovedot --> LATIN CAPITAL LETTER I WITH DOT ABOVE
keysym2UCSHash.put( (long)0x2ac, (char)0x0134); // XK_Jcircumflex --> LATIN CAPITAL LETTER J WITH CIRCUMFLEX
keysym2UCSHash.put( (long)0x2b6, (char)0x0125); // XK_hcircumflex --> LATIN SMALL LETTER H WITH CIRCUMFLEX
keysym2UCSHash.put( (long)0x2bc, (char)0x0135); // XK_jcircumflex --> LATIN SMALL LETTER J WITH CIRCUMFLEX
keysym2UCSHash.put( (long)0x2c5, (char)0x010a); // XK_Cabovedot --> LATIN CAPITAL LETTER C WITH DOT ABOVE
keysym2UCSHash.put( (long)0x2c6, (char)0x0108); // XK_Ccircumflex --> LATIN CAPITAL LETTER C WITH CIRCUMFLEX
keysym2UCSHash.put( (long)0x2d5, (char)0x0120); // XK_Gabovedot --> LATIN CAPITAL LETTER G WITH DOT ABOVE
keysym2UCSHash.put( (long)0x2d8, (char)0x011c); // XK_Gcircumflex --> LATIN CAPITAL LETTER G WITH CIRCUMFLEX
keysym2UCSHash.put( (long)0x2de, (char)0x015c); // XK_Scircumflex --> LATIN CAPITAL LETTER S WITH CIRCUMFLEX
keysym2UCSHash.put( (long)0x2e5, (char)0x010b); // XK_cabovedot --> LATIN SMALL LETTER C WITH DOT ABOVE
keysym2UCSHash.put( (long)0x2e6, (char)0x0109); // XK_ccircumflex --> LATIN SMALL LETTER C WITH CIRCUMFLEX
keysym2UCSHash.put( (long)0x2f5, (char)0x0121); // XK_gabovedot --> LATIN SMALL LETTER G WITH DOT ABOVE
keysym2UCSHash.put( (long)0x2f8, (char)0x011d); // XK_gcircumflex --> LATIN SMALL LETTER G WITH CIRCUMFLEX
keysym2UCSHash.put( (long)0x2fe, (char)0x015d); // XK_scircumflex --> LATIN SMALL LETTER S WITH CIRCUMFLEX
keysym2UCSHash.put( (long)0x3a3, (char)0x0156); // XK_Rcedilla --> LATIN CAPITAL LETTER R WITH CEDILLA
keysym2UCSHash.put( (long)0x3a6, (char)0x013b); // XK_Lcedilla --> LATIN CAPITAL LETTER L WITH CEDILLA
keysym2UCSHash.put( (long)0x3aa, (char)0x0112); // XK_Emacron --> LATIN CAPITAL LETTER E WITH MACRON
keysym2UCSHash.put( (long)0x3ab, (char)0x0122); // XK_Gcedilla --> LATIN CAPITAL LETTER G WITH CEDILLA
keysym2UCSHash.put( (long)0x3b3, (char)0x0157); // XK_rcedilla --> LATIN SMALL LETTER R WITH CEDILLA
keysym2UCSHash.put( (long)0x3b6, (char)0x013c); // XK_lcedilla --> LATIN SMALL LETTER L WITH CEDILLA
keysym2UCSHash.put( (long)0x3bb, (char)0x0123); // XK_gcedilla --> LATIN SMALL LETTER G WITH CEDILLA
keysym2UCSHash.put( (long)0x3c0, (char)0x0100); // XK_Amacron --> LATIN CAPITAL LETTER A WITH MACRON
keysym2UCSHash.put( (long)0x3c7, (char)0x012e); // XK_Iogonek --> LATIN CAPITAL LETTER I WITH OGONEK
keysym2UCSHash.put( (long)0x3cc, (char)0x0116); // XK_Eabovedot --> LATIN CAPITAL LETTER E WITH DOT ABOVE
keysym2UCSHash.put( (long)0x3cf, (char)0x012a); // XK_Imacron --> LATIN CAPITAL LETTER I WITH MACRON
keysym2UCSHash.put( (long)0x3d1, (char)0x0145); // XK_Ncedilla --> LATIN CAPITAL LETTER N WITH CEDILLA
keysym2UCSHash.put( (long)0x3d2, (char)0x014c); // XK_Omacron --> LATIN CAPITAL LETTER O WITH MACRON
keysym2UCSHash.put( (long)0x3d3, (char)0x0136); // XK_Kcedilla --> LATIN CAPITAL LETTER K WITH CEDILLA
keysym2UCSHash.put( (long)0x3d9, (char)0x0172); // XK_Uogonek --> LATIN CAPITAL LETTER U WITH OGONEK
keysym2UCSHash.put( (long)0x3de, (char)0x016a); // XK_Umacron --> LATIN CAPITAL LETTER U WITH MACRON
keysym2UCSHash.put( (long)0x3ec, (char)0x0117); // XK_eabovedot --> LATIN SMALL LETTER E WITH DOT ABOVE
keysym2UCSHash.put( (long)0x3f1, (char)0x0146); // XK_ncedilla --> LATIN SMALL LETTER N WITH CEDILLA
keysym2UCSHash.put( (long)0x3f3, (char)0x0137); // XK_kcedilla --> LATIN SMALL LETTER K WITH CEDILLA
keysym2UCSHash.put( (long)0x12a1, (char)0x1e02); // XK_Babovedot --> LATIN CAPITAL LETTER B WITH DOT ABOVE
keysym2UCSHash.put( (long)0x12a2, (char)0x1e03); // XK_babovedot --> LATIN SMALL LETTER B WITH DOT ABOVE
keysym2UCSHash.put( (long)0x12a6, (char)0x1e0a); // XK_Dabovedot --> LATIN CAPITAL LETTER D WITH DOT ABOVE
keysym2UCSHash.put( (long)0x12ab, (char)0x1e0b); // XK_dabovedot --> LATIN SMALL LETTER D WITH DOT ABOVE
keysym2UCSHash.put( (long)0x12b0, (char)0x1e1e); // XK_Fabovedot --> LATIN CAPITAL LETTER F WITH DOT ABOVE
keysym2UCSHash.put( (long)0x12b1, (char)0x1e1f); // XK_fabovedot --> LATIN SMALL LETTER F WITH DOT ABOVE
keysym2UCSHash.put( (long)0x12b4, (char)0x1e40); // XK_Mabovedot --> LATIN CAPITAL LETTER M WITH DOT ABOVE
keysym2UCSHash.put( (long)0x12b5, (char)0x1e41); // XK_mabovedot --> LATIN SMALL LETTER M WITH DOT ABOVE
keysym2UCSHash.put( (long)0x12b7, (char)0x1e56); // XK_Pabovedot --> LATIN CAPITAL LETTER P WITH DOT ABOVE
keysym2UCSHash.put( (long)0x12b9, (char)0x1e57); // XK_pabovedot --> LATIN SMALL LETTER P WITH DOT ABOVE
keysym2UCSHash.put( (long)0x12bb, (char)0x1e60); // XK_Sabovedot --> LATIN CAPITAL LETTER S WITH DOT ABOVE
keysym2UCSHash.put( (long)0x12bd, (char)0x1e84); // XK_Wdiaeresis --> LATIN CAPITAL LETTER W WITH DIAERESIS
keysym2UCSHash.put( (long)0x12be, (char)0x1e85); // XK_wdiaeresis --> LATIN SMALL LETTER W WITH DIAERESIS
keysym2UCSHash.put( (long)0x12bf, (char)0x1e61); // XK_sabovedot --> LATIN SMALL LETTER S WITH DOT ABOVE
keysym2UCSHash.put( (long)0x12d7, (char)0x1e6a); // XK_Tabovedot --> LATIN CAPITAL LETTER T WITH DOT ABOVE
keysym2UCSHash.put( (long)0x12de, (char)0x0176); // XK_Ycircumflex --> LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
keysym2UCSHash.put( (long)0x12f0, (char)0x0175); // XK_wcircumflex --> LATIN SMALL LETTER W WITH CIRCUMFLEX
keysym2UCSHash.put( (long)0x12f7, (char)0x1e6b); // XK_tabovedot --> LATIN SMALL LETTER T WITH DOT ABOVE
keysym2UCSHash.put( (long)0x12fe, (char)0x0177); // XK_ycircumflex --> LATIN SMALL LETTER Y WITH CIRCUMFLEX
keysym2UCSHash.put( (long)0x13be, (char)0x0178); // XK_Ydiaeresis --> LATIN CAPITAL LETTER Y WITH DIAERESIS
keysym2UCSHash.put( (long)0x4b0, (char)0x30fc); // XK_prolongedsound --> KATAKANA-HIRAGANA PROLONGED SOUND MARK
keysym2UCSHash.put( (long)0x4de, (char)0x309b); // XK_voicedsound --> KATAKANA-HIRAGANA VOICED SOUND MARK
keysym2UCSHash.put( (long)0x4df, (char)0x309c); // XK_semivoicedsound --> KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
keysym2UCSHash.put( (long)0x5a6, (char)0x0670); // XK_Arabic_superscript_alef --> ARABIC LETTER SUPERSCRIPT ALEF
keysym2UCSHash.put( (long)0x5c2, (char)0x0622); // XK_Arabic_maddaonalef --> ARABIC LETTER ALEF WITH MADDA ABOVE
keysym2UCSHash.put( (long)0x5c3, (char)0x0623); // XK_Arabic_hamzaonalef --> ARABIC LETTER ALEF WITH HAMZA ABOVE
keysym2UCSHash.put( (long)0x5c4, (char)0x0624); // XK_Arabic_hamzaonwaw --> ARABIC LETTER WAW WITH HAMZA ABOVE
keysym2UCSHash.put( (long)0x5c5, (char)0x0625); // XK_Arabic_hamzaunderalef --> ARABIC LETTER ALEF WITH HAMZA BELOW
keysym2UCSHash.put( (long)0x5c6, (char)0x0626); // XK_Arabic_hamzaonyeh --> ARABIC LETTER YEH WITH HAMZA ABOVE
keysym2UCSHash.put( (long)0x5c9, (char)0x0629); // XK_Arabic_tehmarbuta --> ARABIC LETTER TEH MARBUTA
keysym2UCSHash.put( (long)0x5e9, (char)0x0649); // XK_Arabic_alefmaksura --> ARABIC LETTER ALEF MAKSURA
keysym2UCSHash.put( (long)0x5fa, (char)0x06ba); // XK_Arabic_noon_ghunna --> ARABIC LETTER NOON GHUNNA
keysym2UCSHash.put( (long)0x5fb, (char)0x06be); // XK_Arabic_heh_doachashmee --> ARABIC LETTER HEH DOACHASHMEE
keysym2UCSHash.put( (long)0x680, (char)0x0492); // XK_Cyrillic_GHE_bar --> CYRILLIC CAPITAL LETTER GHE WITH STROKE
keysym2UCSHash.put( (long)0x690, (char)0x0493); // XK_Cyrillic_ghe_bar --> CYRILLIC SMALL LETTER GHE WITH STROKE
keysym2UCSHash.put( (long)0x681, (char)0x0496); // XK_Cyrillic_ZHE_descender --> CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
keysym2UCSHash.put( (long)0x691, (char)0x0497); // XK_Cyrillic_zhe_descender --> CYRILLIC SMALL LETTER ZHE WITH DESCENDER
keysym2UCSHash.put( (long)0x682, (char)0x049a); // XK_Cyrillic_KA_descender --> CYRILLIC CAPITAL LETTER KA WITH DESCENDER
keysym2UCSHash.put( (long)0x692, (char)0x049b); // XK_Cyrillic_ka_descender --> CYRILLIC SMALL LETTER KA WITH DESCENDER
keysym2UCSHash.put( (long)0x683, (char)0x049c); // XK_Cyrillic_KA_vertstroke --> CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
keysym2UCSHash.put( (long)0x693, (char)0x049d); // XK_Cyrillic_ka_vertstroke --> CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
keysym2UCSHash.put( (long)0x684, (char)0x04a2); // XK_Cyrillic_EN_descender --> CYRILLIC CAPITAL LETTER EN WITH DESCENDER
keysym2UCSHash.put( (long)0x694, (char)0x04a3); // XK_Cyrillic_en_descender --> CYRILLIC SMALL LETTER EN WITH DESCENDER
keysym2UCSHash.put( (long)0x685, (char)0x04ae); // XK_Cyrillic_U_straight --> CYRILLIC CAPITAL LETTER STRAIGHT U
keysym2UCSHash.put( (long)0x695, (char)0x04af); // XK_Cyrillic_u_straight --> CYRILLIC SMALL LETTER STRAIGHT U
keysym2UCSHash.put( (long)0x686, (char)0x04b0); // XK_Cyrillic_U_straight_bar --> CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
keysym2UCSHash.put( (long)0x696, (char)0x04b1); // XK_Cyrillic_u_straight_bar --> CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
keysym2UCSHash.put( (long)0x687, (char)0x04b2); // XK_Cyrillic_HA_descender --> CYRILLIC CAPITAL LETTER HA WITH DESCENDER
keysym2UCSHash.put( (long)0x697, (char)0x04b3); // XK_Cyrillic_ha_descender --> CYRILLIC SMALL LETTER HA WITH DESCENDER
keysym2UCSHash.put( (long)0x688, (char)0x04b6); // XK_Cyrillic_CHE_descender --> CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
keysym2UCSHash.put( (long)0x698, (char)0x04b7); // XK_Cyrillic_che_descender --> CYRILLIC SMALL LETTER CHE WITH DESCENDER
keysym2UCSHash.put( (long)0x689, (char)0x04b8); // XK_Cyrillic_CHE_vertstroke --> CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
keysym2UCSHash.put( (long)0x699, (char)0x04b9); // XK_Cyrillic_che_vertstroke --> CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
keysym2UCSHash.put( (long)0x68a, (char)0x04ba); // XK_Cyrillic_SHHA --> CYRILLIC CAPITAL LETTER SHHA
keysym2UCSHash.put( (long)0x68c, (char)0x04d8); // XK_Cyrillic_SCHWA --> CYRILLIC CAPITAL LETTER SCHWA
keysym2UCSHash.put( (long)0x69c, (char)0x04d9); // XK_Cyrillic_schwa --> CYRILLIC SMALL LETTER SCHWA
keysym2UCSHash.put( (long)0x68d, (char)0x04e2); // XK_Cyrillic_I_macron --> CYRILLIC CAPITAL LETTER I WITH MACRON
keysym2UCSHash.put( (long)0x69d, (char)0x04e3); // XK_Cyrillic_i_macron --> CYRILLIC SMALL LETTER I WITH MACRON
keysym2UCSHash.put( (long)0x68e, (char)0x04e8); // XK_Cyrillic_O_bar --> CYRILLIC CAPITAL LETTER BARRED O
keysym2UCSHash.put( (long)0x69e, (char)0x04e9); // XK_Cyrillic_o_bar --> CYRILLIC SMALL LETTER BARRED O
keysym2UCSHash.put( (long)0x68f, (char)0x04ee); // XK_Cyrillic_U_macron --> CYRILLIC CAPITAL LETTER U WITH MACRON
keysym2UCSHash.put( (long)0x69f, (char)0x04ef); // XK_Cyrillic_u_macron --> CYRILLIC SMALL LETTER U WITH MACRON
keysym2UCSHash.put( (long)0x6a4, (char)0x0454); // XK_Ukrainian_ie --> CYRILLIC SMALL LETTER UKRAINIAN IE
keysym2UCSHash.put( (long)0x6a6, (char)0x0456); // XK_Ukrainian_i --> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
keysym2UCSHash.put( (long)0x6ad, (char)0x0491); // XK_Ukrainian_ghe_with_upturn --> CYRILLIC SMALL LETTER GHE WITH UPTURN
keysym2UCSHash.put( (long)0x6ae, (char)0x045e); // XK_Byelorussian_shortu --> CYRILLIC SMALL LETTER SHORT U
keysym2UCSHash.put( (long)0x6b4, (char)0x0404); // XK_Ukrainian_IE --> CYRILLIC CAPITAL LETTER UKRAINIAN IE
keysym2UCSHash.put( (long)0x6b6, (char)0x0406); // XK_Ukrainian_I --> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
keysym2UCSHash.put( (long)0x6bd, (char)0x0490); // XK_Ukrainian_GHE_WITH_UPTURN --> CYRILLIC CAPITAL LETTER GHE WITH UPTURN
keysym2UCSHash.put( (long)0x6be, (char)0x040e); // XK_Byelorussian_SHORTU --> CYRILLIC CAPITAL LETTER SHORT U
keysym2UCSHash.put( (long)0x6bf, (char)0x040f); // XK_Cyrillic_DZHE --> CYRILLIC CAPITAL LETTER DZHE
keysym2UCSHash.put( (long)0x6ca, (char)0x0439); // XK_Cyrillic_shorti --> CYRILLIC SMALL LETTER SHORT I
keysym2UCSHash.put( (long)0x6d8, (char)0x044c); // XK_Cyrillic_softsign --> CYRILLIC SMALL LETTER SOFT SIGN
keysym2UCSHash.put( (long)0x6dd, (char)0x0449); // XK_Cyrillic_shcha --> CYRILLIC SMALL LETTER SHCHA
keysym2UCSHash.put( (long)0x6df, (char)0x044a); // XK_Cyrillic_hardsign --> CYRILLIC SMALL LETTER HARD SIGN
keysym2UCSHash.put( (long)0x6ea, (char)0x0419); // XK_Cyrillic_SHORTI --> CYRILLIC CAPITAL LETTER SHORT I
keysym2UCSHash.put( (long)0x6f8, (char)0x042c); // XK_Cyrillic_SOFTSIGN --> CYRILLIC CAPITAL LETTER SOFT SIGN
keysym2UCSHash.put( (long)0x6f9, (char)0x042b); // XK_Cyrillic_YERU --> CYRILLIC CAPITAL LETTER YERU
keysym2UCSHash.put( (long)0x6fd, (char)0x0429); // XK_Cyrillic_SHCHA --> CYRILLIC CAPITAL LETTER SHCHA
keysym2UCSHash.put( (long)0x6ff, (char)0x042a); // XK_Cyrillic_HARDSIGN --> CYRILLIC CAPITAL LETTER HARD SIGN
keysym2UCSHash.put( (long)0x7a1, (char)0x0386); // XK_Greek_ALPHAaccent --> GREEK CAPITAL LETTER ALPHA WITH TONOS
keysym2UCSHash.put( (long)0x7a2, (char)0x0388); // XK_Greek_EPSILONaccent --> GREEK CAPITAL LETTER EPSILON WITH TONOS
keysym2UCSHash.put( (long)0x7a3, (char)0x0389); // XK_Greek_ETAaccent --> GREEK CAPITAL LETTER ETA WITH TONOS
keysym2UCSHash.put( (long)0x7a4, (char)0x038a); // XK_Greek_IOTAaccent --> GREEK CAPITAL LETTER IOTA WITH TONOS
keysym2UCSHash.put( (long)0x7a5, (char)0x03aa); // XK_Greek_IOTAdieresis --> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
keysym2UCSHash.put( (long)0x7a7, (char)0x038c); // XK_Greek_OMICRONaccent --> GREEK CAPITAL LETTER OMICRON WITH TONOS
keysym2UCSHash.put( (long)0x7a8, (char)0x038e); // XK_Greek_UPSILONaccent --> GREEK CAPITAL LETTER UPSILON WITH TONOS
keysym2UCSHash.put( (long)0x7a9, (char)0x03ab); // XK_Greek_UPSILONdieresis --> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
keysym2UCSHash.put( (long)0x7ab, (char)0x038f); // XK_Greek_OMEGAaccent --> GREEK CAPITAL LETTER OMEGA WITH TONOS
keysym2UCSHash.put( (long)0x7ae, (char)0x0385); // XK_Greek_accentdieresis --> GREEK DIALYTIKA TONOS
keysym2UCSHash.put( (long)0x7b1, (char)0x03ac); // XK_Greek_alphaaccent --> GREEK SMALL LETTER ALPHA WITH TONOS
keysym2UCSHash.put( (long)0x7b2, (char)0x03ad); // XK_Greek_epsilonaccent --> GREEK SMALL LETTER EPSILON WITH TONOS
keysym2UCSHash.put( (long)0x7b3, (char)0x03ae); // XK_Greek_etaaccent --> GREEK SMALL LETTER ETA WITH TONOS
keysym2UCSHash.put( (long)0x7b4, (char)0x03af); // XK_Greek_iotaaccent --> GREEK SMALL LETTER IOTA WITH TONOS
keysym2UCSHash.put( (long)0x7b5, (char)0x03ca); // XK_Greek_iotadieresis --> GREEK SMALL LETTER IOTA WITH DIALYTIKA
keysym2UCSHash.put( (long)0x7b6, (char)0x0390); // XK_Greek_iotaaccentdieresis --> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
keysym2UCSHash.put( (long)0x7b7, (char)0x03cc); // XK_Greek_omicronaccent --> GREEK SMALL LETTER OMICRON WITH TONOS
keysym2UCSHash.put( (long)0x7b8, (char)0x03cd); // XK_Greek_upsilonaccent --> GREEK SMALL LETTER UPSILON WITH TONOS
keysym2UCSHash.put( (long)0x7b9, (char)0x03cb); // XK_Greek_upsilondieresis --> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
keysym2UCSHash.put( (long)0x7ba, (char)0x03b0); // XK_Greek_upsilonaccentdieresis --> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
keysym2UCSHash.put( (long)0x7bb, (char)0x03ce); // XK_Greek_omegaaccent --> GREEK SMALL LETTER OMEGA WITH TONOS
keysym2UCSHash.put( (long)0x7c5, (char)0x0395); // XK_Greek_EPSILON --> GREEK CAPITAL LETTER EPSILON
keysym2UCSHash.put( (long)0x7cf, (char)0x039f); // XK_Greek_OMICRON --> GREEK CAPITAL LETTER OMICRON
keysym2UCSHash.put( (long)0x7d5, (char)0x03a5); // XK_Greek_UPSILON --> GREEK CAPITAL LETTER UPSILON
keysym2UCSHash.put( (long)0x7f3, (char)0x03c2); // XK_Greek_finalsmallsigma --> GREEK SMALL LETTER FINAL SIGMA
keysym2UCSHash.put( (long)0x8a2, (char)0x250c); // XK_topleftradical --> BOX DRAWINGS LIGHT DOWN AND RIGHT
keysym2UCSHash.put( (long)0x8a3, (char)0x2500); // XK_horizconnector --> BOX DRAWINGS LIGHT HORIZONTAL
keysym2UCSHash.put( (long)0x8a7, (char)0x23a1); // XK_topleftsqbracket --> LEFT SQUARE BRACKET UPPER CORNER
keysym2UCSHash.put( (long)0x8a8, (char)0x23a3); // XK_botleftsqbracket --> LEFT SQUARE BRACKET LOWER CORNER
keysym2UCSHash.put( (long)0x8a9, (char)0x23a4); // XK_toprightsqbracket --> RIGHT SQUARE BRACKET UPPER CORNER
keysym2UCSHash.put( (long)0x8aa, (char)0x23a6); // XK_botrightsqbracket --> RIGHT SQUARE BRACKET LOWER CORNER
keysym2UCSHash.put( (long)0x8ad, (char)0x239e); // XK_toprightparens --> RIGHT PARENTHESIS UPPER HOOK
keysym2UCSHash.put( (long)0x8ae, (char)0x23a0); // XK_botrightparens --> RIGHT PARENTHESIS LOWER HOOK
keysym2UCSHash.put( (long)0x8af, (char)0x23a8); // XK_leftmiddlecurlybrace --> LEFT CURLY BRACKET MIDDLE PIECE
keysym2UCSHash.put( (long)0x8b0, (char)0x23ac); // XK_rightmiddlecurlybrace --> RIGHT CURLY BRACKET MIDDLE PIECE
keysym2UCSHash.put( (long)0x9ea, (char)0x2518); // XK_lowrightcorner --> BOX DRAWINGS LIGHT UP AND LEFT
keysym2UCSHash.put( (long)0x9eb, (char)0x2510); // XK_uprightcorner --> BOX DRAWINGS LIGHT DOWN AND LEFT
keysym2UCSHash.put( (long)0x9ec, (char)0x250c); // XK_upleftcorner --> BOX DRAWINGS LIGHT DOWN AND RIGHT
keysym2UCSHash.put( (long)0x9ed, (char)0x2514); // XK_lowleftcorner --> BOX DRAWINGS LIGHT UP AND RIGHT
keysym2UCSHash.put( (long)0x9ee, (char)0x253c); // XK_crossinglines --> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
keysym2UCSHash.put( (long)0x9f1, (char)0x2500); // XK_horizlinescan5 --> BOX DRAWINGS LIGHT HORIZONTAL
keysym2UCSHash.put( (long)0x9f4, (char)0x251c); // XK_leftt --> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
keysym2UCSHash.put( (long)0x9f5, (char)0x2524); // XK_rightt --> BOX DRAWINGS LIGHT VERTICAL AND LEFT
keysym2UCSHash.put( (long)0xabc, (char)0x27e8); // XK_leftanglebracket --> MATHEMATICAL LEFT ANGLE BRACKET
keysym2UCSHash.put( (long)0xabe, (char)0x27e9); // XK_rightanglebracket --> MATHEMATICAL RIGHT ANGLE BRACKET
keysym2UCSHash.put( (long)0xac4, (char)0x215c); // XK_threeeighths --> VULGAR FRACTION THREE EIGHTHS
keysym2UCSHash.put( (long)0xac6, (char)0x215e); // XK_seveneighths --> VULGAR FRACTION SEVEN EIGHTHS
keysym2UCSHash.put( (long)0xacc, (char)0x25c1); // XK_leftopentriangle --> WHITE LEFT-POINTING TRIANGLE
keysym2UCSHash.put( (long)0xacd, (char)0x25b7); // XK_rightopentriangle --> WHITE RIGHT-POINTING TRIANGLE
keysym2UCSHash.put( (long)0xad0, (char)0x2018); // XK_leftsinglequotemark --> LEFT SINGLE QUOTATION MARK
keysym2UCSHash.put( (long)0xad1, (char)0x2019); // XK_rightsinglequotemark --> RIGHT SINGLE QUOTATION MARK
keysym2UCSHash.put( (long)0xad2, (char)0x201c); // XK_leftdoublequotemark --> LEFT DOUBLE QUOTATION MARK
keysym2UCSHash.put( (long)0xad3, (char)0x201d); // XK_rightdoublequotemark --> RIGHT DOUBLE QUOTATION MARK
keysym2UCSHash.put( (long)0xadc, (char)0x25c0); // XK_filledlefttribullet --> BLACK LEFT-POINTING TRIANGLE
keysym2UCSHash.put( (long)0xadd, (char)0x25b6); // XK_filledrighttribullet --> BLACK RIGHT-POINTING TRIANGLE
keysym2UCSHash.put( (long)0xae3, (char)0x25b3); // XK_opentribulletup --> WHITE UP-POINTING TRIANGLE
keysym2UCSHash.put( (long)0xae4, (char)0x25bd); // XK_opentribulletdown --> WHITE DOWN-POINTING TRIANGLE
keysym2UCSHash.put( (long)0xae8, (char)0x25b2); // XK_filledtribulletup --> BLACK UP-POINTING TRIANGLE
keysym2UCSHash.put( (long)0xae9, (char)0x25bc); // XK_filledtribulletdown --> BLACK DOWN-POINTING TRIANGLE
keysym2UCSHash.put( (long)0xafb, (char)0x2117); // XK_phonographcopyright --> SOUND RECORDING COPYRIGHT
keysym2UCSHash.put( (long)0xafd, (char)0x201a); // XK_singlelowquotemark --> SINGLE LOW-9 QUOTATION MARK
keysym2UCSHash.put( (long)0xafe, (char)0x201e); // XK_doublelowquotemark --> DOUBLE LOW-9 QUOTATION MARK
keysym2UCSHash.put( (long)0xcf5, (char)0x05e5); // XK_hebrew_finalzade --> HEBREW LETTER FINAL TSADI
keysym2UCSHash.put( (long)0xda6, (char)0x0e06); // XK_Thai_khorakhang --> THAI CHARACTER KHO RAKHANG
keysym2UCSHash.put( (long)0xdb1, (char)0x0e11); // XK_Thai_thonangmontho --> THAI CHARACTER THO NANGMONTHO
keysym2UCSHash.put( (long)0xdb2, (char)0x0e12); // XK_Thai_thophuthao --> THAI CHARACTER THO PHUTHAO
keysym2UCSHash.put( (long)0xdc0, (char)0x0e20); // XK_Thai_phosamphao --> THAI CHARACTER PHO SAMPHAO
keysym2UCSHash.put( (long)0xdd1, (char)0x0e31); // XK_Thai_maihanakat --> THAI CHARACTER MAI HAN-AKAT
keysym2UCSHash.put( (long)0xde3, (char)0x0e43); // XK_Thai_saraaimaimuan --> THAI CHARACTER SARA AI MAIMUAN
keysym2UCSHash.put( (long)0xde4, (char)0x0e44); // XK_Thai_saraaimaimalai --> THAI CHARACTER SARA AI MAIMALAI
keysym2UCSHash.put( (long)0xde5, (char)0x0e45); // XK_Thai_lakkhangyao --> THAI CHARACTER LAKKHANGYAO
keysym2UCSHash.put( (long)0xdeb, (char)0x0e4b); // XK_Thai_maichattawa --> THAI CHARACTER MAI CHATTAWA
keysym2UCSHash.put( (long)0xdec, (char)0x0e4c); // XK_Thai_thanthakhat --> THAI CHARACTER THANTHAKHAT
keysym2UCSHash.put( (long)0xea2, (char)0x3132); // XK_Hangul_SsangKiyeog --> HANGUL LETTER SSANGKIYEOK
keysym2UCSHash.put( (long)0xea3, (char)0x3133); // XK_Hangul_KiyeogSios --> HANGUL LETTER KIYEOK-SIOS
keysym2UCSHash.put( (long)0xea5, (char)0x3135); // XK_Hangul_NieunJieuj --> HANGUL LETTER NIEUN-CIEUC
keysym2UCSHash.put( (long)0xea6, (char)0x3136); // XK_Hangul_NieunHieuh --> HANGUL LETTER NIEUN-HIEUH
keysym2UCSHash.put( (long)0xea8, (char)0x3138); // XK_Hangul_SsangDikeud --> HANGUL LETTER SSANGTIKEUT
keysym2UCSHash.put( (long)0xeaa, (char)0x313a); // XK_Hangul_RieulKiyeog --> HANGUL LETTER RIEUL-KIYEOK
keysym2UCSHash.put( (long)0xeab, (char)0x313b); // XK_Hangul_RieulMieum --> HANGUL LETTER RIEUL-MIEUM
keysym2UCSHash.put( (long)0xeac, (char)0x313c); // XK_Hangul_RieulPieub --> HANGUL LETTER RIEUL-PIEUP
keysym2UCSHash.put( (long)0xeae, (char)0x313e); // XK_Hangul_RieulTieut --> HANGUL LETTER RIEUL-THIEUTH
keysym2UCSHash.put( (long)0xeaf, (char)0x313f); // XK_Hangul_RieulPhieuf --> HANGUL LETTER RIEUL-PHIEUPH
keysym2UCSHash.put( (long)0xeb0, (char)0x3140); // XK_Hangul_RieulHieuh --> HANGUL LETTER RIEUL-HIEUH
keysym2UCSHash.put( (long)0xeb3, (char)0x3143); // XK_Hangul_SsangPieub --> HANGUL LETTER SSANGPIEUP
keysym2UCSHash.put( (long)0xeb9, (char)0x3149); // XK_Hangul_SsangJieuj --> HANGUL LETTER SSANGCIEUC
keysym2UCSHash.put( (long)0xed5, (char)0x11a9); // XK_Hangul_J_SsangKiyeog --> HANGUL JONGSEONG SSANGKIYEOK
keysym2UCSHash.put( (long)0xed6, (char)0x11aa); // XK_Hangul_J_KiyeogSios --> HANGUL JONGSEONG KIYEOK-SIOS
keysym2UCSHash.put( (long)0xed8, (char)0x11ac); // XK_Hangul_J_NieunJieuj --> HANGUL JONGSEONG NIEUN-CIEUC
keysym2UCSHash.put( (long)0xed9, (char)0x11ad); // XK_Hangul_J_NieunHieuh --> HANGUL JONGSEONG NIEUN-HIEUH
keysym2UCSHash.put( (long)0xedc, (char)0x11b0); // XK_Hangul_J_RieulKiyeog --> HANGUL JONGSEONG RIEUL-KIYEOK
keysym2UCSHash.put( (long)0xedd, (char)0x11b1); // XK_Hangul_J_RieulMieum --> HANGUL JONGSEONG RIEUL-MIEUM
keysym2UCSHash.put( (long)0xede, (char)0x11b2); // XK_Hangul_J_RieulPieub --> HANGUL JONGSEONG RIEUL-PIEUP
keysym2UCSHash.put( (long)0xedf, (char)0x11b3); // XK_Hangul_J_RieulSios --> HANGUL JONGSEONG RIEUL-SIOS
keysym2UCSHash.put( (long)0xee0, (char)0x11b4); // XK_Hangul_J_RieulTieut --> HANGUL JONGSEONG RIEUL-THIEUTH
keysym2UCSHash.put( (long)0xee1, (char)0x11b5); // XK_Hangul_J_RieulPhieuf --> HANGUL JONGSEONG RIEUL-PHIEUPH
keysym2UCSHash.put( (long)0xee2, (char)0x11b6); // XK_Hangul_J_RieulHieuh --> HANGUL JONGSEONG RIEUL-HIEUH
keysym2UCSHash.put( (long)0xee5, (char)0x11b9); // XK_Hangul_J_PieubSios --> HANGUL JONGSEONG PIEUP-SIOS
keysym2UCSHash.put( (long)0xee7, (char)0x11bb); // XK_Hangul_J_SsangSios --> HANGUL JONGSEONG SSANGSIOS
keysym2UCSHash.put( (long)0xeef, (char)0x316d); // XK_Hangul_RieulYeorinHieuh --> HANGUL LETTER RIEUL-YEORINHIEUH
keysym2UCSHash.put( (long)0xef0, (char)0x3171); // XK_Hangul_SunkyeongeumMieum --> HANGUL LETTER KAPYEOUNMIEUM
keysym2UCSHash.put( (long)0xef1, (char)0x3178); // XK_Hangul_SunkyeongeumPieub --> HANGUL LETTER KAPYEOUNPIEUP
keysym2UCSHash.put( (long)0xef3, (char)0x3181); // XK_Hangul_KkogjiDalrinIeung --> HANGUL LETTER YESIEUNG
keysym2UCSHash.put( (long)0xef4, (char)0x3184); // XK_Hangul_SunkyeongeumPhieuf --> HANGUL LETTER KAPYEOUNPHIEUPH
keysym2UCSHash.put( (long)0xef5, (char)0x3186); // XK_Hangul_YeorinHieuh --> HANGUL LETTER YEORINHIEUH
keysym2UCSHash.put( (long)0xef9, (char)0x11f0); // XK_Hangul_J_KkogjiDalrinIeung --> HANGUL JONGSEONG YESIEUNG
keysym2UCSHash.put( (long)0xefa, (char)0x11f9); // XK_Hangul_J_YeorinHieuh --> HANGUL JONGSEONG YEORINHIEUH
keysym2UCSHash.put( (long)0x16a3, (char)0x1e8a); // XK_Xabovedot --> LATIN CAPITAL LETTER X WITH DOT ABOVE
keysym2UCSHash.put( (long)0x16a9, (char)0x01b5); // XK_Zstroke --> LATIN CAPITAL LETTER Z WITH STROKE
keysym2UCSHash.put( (long)0x16af, (char)0x019f); // XK_Obarred --> LATIN CAPITAL LETTER O WITH MIDDLE TILDE
keysym2UCSHash.put( (long)0x16b3, (char)0x1e8b); // XK_xabovedot --> LATIN SMALL LETTER X WITH DOT ABOVE
keysym2UCSHash.put( (long)0x1ea0, (char)0x1ea0); // XK_Abelowdot --> LATIN CAPITAL LETTER A WITH DOT BELOW
keysym2UCSHash.put( (long)0x1ea1, (char)0x1ea1); // XK_abelowdot --> LATIN SMALL LETTER A WITH DOT BELOW
keysym2UCSHash.put( (long)0x1ea2, (char)0x1ea2); // XK_Ahook --> LATIN CAPITAL LETTER A WITH HOOK ABOVE
keysym2UCSHash.put( (long)0x1ea3, (char)0x1ea3); // XK_ahook --> LATIN SMALL LETTER A WITH HOOK ABOVE
keysym2UCSHash.put( (long)0x1ea4, (char)0x1ea4); // XK_Acircumflexacute --> LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
keysym2UCSHash.put( (long)0x1ea5, (char)0x1ea5); // XK_acircumflexacute --> LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
keysym2UCSHash.put( (long)0x1ea6, (char)0x1ea6); // XK_Acircumflexgrave --> LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
keysym2UCSHash.put( (long)0x1ea7, (char)0x1ea7); // XK_acircumflexgrave --> LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
keysym2UCSHash.put( (long)0x1ea8, (char)0x1ea8); // XK_Acircumflexhook --> LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
keysym2UCSHash.put( (long)0x1ea9, (char)0x1ea9); // XK_acircumflexhook --> LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
keysym2UCSHash.put( (long)0x1eaa, (char)0x1eaa); // XK_Acircumflextilde --> LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
keysym2UCSHash.put( (long)0x1eab, (char)0x1eab); // XK_acircumflextilde --> LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
keysym2UCSHash.put( (long)0x1eac, (char)0x1eac); // XK_Acircumflexbelowdot --> LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
keysym2UCSHash.put( (long)0x1ead, (char)0x1ead); // XK_acircumflexbelowdot --> LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
keysym2UCSHash.put( (long)0x1eae, (char)0x1eae); // XK_Abreveacute --> LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
keysym2UCSHash.put( (long)0x1eaf, (char)0x1eaf); // XK_abreveacute --> LATIN SMALL LETTER A WITH BREVE AND ACUTE
keysym2UCSHash.put( (long)0x1eb0, (char)0x1eb0); // XK_Abrevegrave --> LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
keysym2UCSHash.put( (long)0x1eb1, (char)0x1eb1); // XK_abrevegrave --> LATIN SMALL LETTER A WITH BREVE AND GRAVE
keysym2UCSHash.put( (long)0x1eb2, (char)0x1eb2); // XK_Abrevehook --> LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
keysym2UCSHash.put( (long)0x1eb3, (char)0x1eb3); // XK_abrevehook --> LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
keysym2UCSHash.put( (long)0x1eb4, (char)0x1eb4); // XK_Abrevetilde --> LATIN CAPITAL LETTER A WITH BREVE AND TILDE
keysym2UCSHash.put( (long)0x1eb5, (char)0x1eb5); // XK_abrevetilde --> LATIN SMALL LETTER A WITH BREVE AND TILDE
keysym2UCSHash.put( (long)0x1eb6, (char)0x1eb6); // XK_Abrevebelowdot --> LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
keysym2UCSHash.put( (long)0x1eb7, (char)0x1eb7); // XK_abrevebelowdot --> LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
keysym2UCSHash.put( (long)0x1eb8, (char)0x1eb8); // XK_Ebelowdot --> LATIN CAPITAL LETTER E WITH DOT BELOW
keysym2UCSHash.put( (long)0x1eb9, (char)0x1eb9); // XK_ebelowdot --> LATIN SMALL LETTER E WITH DOT BELOW
keysym2UCSHash.put( (long)0x1eba, (char)0x1eba); // XK_Ehook --> LATIN CAPITAL LETTER E WITH HOOK ABOVE
keysym2UCSHash.put( (long)0x1ebb, (char)0x1ebb); // XK_ehook --> LATIN SMALL LETTER E WITH HOOK ABOVE
keysym2UCSHash.put( (long)0x1ebe, (char)0x1ebe); // XK_Ecircumflexacute --> LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
keysym2UCSHash.put( (long)0x1ebf, (char)0x1ebf); // XK_ecircumflexacute --> LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
keysym2UCSHash.put( (long)0x1ec0, (char)0x1ec0); // XK_Ecircumflexgrave --> LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
keysym2UCSHash.put( (long)0x1ec1, (char)0x1ec1); // XK_ecircumflexgrave --> LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
keysym2UCSHash.put( (long)0x1ec2, (char)0x1ec2); // XK_Ecircumflexhook --> LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
keysym2UCSHash.put( (long)0x1ec3, (char)0x1ec3); // XK_ecircumflexhook --> LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
keysym2UCSHash.put( (long)0x1ec4, (char)0x1ec4); // XK_Ecircumflextilde --> LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
keysym2UCSHash.put( (long)0x1ec5, (char)0x1ec5); // XK_ecircumflextilde --> LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
keysym2UCSHash.put( (long)0x1ec6, (char)0x1ec6); // XK_Ecircumflexbelowdot --> LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
keysym2UCSHash.put( (long)0x1ec7, (char)0x1ec7); // XK_ecircumflexbelowdot --> LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
keysym2UCSHash.put( (long)0x1ec8, (char)0x1ec8); // XK_Ihook --> LATIN CAPITAL LETTER I WITH HOOK ABOVE
keysym2UCSHash.put( (long)0x1ec9, (char)0x1ec9); // XK_ihook --> LATIN SMALL LETTER I WITH HOOK ABOVE
keysym2UCSHash.put( (long)0x1eca, (char)0x1eca); // XK_Ibelowdot --> LATIN CAPITAL LETTER I WITH DOT BELOW
keysym2UCSHash.put( (long)0x1ecb, (char)0x1ecb); // XK_ibelowdot --> LATIN SMALL LETTER I WITH DOT BELOW
keysym2UCSHash.put( (long)0x1ecc, (char)0x1ecc); // XK_Obelowdot --> LATIN CAPITAL LETTER O WITH DOT BELOW
keysym2UCSHash.put( (long)0x1ecd, (char)0x1ecd); // XK_obelowdot --> LATIN SMALL LETTER O WITH DOT BELOW
keysym2UCSHash.put( (long)0x1ece, (char)0x1ece); // XK_Ohook --> LATIN CAPITAL LETTER O WITH HOOK ABOVE
keysym2UCSHash.put( (long)0x1ecf, (char)0x1ecf); // XK_ohook --> LATIN SMALL LETTER O WITH HOOK ABOVE
keysym2UCSHash.put( (long)0x1ed0, (char)0x1ed0); // XK_Ocircumflexacute --> LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
keysym2UCSHash.put( (long)0x1ed1, (char)0x1ed1); // XK_ocircumflexacute --> LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
keysym2UCSHash.put( (long)0x1ed2, (char)0x1ed2); // XK_Ocircumflexgrave --> LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
keysym2UCSHash.put( (long)0x1ed3, (char)0x1ed3); // XK_ocircumflexgrave --> LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
keysym2UCSHash.put( (long)0x1ed4, (char)0x1ed4); // XK_Ocircumflexhook --> LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
keysym2UCSHash.put( (long)0x1ed5, (char)0x1ed5); // XK_ocircumflexhook --> LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
keysym2UCSHash.put( (long)0x1ed6, (char)0x1ed6); // XK_Ocircumflextilde --> LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
keysym2UCSHash.put( (long)0x1ed7, (char)0x1ed7); // XK_ocircumflextilde --> LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
keysym2UCSHash.put( (long)0x1ed8, (char)0x1ed8); // XK_Ocircumflexbelowdot --> LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
keysym2UCSHash.put( (long)0x1ed9, (char)0x1ed9); // XK_ocircumflexbelowdot --> LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
keysym2UCSHash.put( (long)0x1eda, (char)0x1eda); // XK_Ohornacute --> LATIN CAPITAL LETTER O WITH HORN AND ACUTE
keysym2UCSHash.put( (long)0x1edb, (char)0x1edb); // XK_ohornacute --> LATIN SMALL LETTER O WITH HORN AND ACUTE
keysym2UCSHash.put( (long)0x1edc, (char)0x1edc); // XK_Ohorngrave --> LATIN CAPITAL LETTER O WITH HORN AND GRAVE
keysym2UCSHash.put( (long)0x1edd, (char)0x1edd); // XK_ohorngrave --> LATIN SMALL LETTER O WITH HORN AND GRAVE
keysym2UCSHash.put( (long)0x1ede, (char)0x1ede); // XK_Ohornhook --> LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
keysym2UCSHash.put( (long)0x1edf, (char)0x1edf); // XK_ohornhook --> LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
keysym2UCSHash.put( (long)0x1ee0, (char)0x1ee0); // XK_Ohorntilde --> LATIN CAPITAL LETTER O WITH HORN AND TILDE
keysym2UCSHash.put( (long)0x1ee1, (char)0x1ee1); // XK_ohorntilde --> LATIN SMALL LETTER O WITH HORN AND TILDE
keysym2UCSHash.put( (long)0x1ee2, (char)0x1ee2); // XK_Ohornbelowdot --> LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
keysym2UCSHash.put( (long)0x1ee3, (char)0x1ee3); // XK_ohornbelowdot --> LATIN SMALL LETTER O WITH HORN AND DOT BELOW
keysym2UCSHash.put( (long)0x1ee4, (char)0x1ee4); // XK_Ubelowdot --> LATIN CAPITAL LETTER U WITH DOT BELOW
keysym2UCSHash.put( (long)0x1ee5, (char)0x1ee5); // XK_ubelowdot --> LATIN SMALL LETTER U WITH DOT BELOW
keysym2UCSHash.put( (long)0x1ee6, (char)0x1ee6); // XK_Uhook --> LATIN CAPITAL LETTER U WITH HOOK ABOVE
keysym2UCSHash.put( (long)0x1ee7, (char)0x1ee7); // XK_uhook --> LATIN SMALL LETTER U WITH HOOK ABOVE
keysym2UCSHash.put( (long)0x1ee8, (char)0x1ee8); // XK_Uhornacute --> LATIN CAPITAL LETTER U WITH HORN AND ACUTE
keysym2UCSHash.put( (long)0x1ee9, (char)0x1ee9); // XK_uhornacute --> LATIN SMALL LETTER U WITH HORN AND ACUTE
keysym2UCSHash.put( (long)0x1eea, (char)0x1eea); // XK_Uhorngrave --> LATIN CAPITAL LETTER U WITH HORN AND GRAVE
keysym2UCSHash.put( (long)0x1eeb, (char)0x1eeb); // XK_uhorngrave --> LATIN SMALL LETTER U WITH HORN AND GRAVE
keysym2UCSHash.put( (long)0x1eec, (char)0x1eec); // XK_Uhornhook --> LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
keysym2UCSHash.put( (long)0x1eed, (char)0x1eed); // XK_uhornhook --> LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
keysym2UCSHash.put( (long)0x1eee, (char)0x1eee); // XK_Uhorntilde --> LATIN CAPITAL LETTER U WITH HORN AND TILDE
keysym2UCSHash.put( (long)0x1eef, (char)0x1eef); // XK_uhorntilde --> LATIN SMALL LETTER U WITH HORN AND TILDE
keysym2UCSHash.put( (long)0x1ef0, (char)0x1ef0); // XK_Uhornbelowdot --> LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
keysym2UCSHash.put( (long)0x1ef1, (char)0x1ef1); // XK_uhornbelowdot --> LATIN SMALL LETTER U WITH HORN AND DOT BELOW
keysym2UCSHash.put( (long)0x1ef4, (char)0x1ef4); // XK_Ybelowdot --> LATIN CAPITAL LETTER Y WITH DOT BELOW
keysym2UCSHash.put( (long)0x1ef5, (char)0x1ef5); // XK_ybelowdot --> LATIN SMALL LETTER Y WITH DOT BELOW
keysym2UCSHash.put( (long)0x1ef6, (char)0x1ef6); // XK_Yhook --> LATIN CAPITAL LETTER Y WITH HOOK ABOVE
keysym2UCSHash.put( (long)0x1ef7, (char)0x1ef7); // XK_yhook --> LATIN SMALL LETTER Y WITH HOOK ABOVE
//XXX fill keysym2JavaKeycodeHash.
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_a), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_A, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_b), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_B, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_c), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_C, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_d), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_D, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_e), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_E, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_f), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_F, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_g), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_G, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_h), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_H, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_i), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_I, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_j), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_J, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_k), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_K, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_l), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_L, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_m), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_M, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_n), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_N, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_o), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_O, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_p), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_P, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_q), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_Q, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_r), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_R, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_s), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_S, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_t), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_T, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_u), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_U, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_v), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_V, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_w), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_W, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_x), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_X, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_y), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_Y, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_z), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_Z, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* TTY Function keys */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_BackSpace), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_BACK_SPACE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Tab), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_TAB, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_ISO_Left_Tab), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_TAB, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Clear), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_CLEAR, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Return), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_ENTER, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Linefeed), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_ENTER, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Pause), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PAUSE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_F21), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PAUSE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_R1), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PAUSE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Scroll_Lock), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_SCROLL_LOCK, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_F23), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_SCROLL_LOCK, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_R3), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_SCROLL_LOCK, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Escape), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_ESCAPE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* Other vendor-specific versions of TTY Function keys */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.osfXK_BackSpace), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_BACK_SPACE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.osfXK_Clear), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_CLEAR, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.osfXK_Escape), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_ESCAPE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* Modifier keys */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Shift_L), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_SHIFT, java.awt.event.KeyEvent.KEY_LOCATION_LEFT));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Shift_R), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_SHIFT, java.awt.event.KeyEvent.KEY_LOCATION_RIGHT));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Control_L), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_CONTROL, java.awt.event.KeyEvent.KEY_LOCATION_LEFT));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Control_R), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_CONTROL, java.awt.event.KeyEvent.KEY_LOCATION_RIGHT));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Alt_L), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_ALT, java.awt.event.KeyEvent.KEY_LOCATION_LEFT));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Alt_R), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_ALT, java.awt.event.KeyEvent.KEY_LOCATION_RIGHT));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Meta_L), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_META, java.awt.event.KeyEvent.KEY_LOCATION_LEFT));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Meta_R), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_META, java.awt.event.KeyEvent.KEY_LOCATION_RIGHT));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Caps_Lock), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_CAPS_LOCK, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* Misc Functions */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Print), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PRINTSCREEN, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_F22), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PRINTSCREEN, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_R2), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PRINTSCREEN, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Cancel), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_CANCEL, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Help), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_HELP, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Num_Lock), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_NUM_LOCK, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
/* Other vendor-specific versions of Misc Functions */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.osfXK_Cancel), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_CANCEL, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.osfXK_Help), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_HELP, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* Rectangular Navigation Block */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Home), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_HOME, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_R7), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_HOME, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Page_Up), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PAGE_UP, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Prior), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PAGE_UP, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_R9), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PAGE_UP, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Page_Down), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PAGE_DOWN, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Next), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PAGE_DOWN, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_R15), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PAGE_DOWN, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_End), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_END, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_R13), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_END, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Insert), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_INSERT, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Delete), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DELETE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* Keypad equivalents of Rectangular Navigation Block */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Home), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_HOME, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Page_Up), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PAGE_UP, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Prior), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PAGE_UP, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Page_Down), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PAGE_DOWN, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Next), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PAGE_DOWN, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_End), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_END, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Insert), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_INSERT, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Delete), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DELETE, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
/* Other vendor-specific Rectangular Navigation Block */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.osfXK_PageUp), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PAGE_UP, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.osfXK_Prior), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PAGE_UP, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.osfXK_PageDown), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PAGE_DOWN, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.osfXK_Next), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PAGE_DOWN, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.osfXK_EndLine), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_END, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.osfXK_Insert), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_INSERT, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.osfXK_Delete), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DELETE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* Triangular Navigation Block */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Left), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_LEFT, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Up), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_UP, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Right), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_RIGHT, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Down), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DOWN, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* Keypad equivalents of Triangular Navigation Block */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Left), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_KP_LEFT, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Up), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_KP_UP, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Right), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_KP_RIGHT, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Down), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_KP_DOWN, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
/* Other vendor-specific Triangular Navigation Block */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.osfXK_Left), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_LEFT, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.osfXK_Up), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_UP, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.osfXK_Right), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_RIGHT, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.osfXK_Down), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DOWN, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* Remaining Cursor control & motion */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Begin), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_BEGIN, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Begin), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_BEGIN, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_0), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_0, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_1), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_1, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_2), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_2, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_3), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_3, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_4), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_4, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_5), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_5, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_6), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_6, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_7), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_7, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_8), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_8, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_9), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_9, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_space), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_SPACE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_exclam), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_EXCLAMATION_MARK, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_quotedbl), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_QUOTEDBL, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_numbersign), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_NUMBER_SIGN, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_dollar), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DOLLAR, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_ampersand), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_AMPERSAND, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_apostrophe), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_QUOTE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_parenleft), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_LEFT_PARENTHESIS, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_parenright), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_RIGHT_PARENTHESIS, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_asterisk), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_ASTERISK, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_plus), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PLUS, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_comma), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_COMMA, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_minus), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_MINUS, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_period), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PERIOD, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_slash), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_SLASH, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_colon), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_COLON, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_semicolon), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_SEMICOLON, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_less), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_LESS, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_equal), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_EQUALS, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_greater), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_GREATER, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_at), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_AT, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_bracketleft), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_OPEN_BRACKET, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_backslash), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_BACK_SLASH, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_bracketright), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_CLOSE_BRACKET, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_asciicircum), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_CIRCUMFLEX, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_underscore), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_UNDERSCORE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Super_L), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_WINDOWS, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Super_R), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_WINDOWS, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Menu), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_CONTEXT_MENU, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_grave), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_BACK_QUOTE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_braceleft), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_BRACELEFT, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_braceright), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_BRACERIGHT, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_exclamdown), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_INVERTED_EXCLAMATION_MARK, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* Remaining Numeric Keypad Keys */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_0), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_NUMPAD0, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_1), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_NUMPAD1, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_2), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_NUMPAD2, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_3), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_NUMPAD3, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_4), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_NUMPAD4, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_5), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_NUMPAD5, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_6), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_NUMPAD6, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_7), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_NUMPAD7, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_8), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_NUMPAD8, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_9), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_NUMPAD9, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Space), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_SPACE, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Tab), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_TAB, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Enter), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_ENTER, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Equal), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_EQUALS, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_R4), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_EQUALS, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Multiply), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_MULTIPLY, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_F26), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_MULTIPLY, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_R6), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_MULTIPLY, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Add), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_ADD, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Separator), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_SEPARATOR, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Subtract), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_SUBTRACT, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_F24), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_SUBTRACT, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Decimal), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DECIMAL, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_KP_Divide), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DIVIDE, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_F25), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DIVIDE, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_R5), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DIVIDE, java.awt.event.KeyEvent.KEY_LOCATION_NUMPAD));
/* Function Keys */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_F1), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_F1, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_F2), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_F2, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_F3), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_F3, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_F4), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_F4, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_F5), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_F5, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_F6), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_F6, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_F7), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_F7, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_F8), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_F8, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_F9), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_F9, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_F10), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_F10, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_F11), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_F11, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_F12), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_F12, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* Sun vendor-specific version of F11 and F12 */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.SunXK_F36), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_F11, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.SunXK_F37), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_F12, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* X11 keysym names for input method related keys don't always
* match keytop engravings or Java virtual key names, so here we
* only map constants that we've found on real keyboards.
*/
/* Type 5c Japanese keyboard: kakutei */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Execute), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_ACCEPT, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* Type 5c Japanese keyboard: henkan */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Kanji), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_CONVERT, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* Type 5c Japanese keyboard: nihongo */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Henkan_Mode), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_INPUT_METHOD_ON_OFF, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* VK_KANA_LOCK is handled separately because it generates the
* same keysym as ALT_GRAPH in spite of its different behavior.
*/
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Multi_key), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_COMPOSE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Mode_switch), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_ALT_GRAPH, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_ISO_Level3_Shift), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_ALT_GRAPH, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* Editing block */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Redo), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_AGAIN, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
// XXX XK_L2 == F12; TODO: add code to use only one of them depending on the keyboard type. For now, restore
// good PC behavior and bad but old Sparc behavior.
// keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_L2), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_AGAIN, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Undo), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_UNDO, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_L4), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_UNDO, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_L6), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_COPY, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_L8), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PASTE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_L10), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_CUT, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_Find), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_FIND, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_L9), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_FIND, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_L3), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PROPS, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
// XXX XK_L1 == F11; TODO: add code to use only one of them depending on the keyboard type. For now, restore
// good PC behavior and bad but old Sparc behavior.
// keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_L1), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_STOP, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* Sun vendor-specific versions for editing block */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.SunXK_Again), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_AGAIN, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.SunXK_Undo), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_UNDO, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.SunXK_Copy), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_COPY, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.SunXK_Paste), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PASTE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.SunXK_Cut), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_CUT, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.SunXK_Find), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_FIND, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.SunXK_Props), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PROPS, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.SunXK_Stop), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_STOP, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* Apollo (HP) vendor-specific versions for editing block */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.apXK_Copy), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_COPY, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.apXK_Cut), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_CUT, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.apXK_Paste), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PASTE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* Other vendor-specific versions for editing block */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.osfXK_Copy), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_COPY, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.osfXK_Cut), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_CUT, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.osfXK_Paste), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_PASTE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.osfXK_Undo), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_UNDO, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* Dead key mappings (for European keyboards) */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_dead_grave), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_GRAVE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_dead_acute), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_ACUTE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_dead_circumflex), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_CIRCUMFLEX, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_dead_tilde), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_TILDE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_dead_macron), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_MACRON, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_dead_breve), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_BREVE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_dead_abovedot), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_ABOVEDOT, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_dead_diaeresis), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_DIAERESIS, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_dead_abovering), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_ABOVERING, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_dead_doubleacute), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_DOUBLEACUTE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_dead_caron), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_CARON, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_dead_cedilla), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_CEDILLA, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_dead_ogonek), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_OGONEK, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_dead_iota), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_IOTA, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_dead_voiced_sound), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_VOICED_SOUND, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.XK_dead_semivoiced_sound), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_SEMIVOICED_SOUND, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* Sun vendor-specific dead key mappings (for European keyboards) */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.SunXK_FA_Grave), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_GRAVE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.SunXK_FA_Circum), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_CIRCUMFLEX, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.SunXK_FA_Tilde), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_TILDE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.SunXK_FA_Acute), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_ACUTE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.SunXK_FA_Diaeresis), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_DIAERESIS, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.SunXK_FA_Cedilla), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_CEDILLA, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* DEC vendor-specific dead key mappings (for European keyboards) */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.DXK_ring_accent), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_ABOVERING, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.DXK_circumflex_accent), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_CIRCUMFLEX, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.DXK_cedilla_accent), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_CEDILLA, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.DXK_acute_accent), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_ACUTE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.DXK_grave_accent), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_GRAVE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.DXK_tilde), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_TILDE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.DXK_diaeresis), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_DIAERESIS, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
/* Other vendor-specific dead key mappings (for European keyboards) */
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.hpXK_mute_acute), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_ACUTE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.hpXK_mute_grave), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_GRAVE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.hpXK_mute_asciicircum), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_CIRCUMFLEX, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.hpXK_mute_diaeresis), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_DIAERESIS, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.hpXK_mute_asciitilde), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_TILDE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
keysym2JavaKeycodeHash.put( Long.valueOf(XConstants.NoSymbol), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_UNDEFINED, java.awt.event.KeyEvent.KEY_LOCATION_UNKNOWN));
/* Reverse search of keysym by keycode. */
/* Add keyboard locking codes. */
javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_SCROLL_LOCK, XKeySymConstants.XK_Scroll_Lock);
};
}