Commit d0b8b6fb by Thomas Fitzsimmons Committed by Thomas Fitzsimmons

GtkComponentPeer.java (postKeyEvent): Add keyLocation parameter.

2003-08-05  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (postKeyEvent):
	Add keyLocation parameter.
	* java/awt/event/KeyEvent.java (getKeyText): Fix "NumPad-"
	string.
	(paramString): Generate keyChar string according to keyChar, not
	keyCode.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
	(state_to_awt_mods): Handle ALT key.
	(keyevent_state_to_awt_mods): New function.
	(get_first_keyval_from_keymap): New function.
	(keysym_to_awt_keycode): Get virtual key code from keymap.
	Handle missing VK_ values.
	(keysym_to_awt_keylocation): New function.
	(keyevent_to_awt_keychar): New function.
	(generates_key_typed_event): Handle non-text-component case.
	Handle GDK_KP_Delete and GDK_KP_Enter.
	(awt_event_handler): Call new functions to get postKeyEvent
	parameters.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c (gtkInit):
	Update postKeyEvent method signature.
	* jni/gtk-peer/gtkpeer.h: Add KEY_LOCATION defines.  Add missing
	VK_ defines.

From-SVN: r70178
parent b3c3af2f
2003-08-05 Thomas Fitzsimmons <fitzsim@redhat.com>
* gnu/java/awt/peer/gtk/GtkComponentPeer.java (postKeyEvent):
Add keyLocation parameter.
* java/awt/event/KeyEvent.java (getKeyText): Fix "NumPad-"
string.
(paramString): Generate keyChar string according to keyChar, not
keyCode.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
(state_to_awt_mods): Handle ALT key.
(keyevent_state_to_awt_mods): New function.
(get_first_keyval_from_keymap): New function.
(keysym_to_awt_keycode): Get virtual key code from keymap.
Handle missing VK_ values.
(keysym_to_awt_keylocation): New function.
(keyevent_to_awt_keychar): New function.
(generates_key_typed_event): Handle non-text-component case.
Handle GDK_KP_Delete and GDK_KP_Enter.
(awt_event_handler): Call new functions to get postKeyEvent
parameters.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c (gtkInit):
Update postKeyEvent method signature.
* jni/gtk-peer/gtkpeer.h: Add KEY_LOCATION defines. Add missing
VK_ defines.
2003-08-05 Matthias Klose <doko@debian.org> 2003-08-05 Matthias Klose <doko@debian.org>
* aclocal.m4: check for libart-config binary * aclocal.m4: check for libart-config binary
......
...@@ -350,13 +350,13 @@ public class GtkComponentPeer extends GtkGenericPeer ...@@ -350,13 +350,13 @@ public class GtkComponentPeer extends GtkGenericPeer
new Rectangle (x, y, width, height))); new Rectangle (x, y, width, height)));
} }
protected void postKeyEvent (int id, long when, int mods, protected void postKeyEvent (int id, long when, int mods,
int keyCode, char keyChar) int keyCode, char keyChar, int keyLocation)
{ {
q.postEvent (new KeyEvent (awtComponent, id, when, mods, q.postEvent (new KeyEvent (awtComponent, id, when, mods,
keyCode, keyChar)); keyCode, keyChar, keyLocation));
} }
protected void postFocusEvent (int id, boolean temporary) protected void postFocusEvent (int id, boolean temporary)
{ {
q.postEvent (new FocusEvent (awtComponent, id, temporary)); q.postEvent (new FocusEvent (awtComponent, id, temporary));
......
...@@ -55,8 +55,9 @@ public class GtkTextComponentPeer extends GtkComponentPeer ...@@ -55,8 +55,9 @@ public class GtkTextComponentPeer extends GtkComponentPeer
setText (tc.getText ()); setText (tc.getText ());
} }
public native void connectHooks (); public native void connectHooks ();
public native int getCaretPosition (); public native int getCaretPosition ();
public native void setCaretPosition (int pos); public native void setCaretPosition (int pos);
public native int getSelectionStart (); public native int getSelectionStart ();
......
...@@ -1503,7 +1503,7 @@ public class KeyEvent extends InputEvent ...@@ -1503,7 +1503,7 @@ public class KeyEvent extends InputEvent
case VK_NUMPAD7: case VK_NUMPAD7:
case VK_NUMPAD8: case VK_NUMPAD8:
case VK_NUMPAD9: case VK_NUMPAD9:
return "NumPad-" + (char) (keyCode - VK_NUMPAD0); return "NumPad-" + (keyCode - VK_NUMPAD0);
case VK_F1: case VK_F1:
case VK_F2: case VK_F2:
case VK_F3: case VK_F3:
...@@ -1642,63 +1642,64 @@ public class KeyEvent extends InputEvent ...@@ -1642,63 +1642,64 @@ public class KeyEvent extends InputEvent
} }
/** /**
* Returns a string identifying the event. This is formatted as the field * Returns a string identifying the event. This is formatted as the
* name of the id type, followed by the keyCode, then the keyChar (if * field name of the id type, followed by the keyCode, then the
* available), modifiers (if any), extModifiers (if any), and keyLocation. * keyChar, modifiers (if any), extModifiers (if any), and
* The keyChar is available unless the keyCode is Backspace, Tab, Enter, * keyLocation.
* Escape, Numpad-[0-9], Delete, or a keyCode which is an action.
* *
* @return a string identifying the event * @return a string identifying the event
*/ */
public String paramString() public String paramString()
{ {
StringBuffer s = new StringBuffer(); StringBuffer s = new StringBuffer();
switch (id) switch (id)
{ {
case KEY_PRESSED: case KEY_PRESSED:
s.append("KEY_PRESSED,keyCode="); s.append("KEY_PRESSED");
break; break;
case KEY_RELEASED: case KEY_RELEASED:
s.append("KEY_RELEASED,keyCode="); s.append("KEY_RELEASED");
break; break;
case KEY_TYPED: case KEY_TYPED:
s.append("KEY_TYPED,keyCode="); s.append("KEY_TYPED");
break; break;
default: default:
s.append("unknown type,keyCode="); s.append("unknown type");
} }
s.append(keyCode);
switch (keyCode) s.append(",keyCode=").append(keyCode);
s.append(",keyText=").append(getKeyText(keyCode));
s.append(",keyChar=");
if (isActionKey()
|| keyCode == VK_SHIFT
|| keyCode == VK_CONTROL
|| keyCode == VK_ALT)
s.append("Undefined keyChar");
else
{ {
default: /* This output string must be selected by examining keyChar
if (! isActionKey()) * rather than keyCode, because key code information is not
{ * included in KEY_TYPED events.
s.append(",keyChar='").append(keyChar).append('\''); */
break; if (keyChar == VK_BACK_SPACE
} || keyChar == VK_TAB
// Fallthrough. || keyChar == VK_ENTER
case VK_BACK_SPACE: || keyChar == VK_ESCAPE
case VK_TAB: || keyChar == VK_DELETE)
case VK_ENTER: s.append(getKeyText(keyChar));
case VK_ESCAPE: else
case VK_NUMPAD0: s.append("'").append(keyChar).append("'");
case VK_NUMPAD1:
case VK_NUMPAD2:
case VK_NUMPAD3:
case VK_NUMPAD4:
case VK_NUMPAD5:
case VK_NUMPAD6:
case VK_NUMPAD7:
case VK_NUMPAD8:
case VK_NUMPAD9:
case VK_DELETE:
s.append(',').append(getKeyText(keyCode));
} }
if ((modifiers & CONVERT_MASK) != 0) if ((modifiers & CONVERT_MASK) != 0)
s.append(",modifiers=").append(getModifiersExText(modifiers s.append(",modifiers=").append(getModifiersExText(modifiers
& CONVERT_MASK)); & CONVERT_MASK));
if (modifiers != 0) if (modifiers != 0)
s.append(",extModifiers=").append(getModifiersExText(modifiers)); s.append(",extModifiers=").append(getModifiersExText(modifiers));
s.append(",keyLocation=KEY_LOCATION_"); s.append(",keyLocation=KEY_LOCATION_");
switch (keyLocation) switch (keyLocation)
{ {
...@@ -1717,6 +1718,7 @@ public class KeyEvent extends InputEvent ...@@ -1717,6 +1718,7 @@ public class KeyEvent extends InputEvent
case KEY_LOCATION_NUMPAD: case KEY_LOCATION_NUMPAD:
s.append("NUMPAD"); s.append("NUMPAD");
} }
return s.toString(); return s.toString();
} }
......
...@@ -503,7 +503,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2Ljava_lang_S ...@@ -503,7 +503,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2Ljava_lang_S
arg.type = GTK_TYPE_STRING; arg.type = GTK_TYPE_STRING;
arg.name = (char *) name; arg.name = (char *) name;
GTK_VALUE_STRING (arg) = (char *) value; GTK_VALUE_STRING (arg) = (char *) value;
gdk_threads_enter(); gdk_threads_enter();
g_object_set(ptr, name, value, NULL); g_object_set(ptr, name, value, NULL);
gdk_threads_leave(); gdk_threads_leave();
...@@ -618,9 +618,10 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectHooks ...@@ -618,9 +618,10 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectHooks
gdk_threads_enter (); gdk_threads_enter ();
gtk_widget_realize (GTK_WIDGET (ptr)); gtk_widget_realize (GTK_WIDGET (ptr));
if(GTK_IS_BUTTON(ptr)) if(GTK_IS_BUTTON(ptr))
connect_awt_hook (env, obj, 1, GTK_BUTTON(ptr)->event_window); connect_awt_hook (env, obj, 1, GTK_BUTTON(ptr)->event_window);
else else
connect_awt_hook (env, obj, 1, GTK_WIDGET (ptr)->window); connect_awt_hook (env, obj, 1, GTK_WIDGET (ptr)->window);
gdk_threads_leave (); gdk_threads_leave ();
} }
...@@ -39,7 +39,7 @@ exception statement from your version. */ ...@@ -39,7 +39,7 @@ exception statement from your version. */
#include "gtkpeer.h" #include "gtkpeer.h"
#include "gnu_java_awt_peer_gtk_GtkLabelPeer.h" #include "gnu_java_awt_peer_gtk_GtkLabelPeer.h"
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkLabelPeer_create Java_gnu_java_awt_peer_gtk_GtkLabelPeer_create
(JNIEnv *env, jobject obj) (JNIEnv *env, jobject obj)
{ {
......
...@@ -155,7 +155,7 @@ Java_gnu_java_awt_peer_gtk_GtkMainThread_gtkInit (JNIEnv *env, jclass clazz) ...@@ -155,7 +155,7 @@ Java_gnu_java_awt_peer_gtk_GtkMainThread_gtkInit (JNIEnv *env, jclass clazz)
postExposeEventID = (*env)->GetMethodID (env, gtkcomponentpeer, postExposeEventID = (*env)->GetMethodID (env, gtkcomponentpeer,
"postExposeEvent", "(IIII)V"); "postExposeEvent", "(IIII)V");
postKeyEventID = (*env)->GetMethodID (env, gtkcomponentpeer, postKeyEventID = (*env)->GetMethodID (env, gtkcomponentpeer,
"postKeyEvent", "(IJIIC)V"); "postKeyEvent", "(IJIICI)V");
postFocusEventID = (*env)->GetMethodID (env, gtkcomponentpeer, postFocusEventID = (*env)->GetMethodID (env, gtkcomponentpeer,
"postFocusEvent", "(IZ)V"); "postFocusEvent", "(IZ)V");
postAdjustmentEventID = (*env)->GetMethodID (env, gtkscrollbarpeer, postAdjustmentEventID = (*env)->GetMethodID (env, gtkscrollbarpeer,
......
...@@ -47,6 +47,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create ...@@ -47,6 +47,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create
GtkWidget *text, *sw; GtkWidget *text, *sw;
gdk_threads_enter (); gdk_threads_enter ();
text = gtk_text_view_new (); text = gtk_text_view_new ();
gtk_widget_show (text); gtk_widget_show (text);
...@@ -159,7 +160,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_replaceRange ...@@ -159,7 +160,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_replaceRange
(*env)->ReleaseStringUTFChars (env, contents, str); (*env)->ReleaseStringUTFChars (env, contents, str);
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkSetFont Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkSetFont
(JNIEnv *env, jobject obj, jstring jname, jint size) (JNIEnv *env, jobject obj, jstring jname, jint size)
{ {
...@@ -169,6 +170,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkSetFont ...@@ -169,6 +170,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkSetFont
PangoFontDescription *font_desc; PangoFontDescription *font_desc;
ptr = NSA_GET_PTR (env, obj); ptr = NSA_GET_PTR (env, obj);
text = GTK_WIDGET (TEXT_FROM_SW (ptr)); text = GTK_WIDGET (TEXT_FROM_SW (ptr));
font_name = (*env)->GetStringUTFChars (env, jname, NULL); font_name = (*env)->GetStringUTFChars (env, jname, NULL);
......
...@@ -456,8 +456,6 @@ textcomponent_commit_cb (GtkIMContext *context, ...@@ -456,8 +456,6 @@ textcomponent_commit_cb (GtkIMContext *context,
const gchar *str, const gchar *str,
jobject peer) jobject peer)
{ {
void *ptr;
/* str is a \0-terminated UTF-8 encoded character. */ /* str is a \0-terminated UTF-8 encoded character. */
gunichar2 *jc = g_utf8_to_utf16 (str, -1, NULL, NULL, NULL); gunichar2 *jc = g_utf8_to_utf16 (str, -1, NULL, NULL, NULL);
...@@ -473,7 +471,8 @@ textcomponent_commit_cb (GtkIMContext *context, ...@@ -473,7 +471,8 @@ textcomponent_commit_cb (GtkIMContext *context,
/* ... and assume no modifiers. */ /* ... and assume no modifiers. */
0, 0,
VK_UNDEFINED, VK_UNDEFINED,
(jchar) jc[0]); (jchar) jc[0],
AWT_KEY_LOCATION_UNKNOWN);
g_free (jc); g_free (jc);
} }
......
...@@ -52,7 +52,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_create ...@@ -52,7 +52,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_create
NSA_SET_PTR (env, obj, widget); NSA_SET_PTR (env, obj, widget);
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkEntryGetSize Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkEntryGetSize
(JNIEnv *env, jobject obj, jint cols, jintArray jdims) (JNIEnv *env, jobject obj, jint cols, jintArray jdims)
{ {
...@@ -100,7 +100,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_setEchoChar ...@@ -100,7 +100,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_setEchoChar
gdk_threads_leave (); gdk_threads_leave ();
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkSetFont Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkSetFont
(JNIEnv *env, jobject obj, jstring jname, jint size) (JNIEnv *env, jobject obj, jstring jname, jint size)
{ {
......
...@@ -142,77 +142,82 @@ struct graphics ...@@ -142,77 +142,82 @@ struct graphics
#define AWT_KEY_PRESSED 401 #define AWT_KEY_PRESSED 401
#define AWT_KEY_RELEASED 402 #define AWT_KEY_RELEASED 402
#define VK_UNDEFINED 0
#define AWT_KEY_CHAR_UNDEFINED 0 #define AWT_KEY_CHAR_UNDEFINED 0
#define VK_0 48 #define AWT_KEY_LOCATION_UNKNOWN 0
#define VK_1 49 #define AWT_KEY_LOCATION_STANDARD 1
#define VK_2 50 #define AWT_KEY_LOCATION_LEFT 2
#define VK_3 51 #define AWT_KEY_LOCATION_RIGHT 3
#define VK_4 52 #define AWT_KEY_LOCATION_NUMPAD 4
#define VK_5 53
#define VK_6 54 /* Virtual Keys */
#define VK_7 55 /* This list should be kept in the same order as the VK_ field
#define VK_8 56 declarations in KeyEvent.java. */
#define VK_9 57 #define VK_ENTER '\n'
#define VK_A 65 #define VK_BACK_SPACE '\b'
#define VK_ACCEPT 30 #define VK_TAB '\t'
#define VK_ADD 107
#define VK_ALT 18
#define VK_B 66
#define VK_BACK_QUOTE 192
#define VK_BACK_SLASH 92
#define VK_BACK_SPACE 8
#define VK_C 67
#define VK_CANCEL 3 #define VK_CANCEL 3
#define VK_CAPS_LOCK 20 #define VK_CLEAR 12
#define VK_CLEAR 12 #define VK_SHIFT 16
#define VK_CLOSE_BRACKET 93
#define VK_COMMA 44
#define VK_CONTROL 17 #define VK_CONTROL 17
#define VK_CONVERT 28 #define VK_ALT 18
#define VK_D 68 #define VK_PAUSE 19
#define VK_DECIMAL 110 #define VK_CAPS_LOCK 20
#define VK_DELETE 127
#define VK_DIVIDE 111
#define VK_DOWN 40
#define VK_E 69
#define VK_END 35
#define VK_ENTER 10
#define VK_ESCAPE 27 #define VK_ESCAPE 27
#define VK_F 70 #define VK_SPACE ' '
#define VK_F1 112 #define VK_PAGE_UP 33
#define VK_F10 121 #define VK_PAGE_DOWN 34
#define VK_F11 122 #define VK_END 35
#define VK_F12 123
#define VK_F2 113
#define VK_F3 114
#define VK_F4 115
#define VK_F5 116
#define VK_F6 117
#define VK_F7 118
#define VK_F8 119
#define VK_F9 120
#define VK_FINAL 24
#define VK_G 71
#define VK_H 72
#define VK_HELP 156
#define VK_HOME 36 #define VK_HOME 36
#define VK_I 73
#define VK_INSERT 155
#define VK_J 74
#define VK_K 75
#define VK_KANA 21
#define VK_KANJI 25
#define VK_L 76
#define VK_LEFT 37 #define VK_LEFT 37
#define VK_M 77 #define VK_UP 38
#define VK_META 157 #define VK_RIGHT 39
#define VK_MODECHANGE 31 #define VK_DOWN 40
#define VK_MULTIPLY 106 #define VK_COMMA ','
#define VK_N 78 #define VK_MINUS '-'
#define VK_NONCONVERT 29 #define VK_PERIOD '.'
#define VK_NUM_LOCK 144 #define VK_SLASH '/'
#define VK_0 '0'
#define VK_1 '1'
#define VK_2 '2'
#define VK_3 '3'
#define VK_4 '4'
#define VK_5 '5'
#define VK_6 '6'
#define VK_7 '7'
#define VK_8 '8'
#define VK_9 '9'
#define VK_SEMICOLON ';'
#define VK_EQUALS '='
#define VK_A 'A'
#define VK_B 'B'
#define VK_C 'C'
#define VK_D 'D'
#define VK_E 'E'
#define VK_F 'F'
#define VK_G 'G'
#define VK_H 'H'
#define VK_I 'I'
#define VK_J 'J'
#define VK_K 'K'
#define VK_L 'L'
#define VK_M 'M'
#define VK_N 'N'
#define VK_O 'O'
#define VK_P 'P'
#define VK_Q 'Q'
#define VK_R 'R'
#define VK_S 'S'
#define VK_T 'T'
#define VK_U 'U'
#define VK_V 'V'
#define VK_W 'W'
#define VK_X 'X'
#define VK_Y 'Y'
#define VK_Z 'Z'
#define VK_OPEN_BRACKET '['
#define VK_BACK_SLASH '\\'
#define VK_CLOSE_BRACKET ']'
#define VK_NUMPAD0 96 #define VK_NUMPAD0 96
#define VK_NUMPAD1 97 #define VK_NUMPAD1 97
#define VK_NUMPAD2 98 #define VK_NUMPAD2 98
...@@ -223,35 +228,117 @@ struct graphics ...@@ -223,35 +228,117 @@ struct graphics
#define VK_NUMPAD7 103 #define VK_NUMPAD7 103
#define VK_NUMPAD8 104 #define VK_NUMPAD8 104
#define VK_NUMPAD9 105 #define VK_NUMPAD9 105
#define VK_O 79 #define VK_MULTIPLY 106
#define VK_OPEN_BRACKET 91 #define VK_ADD 107
#define VK_P 80 #define VK_SEPARATER 108
#define VK_PAGE_DOWN 34
#define VK_PAGE_UP 33
#define VK_PAUSE 19
#define VK_PERIOD 46
#define VK_PRINTSCREEN 154
#define VK_Q 81
#define VK_QUOTE 222
#define VK_R 82
#define VK_RIGHT 39
#define VK_S 83
#define VK_SCROLL_LOCK 145
#define VK_SEMICOLON 59
#define VK_SEPARATOR 108 #define VK_SEPARATOR 108
#define VK_SHIFT 16
#define VK_SLASH 47
#define VK_SPACE 32
#define VK_SUBTRACT 109 #define VK_SUBTRACT 109
#define VK_T 84 #define VK_DECIMAL 110
#define VK_TAB 9 #define VK_DIVIDE 111
#define VK_U 85 #define VK_DELETE 127
#define VK_UP 38 #define VK_NUM_LOCK 144
#define VK_V 86 #define VK_SCROLL_LOCK 145
#define VK_W 87 #define VK_F1 112
#define VK_X 88 #define VK_F2 113
#define VK_Y 89 #define VK_F3 114
#define VK_Z 90 #define VK_F4 115
#define VK_F5 116
#define VK_F6 117
#define VK_F7 118
#define VK_F8 119
#define VK_F9 120
#define VK_F10 121
#define VK_F11 122
#define VK_F12 123
#define VK_F13 61440
#define VK_F14 61441
#define VK_F15 61442
#define VK_F16 61443
#define VK_F17 61444
#define VK_F18 61445
#define VK_F19 61446
#define VK_F20 61447
#define VK_F21 61448
#define VK_F22 61449
#define VK_F23 61450
#define VK_F24 61451
#define VK_PRINTSCREEN 154
#define VK_INSERT 155
#define VK_HELP 156
#define VK_META 157
#define VK_BACK_QUOTE 192
#define VK_QUOTE 222
#define VK_KP_UP 224
#define VK_KP_DOWN 225
#define VK_KP_LEFT 226
#define VK_KP_RIGHT 227
#define VK_DEAD_GRAVE 128
#define VK_DEAD_ACUTE 129
#define VK_DEAD_CIRCUMFLEX 130
#define VK_DEAD_TILDE 131
#define VK_DEAD_MACRON 132
#define VK_DEAD_BREVE 133
#define VK_DEAD_ABOVEDOT 134
#define VK_DEAD_DIAERESIS 135
#define VK_DEAD_ABOVERING 136
#define VK_DEAD_DOUBLEACUTE 137
#define VK_DEAD_CARON 138
#define VK_DEAD_CEDILLA 139
#define VK_DEAD_OGONEK 140
#define VK_DEAD_IOTA 141
#define VK_DEAD_VOICED_SOUND 142
#define VK_DEAD_SEMIVOICED_SOUND 143
#define VK_AMPERSAND 150
#define VK_ASTERISK 151
#define VK_QUOTEDBL 152
#define VK_LESS 153
#define VK_GREATER 160
#define VK_BRACELEFT 161
#define VK_BRACERIGHT 162
#define VK_AT 512
#define VK_COLON 513
#define VK_CIRCUMFLEX 514
#define VK_DOLLAR 515
#define VK_EURO_SIGN 516
#define VK_EXCLAMATION_MARK 517
#define VK_INVERTED_EXCLAMATION_MARK 518
#define VK_LEFT_PARENTHESIS 519
#define VK_NUMBER_SIGN 520
#define VK_PLUS 521
#define VK_RIGHT_PARENTHESIS 522
#define VK_UNDERSCORE 523
#define VK_FINAL 24
#define VK_CONVERT 28
#define VK_NONCONVERT 29
#define VK_ACCEPT 30
#define VK_MODECHANGE 31
#define VK_KANA 21
#define VK_KANJI 25
#define VK_ALPHANUMERIC 240
#define VK_KATAKANA 241
#define VK_HIRAGANA 242
#define VK_FULL_WIDTH 243
#define VK_HALF_WIDTH 244
#define VK_ROMAN_CHARACTERS 245
#define VK_ALL_CANDIDATES 256
#define VK_PREVIOUS_CANDIDATE 257
#define VK_CODE_INPUT 258
#define VK_JAPANESE_KATAKANA 259
#define VK_JAPANESE_HIRAGANA 260
#define VK_JAPANESE_ROMAN 261
#define VK_KANA_LOCK 262
#define VK_INPUT_METHOD_ON_OFF 263
#define VK_CUT 65489
#define VK_COPY 65485
#define VK_PASTE 65487
#define VK_UNDO 65483
#define VK_AGAIN 65481
#define VK_FIND 65488
#define VK_PROPS 65482
#define VK_STOP 65480
#define VK_COMPOSE 65312
#define VK_ALT_GRAPH 65406
#define VK_UNDEFINED 0
#define AWT_FOCUS_LOST 1004 #define AWT_FOCUS_LOST 1004
#define AWT_FOCUS_GAINED 1005 #define AWT_FOCUS_GAINED 1005
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment