99 tojava static Hashtable<Long, Character> keysym2UCSHash = new Hashtable<Long, Character>(); |
99 tojava static Hashtable<Long, Character> keysym2UCSHash = new Hashtable<Long, Character>(); |
100 tojava static Hashtable<Long, Long> uppercaseHash = new Hashtable<Long, Long>(); |
100 tojava static Hashtable<Long, Long> uppercaseHash = new Hashtable<Long, Long>(); |
101 tojava // TODO: or not to do: add reverse lookup javakeycode2keysym, |
101 tojava // TODO: or not to do: add reverse lookup javakeycode2keysym, |
102 tojava // for robot only it seems to me. After that, we can remove lookup table |
102 tojava // for robot only it seems to me. After that, we can remove lookup table |
103 tojava // from XWindow.c altogether. |
103 tojava // from XWindow.c altogether. |
|
104 tojava // Another use for reverse lookup: query keyboard state, for some keys. |
|
105 tojava static Hashtable<Integer, Long> javaKeycode2KeysymHash = new Hashtable<Integer, Long>(); |
104 tojava static long keysym_lowercase = unsafe.allocateMemory(Native.getLongSize()); |
106 tojava static long keysym_lowercase = unsafe.allocateMemory(Native.getLongSize()); |
105 tojava static long keysym_uppercase = unsafe.allocateMemory(Native.getLongSize()); |
107 tojava static long keysym_uppercase = unsafe.allocateMemory(Native.getLongSize()); |
106 tojava public static char convertKeysym( long ks, int state ) { |
108 tojava public static char convertKeysym( long ks, int state ) { |
107 tojava |
109 tojava |
108 tojava /* First check for Latin-1 characters (1:1 mapping) */ |
110 tojava /* First check for Latin-1 characters (1:1 mapping) */ |
231 tojava return jkc; |
233 tojava return jkc; |
232 tojava } |
234 tojava } |
233 tojava static int getJavaKeycodeOnly( XKeyEvent ev ) { |
235 tojava static int getJavaKeycodeOnly( XKeyEvent ev ) { |
234 tojava Keysym2JavaKeycode jkc = getJavaKeycode( ev ); |
236 tojava Keysym2JavaKeycode jkc = getJavaKeycode( ev ); |
235 tojava return jkc == null ? java.awt.event.KeyEvent.VK_UNDEFINED : jkc.getJavaKeycode(); |
237 tojava return jkc == null ? java.awt.event.KeyEvent.VK_UNDEFINED : jkc.getJavaKeycode(); |
|
238 tojava } |
|
239 tojava static long javaKeycode2Keysym( int jkey ) { |
|
240 tojava Long ks = javaKeycode2KeysymHash.get( jkey ); |
|
241 tojava return (ks == null ? 0 : ks.longValue()); |
236 tojava } |
242 tojava } |
237 tojava /** |
243 tojava /** |
238 tojava Return keysym derived from a keycode and modifiers. |
244 tojava Return keysym derived from a keycode and modifiers. |
239 tojava Usually an input method does this. However non-system input methods (e.g. Java IMs) do not. |
245 tojava Usually an input method does this. However non-system input methods (e.g. Java IMs) do not. |
240 tojava For rules, see "Xlib - C Language X Interface", |
246 tojava For rules, see "Xlib - C Language X Interface", |
2632 tojava keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.hpXK_mute_asciicircum), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_CIRCUMFLEX, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD)); |
2638 tojava keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.hpXK_mute_asciicircum), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_CIRCUMFLEX, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD)); |
2633 tojava keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.hpXK_mute_diaeresis), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_DIAERESIS, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD)); |
2639 tojava keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.hpXK_mute_diaeresis), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_DIAERESIS, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD)); |
2634 tojava keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.hpXK_mute_asciitilde), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_TILDE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD)); |
2640 tojava keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.hpXK_mute_asciitilde), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_TILDE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD)); |
2635 tojava |
2641 tojava |
2636 tojava keysym2JavaKeycodeHash.put( Long.valueOf(XConstants.NoSymbol), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_UNDEFINED, java.awt.event.KeyEvent.KEY_LOCATION_UNKNOWN)); |
2642 tojava keysym2JavaKeycodeHash.put( Long.valueOf(XConstants.NoSymbol), new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_UNDEFINED, java.awt.event.KeyEvent.KEY_LOCATION_UNKNOWN)); |
|
2643 tojava |
|
2644 tojava /* Reverse search of keysym by keycode. */ |
|
2645 tojava |
|
2646 tojava /* Add keyboard locking codes. */ |
|
2647 tojava javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_CAPS_LOCK, XKeySymConstants.XK_Caps_Lock); |
|
2648 tojava javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_NUM_LOCK, XKeySymConstants.XK_Num_Lock); |
|
2649 tojava javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_SCROLL_LOCK, XKeySymConstants.XK_Scroll_Lock); |
|
2650 tojava javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_KANA_LOCK, XKeySymConstants.XK_Kana_Lock); |
2637 tojava }; |
2651 tojava }; |
2638 tojava |
2652 tojava |
2639 tojava } |
2653 tojava } |