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