jdk/src/solaris/classes/sun/awt/X11/keysym2ucs.h
changeset 1966 12a51fb0db0d
parent 1187 6067b9e2eac6
child 2473 3f4bbd3be2f1
equal deleted inserted replaced
1965:726a2bc97146 1966:12a51fb0db0d
    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 }