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