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/gtk2_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 _GTK2_INTERFACE_H
26
#define _GTK2_INTERFACE_H
27
28
#include <stdlib.h>
29
#include <jni.h>
30
#include "gtk_interface.h"
31
32
#define GTK_HAS_FOCUS (1 << 12)
33
#define GTK_HAS_DEFAULT (1 << 14)
34
35
typedef enum
36
{
37
GTK_WINDOW_TOPLEVEL,
38
GTK_WINDOW_POPUP
39
} GtkWindowType;
40
41
typedef enum
42
{
43
G_PARAM_READABLE = 1 << 0,
44
G_PARAM_WRITABLE = 1 << 1,
45
G_PARAM_CONSTRUCT = 1 << 2,
46
G_PARAM_CONSTRUCT_ONLY = 1 << 3,
47
G_PARAM_LAX_VALIDATION = 1 << 4,
48
G_PARAM_PRIVATE = 1 << 5
49
} GParamFlags;
50
51
/* We define all structure pointers to be void* */
52
typedef void GMainContext;
53
typedef void GVfs;
54
55
typedef void GdkColormap;
56
typedef void GdkDrawable;
57
typedef void GdkGC;
58
typedef void GdkPixbuf;
59
typedef void GdkPixmap;
60
61
typedef void GtkFixed;
62
typedef void GtkMenuItem;
63
typedef void GtkMenuShell;
64
typedef void GtkWidgetClass;
65
typedef void PangoFontDescription;
66
typedef void GtkSettings;
67
68
/* Some real structures */
69
typedef struct
70
{
71
guint32 pixel;
72
guint16 red;
73
guint16 green;
74
guint16 blue;
75
} GdkColor;
76
77
typedef struct {
78
gint fd;
79
gushort events;
80
gushort revents;
81
} GPollFD;
82
83
typedef struct {
84
gint x;
85
gint y;
86
gint width;
87
gint height;
88
} GdkRectangle;
89
90
typedef struct {
91
gint x;
92
gint y;
93
gint width;
94
gint height;
95
} GtkAllocation;
96
97
typedef struct {
98
gint width;
99
gint height;
100
} GtkRequisition;
101
102
typedef struct {
103
GtkWidgetClass *g_class;
104
} GTypeInstance;
105
106
typedef struct {
107
gint left;
108
gint right;
109
gint top;
110
gint bottom;
111
} GtkBorder;
112
113
/******************************************************
114
* FIXME: it is more safe to include gtk headers for
115
* the precise type definition of GType and other
116
* structures. This is a place where getting rid of gtk
117
* headers may be dangerous.
118
******************************************************/
119
120
typedef struct
121
{
122
GType g_type;
123
124
union {
125
gint v_int;
126
guint v_uint;
127
glong v_long;
128
gulong v_ulong;
129
gint64 v_int64;
130
guint64 v_uint64;
131
gfloat v_float;
132
gdouble v_double;
133
gpointer v_pointer;
134
} data[2];
135
} GValue;
136
137
typedef struct
138
{
139
GTypeInstance g_type_instance;
140
141
gchar *name;
142
GParamFlags flags;
143
GType value_type;
144
GType owner_type;
145
} GParamSpec;
146
147
typedef struct {
148
GTypeInstance g_type_instance;
149
guint ref_count;
150
void *qdata;
151
} GObject;
152
153
typedef struct {
154
GObject parent_instance;
155
guint32 flags;
156
} GtkObject;
157
158
typedef struct
159
{
160
GObject parent_instance;
161
162
GdkColor fg[5];
163
GdkColor bg[5];
164
GdkColor light[5];
165
GdkColor dark[5];
166
GdkColor mid[5];
167
GdkColor text[5];
168
GdkColor base[5];
169
GdkColor text_aa[5]; /* Halfway between text/base */
170
171
GdkColor black;
172
GdkColor white;
173
PangoFontDescription *font_desc;
174
175
gint xthickness;
176
gint ythickness;
177
178
GdkGC *fg_gc[5];
179
GdkGC *bg_gc[5];
180
GdkGC *light_gc[5];
181
GdkGC *dark_gc[5];
182
GdkGC *mid_gc[5];
183
GdkGC *text_gc[5];
184
GdkGC *base_gc[5];
185
GdkGC *text_aa_gc[5];
186
GdkGC *black_gc;
187
GdkGC *white_gc;
188
189
GdkPixmap *bg_pixmap[5];
190
} GtkStyle;
191
192
typedef struct _GtkWidget GtkWidget;
193
struct _GtkWidget
194
{
195
GtkObject object;
196
guint16 private_flags;
197
guint8 state;
198
guint8 saved_state;
199
gchar *name;
200
GtkStyle *style;
201
GtkRequisition requisition;
202
GtkAllocation allocation;
203
GdkWindow *window;
204
GtkWidget *parent;
205
};
206
207
typedef struct
208
{
209
GtkWidget widget;
210
211
gfloat xalign;
212
gfloat yalign;
213
214
guint16 xpad;
215
guint16 ypad;
216
} GtkMisc;
217
218
typedef struct {
219
GtkWidget widget;
220
GtkWidget *focus_child;
221
guint border_width : 16;
222
guint need_resize : 1;
223
guint resize_mode : 2;
224
guint reallocate_redraws : 1;
225
guint has_focus_chain : 1;
226
} GtkContainer;
227
228
typedef struct {
229
GtkContainer container;
230
GtkWidget *child;
231
} GtkBin;
232
233
typedef struct {
234
GtkBin bin;
235
GdkWindow *event_window;
236
gchar *label_text;
237
guint activate_timeout;
238
guint constructed : 1;
239
guint in_button : 1;
240
guint button_down : 1;
241
guint relief : 2;
242
guint use_underline : 1;
243
guint use_stock : 1;
244
guint depressed : 1;
245
guint depress_on_activate : 1;
246
guint focus_on_click : 1;
247
} GtkButton;
248
249
typedef struct {
250
GtkButton button;
251
guint active : 1;
252
guint draw_indicator : 1;
253
guint inconsistent : 1;
254
} GtkToggleButton;
255
256
typedef struct _GtkAdjustment GtkAdjustment;
257
struct _GtkAdjustment
258
{
259
GtkObject parent_instance;
260
261
gdouble lower;
262
gdouble upper;
263
gdouble value;
264
gdouble step_increment;
265
gdouble page_increment;
266
gdouble page_size;
267
};
268
269
typedef enum
270
{
271
GTK_UPDATE_CONTINUOUS,
272
GTK_UPDATE_DISCONTINUOUS,
273
GTK_UPDATE_DELAYED
274
} GtkUpdateType;
275
276
typedef struct _GtkRange GtkRange;
277
struct _GtkRange
278
{
279
GtkWidget widget;
280
GtkAdjustment *adjustment;
281
GtkUpdateType update_policy;
282
guint inverted : 1;
283
/*< protected >*/
284
guint flippable : 1;
285
guint has_stepper_a : 1;
286
guint has_stepper_b : 1;
287
guint has_stepper_c : 1;
288
guint has_stepper_d : 1;
289
guint need_recalc : 1;
290
guint slider_size_fixed : 1;
291
gint min_slider_size;
292
GtkOrientation orientation;
293
GdkRectangle range_rect;
294
gint slider_start, slider_end;
295
gint round_digits;
296
/*< private >*/
297
guint trough_click_forward : 1;
298
guint update_pending : 1;
299
/*GtkRangeLayout * */ void *layout;
300
/*GtkRangeStepTimer * */ void* timer;
301
gint slide_initial_slider_position;
302
gint slide_initial_coordinate;
303
guint update_timeout_id;
304
GdkWindow *event_window;
305
};
306
307
typedef struct _GtkProgressBar GtkProgressBar;
308
309
typedef enum
310
{
311
GTK_PROGRESS_CONTINUOUS,
312
GTK_PROGRESS_DISCRETE
313
} GtkProgressBarStyle;
314
315
typedef enum
316
{
317
GTK_PROGRESS_LEFT_TO_RIGHT,
318
GTK_PROGRESS_RIGHT_TO_LEFT,
319
GTK_PROGRESS_BOTTOM_TO_TOP,
320
GTK_PROGRESS_TOP_TO_BOTTOM
321
} GtkProgressBarOrientation;
322
323
typedef struct _GtkProgress GtkProgress;
324
325
struct _GtkProgress
326
{
327
GtkWidget widget;
328
GtkAdjustment *adjustment;
329
GdkPixmap *offscreen_pixmap;
330
gchar *format;
331
gfloat x_align;
332
gfloat y_align;
333
guint show_text : 1;
334
guint activity_mode : 1;
335
guint use_text_format : 1;
336
};
337
338
struct _GtkProgressBar
339
{
340
GtkProgress progress;
341
GtkProgressBarStyle bar_style;
342
GtkProgressBarOrientation orientation;
343
guint blocks;
344
gint in_block;
345
gint activity_pos;
346
guint activity_step;
347
guint activity_blocks;
348
gdouble pulse_fraction;
349
guint activity_dir : 1;
350
guint ellipsize : 3;
351
};
352
353
/**
354
* Returns :
355
* NULL if the GLib library is compatible with the given version, or a string
356
* describing the version mismatch.
357
* Please note that the glib_check_version() is available since 2.6,
358
* so you should use GLIB_CHECK_VERSION macro instead.
359
*/
360
static gchar* (*fp_glib_check_version)(guint required_major, guint required_minor,
361
guint required_micro);
362
363
/**
364
* Returns :
365
* TRUE if the GLib library is compatible with the given version
366
*/
367
#define GLIB_CHECK_VERSION(major, minor, micro) \
368
(fp_glib_check_version && fp_glib_check_version(major, minor, micro) == NULL)
369
370
/**
371
* Returns :
372
* NULL if the GTK+ library is compatible with the given version, or a string
373
* describing the version mismatch.
374
*/
375
static gchar* (*fp_gtk_check_version)(guint required_major, guint required_minor,
376
guint required_micro);
377
378
static void gtk2_init(GtkApi* gtk);
379
static void (*fp_g_free)(gpointer mem);
380
static void (*fp_g_object_unref)(gpointer object);
381
382
static int (*fp_gdk_pixbuf_get_bits_per_sample)(const GdkPixbuf *pixbuf);
383
static guchar *(*fp_gdk_pixbuf_get_pixels)(const GdkPixbuf *pixbuf);
384
static gboolean (*fp_gdk_pixbuf_get_has_alpha)(const GdkPixbuf *pixbuf);
385
static int (*fp_gdk_pixbuf_get_height)(const GdkPixbuf *pixbuf);
386
static int (*fp_gdk_pixbuf_get_n_channels)(const GdkPixbuf *pixbuf);
387
static int (*fp_gdk_pixbuf_get_rowstride)(const GdkPixbuf *pixbuf);
388
static int (*fp_gdk_pixbuf_get_width)(const GdkPixbuf *pixbuf);
389
static GdkPixbuf *(*fp_gdk_pixbuf_new_from_file)(const char *filename, GError **error);
390
391
static void (*fp_gtk_widget_destroy)(void *widget);
392
static void (*fp_gtk_window_present)(GtkWindow *window);
393
static void (*fp_gtk_window_move)(GtkWindow *window, gint x, gint y);
394
static void (*fp_gtk_window_resize)(GtkWindow *window, gint width, gint height);
395
396
/**
397
* Function Pointers for GtkFileChooser
398
*/
399
static gchar* (*fp_gtk_file_chooser_get_filename)(GtkFileChooser *chooser);
400
static void (*fp_gtk_widget_hide)(void *widget);
401
static void (*fp_gtk_main_quit)(void);
402
static void* (*fp_gtk_file_chooser_dialog_new)(const gchar *title,
403
GtkWindow *parent, GtkFileChooserAction action,
404
const gchar *first_button_text, ...);
405
static gboolean (*fp_gtk_file_chooser_set_current_folder)(GtkFileChooser *chooser,
406
const gchar *filename);
407
static gboolean (*fp_gtk_file_chooser_set_filename)(GtkFileChooser *chooser,
408
const char *filename);
409
static void (*fp_gtk_file_chooser_set_current_name)(GtkFileChooser *chooser,
410
const gchar *name);
411
static void (*fp_gtk_file_filter_add_custom)(GtkFileFilter *filter,
412
GtkFileFilterFlags needed, GtkFileFilterFunc func, gpointer data,
413
GDestroyNotify notify);
414
static void (*fp_gtk_file_chooser_set_filter)(GtkFileChooser *chooser,
415
GtkFileFilter *filter);
416
static GType (*fp_gtk_file_chooser_get_type)(void);
417
static GtkFileFilter* (*fp_gtk_file_filter_new)(void);
418
static void (*fp_gtk_file_chooser_set_do_overwrite_confirmation)(
419
GtkFileChooser *chooser, gboolean do_overwrite_confirmation);
420
static void (*fp_gtk_file_chooser_set_select_multiple)(
421
GtkFileChooser *chooser, gboolean select_multiple);
422
static gchar* (*fp_gtk_file_chooser_get_current_folder)(GtkFileChooser *chooser);
423
static GSList* (*fp_gtk_file_chooser_get_filenames)(GtkFileChooser *chooser);
424
static guint (*fp_gtk_g_slist_length)(GSList *list);
425
static gulong (*fp_g_signal_connect_data)(gpointer instance,
426
const gchar *detailed_signal, GCallback c_handler, gpointer data,
427
GClosureNotify destroy_data, GConnectFlags connect_flags);
428
static void (*fp_gtk_widget_show)(void *widget);
429
static void (*fp_gtk_main)(void);
430
static guint (*fp_gtk_main_level)(void);
431
static gchar* (*fp_g_path_get_dirname) (const gchar *file_name);
432
433
static GList* (*fp_g_list_append) (GList *list, gpointer data);
434
static void (*fp_g_list_free) (GList *list);
435
static void (*fp_g_list_free_full) (GList *list, GDestroyNotify free_func);
436
437
static gboolean (*fp_gtk_show_uri)(GdkScreen *screen, const gchar *uri,
438
guint32 timestamp, GError **error);
439
440
#endif /* !_GTK2_INTERFACE_H */
441
442