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/gtk3_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 _GTK3_INTERFACE_H
26
#define _GTK3_INTERFACE_H
27
28
#include <stdlib.h>
29
#include <jni.h>
30
#include <X11/X.h>
31
#include "gtk_interface.h"
32
33
#define LIGHTNESS_MULT 1.3
34
#define DARKNESS_MULT 0.7
35
36
#define G_PI 3.1415926535897932384626433832795028841971693993751
37
38
typedef enum
39
{
40
GTK_STATE_FLAG_NORMAL = 0,
41
GTK_STATE_FLAG_ACTIVE = 1 << 0,
42
GTK_STATE_FLAG_PRELIGHT = 1 << 1,
43
GTK_STATE_FLAG_SELECTED = 1 << 2,
44
GTK_STATE_FLAG_INSENSITIVE = 1 << 3,
45
GTK_STATE_FLAG_INCONSISTENT = 1 << 4,
46
GTK_STATE_FLAG_FOCUSED = 1 << 5,
47
GTK_STATE_FLAG_BACKDROP = 1 << 6,
48
GTK_STATE_FLAG_DIR_LTR = 1 << 7,
49
GTK_STATE_FLAG_DIR_RTL = 1 << 8,
50
GTK_STATE_FLAG_LINK = 1 << 9,
51
GTK_STATE_FLAG_VISITED = 1 << 10,
52
GTK_STATE_FLAG_CHECKED = 1 << 11
53
} GtkStateFlags;
54
55
typedef enum {
56
GTK_JUNCTION_NONE = 0,
57
GTK_JUNCTION_CORNER_TOPLEFT = 1 << 0,
58
GTK_JUNCTION_CORNER_TOPRIGHT = 1 << 1,
59
GTK_JUNCTION_CORNER_BOTTOMLEFT = 1 << 2,
60
GTK_JUNCTION_CORNER_BOTTOMRIGHT = 1 << 3,
61
GTK_JUNCTION_TOP =
62
(GTK_JUNCTION_CORNER_TOPLEFT | GTK_JUNCTION_CORNER_TOPRIGHT),
63
GTK_JUNCTION_BOTTOM =
64
(GTK_JUNCTION_CORNER_BOTTOMLEFT | GTK_JUNCTION_CORNER_BOTTOMRIGHT),
65
GTK_JUNCTION_LEFT =
66
(GTK_JUNCTION_CORNER_TOPLEFT | GTK_JUNCTION_CORNER_BOTTOMLEFT),
67
GTK_JUNCTION_RIGHT =
68
(GTK_JUNCTION_CORNER_TOPRIGHT | GTK_JUNCTION_CORNER_BOTTOMRIGHT)
69
} GtkJunctionSides;
70
71
typedef enum {
72
GTK_REGION_EVEN = 1 << 0,
73
GTK_REGION_ODD = 1 << 1,
74
GTK_REGION_FIRST = 1 << 2,
75
GTK_REGION_LAST = 1 << 3,
76
GTK_REGION_ONLY = 1 << 4,
77
GTK_REGION_SORTED = 1 << 5
78
} GtkRegionFlags;
79
80
typedef enum
81
{
82
GTK_WINDOW_TOPLEVEL,
83
GTK_WINDOW_POPUP
84
} GtkWindowType;
85
86
typedef enum
87
{
88
G_PARAM_READABLE = 1 << 0,
89
G_PARAM_WRITABLE = 1 << 1,
90
G_PARAM_CONSTRUCT = 1 << 2,
91
G_PARAM_CONSTRUCT_ONLY = 1 << 3,
92
G_PARAM_LAX_VALIDATION = 1 << 4,
93
G_PARAM_STATIC_NAME = 1 << 5
94
} GParamFlags;
95
96
typedef enum
97
{
98
GTK_ICON_LOOKUP_NO_SVG = 1 << 0,
99
GTK_ICON_LOOKUP_FORCE_SVG = 1 << 1,
100
GTK_ICON_LOOKUP_USE_BUILTIN = 1 << 2,
101
GTK_ICON_LOOKUP_GENERIC_FALLBACK = 1 << 3,
102
GTK_ICON_LOOKUP_FORCE_SIZE = 1 << 4
103
} GtkIconLookupFlags;
104
105
typedef enum
106
{
107
GTK_UPDATE_CONTINUOUS,
108
GTK_UPDATE_DISCONTINUOUS,
109
GTK_UPDATE_DELAYED
110
} GtkUpdateType;
111
112
typedef enum
113
{
114
GTK_PROGRESS_CONTINUOUS,
115
GTK_PROGRESS_DISCRETE
116
} GtkProgressBarStyle;
117
118
typedef enum
119
{
120
GTK_PROGRESS_LEFT_TO_RIGHT,
121
GTK_PROGRESS_RIGHT_TO_LEFT,
122
GTK_PROGRESS_BOTTOM_TO_TOP,
123
GTK_PROGRESS_TOP_TO_BOTTOM
124
} GtkProgressBarOrientation;
125
126
typedef enum {
127
CAIRO_FORMAT_INVALID = -1,
128
CAIRO_FORMAT_ARGB32 = 0,
129
CAIRO_FORMAT_RGB24 = 1,
130
CAIRO_FORMAT_A8 = 2,
131
CAIRO_FORMAT_A1 = 3,
132
CAIRO_FORMAT_RGB16_565 = 4
133
} cairo_format_t;
134
135
typedef enum _cairo_status {
136
CAIRO_STATUS_SUCCESS = 0,
137
138
CAIRO_STATUS_NO_MEMORY,
139
CAIRO_STATUS_INVALID_RESTORE,
140
CAIRO_STATUS_INVALID_POP_GROUP,
141
CAIRO_STATUS_NO_CURRENT_POINT,
142
CAIRO_STATUS_INVALID_MATRIX,
143
CAIRO_STATUS_INVALID_STATUS,
144
CAIRO_STATUS_NULL_POINTER,
145
CAIRO_STATUS_INVALID_STRING,
146
CAIRO_STATUS_INVALID_PATH_DATA,
147
CAIRO_STATUS_READ_ERROR,
148
CAIRO_STATUS_WRITE_ERROR,
149
CAIRO_STATUS_SURFACE_FINISHED,
150
CAIRO_STATUS_SURFACE_TYPE_MISMATCH,
151
CAIRO_STATUS_PATTERN_TYPE_MISMATCH,
152
CAIRO_STATUS_INVALID_CONTENT,
153
CAIRO_STATUS_INVALID_FORMAT,
154
CAIRO_STATUS_INVALID_VISUAL,
155
CAIRO_STATUS_FILE_NOT_FOUND,
156
CAIRO_STATUS_INVALID_DASH,
157
CAIRO_STATUS_INVALID_DSC_COMMENT,
158
CAIRO_STATUS_INVALID_INDEX,
159
CAIRO_STATUS_CLIP_NOT_REPRESENTABLE,
160
CAIRO_STATUS_TEMP_FILE_ERROR,
161
CAIRO_STATUS_INVALID_STRIDE,
162
CAIRO_STATUS_FONT_TYPE_MISMATCH,
163
CAIRO_STATUS_USER_FONT_IMMUTABLE,
164
CAIRO_STATUS_USER_FONT_ERROR,
165
CAIRO_STATUS_NEGATIVE_COUNT,
166
CAIRO_STATUS_INVALID_CLUSTERS,
167
CAIRO_STATUS_INVALID_SLANT,
168
CAIRO_STATUS_INVALID_WEIGHT,
169
CAIRO_STATUS_INVALID_SIZE,
170
CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED,
171
CAIRO_STATUS_DEVICE_TYPE_MISMATCH,
172
CAIRO_STATUS_DEVICE_ERROR,
173
174
CAIRO_STATUS_LAST_STATUS
175
} cairo_status_t;
176
177
/* We define all structure pointers to be void* */
178
typedef void GdkPixbuf;
179
typedef void GMainContext;
180
typedef void GVfs;
181
182
typedef void GdkColormap;
183
typedef void GdkDrawable;
184
typedef void GdkGC;
185
typedef void GdkPixmap;
186
typedef void GtkStyleContext;
187
typedef void GtkFixed;
188
typedef void GtkMenuItem;
189
typedef void GtkMenuShell;
190
typedef void GtkWidgetClass;
191
typedef void PangoFontDescription;
192
typedef void GtkSettings;
193
typedef void GtkStyleProvider;
194
typedef void cairo_pattern_t;
195
typedef void cairo_t;
196
typedef void cairo_surface_t;
197
typedef void GtkScrolledWindow;
198
typedef void GtkIconTheme;
199
typedef void GtkWidget;
200
typedef void GtkMisc;
201
typedef void GtkContainer;
202
typedef void GtkBin;
203
typedef void GtkAdjustment;
204
typedef void GtkRange;
205
typedef void GtkProgressBar;
206
typedef void GtkProgress;
207
typedef void GtkWidgetPath;
208
typedef void GtkPaned;
209
210
/* Some real structures */
211
typedef struct
212
{
213
guint32 pixel;
214
guint16 red;
215
guint16 green;
216
guint16 blue;
217
} GdkColor;
218
219
typedef struct
220
{
221
gdouble red;
222
gdouble green;
223
gdouble blue;
224
gdouble alpha;
225
} GdkRGBA;
226
227
typedef struct {
228
gint fd;
229
gushort events;
230
gushort revents;
231
} GPollFD;
232
233
typedef struct {
234
gint x;
235
gint y;
236
gint width;
237
gint height;
238
} GdkRectangle;
239
240
typedef struct {
241
int x, y;
242
int width, height;
243
} GtkAllocation;
244
245
typedef struct {
246
gint width;
247
gint height;
248
} GtkRequisition;
249
250
typedef struct {
251
GtkWidgetClass *g_class;
252
} GTypeInstance;
253
254
typedef struct {
255
gint16 left;
256
gint16 right;
257
gint16 top;
258
gint16 bottom;
259
} GtkBorder;
260
261
typedef struct
262
{
263
GType g_type;
264
union {
265
gint v_int;
266
guint v_uint;
267
glong v_long;
268
gulong v_ulong;
269
gint64 v_int64;
270
guint64 v_uint64;
271
gfloat v_float;
272
gdouble v_double;
273
gpointer v_pointer;
274
} data[2];
275
} GValue;
276
277
typedef struct {
278
GTypeInstance g_type_instance;
279
const gchar *name;
280
GParamFlags flags;
281
GType value_type;
282
GType owner_type;
283
} GParamSpec;
284
285
static gchar* (*fp_glib_check_version)(guint required_major,
286
guint required_minor, guint required_micro);
287
288
/**
289
* Returns :
290
* NULL if the GTK+ library is compatible with the given version, or a string
291
* describing the version mismatch.
292
*/
293
static gchar* (*fp_gtk_check_version)(guint required_major, guint
294
required_minor, guint required_micro);
295
296
static void (*fp_g_free)(gpointer mem);
297
static void (*fp_g_object_unref)(gpointer object);
298
static GdkWindow *(*fp_gdk_get_default_root_window) (void);
299
300
static int (*fp_gdk_pixbuf_get_bits_per_sample)(const GdkPixbuf *pixbuf);
301
static guchar *(*fp_gdk_pixbuf_get_pixels)(const GdkPixbuf *pixbuf);
302
static gboolean (*fp_gdk_pixbuf_get_has_alpha)(const GdkPixbuf *pixbuf);
303
static int (*fp_gdk_pixbuf_get_height)(const GdkPixbuf *pixbuf);
304
static int (*fp_gdk_pixbuf_get_n_channels)(const GdkPixbuf *pixbuf);
305
static int (*fp_gdk_pixbuf_get_rowstride)(const GdkPixbuf *pixbuf);
306
static int (*fp_gdk_pixbuf_get_width)(const GdkPixbuf *pixbuf);
307
static GdkPixbuf *(*fp_gdk_pixbuf_new_from_file)(const char *filename,
308
GError **error);
309
static GdkColorspace (*fp_gdk_pixbuf_get_colorspace)(const GdkPixbuf *pixbuf);
310
311
static GdkPixbuf *(*fp_gdk_pixbuf_get_from_drawable)(GdkWindow *window,
312
int src_x, int src_y, int width, int height);
313
static GdkPixbuf *(*fp_gdk_pixbuf_scale_simple)(GdkPixbuf *src,
314
int dest_width, int dest_heigh, GdkInterpType interp_type);
315
316
317
static void (*fp_gtk_widget_destroy)(void *widget);
318
static void (*fp_gtk_window_present)(GtkWindow *window);
319
static void (*fp_gtk_window_move)(GtkWindow *window, gint x, gint y);
320
static void (*fp_gtk_window_resize)(GtkWindow *window, gint width, gint height);
321
322
/**
323
* Function Pointers for GtkFileChooser
324
*/
325
static gchar* (*fp_gtk_file_chooser_get_filename)(GtkFileChooser *chooser);
326
static void (*fp_gtk_widget_hide)(void *widget);
327
static void (*fp_gtk_main_quit)(void);
328
static void* (*fp_gtk_file_chooser_dialog_new)(const gchar *title,
329
GtkWindow *parent, GtkFileChooserAction action,
330
const gchar *first_button_text, ...);
331
static gboolean (*fp_gtk_file_chooser_set_current_folder)
332
(GtkFileChooser *chooser, const gchar *filename);
333
static gboolean (*fp_gtk_file_chooser_set_filename)(GtkFileChooser *chooser,
334
const char *filename);
335
static void (*fp_gtk_file_chooser_set_current_name)(GtkFileChooser *chooser,
336
const gchar *name);
337
static void (*fp_gtk_file_filter_add_custom)(GtkFileFilter *filter,
338
GtkFileFilterFlags needed, GtkFileFilterFunc func, gpointer data,
339
GDestroyNotify notify);
340
static void (*fp_gtk_file_chooser_set_filter)(GtkFileChooser *chooser,
341
GtkFileFilter *filter);
342
static GType (*fp_gtk_file_chooser_get_type)(void);
343
static GtkFileFilter* (*fp_gtk_file_filter_new)(void);
344
static void (*fp_gtk_file_chooser_set_do_overwrite_confirmation)(
345
GtkFileChooser *chooser, gboolean do_overwrite_confirmation);
346
static void (*fp_gtk_file_chooser_set_select_multiple)(
347
GtkFileChooser *chooser, gboolean select_multiple);
348
static gchar* (*fp_gtk_file_chooser_get_current_folder)
349
(GtkFileChooser *chooser);
350
static GSList* (*fp_gtk_file_chooser_get_filenames)(GtkFileChooser *chooser);
351
static guint (*fp_gtk_g_slist_length)(GSList *list);
352
static gulong (*fp_g_signal_connect_data)(gpointer instance,
353
const gchar *detailed_signal, GCallback c_handler, gpointer data,
354
GClosureNotify destroy_data, GConnectFlags connect_flags);
355
static void (*fp_gtk_widget_show)(void *widget);
356
static void (*fp_gtk_main)(void);
357
static guint (*fp_gtk_main_level)(void);
358
static gchar* (*fp_g_path_get_dirname) (const gchar *file_name);
359
static XID (*fp_gdk_x11_drawable_get_xid) (GdkWindow *drawable);
360
361
static GList* (*fp_g_list_append) (GList *list, gpointer data);
362
static void (*fp_g_list_free) (GList *list);
363
static void (*fp_g_list_free_full) (GList *list, GDestroyNotify free_func);
364
365
static void (*fp_gdk_threads_enter)(void);
366
static void (*fp_gdk_threads_leave)(void);
367
368
static gboolean (*fp_gtk_show_uri)(GdkScreen *screen, const gchar *uri,
369
guint32 timestamp, GError **error);
370
371
// Implementation functions prototypes
372
static void gtk3_init(GtkApi* gtk);
373
static GValue* (*fp_g_value_init)(GValue *value, GType g_type);
374
static gboolean (*fp_g_type_is_a)(GType type, GType is_a_type);
375
static gboolean (*fp_g_value_get_boolean)(const GValue *value);
376
static gchar (*fp_g_value_get_char)(const GValue *value);
377
static guchar (*fp_g_value_get_uchar)(const GValue *value);
378
static gint (*fp_g_value_get_int)(const GValue *value);
379
static guint (*fp_g_value_get_uint)(const GValue *value);
380
static glong (*fp_g_value_get_long)(const GValue *value);
381
static gulong (*fp_g_value_get_ulong)(const GValue *value);
382
static gint64 (*fp_g_value_get_int64)(const GValue *value);
383
static guint64 (*fp_g_value_get_uint64)(const GValue *value);
384
static gfloat (*fp_g_value_get_float)(const GValue *value);
385
static gdouble (*fp_g_value_get_double)(const GValue *value);
386
static const gchar* (*fp_g_value_get_string)(const GValue *value);
387
static gint (*fp_g_value_get_enum)(const GValue *value);
388
static guint (*fp_g_value_get_flags)(const GValue *value);
389
static GParamSpec* (*fp_g_value_get_param)(const GValue *value);
390
static gpointer* (*fp_g_value_get_boxed)(const GValue *value);
391
static gpointer* (*fp_g_value_get_pointer)(const GValue *value);
392
static void (*fp_g_object_get)(gpointer object,
393
const gchar* fpn, ...);
394
static void (*fp_g_object_set)(gpointer object,
395
const gchar *first_property_name,
396
...);
397
398
static gboolean (*fp_g_main_context_iteration)(GMainContext *context);
399
static gboolean (*fp_g_str_has_prefix)(const gchar *str, const gchar *prefix);
400
static gchar** (*fp_g_strsplit)(const gchar *string, const gchar *delimiter,
401
gint max_tokens);
402
static void (*fp_g_strfreev)(gchar **str_array);
403
404
405
static cairo_surface_t* (*fp_cairo_image_surface_create)(cairo_format_t format,
406
int width, int height);
407
static void (*fp_cairo_surface_destroy)(cairo_surface_t *surface);
408
static cairo_status_t (*fp_cairo_surface_status)(cairo_surface_t *surface);
409
static cairo_t* (*fp_cairo_create)(cairo_surface_t *target);
410
static void (*fp_cairo_destroy)(cairo_t *cr);
411
static cairo_status_t (*fp_cairo_status)(cairo_t *cr);
412
static void (*fp_cairo_fill)(cairo_t *cr);
413
static void (*fp_cairo_surface_flush)(cairo_surface_t *surface);
414
static void (*fp_cairo_rectangle)(cairo_t *cr, double x, double y, double width,
415
double height);
416
static void (*fp_cairo_set_source_rgb)(cairo_t *cr, double red, double green,
417
double blue);
418
static void (*fp_cairo_set_source_rgba)(cairo_t *cr, double red, double green,
419
double blue, double alpha);
420
static void (*fp_cairo_paint)(cairo_t *cr);
421
static void (*fp_cairo_clip)(cairo_t *cr);
422
static unsigned char* (*fp_cairo_image_surface_get_data)(
423
cairo_surface_t *surface);
424
static int (*fp_cairo_image_surface_get_stride) (cairo_surface_t *surface);
425
static GdkPixbuf* (*fp_gdk_pixbuf_get_from_surface)(cairo_surface_t *surface,
426
gint src_x, gint src_y, gint width, gint height);
427
static GtkStateType (*fp_gtk_widget_get_state)(GtkWidget *widget);
428
static void (*fp_gtk_widget_set_state)(GtkWidget *widget, GtkStateType state);
429
static gboolean (*fp_gtk_widget_is_focus)(GtkWidget *widget);
430
static void (*fp_gtk_widget_set_allocation)(GtkWidget *widget,
431
const GtkAllocation *allocation);
432
static GtkWidget* (*fp_gtk_widget_get_parent)(GtkWidget *widget);
433
static GtkStyleContext* (*fp_gtk_widget_get_style_context)(GtkWidget *widget);
434
static void (*fp_gtk_style_context_get_color)(GtkStyleContext *context,
435
GtkStateFlags state, GdkRGBA *color);
436
static void (*fp_gtk_style_context_get_background_color)
437
(GtkStyleContext *context, GtkStateFlags state, GdkRGBA *color);
438
static void (*fp_gtk_style_context_get)(GtkStyleContext *context,
439
GtkStateFlags state, ...);
440
static GtkStateFlags (*fp_gtk_widget_get_state_flags)(GtkWidget* widget);
441
static void (*fp_gtk_style_context_set_state)(GtkStyleContext* style,
442
GtkStateFlags flags);
443
static void (*fp_gtk_style_context_add_class)(GtkStyleContext *context,
444
const gchar *class_name);
445
static void (*fp_gtk_style_context_save)(GtkStyleContext *context);
446
static void (*fp_gtk_style_context_restore)(GtkStyleContext *context);
447
static void (*fp_gtk_render_check)(GtkStyleContext *context, cairo_t *cr,
448
gdouble x, gdouble y, gdouble width, gdouble height);
449
static void (*fp_gtk_render_option)(GtkStyleContext *context, cairo_t *cr,
450
gdouble x, gdouble y, gdouble width, gdouble height);
451
static void (*fp_gtk_render_extension)(GtkStyleContext *context, cairo_t *cr,
452
gdouble x, gdouble y, gdouble width, gdouble height,
453
GtkPositionType gap_side);
454
static void (*fp_gtk_render_expander)(GtkStyleContext *context, cairo_t *cr,
455
gdouble x, gdouble y, gdouble width, gdouble height);
456
static void (*fp_gtk_render_frame_gap)(GtkStyleContext *context, cairo_t *cr,
457
gdouble x, gdouble y, gdouble width, gdouble height,
458
GtkPositionType gap_side, gdouble xy0_gap,
459
gdouble xy1_gap);
460
static void (*fp_gtk_render_line)(GtkStyleContext *context, cairo_t *cr,
461
gdouble x0, gdouble y0, gdouble x1, gdouble y1);
462
static GdkPixbuf* (*fp_gtk_widget_render_icon_pixbuf)(GtkWidget *widget,
463
const gchar *stock_id, GtkIconSize size);
464
static cairo_surface_t* (*fp_gdk_window_create_similar_image_surface)(
465
GdkWindow *window, cairo_format_t format, int width,
466
int height, int scale);
467
static cairo_surface_t* (*fp_gdk_window_create_similar_surface)(
468
GdkWindow *window, cairo_format_t format,
469
int width, int height);
470
static GdkWindow* (*fp_gtk_widget_get_window)(GtkWidget *widget);
471
static GtkSettings *(*fp_gtk_settings_get_for_screen)(GdkScreen *screen);
472
static GdkScreen *(*fp_gtk_widget_get_screen)(GtkWidget *widget);
473
static GtkStyleProvider* (*fp_gtk_css_provider_get_named)(const gchar *name,
474
const gchar *variant);
475
static void (*fp_gtk_style_context_add_provider)(GtkStyleContext *context,
476
GtkStyleProvider *provider, guint priority);
477
static void (*fp_gtk_render_frame)(GtkStyleContext *context,cairo_t *cr,
478
gdouble x, gdouble y, gdouble width, gdouble height);
479
static void (*fp_gtk_render_focus)(GtkStyleContext *context,cairo_t *cr,
480
gdouble x, gdouble y, gdouble width, gdouble height);
481
static void (*fp_gtk_render_handle)(GtkStyleContext *context,cairo_t *cr,
482
gdouble x, gdouble y, gdouble width, gdouble height);
483
static void (*fp_gtk_style_context_get_property)(GtkStyleContext *context,
484
const gchar *property, GtkStateFlags state, GValue *value);
485
static void (*fp_gtk_render_activity)(GtkStyleContext *context, cairo_t *cr,
486
gdouble x, gdouble y, gdouble width, gdouble height);
487
static void (*fp_gtk_render_background)(GtkStyleContext *context, cairo_t *cr,
488
gdouble x, gdouble y, gdouble width, gdouble height);
489
static gboolean (*fp_gtk_style_context_has_class)(GtkStyleContext *context,
490
const gchar *class_name);
491
static void transform_detail_string (const gchar *detail,
492
GtkStyleContext *context);
493
void (*fp_gtk_style_context_set_junction_sides)(GtkStyleContext *context,
494
GtkJunctionSides sides);
495
void (*fp_gtk_style_context_add_region)(GtkStyleContext *context,
496
const gchar *region_name, GtkRegionFlags flags);
497
void (*fp_gtk_render_arrow)(GtkStyleContext *context, cairo_t *cr,
498
gdouble angle, gdouble x, gdouble y, gdouble size);
499
void (*fp_gtk_bin_set_child)(GtkBin *bin, GtkWidget *widget);
500
void (*fp_gtk_scrolled_window_set_shadow_type)(
501
GtkScrolledWindow *scrolled_window, GtkShadowType type);
502
static void (*fp_gtk_render_slider)(GtkStyleContext *context, cairo_t *cr,
503
gdouble x, gdouble y, gdouble width, gdouble height,
504
GtkOrientation orientation);
505
static void (*fp_gtk_style_context_get_padding)(GtkStyleContext *self,
506
GtkStateFlags state, GtkBorder* padding);
507
static void (*fp_gtk_range_set_inverted)(GtkRange *range, gboolean setting);
508
static PangoFontDescription* (*fp_gtk_style_context_get_font)(
509
GtkStyleContext *context, GtkStateFlags state);
510
static int (*fp_gtk_widget_get_allocated_width)(GtkWidget *widget);
511
static int (*fp_gtk_widget_get_allocated_height)(GtkWidget *widget);
512
static GtkIconTheme* (*fp_gtk_icon_theme_get_default)(void);
513
static GdkPixbuf* (*fp_gtk_icon_theme_load_icon)(GtkIconTheme *icon_theme,
514
const gchar *icon_name, gint size,
515
GtkIconLookupFlags flags, GError **error);
516
static void (*fp_gtk_adjustment_set_lower)(GtkAdjustment *adjustment,
517
gdouble lower);
518
static void (*fp_gtk_adjustment_set_page_increment)(GtkAdjustment *adjustment,
519
gdouble page_increment);
520
static void (*fp_gtk_adjustment_set_page_size)(GtkAdjustment *adjustment,
521
gdouble page_size);
522
static void (*fp_gtk_adjustment_set_step_increment)(GtkAdjustment *adjustment,
523
gdouble step_increment);
524
static void (*fp_gtk_adjustment_set_upper)(GtkAdjustment *adjustment,
525
gdouble upper);
526
static void (*fp_gtk_adjustment_set_value)(GtkAdjustment *adjustment,
527
gdouble value);
528
static GdkGC *(*fp_gdk_gc_new)(GdkDrawable*);
529
static void (*fp_gdk_rgb_gc_set_foreground)(GdkGC*, guint32);
530
static void (*fp_gdk_draw_rectangle)(GdkDrawable*, GdkGC*, gboolean,
531
gint, gint, gint, gint);
532
static GdkPixbuf *(*fp_gdk_pixbuf_new)(GdkColorspace colorspace,
533
gboolean has_alpha, int bits_per_sample, int width, int height);
534
static void (*fp_gdk_drawable_get_size)(GdkDrawable *drawable,
535
gint* width, gint* height);
536
static gboolean (*fp_gtk_init_check)(int* argc, char** argv);
537
538
/* Widget creation */
539
static GtkWidget* (*fp_gtk_arrow_new)(GtkArrowType arrow_type,
540
GtkShadowType shadow_type);
541
static GtkWidget* (*fp_gtk_button_new)();
542
static GtkWidget* (*fp_gtk_check_button_new)();
543
static GtkWidget* (*fp_gtk_check_menu_item_new)();
544
static GtkWidget* (*fp_gtk_color_selection_dialog_new)(const gchar* title);
545
static GtkWidget* (*fp_gtk_combo_box_new)();
546
static GtkWidget* (*fp_gtk_combo_box_entry_new)();
547
static GtkWidget* (*fp_gtk_entry_new)();
548
static GtkWidget* (*fp_gtk_fixed_new)();
549
static GtkWidget* (*fp_gtk_handle_box_new)();
550
static GtkWidget* (*fp_gtk_paned_new)(GtkOrientation orientation);
551
static GtkWidget* (*fp_gtk_scale_new)(GtkOrientation orientation,
552
GtkAdjustment* adjustment);
553
static GtkWidget* (*fp_gtk_hscrollbar_new)(GtkAdjustment* adjustment);
554
static GtkWidget* (*fp_gtk_vscrollbar_new)(GtkAdjustment* adjustment);
555
static GtkWidget* (*fp_gtk_hseparator_new)();
556
static GtkWidget* (*fp_gtk_vseparator_new)();
557
static GtkWidget* (*fp_gtk_image_new)();
558
static GtkWidget* (*fp_gtk_label_new)(const gchar* str);
559
static GtkWidget* (*fp_gtk_menu_new)();
560
static GtkWidget* (*fp_gtk_menu_bar_new)();
561
static GtkWidget* (*fp_gtk_menu_item_new)();
562
static GtkWidget* (*fp_gtk_notebook_new)();
563
static GtkWidget* (*fp_gtk_progress_bar_new)();
564
static GtkWidget* (*fp_gtk_progress_bar_set_orientation)(
565
GtkProgressBar *pbar,
566
GtkProgressBarOrientation orientation);
567
static GtkWidget* (*fp_gtk_radio_button_new)(GSList *group);
568
static GtkWidget* (*fp_gtk_radio_menu_item_new)(GSList *group);
569
static GtkWidget* (*fp_gtk_scrolled_window_new)(GtkAdjustment *hadjustment,
570
GtkAdjustment *vadjustment);
571
static GtkWidget* (*fp_gtk_separator_menu_item_new)();
572
static GtkWidget* (*fp_gtk_separator_tool_item_new)();
573
static GtkWidget* (*fp_gtk_text_view_new)();
574
static GtkWidget* (*fp_gtk_toggle_button_new)();
575
static GtkWidget* (*fp_gtk_toolbar_new)();
576
static GtkWidget* (*fp_gtk_tree_view_new)();
577
static GtkWidget* (*fp_gtk_viewport_new)(GtkAdjustment *hadjustment,
578
GtkAdjustment *vadjustment);
579
static GtkWidget* (*fp_gtk_window_new)(GtkWindowType type);
580
static GtkWidget* (*fp_gtk_dialog_new)();
581
static GtkWidget* (*fp_gtk_spin_button_new)(GtkAdjustment *adjustment,
582
gdouble climb_rate, guint digits);
583
static GtkWidget* (*fp_gtk_frame_new)(const gchar *label);
584
585
/* Other widget operations */
586
static GtkAdjustment* (*fp_gtk_adjustment_new)(gdouble value,
587
gdouble lower, gdouble upper, gdouble step_increment,
588
gdouble page_increment, gdouble page_size);
589
static void (*fp_gtk_container_add)(GtkContainer *window, GtkWidget *widget);
590
static void (*fp_gtk_menu_shell_append)(GtkMenuShell *menu_shell,
591
GtkWidget *child);
592
static void (*fp_gtk_menu_item_set_submenu)(GtkMenuItem *menu_item,
593
GtkWidget *submenu);
594
static void (*fp_gtk_widget_realize)(GtkWidget *widget);
595
static GdkPixbuf* (*fp_gtk_widget_render_icon)(GtkWidget *widget,
596
const gchar *stock_id, GtkIconSize size, const gchar *detail);
597
static void (*fp_gtk_widget_set_name)(GtkWidget *widget, const gchar *name);
598
static void (*fp_gtk_widget_set_parent)(GtkWidget *widget, GtkWidget *parent);
599
static void (*fp_gtk_widget_set_direction)(GtkWidget *widget,
600
GtkTextDirection direction);
601
static void (*fp_gtk_widget_style_get)(GtkWidget *widget,
602
const gchar *first_property_name, ...);
603
static void (*fp_gtk_widget_class_install_style_property)(
604
GtkWidgetClass* class, GParamSpec *pspec);
605
static GParamSpec* (*fp_gtk_widget_class_find_style_property)(
606
GtkWidgetClass* class, const gchar* property_name);
607
static void (*fp_gtk_widget_style_get_property)(GtkWidget* widget,
608
const gchar* property_name, GValue* value);
609
static char* (*fp_pango_font_description_to_string)(
610
const PangoFontDescription* fd);
611
static GtkSettings* (*fp_gtk_settings_get_default)();
612
static GtkSettings* (*fp_gtk_widget_get_settings)(GtkWidget *widget);
613
static GType (*fp_gtk_border_get_type)();
614
static void (*fp_gtk_arrow_set)(GtkWidget* arrow,
615
GtkArrowType arrow_type,
616
GtkShadowType shadow_type);
617
static void (*fp_gtk_widget_size_request)(GtkWidget *widget,
618
GtkRequisition *requisition);
619
static GtkAdjustment* (*fp_gtk_range_get_adjustment)(GtkRange* range);
620
static GtkWidgetPath* (*fp_gtk_widget_path_copy)
621
(const GtkWidgetPath *path);
622
static const GtkWidgetPath* (*fp_gtk_style_context_get_path)
623
(GtkStyleContext *context);
624
static GtkWidgetPath* (*fp_gtk_widget_path_new) (void);
625
static gint (*fp_gtk_widget_path_append_type)
626
(GtkWidgetPath *path, GType type);
627
static void (*fp_gtk_widget_path_iter_set_object_name)
628
(GtkWidgetPath *path, gint pos, const char *name);
629
static void (*fp_gtk_style_context_set_path)
630
(GtkStyleContext *context, GtkWidgetPath *path);
631
static void (*fp_gtk_widget_path_unref) (GtkWidgetPath *path);
632
static GtkStyleContext* (*fp_gtk_style_context_new) (void);
633
634
#endif /* !_GTK3_INTERFACE_H */
635
636