1 /* gtkpeer.h -- Some global variables and #defines
2 Copyright (C) 1998, 1999 Free Software Foundation, Inc.
4 This file is part of GNU Classpath.
6 GNU Classpath is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
11 GNU Classpath is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with GNU Classpath; see the file COPYING. If not, write to the
18 Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
21 Linking this library statically or dynamically with other modules is
22 making a combined work based on this library. Thus, the terms and
23 conditions of the GNU General Public License cover the whole
26 As a special exception, the copyright holders of this library give you
27 permission to link this library with independent modules to produce an
28 executable, regardless of the license terms of these independent
29 modules, and to copy and distribute the resulting executable under
30 terms of your choice, provided that you also meet, for each linked
31 independent module, the terms and conditions of the license of that
32 module. An independent module is a module which is not derived from
33 or based on this library. If you modify this library, you may extend
34 this exception to your version of the library, but you are not
35 obligated to do so. If you do not wish to do so, delete this
36 exception statement from your version. */
44 #include "native_state.h"
48 #define RC_FILE ".classpath-gtkrc"
58 #define __attribute__(x) /* nothing */
63 extern struct state_table
*native_state_table
;
64 extern struct state_table
*native_global_ref_table
;
66 #define NSA_INIT(env, clazz) \
67 do {native_state_table = init_state_table (env, clazz); \
68 native_global_ref_table = init_state_table (env, clazz);} while (0)
70 #define NSA_GET_PTR(env, obj) \
71 get_state (env, obj, native_state_table)
73 #define NSA_SET_PTR(env, obj, ptr) \
74 set_state (env, obj, native_state_table, (void *)ptr)
76 #define NSA_DEL_PTR(env, obj) \
77 remove_state_slot (env, obj, native_state_table)
79 #define NSA_GET_GLOBAL_REF(env, obj) \
80 get_state (env, obj, native_global_ref_table)
82 #define NSA_SET_GLOBAL_REF(env, obj) \
83 do {jobject *globRefPtr; \
84 globRefPtr = (jobject *) malloc (sizeof (jobject)); \
85 *globRefPtr = (*env)->NewGlobalRef (env, obj); \
86 set_state (env, obj, native_global_ref_table, (void *)globRefPtr);} while (0)
88 #define NSA_DEL_GLOBAL_REF(env, obj) \
89 do {jobject *globRefPtr = get_state (env, obj, native_global_ref_table); \
90 remove_state_slot (env, obj, native_global_ref_table); \
91 (*env)->DeleteGlobalRef (env, *globRefPtr); \
92 free (globRefPtr);} while (0)
98 GdkDrawable
*drawable
;
101 jint x_offset
, y_offset
;
104 #define AWT_DEFAULT_CURSOR 0
105 #define AWT_CROSSHAIR_CURSOR 1
106 #define AWT_TEXT_CURSOR 2
107 #define AWT_WAIT_CURSOR 3
108 #define AWT_SW_RESIZE_CURSOR 4
109 #define AWT_SE_RESIZE_CURSOR 5
110 #define AWT_NW_RESIZE_CURSOR 6
111 #define AWT_NE_RESIZE_CURSOR 7
112 #define AWT_N_RESIZE_CURSOR 8
113 #define AWT_S_RESIZE_CURSOR 9
114 #define AWT_W_RESIZE_CURSOR 10
115 #define AWT_E_RESIZE_CURSOR 11
116 #define AWT_HAND_CURSOR 12
117 #define AWT_MOVE_CURSOR 13
119 #define SYNTHETIC_EVENT_MASK (1 << 10)
121 #define AWT_SHIFT_MASK (1 << 0)
122 #define AWT_CTRL_MASK (1 << 1)
123 #define AWT_META_MASK (1 << 2)
124 #define AWT_ALT_MASK (1 << 3)
126 #define AWT_BUTTON1_MASK (1 << 4)
127 #define AWT_BUTTON2_MASK AWT_ALT_MASK
128 #define AWT_BUTTON3_MASK AWT_META_MASK
130 #define MULTI_CLICK_TIME 250
131 /* as opposed to a MULTI_PASS_TIME :) */
133 #define AWT_MOUSE_CLICKED 500
134 #define AWT_MOUSE_PRESSED 501
135 #define AWT_MOUSE_RELEASED 502
136 #define AWT_MOUSE_MOVED 503
137 #define AWT_MOUSE_ENTERED 504
138 #define AWT_MOUSE_EXITED 505
139 #define AWT_MOUSE_DRAGGED 506
141 #define AWT_ADJUSTMENT_UNIT_INCREMENT 1
142 #define AWT_ADJUSTMENT_UNIT_DECREMENT 2
143 #define AWT_ADJUSTMENT_BLOCK_DECREMENT 3
144 #define AWT_ADJUSTMENT_BLOCK_INCREMENT 4
145 #define AWT_ADJUSTMENT_TRACK 5
147 #define AWT_SCROLLPANE_SCROLLBARS_AS_NEEDED 0
148 #define AWT_SCROLLPANE_SCROLLBARS_ALWAYS 1
149 #define AWT_SCROLLPANE_SCROLLBARS_NEVER 2
151 #define AWT_LABEL_LEFT 0
152 #define AWT_LABEL_CENTER 1
153 #define AWT_LABEL_RIGHT 2
155 #define AWT_TEXTAREA_SCROLLBARS_BOTH 0
156 #define AWT_TEXTAREA_SCROLLBARS_VERTICAL_ONLY 1
157 #define AWT_TEXTAREA_SCROLLBARS_HORIZONTAL_ONLY 2
159 #define AWT_ITEM_SELECTED 1
160 #define AWT_ITEM_DESELECTED 2
162 #define AWT_KEY_TYPED 400
163 #define AWT_KEY_PRESSED 401
164 #define AWT_KEY_RELEASED 402
166 #define AWT_KEY_CHAR_UNDEFINED 0
168 #define AWT_KEY_LOCATION_UNKNOWN 0
169 #define AWT_KEY_LOCATION_STANDARD 1
170 #define AWT_KEY_LOCATION_LEFT 2
171 #define AWT_KEY_LOCATION_RIGHT 3
172 #define AWT_KEY_LOCATION_NUMPAD 4
175 /* This list should be kept in the same order as the VK_ field
176 declarations in KeyEvent.java. */
177 #define VK_ENTER '\n'
178 #define VK_BACK_SPACE '\b'
183 #define VK_CONTROL 17
186 #define VK_CAPS_LOCK 20
189 #define VK_PAGE_UP 33
190 #define VK_PAGE_DOWN 34
199 #define VK_PERIOD '.'
211 #define VK_SEMICOLON ';'
212 #define VK_EQUALS '='
239 #define VK_OPEN_BRACKET '['
240 #define VK_BACK_SLASH '\\'
241 #define VK_CLOSE_BRACKET ']'
242 #define VK_NUMPAD0 96
243 #define VK_NUMPAD1 97
244 #define VK_NUMPAD2 98
245 #define VK_NUMPAD3 99
246 #define VK_NUMPAD4 100
247 #define VK_NUMPAD5 101
248 #define VK_NUMPAD6 102
249 #define VK_NUMPAD7 103
250 #define VK_NUMPAD8 104
251 #define VK_NUMPAD9 105
252 #define VK_MULTIPLY 106
254 #define VK_SEPARATER 108
255 #define VK_SEPARATOR 108
256 #define VK_SUBTRACT 109
257 #define VK_DECIMAL 110
258 #define VK_DIVIDE 111
259 #define VK_DELETE 127
260 #define VK_NUM_LOCK 144
261 #define VK_SCROLL_LOCK 145
286 #define VK_PRINTSCREEN 154
287 #define VK_INSERT 155
290 #define VK_BACK_QUOTE 192
293 #define VK_KP_DOWN 225
294 #define VK_KP_LEFT 226
295 #define VK_KP_RIGHT 227
296 #define VK_DEAD_GRAVE 128
297 #define VK_DEAD_ACUTE 129
298 #define VK_DEAD_CIRCUMFLEX 130
299 #define VK_DEAD_TILDE 131
300 #define VK_DEAD_MACRON 132
301 #define VK_DEAD_BREVE 133
302 #define VK_DEAD_ABOVEDOT 134
303 #define VK_DEAD_DIAERESIS 135
304 #define VK_DEAD_ABOVERING 136
305 #define VK_DEAD_DOUBLEACUTE 137
306 #define VK_DEAD_CARON 138
307 #define VK_DEAD_CEDILLA 139
308 #define VK_DEAD_OGONEK 140
309 #define VK_DEAD_IOTA 141
310 #define VK_DEAD_VOICED_SOUND 142
311 #define VK_DEAD_SEMIVOICED_SOUND 143
312 #define VK_AMPERSAND 150
313 #define VK_ASTERISK 151
314 #define VK_QUOTEDBL 152
316 #define VK_GREATER 160
317 #define VK_BRACELEFT 161
318 #define VK_BRACERIGHT 162
321 #define VK_CIRCUMFLEX 514
322 #define VK_DOLLAR 515
323 #define VK_EURO_SIGN 516
324 #define VK_EXCLAMATION_MARK 517
325 #define VK_INVERTED_EXCLAMATION_MARK 518
326 #define VK_LEFT_PARENTHESIS 519
327 #define VK_NUMBER_SIGN 520
329 #define VK_RIGHT_PARENTHESIS 522
330 #define VK_UNDERSCORE 523
332 #define VK_CONVERT 28
333 #define VK_NONCONVERT 29
335 #define VK_MODECHANGE 31
338 #define VK_ALPHANUMERIC 240
339 #define VK_KATAKANA 241
340 #define VK_HIRAGANA 242
341 #define VK_FULL_WIDTH 243
342 #define VK_HALF_WIDTH 244
343 #define VK_ROMAN_CHARACTERS 245
344 #define VK_ALL_CANDIDATES 256
345 #define VK_PREVIOUS_CANDIDATE 257
346 #define VK_CODE_INPUT 258
347 #define VK_JAPANESE_KATAKANA 259
348 #define VK_JAPANESE_HIRAGANA 260
349 #define VK_JAPANESE_ROMAN 261
350 #define VK_KANA_LOCK 262
351 #define VK_INPUT_METHOD_ON_OFF 263
353 #define VK_COPY 65485
354 #define VK_PASTE 65487
355 #define VK_UNDO 65483
356 #define VK_AGAIN 65481
357 #define VK_FIND 65488
358 #define VK_PROPS 65482
359 #define VK_STOP 65480
360 #define VK_COMPOSE 65312
361 #define VK_ALT_GRAPH 65406
362 #define VK_UNDEFINED 0
364 #define AWT_FOCUS_LOST 1004
365 #define AWT_FOCUS_GAINED 1005
367 #define AWT_WINDOW_OPENED 200
368 #define AWT_WINDOW_CLOSING 201
369 #define AWT_WINDOW_CLOSED 202
370 #define AWT_WINDOW_ICONIFIED 203
371 #define AWT_WINDOW_DEICONIFIED 204
372 #define AWT_WINDOW_ACTIVATED 205
373 #define AWT_WINDOW_DEACTIVATED 206
374 #define AWT_WINDOW_GAINED_FOCUS 207
375 #define AWT_WINDOW_LOST_FOCUS 208
376 #define AWT_WINDOW_STATE_CHANGED 209
378 #define AWT_FRAME_STATE_NORMAL 0
379 #define AWT_FRAME_STATE_ICONIFIED 1
380 #define AWT_FRAME_STATE_MAXIMIZED_HORIZ 2
381 #define AWT_FRAME_STATE_MAXIMIZED_VERT 4
382 #define AWT_FRAME_STATE_MAXIMIZED_BOTH 6
384 #define AWT_STYLE_PLAIN 0
385 #define AWT_STYLE_BOLD 1
386 #define AWT_STYLE_ITALIC 2
388 extern jmethodID setBoundsCallbackID
;
390 extern jmethodID postActionEventID
;
391 extern jmethodID postMenuActionEventID
;
392 extern jmethodID postMouseEventID
;
393 extern jmethodID postConfigureEventID
;
394 extern jmethodID postExposeEventID
;
395 extern jmethodID postKeyEventID
;
396 extern jmethodID postFocusEventID
;
397 extern jmethodID postAdjustmentEventID
;
398 extern jmethodID choicePostItemEventID
;
399 extern jmethodID postItemEventID
;
400 extern jmethodID postListItemEventID
;
401 extern jmethodID postTextEventID
;
402 extern jmethodID postWindowEventID
;
404 extern jmethodID syncAttrsID
;
405 extern jclass gdkColor
;
406 extern jmethodID gdkColorID
;
407 extern JNIEnv
*gdk_env
;
409 extern GtkWindowGroup
*global_gtk_window_group
;
411 void awt_event_handler (GdkEvent
*event
);
413 gboolean
pre_event_handler (GtkWidget
*widget
,
417 void connect_awt_hook (JNIEnv
*env
, jobject peer_obj
, int nwindows
, ...);
419 void set_visible (GtkWidget
*widget
, jboolean visible
);
420 void set_parent (GtkWidget
*widget
, GtkContainer
*parent
);
421 GtkLayout
*find_gtk_layout (GtkWidget
*parent
);
423 jint
keyevent_state_to_awt_mods (GdkEvent
*event
);
425 struct item_event_hook_info
431 #endif /* __GTKPEER_H */