Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/src/solaris/native/sun/awt/gtk_interface.h
32287 views
1
/*
2
* Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation. Oracle designates this
8
* particular file as subject to the "Classpath" exception as provided
9
* by Oracle in the LICENSE file that accompanied this code.
10
*
11
* This code is distributed in the hope that it will be useful, but WITHOUT
12
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14
* version 2 for more details (a copy is included in the LICENSE file that
15
* accompanied this code).
16
*
17
* You should have received a copy of the GNU General Public License version
18
* 2 along with this work; if not, write to the Free Software Foundation,
19
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20
*
21
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22
* or visit www.oracle.com if you need additional information or have any
23
* questions.
24
*/
25
#ifndef _GTK_INTERFACE_H
26
#define _GTK_INTERFACE_H
27
28
#include <X11/X.h>
29
#include <jni.h>
30
31
#ifndef FALSE
32
#define FALSE (0)
33
#define TRUE (!FALSE)
34
#endif
35
36
#define GTHREAD_LIB_VERSIONED VERSIONED_JNI_LIB_NAME("gthread-2.0", "0")
37
#define GTHREAD_LIB JNI_LIB_NAME("gthread-2.0")
38
39
#define _G_TYPE_CIC(ip, gt, ct) ((ct*) ip)
40
#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type) \
41
(_G_TYPE_CIC ((instance), (g_type), c_type))
42
#define GTK_TYPE_FILE_CHOOSER (fp_gtk_file_chooser_get_type ())
43
#define GTK_FILE_CHOOSER(obj) \
44
(G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_FILE_CHOOSER, GtkFileChooser))
45
#define G_CALLBACK(f) ((GCallback) (f))
46
#define G_TYPE_FUNDAMENTAL_SHIFT (2)
47
#define G_TYPE_MAKE_FUNDAMENTAL(x) ((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
48
#define G_TYPE_OBJECT G_TYPE_MAKE_FUNDAMENTAL (20)
49
#define GTK_STOCK_CANCEL "gtk-cancel"
50
#define GTK_STOCK_SAVE "gtk-save"
51
#define GTK_STOCK_OPEN "gtk-open"
52
#define GDK_CURRENT_TIME 0L
53
54
#define G_TYPE_INVALID G_TYPE_MAKE_FUNDAMENTAL (0)
55
#define G_TYPE_NONE G_TYPE_MAKE_FUNDAMENTAL (1)
56
#define G_TYPE_INTERFACE G_TYPE_MAKE_FUNDAMENTAL (2)
57
#define G_TYPE_CHAR G_TYPE_MAKE_FUNDAMENTAL (3)
58
#define G_TYPE_UCHAR G_TYPE_MAKE_FUNDAMENTAL (4)
59
#define G_TYPE_BOOLEAN G_TYPE_MAKE_FUNDAMENTAL (5)
60
#define G_TYPE_INT G_TYPE_MAKE_FUNDAMENTAL (6)
61
#define G_TYPE_UINT G_TYPE_MAKE_FUNDAMENTAL (7)
62
#define G_TYPE_LONG G_TYPE_MAKE_FUNDAMENTAL (8)
63
#define G_TYPE_ULONG G_TYPE_MAKE_FUNDAMENTAL (9)
64
#define G_TYPE_INT64 G_TYPE_MAKE_FUNDAMENTAL (10)
65
#define G_TYPE_UINT64 G_TYPE_MAKE_FUNDAMENTAL (11)
66
#define G_TYPE_ENUM G_TYPE_MAKE_FUNDAMENTAL (12)
67
#define G_TYPE_FLAGS G_TYPE_MAKE_FUNDAMENTAL (13)
68
#define G_TYPE_FLOAT G_TYPE_MAKE_FUNDAMENTAL (14)
69
#define G_TYPE_DOUBLE G_TYPE_MAKE_FUNDAMENTAL (15)
70
#define G_TYPE_STRING G_TYPE_MAKE_FUNDAMENTAL (16)
71
#define G_TYPE_POINTER G_TYPE_MAKE_FUNDAMENTAL (17)
72
#define G_TYPE_BOXED G_TYPE_MAKE_FUNDAMENTAL (18)
73
#define G_TYPE_PARAM G_TYPE_MAKE_FUNDAMENTAL (19)
74
#define G_TYPE_OBJECT G_TYPE_MAKE_FUNDAMENTAL (20)
75
76
#define GTK_TYPE_BORDER ((*fp_gtk_border_get_type)())
77
78
#define G_TYPE_FUNDAMENTAL_SHIFT (2)
79
#define G_TYPE_MAKE_FUNDAMENTAL(x) ((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
80
81
#ifndef MIN
82
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
83
#endif
84
85
#define CONV_BUFFER_SIZE 128
86
#define NO_SYMBOL_EXCEPTION 1
87
88
/* basic types */
89
typedef char gchar;
90
typedef short gshort;
91
typedef int gint;
92
typedef long glong;
93
typedef float gfloat;
94
typedef double gdouble;
95
typedef void* gpointer;
96
typedef gint gboolean;
97
typedef signed char gint8;
98
typedef signed short gint16;
99
typedef signed int gint32;
100
typedef unsigned char guchar;
101
typedef unsigned char guint8;
102
typedef unsigned short gushort;
103
typedef unsigned short guint16;
104
typedef unsigned int guint;
105
typedef unsigned int guint32;
106
typedef unsigned int gsize;
107
typedef unsigned long gulong;
108
typedef signed long long gint64;
109
typedef unsigned long long guint64;
110
typedef gulong GType;
111
112
typedef struct _GList GList;
113
struct _GList
114
{
115
gpointer data;
116
GList *next;
117
GList *prev;
118
};
119
120
typedef struct _GSList GSList;
121
struct _GSList {
122
gpointer data;
123
GSList *next;
124
};
125
126
typedef enum {
127
BUTTON, /* GtkButton */
128
CHECK_BOX, /* GtkCheckButton */
129
CHECK_BOX_MENU_ITEM, /* GtkCheckMenuItem */
130
COLOR_CHOOSER, /* GtkColorSelectionDialog */
131
COMBO_BOX, /* GtkComboBox */
132
COMBO_BOX_ARROW_BUTTON, /* GtkComboBoxEntry */
133
COMBO_BOX_TEXT_FIELD, /* GtkComboBoxEntry */
134
DESKTOP_ICON, /* GtkLabel */
135
DESKTOP_PANE, /* GtkContainer */
136
EDITOR_PANE, /* GtkTextView */
137
FORMATTED_TEXT_FIELD, /* GtkEntry */
138
HANDLE_BOX, /* GtkHandleBox */
139
HPROGRESS_BAR, /* GtkProgressBar */
140
HSCROLL_BAR, /* GtkHScrollbar */
141
HSCROLL_BAR_BUTTON_LEFT, /* GtkHScrollbar */
142
HSCROLL_BAR_BUTTON_RIGHT, /* GtkHScrollbar */
143
HSCROLL_BAR_TRACK, /* GtkHScrollbar */
144
HSCROLL_BAR_THUMB, /* GtkHScrollbar */
145
HSEPARATOR, /* GtkHSeparator */
146
HSLIDER, /* GtkHScale */
147
HSLIDER_TRACK, /* GtkHScale */
148
HSLIDER_THUMB, /* GtkHScale */
149
HSPLIT_PANE_DIVIDER, /* GtkHPaned */
150
INTERNAL_FRAME, /* GtkWindow */
151
INTERNAL_FRAME_TITLE_PANE, /* GtkLabel */
152
IMAGE, /* GtkImage */
153
LABEL, /* GtkLabel */
154
LIST, /* GtkTreeView */
155
MENU, /* GtkMenu */
156
MENU_BAR, /* GtkMenuBar */
157
MENU_ITEM, /* GtkMenuItem */
158
MENU_ITEM_ACCELERATOR, /* GtkLabel */
159
OPTION_PANE, /* GtkMessageDialog */
160
PANEL, /* GtkContainer */
161
PASSWORD_FIELD, /* GtkEntry */
162
POPUP_MENU, /* GtkMenu */
163
POPUP_MENU_SEPARATOR, /* GtkSeparatorMenuItem */
164
RADIO_BUTTON, /* GtkRadioButton */
165
RADIO_BUTTON_MENU_ITEM, /* GtkRadioMenuItem */
166
ROOT_PANE, /* GtkContainer */
167
SCROLL_PANE, /* GtkScrolledWindow */
168
SPINNER, /* GtkSpinButton */
169
SPINNER_ARROW_BUTTON, /* GtkSpinButton */
170
SPINNER_TEXT_FIELD, /* GtkSpinButton */
171
SPLIT_PANE, /* GtkPaned */
172
TABBED_PANE, /* GtkNotebook */
173
TABBED_PANE_TAB_AREA, /* GtkNotebook */
174
TABBED_PANE_CONTENT, /* GtkNotebook */
175
TABBED_PANE_TAB, /* GtkNotebook */
176
TABLE, /* GtkTreeView */
177
TABLE_HEADER, /* GtkButton */
178
TEXT_AREA, /* GtkTextView */
179
TEXT_FIELD, /* GtkEntry */
180
TEXT_PANE, /* GtkTextView */
181
TITLED_BORDER, /* GtkFrame */
182
TOGGLE_BUTTON, /* GtkToggleButton */
183
TOOL_BAR, /* GtkToolbar */
184
TOOL_BAR_DRAG_WINDOW, /* GtkToolbar */
185
TOOL_BAR_SEPARATOR, /* GtkSeparatorToolItem */
186
TOOL_TIP, /* GtkWindow */
187
TREE, /* GtkTreeView */
188
TREE_CELL, /* GtkTreeView */
189
VIEWPORT, /* GtkViewport */
190
VPROGRESS_BAR, /* GtkProgressBar */
191
VSCROLL_BAR, /* GtkVScrollbar */
192
VSCROLL_BAR_BUTTON_UP, /* GtkVScrollbar */
193
VSCROLL_BAR_BUTTON_DOWN, /* GtkVScrollbar */
194
VSCROLL_BAR_TRACK, /* GtkVScrollbar */
195
VSCROLL_BAR_THUMB, /* GtkVScrollbar */
196
VSEPARATOR, /* GtkVSeparator */
197
VSLIDER, /* GtkVScale */
198
VSLIDER_TRACK, /* GtkVScale */
199
VSLIDER_THUMB, /* GtkVScale */
200
VSPLIT_PANE_DIVIDER, /* GtkVPaned */
201
WIDGET_TYPE_SIZE
202
} WidgetType;
203
204
typedef enum
205
{
206
_GTK_ARROW_TYPE,
207
_GTK_BUTTON_TYPE,
208
_GTK_CHECK_BUTTON_TYPE,
209
_GTK_CHECK_MENU_ITEM_TYPE,
210
_GTK_COLOR_SELECTION_DIALOG_TYPE,
211
_GTK_COMBO_BOX_TYPE,
212
_GTK_COMBO_BOX_ARROW_BUTTON_TYPE,
213
_GTK_COMBO_BOX_TEXT_FIELD_TYPE,
214
_GTK_CONTAINER_TYPE,
215
_GTK_ENTRY_TYPE,
216
_GTK_FRAME_TYPE,
217
_GTK_HANDLE_BOX_TYPE,
218
_GTK_HPANED_TYPE,
219
_GTK_HPROGRESS_BAR_TYPE,
220
_GTK_HSCALE_TYPE,
221
_GTK_HSCROLLBAR_TYPE,
222
_GTK_HSEPARATOR_TYPE,
223
_GTK_IMAGE_TYPE,
224
_GTK_MENU_TYPE,
225
_GTK_MENU_BAR_TYPE,
226
_GTK_MENU_ITEM_TYPE,
227
_GTK_NOTEBOOK_TYPE,
228
_GTK_LABEL_TYPE,
229
_GTK_RADIO_BUTTON_TYPE,
230
_GTK_RADIO_MENU_ITEM_TYPE,
231
_GTK_SCROLLED_WINDOW_TYPE,
232
_GTK_SEPARATOR_MENU_ITEM_TYPE,
233
_GTK_SEPARATOR_TOOL_ITEM_TYPE,
234
_GTK_SPIN_BUTTON_TYPE,
235
_GTK_TEXT_VIEW_TYPE,
236
_GTK_TOGGLE_BUTTON_TYPE,
237
_GTK_TOOLBAR_TYPE,
238
_GTK_TOOLTIP_TYPE,
239
_GTK_TREE_VIEW_TYPE,
240
_GTK_VIEWPORT_TYPE,
241
_GTK_VPANED_TYPE,
242
_GTK_VPROGRESS_BAR_TYPE,
243
_GTK_VSCALE_TYPE,
244
_GTK_VSCROLLBAR_TYPE,
245
_GTK_VSEPARATOR_TYPE,
246
_GTK_WINDOW_TYPE,
247
_GTK_DIALOG_TYPE,
248
_GTK_WIDGET_TYPE_SIZE
249
} GtkWidgetType;
250
251
typedef enum
252
{
253
GTK_STATE_NORMAL,
254
GTK_STATE_ACTIVE,
255
GTK_STATE_PRELIGHT,
256
GTK_STATE_SELECTED,
257
GTK_STATE_INSENSITIVE,
258
GTK_STATE_INCONSISTENT,
259
GTK_STATE_FOCUSED
260
} GtkStateType;
261
262
typedef enum
263
{
264
GTK_SHADOW_NONE,
265
GTK_SHADOW_IN,
266
GTK_SHADOW_OUT,
267
GTK_SHADOW_ETCHED_IN,
268
GTK_SHADOW_ETCHED_OUT
269
} GtkShadowType;
270
271
typedef enum
272
{
273
GTK_EXPANDER_COLLAPSED,
274
GTK_EXPANDER_SEMI_COLLAPSED,
275
GTK_EXPANDER_SEMI_EXPANDED,
276
GTK_EXPANDER_EXPANDED
277
} GtkExpanderStyle;
278
279
typedef enum
280
{
281
GTK_ICON_SIZE_INVALID,
282
GTK_ICON_SIZE_MENU,
283
GTK_ICON_SIZE_SMALL_TOOLBAR,
284
GTK_ICON_SIZE_LARGE_TOOLBAR,
285
GTK_ICON_SIZE_BUTTON,
286
GTK_ICON_SIZE_DND,
287
GTK_ICON_SIZE_DIALOG
288
} GtkIconSize;
289
290
typedef enum
291
{
292
GTK_ORIENTATION_HORIZONTAL,
293
GTK_ORIENTATION_VERTICAL
294
} GtkOrientation;
295
296
typedef enum
297
{
298
FOREGROUND,
299
BACKGROUND,
300
TEXT_FOREGROUND,
301
TEXT_BACKGROUND,
302
FOCUS,
303
LIGHT,
304
DARK,
305
MID,
306
BLACK,
307
WHITE
308
} ColorType;
309
310
typedef enum
311
{
312
GTK_FONT_NAME,
313
GTK_ICON_SIZES,
314
GTK_CURSOR_BLINK,
315
GTK_CURSOR_BLINK_TIME
316
} Setting;
317
318
typedef enum
319
{
320
GTK_ARROW_UP,
321
GTK_ARROW_DOWN,
322
GTK_ARROW_LEFT,
323
GTK_ARROW_RIGHT,
324
GTK_ARROW_NONE
325
} GtkArrowType;
326
327
typedef enum
328
{
329
GTK_TEXT_DIR_NONE,
330
GTK_TEXT_DIR_LTR,
331
GTK_TEXT_DIR_RTL
332
} GtkTextDirection;
333
334
typedef enum
335
{
336
GTK_POS_LEFT,
337
GTK_POS_RIGHT,
338
GTK_POS_TOP,
339
GTK_POS_BOTTOM
340
} GtkPositionType;
341
342
/* SynthConstants */
343
static const gint ENABLED = 1 << 0;
344
static const gint MOUSE_OVER = 1 << 1;
345
static const gint PRESSED = 1 << 2;
346
static const gint DISABLED = 1 << 3;
347
static const gint FOCUSED = 1 << 8;
348
static const gint SELECTED = 1 << 9;
349
static const gint DEFAULT = 1 << 10;
350
351
typedef enum
352
{
353
GTK_ANY,
354
GTK_1,
355
GTK_2,
356
GTK_3
357
} GtkVersion;
358
359
//------------------------------
360
361
362
363
typedef enum {
364
GTK_RESPONSE_NONE = -1,
365
GTK_RESPONSE_REJECT = -2,
366
GTK_RESPONSE_ACCEPT = -3,
367
GTK_RESPONSE_DELETE_EVENT = -4,
368
GTK_RESPONSE_OK = -5,
369
GTK_RESPONSE_CANCEL = -6,
370
GTK_RESPONSE_CLOSE = -7,
371
GTK_RESPONSE_YES = -8,
372
GTK_RESPONSE_NO = -9,
373
GTK_RESPONSE_APPLY = -10,
374
GTK_RESPONSE_HELP = -11
375
} GtkResponseType;
376
377
typedef enum {
378
GTK_FILE_CHOOSER_ACTION_OPEN,
379
GTK_FILE_CHOOSER_ACTION_SAVE,
380
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
381
GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER
382
} GtkFileChooserAction;
383
384
typedef enum {
385
GTK_FILE_FILTER_FILENAME = 1 << 0,
386
GTK_FILE_FILTER_URI = 1 << 1,
387
GTK_FILE_FILTER_DISPLAY_NAME = 1 << 2,
388
GTK_FILE_FILTER_MIME_TYPE = 1 << 3
389
} GtkFileFilterFlags;
390
391
typedef enum {
392
GDK_COLORSPACE_RGB
393
} GdkColorspace;
394
395
typedef enum {
396
GDK_INTERP_NEAREST,
397
GDK_INTERP_TILES,
398
GDK_INTERP_BILINEAR,
399
GDK_INTERP_HYPER
400
} GdkInterpType;
401
402
typedef enum {
403
G_CONNECT_AFTER = 1 << 0, G_CONNECT_SWAPPED = 1 << 1
404
} GConnectFlags;
405
//------------------------------
406
407
408
typedef void GError;
409
typedef void GdkScreen;
410
typedef void GtkWindow;
411
typedef void GdkWindow;
412
typedef void GClosure;
413
typedef void GtkFileChooser;
414
typedef void GtkFileFilter;
415
typedef struct {
416
GtkFileFilterFlags contains;
417
const gchar *filename;
418
const gchar *uri;
419
const gchar *display_name;
420
const gchar *mime_type;
421
} GtkFileFilterInfo;
422
typedef gboolean (*GtkFileFilterFunc)(const GtkFileFilterInfo *filter_info,
423
gpointer data);
424
typedef void (*GClosureNotify)(gpointer data, GClosure *closure);
425
typedef void (*GDestroyNotify)(gpointer data);
426
typedef void (*GCallback)(void);
427
428
429
typedef struct GtkApi {
430
int version;
431
gboolean (*show_uri_load)(JNIEnv *env);
432
gboolean (*unload)();
433
void (*flush_event_loop)();
434
gchar* (*gtk_check_version)(guint required_major, guint required_minor,
435
guint required_micro);
436
jobject (*get_setting)(JNIEnv *env, Setting property);
437
438
void (*paint_arrow)(WidgetType widget_type, GtkStateType state_type,
439
GtkShadowType shadow_type, const gchar *detail,
440
gint x, gint y, gint width, gint height,
441
GtkArrowType arrow_type, gboolean fill);
442
void (*paint_box)(WidgetType widget_type, GtkStateType state_type,
443
GtkShadowType shadow_type, const gchar *detail,
444
gint x, gint y, gint width, gint height,
445
gint synth_state, GtkTextDirection dir);
446
void (*paint_box_gap)(WidgetType widget_type, GtkStateType state_type,
447
GtkShadowType shadow_type, const gchar *detail,
448
gint x, gint y, gint width, gint height,
449
GtkPositionType gap_side, gint gap_x, gint gap_width);
450
void (*paint_expander)(WidgetType widget_type, GtkStateType state_type,
451
const gchar *detail, gint x, gint y, gint width, gint height,
452
GtkExpanderStyle expander_style);
453
void (*paint_extension)(WidgetType widget_type, GtkStateType state_type,
454
GtkShadowType shadow_type, const gchar *detail,
455
gint x, gint y, gint width, gint height, GtkPositionType gap_side);
456
void (*paint_flat_box)(WidgetType widget_type, GtkStateType state_type,
457
GtkShadowType shadow_type, const gchar *detail,
458
gint x, gint y, gint width, gint height, gboolean has_focus);
459
void (*paint_focus)(WidgetType widget_type, GtkStateType state_type,
460
const char *detail, gint x, gint y, gint width, gint height);
461
void (*paint_handle)(WidgetType widget_type, GtkStateType state_type,
462
GtkShadowType shadow_type, const gchar *detail,
463
gint x, gint y, gint width, gint height, GtkOrientation orientation);
464
void (*paint_hline)(WidgetType widget_type, GtkStateType state_type,
465
const gchar *detail, gint x, gint y, gint width, gint height);
466
void (*paint_vline)(WidgetType widget_type, GtkStateType state_type,
467
const gchar *detail, gint x, gint y, gint width, gint height);
468
void (*paint_option)(WidgetType widget_type, gint synth_state,
469
const gchar *detail, gint x, gint y, gint width, gint height);
470
void (*paint_shadow)(WidgetType widget_type, GtkStateType state_type,
471
GtkShadowType shadow_type, const gchar *detail,
472
gint x, gint y, gint width, gint height,
473
gint synth_state, GtkTextDirection dir);
474
void (*paint_slider)(WidgetType widget_type, GtkStateType state_type,
475
GtkShadowType shadow_type, const gchar *detail,
476
gint x, gint y, gint width, gint height, GtkOrientation orientation,
477
gboolean has_focus);
478
void (*paint_background)(WidgetType widget_type, GtkStateType state_type,
479
gint x, gint y, gint width, gint height);
480
void (*paint_check)(WidgetType widget_type, gint synth_state,
481
const gchar *detail, gint x, gint y, gint width, gint height);
482
void (*set_range_value)(WidgetType widget_type, jdouble value,
483
jdouble min, jdouble max, jdouble visible);
484
485
void (*init_painting)(JNIEnv *env, gint w, gint h);
486
gint (*copy_image)(gint *dest, gint width, gint height);
487
488
gint (*get_xthickness)(JNIEnv *env, WidgetType widget_type);
489
gint (*get_ythickness)(JNIEnv *env, WidgetType widget_type);
490
gint (*get_color_for_state)(JNIEnv *env, WidgetType widget_type,
491
GtkStateType state_type, ColorType color_type);
492
jobject (*get_class_value)(JNIEnv *env, WidgetType widget_type,
493
const char* key);
494
495
jstring (*get_pango_font_name)(JNIEnv *env, WidgetType widget_type);
496
jboolean (*get_icon_data)(JNIEnv *env, gint widget_type,
497
const gchar *stock_id, GtkIconSize size,
498
GtkTextDirection direction, const char *detail,
499
jmethodID icon_upcall_method, jobject this);
500
jboolean (*get_file_icon_data)(JNIEnv *env, const char *filename,
501
GError **error, jmethodID icon_upcall_method, jobject this);
502
void (*gdk_threads_enter)(void);
503
void (*gdk_threads_leave)(void);
504
gboolean (*gtk_show_uri)(GdkScreen *screen, const gchar *uri,
505
guint32 timestamp, GError **error);
506
void (*g_free)(gpointer mem);
507
508
509
gchar* (*gtk_file_chooser_get_filename)(GtkFileChooser *chooser);
510
void (*gtk_widget_hide)(void* widget);
511
void (*gtk_main_quit)(void);
512
void* (*gtk_file_chooser_dialog_new)(const gchar *title,
513
GtkWindow *parent, GtkFileChooserAction action,
514
const gchar *first_button_text, ...);
515
gboolean (*gtk_file_chooser_set_current_folder)(GtkFileChooser *chooser,
516
const gchar *filename);
517
gboolean (*gtk_file_chooser_set_filename)(GtkFileChooser *chooser,
518
const char *filename);
519
void (*gtk_file_chooser_set_current_name)(GtkFileChooser *chooser,
520
const gchar *name);
521
void (*gtk_file_filter_add_custom)(GtkFileFilter *filter,
522
GtkFileFilterFlags needed, GtkFileFilterFunc func, gpointer data,
523
GDestroyNotify notify);
524
void (*gtk_file_chooser_set_filter)(GtkFileChooser *chooser,
525
GtkFileFilter *filter);
526
GType (*gtk_file_chooser_get_type)(void);
527
GtkFileFilter* (*gtk_file_filter_new)(void);
528
void (*gtk_file_chooser_set_do_overwrite_confirmation)(
529
GtkFileChooser *chooser, gboolean do_overwrite_confirmation);
530
void (*gtk_file_chooser_set_select_multiple)(
531
GtkFileChooser *chooser, gboolean select_multiple);
532
gchar* (*gtk_file_chooser_get_current_folder)(GtkFileChooser *chooser);
533
GSList* (*gtk_file_chooser_get_filenames)(GtkFileChooser *chooser);
534
guint (*gtk_g_slist_length)(GSList *list);
535
gulong (*g_signal_connect_data)(gpointer instance,
536
const gchar *detailed_signal, GCallback c_handler, gpointer data,
537
GClosureNotify destroy_data, GConnectFlags connect_flags);
538
void (*gtk_widget_show)(void *widget);
539
void (*gtk_main)(void);
540
guint (*gtk_main_level)(void);
541
gchar* (*g_path_get_dirname) (const gchar *file_name);
542
XID (*gdk_x11_drawable_get_xid) (void *drawable);
543
void (*gtk_widget_destroy)(void *widget);
544
void (*gtk_window_present)(void *window);
545
void (*gtk_window_move)(void *window, gint x, gint y);
546
void (*gtk_window_resize)(void *window, gint width, gint height);
547
GdkWindow *(*get_window)(void *widget);
548
549
void (*g_object_unref)(gpointer object);
550
GList* (*g_list_append) (GList *list, gpointer data);
551
void (*g_list_free) (GList *list);
552
void (*g_list_free_full) (GList *list, GDestroyNotify free_func);
553
} GtkApi;
554
555
gboolean gtk_load(JNIEnv *env, GtkVersion version, gboolean verbose);
556
gboolean gtk_check_version(GtkVersion version);
557
558
typedef struct _GThreadFunctions GThreadFunctions;
559
static gboolean (*fp_g_thread_get_initialized)(void);
560
static void (*fp_g_thread_init)(GThreadFunctions *vtable);
561
static void (*fp_gdk_threads_init)(void);
562
static void (*fp_gdk_threads_enter)(void);
563
static void (*fp_gdk_threads_leave)(void);
564
565
extern GtkApi* gtk;
566
567
#endif /* !_GTK_INTERFACE_H */
568
569