45 |
|
|
46 |
#include <jni.h> |
#include <jni.h> |
47 |
|
|
|
#define RC_FILE ".classpath-gtkrc" |
|
|
#define JVM_SUN |
|
|
/* |
|
|
#define JVM_JAPHAR |
|
|
*/ |
|
|
|
|
48 |
#ifndef __GTKPEER_H__ |
#ifndef __GTKPEER_H__ |
49 |
#define __GTKPEER_H__ |
#define __GTKPEER_H__ |
50 |
|
|
52 |
#define __attribute__(x) /* nothing */ |
#define __attribute__(x) /* nothing */ |
53 |
#endif |
#endif |
54 |
|
|
55 |
#ifdef JVM_SUN |
extern struct state_table *cp_gtk_native_state_table; |
56 |
|
extern struct state_table *cp_gtk_native_global_ref_table; |
|
extern struct state_table *native_state_table; |
|
|
extern struct state_table *native_global_ref_table; |
|
57 |
|
|
58 |
#define NSA_INIT(env, clazz) \ |
#define NSA_INIT(env, clazz) \ |
59 |
do {native_state_table = init_state_table (env, clazz); \ |
do {cp_gtk_native_state_table = cp_gtk_init_state_table (env, clazz); \ |
60 |
native_global_ref_table = init_state_table (env, clazz);} while (0) |
cp_gtk_native_global_ref_table = cp_gtk_init_state_table (env, clazz);} while (0) |
61 |
|
|
62 |
#define NSA_GET_PTR(env, obj) \ |
#define NSA_GET_PTR(env, obj) \ |
63 |
get_state (env, obj, native_state_table) |
cp_gtk_get_state (env, obj, cp_gtk_native_state_table) |
64 |
|
|
65 |
#define NSA_SET_PTR(env, obj, ptr) \ |
#define NSA_SET_PTR(env, obj, ptr) \ |
66 |
set_state (env, obj, native_state_table, (void *)ptr) |
cp_gtk_set_state (env, obj, cp_gtk_native_state_table, (void *)ptr) |
67 |
|
|
68 |
#define NSA_DEL_PTR(env, obj) \ |
#define NSA_DEL_PTR(env, obj) \ |
69 |
remove_state_slot (env, obj, native_state_table) |
cp_gtk_remove_state_slot (env, obj, cp_gtk_native_state_table) |
70 |
|
|
71 |
#define NSA_GET_GLOBAL_REF(env, obj) \ |
#define NSA_GET_GLOBAL_REF(env, obj) \ |
72 |
get_state (env, obj, native_global_ref_table) |
cp_gtk_get_state (env, obj, cp_gtk_native_global_ref_table) |
73 |
|
|
74 |
#define NSA_SET_GLOBAL_REF(env, obj) \ |
#define NSA_SET_GLOBAL_REF(env, obj) \ |
75 |
do {jobject *globRefPtr; \ |
do {jobject *globRefPtr; \ |
76 |
globRefPtr = (jobject *) malloc (sizeof (jobject)); \ |
globRefPtr = (jobject *) malloc (sizeof (jobject)); \ |
77 |
*globRefPtr = (*env)->NewGlobalRef (env, obj); \ |
*globRefPtr = (*env)->NewGlobalRef (env, obj); \ |
78 |
set_state (env, obj, native_global_ref_table, (void *)globRefPtr);} while (0) |
cp_gtk_set_state (env, obj, cp_gtk_native_global_ref_table, (void *)globRefPtr);} while (0) |
79 |
|
|
80 |
#define NSA_DEL_GLOBAL_REF(env, obj) \ |
#define NSA_DEL_GLOBAL_REF(env, obj) \ |
81 |
do {jobject *globRefPtr = get_state (env, obj, native_global_ref_table); \ |
do {jobject *globRefPtr = cp_gtk_get_state (env, obj, cp_gtk_native_global_ref_table); \ |
82 |
remove_state_slot (env, obj, native_global_ref_table); \ |
cp_gtk_remove_state_slot (env, obj, cp_gtk_native_global_ref_table); \ |
83 |
(*env)->DeleteGlobalRef (env, *globRefPtr); \ |
(*env)->DeleteGlobalRef (env, *globRefPtr); \ |
84 |
free (globRefPtr);} while (0) |
free (globRefPtr);} while (0) |
85 |
|
|
|
extern struct state_table *native_pixbufdecoder_state_table; |
|
|
|
|
|
#define NSA_PB_INIT(env, clazz) \ |
|
|
native_pixbufdecoder_state_table = init_state_table (env, clazz) |
|
|
|
|
|
#define NSA_GET_PB_PTR(env, obj) \ |
|
|
get_state (env, obj, native_pixbufdecoder_state_table) |
|
|
|
|
|
#define NSA_SET_PB_PTR(env, obj, ptr) \ |
|
|
set_state (env, obj, native_pixbufdecoder_state_table, (void *)ptr) |
|
|
|
|
|
#define NSA_DEL_PB_PTR(env, obj) \ |
|
|
remove_state_slot (env, obj, native_pixbufdecoder_state_table) |
|
|
|
|
|
#endif /* JVM_SUN */ |
|
|
|
|
86 |
#define SWAPU32(w) \ |
#define SWAPU32(w) \ |
87 |
(((w) << 24) | (((w) & 0xff00) << 8) | (((w) >> 8) & 0xff00) | ((w) >> 24)) |
(((w) << 24) | (((w) & 0xff00) << 8) | (((w) >> 8) & 0xff00) | ((w) >> 24)) |
88 |
|
|
97 |
jint x_offset, y_offset; |
jint x_offset, y_offset; |
98 |
}; |
}; |
99 |
|
|
|
#define AWT_DEFAULT_CURSOR 0 |
|
|
#define AWT_CROSSHAIR_CURSOR 1 |
|
|
#define AWT_TEXT_CURSOR 2 |
|
|
#define AWT_WAIT_CURSOR 3 |
|
|
#define AWT_SW_RESIZE_CURSOR 4 |
|
|
#define AWT_SE_RESIZE_CURSOR 5 |
|
|
#define AWT_NW_RESIZE_CURSOR 6 |
|
|
#define AWT_NE_RESIZE_CURSOR 7 |
|
|
#define AWT_N_RESIZE_CURSOR 8 |
|
|
#define AWT_S_RESIZE_CURSOR 9 |
|
|
#define AWT_W_RESIZE_CURSOR 10 |
|
|
#define AWT_E_RESIZE_CURSOR 11 |
|
|
#define AWT_HAND_CURSOR 12 |
|
|
#define AWT_MOVE_CURSOR 13 |
|
|
|
|
|
#define SYNTHETIC_EVENT_MASK (1 << 10) |
|
|
|
|
100 |
#define AWT_SHIFT_DOWN_MASK (1 << 6) |
#define AWT_SHIFT_DOWN_MASK (1 << 6) |
101 |
#define AWT_CTRL_DOWN_MASK (1 << 7) |
#define AWT_CTRL_DOWN_MASK (1 << 7) |
102 |
#define AWT_META_DOWN_MASK (1 << 8) |
#define AWT_META_DOWN_MASK (1 << 8) |
103 |
#define AWT_ALT_DOWN_MASK (1 << 9) |
#define AWT_ALT_DOWN_MASK (1 << 9) |
104 |
|
|
|
#define AWT_BUTTON1_DOWN_MASK (1 << 10) |
|
|
#define AWT_BUTTON2_DOWN_MASK (1 << 11) |
|
|
#define AWT_BUTTON3_DOWN_MASK (1 << 12) |
|
|
|
|
105 |
#define AWT_BUTTON1_MASK (1 << 4) |
#define AWT_BUTTON1_MASK (1 << 4) |
106 |
#define AWT_BUTTON2_MASK (1 << 3) |
#define AWT_BUTTON2_MASK (1 << 3) |
107 |
#define AWT_BUTTON3_MASK (1 << 2) |
#define AWT_BUTTON3_MASK (1 << 2) |
108 |
|
|
|
#define MULTI_CLICK_TIME 250 |
|
|
/* as opposed to a MULTI_PASS_TIME :) */ |
|
|
|
|
|
#define AWT_MOUSE_CLICKED 500 |
|
|
#define AWT_MOUSE_PRESSED 501 |
|
|
#define AWT_MOUSE_RELEASED 502 |
|
|
#define AWT_MOUSE_MOVED 503 |
|
|
#define AWT_MOUSE_ENTERED 504 |
|
|
#define AWT_MOUSE_EXITED 505 |
|
|
#define AWT_MOUSE_DRAGGED 506 |
|
|
|
|
|
#define AWT_ADJUSTMENT_UNIT_INCREMENT 1 |
|
|
#define AWT_ADJUSTMENT_UNIT_DECREMENT 2 |
|
|
#define AWT_ADJUSTMENT_BLOCK_DECREMENT 3 |
|
|
#define AWT_ADJUSTMENT_BLOCK_INCREMENT 4 |
|
|
#define AWT_ADJUSTMENT_TRACK 5 |
|
|
|
|
|
#define AWT_SCROLLPANE_SCROLLBARS_AS_NEEDED 0 |
|
|
#define AWT_SCROLLPANE_SCROLLBARS_ALWAYS 1 |
|
|
#define AWT_SCROLLPANE_SCROLLBARS_NEVER 2 |
|
|
|
|
|
#define AWT_LABEL_LEFT 0 |
|
|
#define AWT_LABEL_CENTER 1 |
|
|
#define AWT_LABEL_RIGHT 2 |
|
|
|
|
|
#define AWT_TEXTAREA_SCROLLBARS_BOTH 0 |
|
|
#define AWT_TEXTAREA_SCROLLBARS_VERTICAL_ONLY 1 |
|
|
#define AWT_TEXTAREA_SCROLLBARS_HORIZONTAL_ONLY 2 |
|
|
|
|
109 |
#define AWT_ITEM_SELECTED 1 |
#define AWT_ITEM_SELECTED 1 |
110 |
#define AWT_ITEM_DESELECTED 2 |
#define AWT_ITEM_DESELECTED 2 |
111 |
|
|
113 |
#define AWT_KEY_PRESSED 401 |
#define AWT_KEY_PRESSED 401 |
114 |
#define AWT_KEY_RELEASED 402 |
#define AWT_KEY_RELEASED 402 |
115 |
|
|
|
#define AWT_KEY_CHAR_UNDEFINED 0 |
|
|
|
|
116 |
#define AWT_KEY_LOCATION_UNKNOWN 0 |
#define AWT_KEY_LOCATION_UNKNOWN 0 |
117 |
#define AWT_KEY_LOCATION_STANDARD 1 |
#define AWT_KEY_LOCATION_STANDARD 1 |
118 |
#define AWT_KEY_LOCATION_LEFT 2 |
#define AWT_KEY_LOCATION_LEFT 2 |
119 |
#define AWT_KEY_LOCATION_RIGHT 3 |
#define AWT_KEY_LOCATION_RIGHT 3 |
120 |
#define AWT_KEY_LOCATION_NUMPAD 4 |
#define AWT_KEY_LOCATION_NUMPAD 4 |
121 |
|
|
122 |
/* Virtual Keys */ |
#define AWT_STYLE_PLAIN 0 |
123 |
/* This list should be kept in the same order as the VK_ field |
#define AWT_STYLE_BOLD 1 |
124 |
declarations in KeyEvent.java. */ |
#define AWT_STYLE_ITALIC 2 |
125 |
#define VK_ENTER '\n' |
|
126 |
#define VK_BACK_SPACE '\b' |
/* Used in GtkComponentPeer and GtkWindowPeer */ |
|
#define VK_TAB '\t' |
|
|
#define VK_CANCEL 3 |
|
|
#define VK_CLEAR 12 |
|
|
#define VK_SHIFT 16 |
|
|
#define VK_CONTROL 17 |
|
|
#define VK_ALT 18 |
|
|
#define VK_PAUSE 19 |
|
|
#define VK_CAPS_LOCK 20 |
|
|
#define VK_ESCAPE 27 |
|
|
#define VK_SPACE ' ' |
|
|
#define VK_PAGE_UP 33 |
|
|
#define VK_PAGE_DOWN 34 |
|
|
#define VK_END 35 |
|
|
#define VK_HOME 36 |
|
|
#define VK_LEFT 37 |
|
|
#define VK_UP 38 |
|
|
#define VK_RIGHT 39 |
|
|
#define VK_DOWN 40 |
|
|
#define VK_COMMA ',' |
|
|
#define VK_MINUS '-' |
|
|
#define VK_PERIOD '.' |
|
|
#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 ']' |
|
127 |
#define VK_NUMPAD0 96 |
#define VK_NUMPAD0 96 |
128 |
#define VK_NUMPAD1 97 |
#define VK_NUMPAD1 97 |
129 |
#define VK_NUMPAD2 98 |
#define VK_NUMPAD2 98 |
134 |
#define VK_NUMPAD7 103 |
#define VK_NUMPAD7 103 |
135 |
#define VK_NUMPAD8 104 |
#define VK_NUMPAD8 104 |
136 |
#define VK_NUMPAD9 105 |
#define VK_NUMPAD9 105 |
|
#define VK_MULTIPLY 106 |
|
|
#define VK_ADD 107 |
|
|
#define VK_SEPARATER 108 |
|
|
#define VK_SEPARATOR 108 |
|
|
#define VK_SUBTRACT 109 |
|
137 |
#define VK_DECIMAL 110 |
#define VK_DECIMAL 110 |
|
#define VK_DIVIDE 111 |
|
|
#define VK_DELETE 127 |
|
|
#define VK_NUM_LOCK 144 |
|
|
#define VK_SCROLL_LOCK 145 |
|
|
#define VK_F1 112 |
|
|
#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_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_GAINED 1004 |
|
|
#define AWT_FOCUS_LOST 1005 |
|
|
|
|
|
#define AWT_WINDOW_OPENED 200 |
|
|
#define AWT_WINDOW_CLOSING 201 |
|
|
#define AWT_WINDOW_CLOSED 202 |
|
|
#define AWT_WINDOW_ICONIFIED 203 |
|
|
#define AWT_WINDOW_DEICONIFIED 204 |
|
|
#define AWT_WINDOW_ACTIVATED 205 |
|
|
#define AWT_WINDOW_DEACTIVATED 206 |
|
|
#define AWT_WINDOW_GAINED_FOCUS 207 |
|
|
#define AWT_WINDOW_LOST_FOCUS 208 |
|
|
#define AWT_WINDOW_STATE_CHANGED 209 |
|
|
|
|
|
#define AWT_FRAME_STATE_NORMAL 0 |
|
|
#define AWT_FRAME_STATE_ICONIFIED 1 |
|
|
#define AWT_FRAME_STATE_MAXIMIZED_HORIZ 2 |
|
|
#define AWT_FRAME_STATE_MAXIMIZED_VERT 4 |
|
|
#define AWT_FRAME_STATE_MAXIMIZED_BOTH 6 |
|
|
|
|
|
#define AWT_STYLE_PLAIN 0 |
|
|
#define AWT_STYLE_BOLD 1 |
|
|
#define AWT_STYLE_ITALIC 2 |
|
|
|
|
|
/* From java.awt.SystemColor */ |
|
|
#define AWT_DESKTOP 0 |
|
|
#define AWT_ACTIVE_CAPTION 1 |
|
|
#define AWT_ACTIVE_CAPTION_TEXT 2 |
|
|
#define AWT_ACTIVE_CAPTION_BORDER 3 |
|
|
#define AWT_INACTIVE_CAPTION 4 |
|
|
#define AWT_INACTIVE_CAPTION_TEXT 5 |
|
|
#define AWT_INACTIVE_CAPTION_BORDER 6 |
|
|
#define AWT_WINDOW 7 |
|
|
#define AWT_WINDOW_BORDER 8 |
|
|
#define AWT_WINDOW_TEXT 9 |
|
|
#define AWT_MENU 10 |
|
|
#define AWT_MENU_TEXT 11 |
|
|
#define AWT_TEXT 12 |
|
|
#define AWT_TEXT_TEXT 13 |
|
|
#define AWT_TEXT_HIGHLIGHT 14 |
|
|
#define AWT_TEXT_HIGHLIGHT_TEXT 15 |
|
|
#define AWT_TEXT_INACTIVE_TEXT 16 |
|
|
#define AWT_CONTROL 17 |
|
|
#define AWT_CONTROL_TEXT 18 |
|
|
#define AWT_CONTROL_HIGHLIGHT 19 |
|
|
#define AWT_CONTROL_LT_HIGHLIGHT 20 |
|
|
#define AWT_CONTROL_SHADOW 21 |
|
|
#define AWT_CONTROL_DK_SHADOW 22 |
|
|
#define AWT_SCROLLBAR 23 |
|
|
#define AWT_INFO 24 |
|
|
#define AWT_INFO_TEXT 25 |
|
|
#define AWT_NUM_COLORS 26 |
|
|
|
|
|
extern jmethodID setBoundsCallbackID; |
|
|
|
|
|
extern jmethodID postActionEventID; |
|
|
extern jmethodID postMenuActionEventID; |
|
|
extern jmethodID postMouseEventID; |
|
|
extern jmethodID postConfigureEventID; |
|
|
extern jmethodID postExposeEventID; |
|
|
extern jmethodID postKeyEventID; |
|
|
extern jmethodID postFocusEventID; |
|
|
extern jmethodID postAdjustmentEventID; |
|
|
extern jmethodID choicePostItemEventID; |
|
|
extern jmethodID postItemEventID; |
|
|
extern jmethodID postListItemEventID; |
|
|
extern jmethodID postTextEventID; |
|
|
extern jmethodID postWindowEventID; |
|
|
|
|
|
extern jmethodID beginNativeRepaintID; |
|
|
extern jmethodID endNativeRepaintID; |
|
|
|
|
|
extern jmethodID initComponentGraphicsID; |
|
|
extern jmethodID initComponentGraphics2DID; |
|
|
extern jmethodID setCursorID; |
|
|
|
|
|
extern jmethodID syncAttrsID; |
|
|
extern jclass gdkColor; |
|
|
extern jmethodID gdkColorID; |
|
|
|
|
|
extern jmethodID postInsetsChangedEventID; |
|
|
extern jmethodID windowGetWidthID; |
|
|
extern jmethodID windowGetHeightID; |
|
|
|
|
|
JNIEnv *gdk_env(void); |
|
|
|
|
|
extern double dpi_conversion_factor; |
|
|
|
|
|
extern GtkWindowGroup *global_gtk_window_group; |
|
|
|
|
|
void awt_event_handler (GdkEvent *event); |
|
|
|
|
|
gboolean pre_event_handler (GtkWidget *widget, |
|
|
GdkEvent *event, |
|
|
jobject peer); |
|
|
|
|
|
void connect_awt_hook (JNIEnv *env, jobject peer_obj, int nwindows, ...); |
|
|
void connect_awt_hook_cb (GtkWidget *widget, jobject peer); |
|
|
|
|
|
void set_visible (GtkWidget *widget, jboolean visible); |
|
|
void set_parent (GtkWidget *widget, GtkContainer *parent); |
|
138 |
|
|
139 |
jint keyevent_state_to_awt_mods (GdkEvent *event); |
JNIEnv *cp_gtk_gdk_env(void); |
140 |
|
|
141 |
guint awt_keycode_to_keysym (jint keyCode, jint keyLocation); |
/* Global variables */ |
142 |
|
extern double cp_gtk_dpi_conversion_factor; |
143 |
struct item_event_hook_info |
extern GtkWindowGroup *cp_gtk_global_window_group; |
|
{ |
|
|
jobject peer_obj; |
|
|
const char *label; |
|
|
}; |
|
144 |
|
|
145 |
/* Union used for type punning. */ |
/* Union used for type punning. */ |
146 |
union widget_union |
union widget_union |
149 |
GtkWidget **widget; |
GtkWidget **widget; |
150 |
}; |
}; |
151 |
|
|
152 |
|
/* Keycode helpers */ |
153 |
|
guint cp_gtk_awt_keycode_to_keysym (jint keyCode, jint keyLocation); |
154 |
|
|
155 |
|
/* Image helpers */ |
156 |
|
GdkPixbuf *cp_gtk_image_get_pixbuf (JNIEnv *env, jobject obj); |
157 |
|
GdkPixmap *cp_gtk_image_get_pixmap (JNIEnv *env, jobject obj); |
158 |
|
jboolean cp_gtk_image_is_offscreen (JNIEnv *env, jobject obj); |
159 |
|
|
160 |
/* JNI initialization functions */ |
/* JNI initialization functions */ |
161 |
void classpath_gtk_textcomponent_init_jni (void); |
#if GTK_CAIRO |
162 |
|
void cp_gtk_graphics2d_init_jni (void); |
163 |
|
#endif |
164 |
|
void cp_gtk_graphics_init_jni (void); |
165 |
|
void cp_gtk_button_init_jni (void); |
166 |
|
void cp_gtk_checkbox_init_jni (void); |
167 |
|
void cp_gtk_choice_init_jni (void); |
168 |
|
void cp_gtk_component_init_jni (void); |
169 |
|
void cp_gtk_list_init_jni (void); |
170 |
|
void cp_gtk_menuitem_init_jni (void); |
171 |
|
void cp_gtk_scrollbar_init_jni (void); |
172 |
|
void cp_gtk_textcomponent_init_jni (void); |
173 |
|
void cp_gtk_window_init_jni (void); |
174 |
|
|
175 |
/* Signal connection convience functions */ |
/* Signal connection convience functions */ |
176 |
void classpath_gtk_component_connect_signals (GObject *ptr, jobject *gref); |
void cp_gtk_component_connect_expose_signals (GObject *ptr, jobject *gref); |
177 |
void classpath_gtk_component_connect_nonfocus_signals (GObject *ptr, jobject *gref); |
void cp_gtk_component_connect_focus_signals (GObject *ptr, jobject *gref); |
178 |
void classpath_gtk_textcomponent_connect_signals (GObject *ptr, jobject *gref); |
void cp_gtk_component_connect_mouse_signals (GObject *ptr, jobject *gref); |
179 |
|
void cp_gtk_component_connect_signals (GObject *ptr, jobject *gref); |
180 |
/* GtkImage functions used by other gtk peer native routines */ |
void cp_gtk_textcomponent_connect_signals (GObject *ptr, jobject *gref); |
181 |
GdkPixbuf *gnu_java_awt_peer_gtk_GtkImage_getPixbuf(JNIEnv *env, jobject obj); |
|
182 |
GdkPixmap *gnu_java_awt_peer_gtk_GtkImage_getPixmap(JNIEnv *env, jobject obj); |
/* Debugging */ |
183 |
jboolean gnu_java_awt_peer_gtk_GtkImage_isOffScreen(JNIEnv *env, jobject obj); |
void cp_gtk_print_current_thread (void); |
184 |
|
|
185 |
#define DEBUG_LOCKING 0 |
#define DEBUG_LOCKING 0 |
186 |
|
|
187 |
#if DEBUG_LOCKING |
#if DEBUG_LOCKING |
188 |
#define gdk_threads_enter() \ |
#define gdk_threads_enter() \ |
189 |
{ \ |
{ \ |
190 |
g_print ("lock: %s, %d\n", __FILE__, __LINE__); \ |
g_print ("locking: %s, %d\n", __FILE__, __LINE__); \ |
191 |
gdk_threads_enter (); \ |
cp_gtk_print_current_thread (); \ |
192 |
|
gdk_threads_enter (); \ |
193 |
|
g_print ("locked: %s, %d\n", __FILE__, __LINE__); \ |
194 |
|
cp_gtk_print_current_thread (); \ |
195 |
} |
} |
196 |
#define gdk_threads_leave() \ |
#define gdk_threads_leave() \ |
197 |
{ \ |
{ \ |
198 |
g_print ("unlock: %s, %d\n", __FILE__, __LINE__); \ |
g_print ("unlocking: %s, %d\n", __FILE__, __LINE__); \ |
199 |
gdk_threads_leave (); \ |
cp_gtk_print_current_thread (); \ |
200 |
|
gdk_threads_leave (); \ |
201 |
|
g_print ("unlocked: %s, %d\n", __FILE__, __LINE__); \ |
202 |
|
cp_gtk_print_current_thread (); \ |
203 |
} |
} |
204 |
#endif |
#endif |
205 |
|
|