1 | /* |
2 | * Copyright (c) 2005, 2016, 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 | |
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 | /* We define all structure pointers to be void* */ |
136 | typedef void GdkPixbuf; |
137 | typedef void GMainContext; |
138 | typedef void GVfs; |
139 | |
140 | typedef void GdkColormap; |
141 | typedef void GdkDrawable; |
142 | typedef void GdkGC; |
143 | typedef void GdkPixmap; |
144 | typedef void GtkStyleContext; |
145 | typedef void GtkFixed; |
146 | typedef void ; |
147 | typedef void ; |
148 | typedef void GtkWidgetClass; |
149 | typedef void PangoFontDescription; |
150 | typedef void GtkSettings; |
151 | typedef void GtkStyleProvider; |
152 | typedef void cairo_pattern_t; |
153 | typedef void cairo_t; |
154 | typedef void cairo_surface_t; |
155 | typedef void GtkScrolledWindow; |
156 | typedef void GtkIconTheme; |
157 | typedef void GtkWidget; |
158 | typedef void GtkMisc; |
159 | typedef void GtkContainer; |
160 | typedef void GtkBin; |
161 | typedef void GtkAdjustment; |
162 | typedef void GtkRange; |
163 | typedef void GtkProgressBar; |
164 | typedef void GtkProgress; |
165 | typedef void GtkWidgetPath; |
166 | typedef void GtkPaned; |
167 | |
168 | /* Some real structures */ |
169 | typedef struct |
170 | { |
171 | guint32 pixel; |
172 | guint16 red; |
173 | guint16 green; |
174 | guint16 blue; |
175 | } GdkColor; |
176 | |
177 | typedef struct |
178 | { |
179 | gdouble red; |
180 | gdouble green; |
181 | gdouble blue; |
182 | gdouble alpha; |
183 | } GdkRGBA; |
184 | |
185 | typedef struct { |
186 | gint fd; |
187 | gushort events; |
188 | gushort revents; |
189 | } GPollFD; |
190 | |
191 | typedef struct { |
192 | gint x; |
193 | gint y; |
194 | gint width; |
195 | gint height; |
196 | } GdkRectangle; |
197 | |
198 | typedef struct { |
199 | int x, y; |
200 | int width, height; |
201 | } GtkAllocation; |
202 | |
203 | typedef struct { |
204 | gint width; |
205 | gint height; |
206 | } GtkRequisition; |
207 | |
208 | typedef struct { |
209 | GtkWidgetClass *g_class; |
210 | } GTypeInstance; |
211 | |
212 | typedef struct { |
213 | gint16 left; |
214 | gint16 right; |
215 | gint16 top; |
216 | gint16 bottom; |
217 | } GtkBorder; |
218 | |
219 | typedef struct |
220 | { |
221 | GType g_type; |
222 | union { |
223 | gint v_int; |
224 | guint v_uint; |
225 | glong v_long; |
226 | gulong v_ulong; |
227 | gint64 v_int64; |
228 | guint64 v_uint64; |
229 | gfloat v_float; |
230 | gdouble v_double; |
231 | gpointer v_pointer; |
232 | } data[2]; |
233 | } GValue; |
234 | |
235 | typedef struct { |
236 | GTypeInstance g_type_instance; |
237 | const gchar *name; |
238 | GParamFlags flags; |
239 | GType value_type; |
240 | GType owner_type; |
241 | } GParamSpec; |
242 | |
243 | static gchar* (*fp_glib_check_version)(guint required_major, |
244 | guint required_minor, guint required_micro); |
245 | |
246 | /** |
247 | * Returns : |
248 | * NULL if the GTK+ library is compatible with the given version, or a string |
249 | * describing the version mismatch. |
250 | */ |
251 | static gchar* (*fp_gtk_check_version)(guint required_major, guint |
252 | required_minor, guint required_micro); |
253 | |
254 | static void (*fp_g_free)(gpointer mem); |
255 | static void (*fp_g_object_unref)(gpointer object); |
256 | static GdkWindow *(*fp_gdk_get_default_root_window) (void); |
257 | static int (*fp_gdk_window_get_scale_factor) (GdkWindow *window); |
258 | |
259 | static int (*fp_gdk_pixbuf_get_bits_per_sample)(const GdkPixbuf *pixbuf); |
260 | static guchar *(*fp_gdk_pixbuf_get_pixels)(const GdkPixbuf *pixbuf); |
261 | static gboolean (*fp_gdk_pixbuf_get_has_alpha)(const GdkPixbuf *pixbuf); |
262 | static int (*fp_gdk_pixbuf_get_height)(const GdkPixbuf *pixbuf); |
263 | static int (*fp_gdk_pixbuf_get_n_channels)(const GdkPixbuf *pixbuf); |
264 | static int (*fp_gdk_pixbuf_get_rowstride)(const GdkPixbuf *pixbuf); |
265 | static int (*fp_gdk_pixbuf_get_width)(const GdkPixbuf *pixbuf); |
266 | static GdkPixbuf *(*fp_gdk_pixbuf_new_from_file)(const char *filename, |
267 | GError **error); |
268 | static GdkColorspace (*fp_gdk_pixbuf_get_colorspace)(const GdkPixbuf *pixbuf); |
269 | |
270 | static GdkPixbuf *(*fp_gdk_pixbuf_get_from_drawable)(GdkWindow *window, |
271 | int src_x, int src_y, int width, int height); |
272 | static GdkPixbuf *(*fp_gdk_pixbuf_scale_simple)(GdkPixbuf *src, |
273 | int dest_width, int dest_heigh, GdkInterpType interp_type); |
274 | |
275 | |
276 | static void (*fp_gtk_widget_destroy)(void *widget); |
277 | static void (*fp_gtk_window_present)(GtkWindow *window); |
278 | static void (*fp_gtk_window_move)(GtkWindow *window, gint x, gint y); |
279 | static void (*fp_gtk_window_resize)(GtkWindow *window, gint width, gint height); |
280 | |
281 | /** |
282 | * Function Pointers for GtkFileChooser |
283 | */ |
284 | static gchar* (*fp_gtk_file_chooser_get_filename)(GtkFileChooser *chooser); |
285 | static void (*fp_gtk_widget_hide)(void *widget); |
286 | static void (*fp_gtk_main_quit)(void); |
287 | static void* (*fp_gtk_file_chooser_dialog_new)(const gchar *title, |
288 | GtkWindow *parent, GtkFileChooserAction action, |
289 | const gchar *first_button_text, ...); |
290 | static gboolean (*fp_gtk_file_chooser_set_current_folder) |
291 | (GtkFileChooser *chooser, const gchar *filename); |
292 | static gboolean (*fp_gtk_file_chooser_set_filename)(GtkFileChooser *chooser, |
293 | const char *filename); |
294 | static void (*fp_gtk_file_chooser_set_current_name)(GtkFileChooser *chooser, |
295 | const gchar *name); |
296 | static void (*fp_gtk_file_filter_add_custom)(GtkFileFilter *filter, |
297 | GtkFileFilterFlags needed, GtkFileFilterFunc func, gpointer data, |
298 | GDestroyNotify notify); |
299 | static void (*fp_gtk_file_chooser_set_filter)(GtkFileChooser *chooser, |
300 | GtkFileFilter *filter); |
301 | static GType (*fp_gtk_file_chooser_get_type)(void); |
302 | static GtkFileFilter* (*fp_gtk_file_filter_new)(void); |
303 | static void (*fp_gtk_file_chooser_set_do_overwrite_confirmation)( |
304 | GtkFileChooser *chooser, gboolean do_overwrite_confirmation); |
305 | static void (*fp_gtk_file_chooser_set_select_multiple)( |
306 | GtkFileChooser *chooser, gboolean select_multiple); |
307 | static gchar* (*fp_gtk_file_chooser_get_current_folder) |
308 | (GtkFileChooser *chooser); |
309 | static GSList* (*fp_gtk_file_chooser_get_filenames)(GtkFileChooser *chooser); |
310 | static guint (*fp_gtk_g_slist_length)(GSList *list); |
311 | static gulong (*fp_g_signal_connect_data)(gpointer instance, |
312 | const gchar *detailed_signal, GCallback c_handler, gpointer data, |
313 | GClosureNotify destroy_data, GConnectFlags connect_flags); |
314 | static void (*fp_gtk_widget_show)(void *widget); |
315 | static void (*fp_gtk_main)(void); |
316 | static guint (*fp_gtk_main_level)(void); |
317 | static gchar* (*fp_g_path_get_dirname) (const gchar *file_name); |
318 | static XID (*fp_gdk_x11_drawable_get_xid) (GdkWindow *drawable); |
319 | |
320 | static GList* (*fp_g_list_append) (GList *list, gpointer data); |
321 | static void (*fp_g_list_free) (GList *list); |
322 | static void (*fp_g_list_free_full) (GList *list, GDestroyNotify free_func); |
323 | |
324 | static void (*fp_gdk_threads_enter)(void); |
325 | static void (*fp_gdk_threads_leave)(void); |
326 | |
327 | static gboolean (*fp_gtk_show_uri)(GdkScreen *screen, const gchar *uri, |
328 | guint32 timestamp, GError **error); |
329 | |
330 | // Implementation functions prototypes |
331 | static void gtk3_init(GtkApi* gtk); |
332 | static GValue* (*fp_g_value_init)(GValue *value, GType g_type); |
333 | static gboolean (*fp_g_type_is_a)(GType type, GType is_a_type); |
334 | static gboolean (*fp_g_value_get_boolean)(const GValue *value); |
335 | static gchar (*fp_g_value_get_char)(const GValue *value); |
336 | static guchar (*fp_g_value_get_uchar)(const GValue *value); |
337 | static gint (*fp_g_value_get_int)(const GValue *value); |
338 | static guint (*fp_g_value_get_uint)(const GValue *value); |
339 | static glong (*fp_g_value_get_long)(const GValue *value); |
340 | static gulong (*fp_g_value_get_ulong)(const GValue *value); |
341 | static gint64 (*fp_g_value_get_int64)(const GValue *value); |
342 | static guint64 (*fp_g_value_get_uint64)(const GValue *value); |
343 | static gfloat (*fp_g_value_get_float)(const GValue *value); |
344 | static gdouble (*fp_g_value_get_double)(const GValue *value); |
345 | static const gchar* (*fp_g_value_get_string)(const GValue *value); |
346 | static gint (*fp_g_value_get_enum)(const GValue *value); |
347 | static guint (*fp_g_value_get_flags)(const GValue *value); |
348 | static GParamSpec* (*fp_g_value_get_param)(const GValue *value); |
349 | static gpointer* (*fp_g_value_get_boxed)(const GValue *value); |
350 | static gpointer* (*fp_g_value_get_pointer)(const GValue *value); |
351 | static void (*fp_g_object_get)(gpointer object, |
352 | const gchar* fpn, ...); |
353 | static void (*fp_g_object_set)(gpointer object, |
354 | const gchar *first_property_name, |
355 | ...); |
356 | |
357 | static gboolean (*fp_g_main_context_iteration)(GMainContext *context); |
358 | static gboolean (*fp_g_str_has_prefix)(const gchar *str, const gchar *prefix); |
359 | static gchar** (*fp_g_strsplit)(const gchar *string, const gchar *delimiter, |
360 | gint max_tokens); |
361 | static void (*fp_g_strfreev)(gchar **str_array); |
362 | |
363 | |
364 | static cairo_surface_t* (*fp_cairo_image_surface_create)(cairo_format_t format, |
365 | int width, int height); |
366 | static void (*fp_cairo_surface_destroy)(cairo_surface_t *surface); |
367 | static cairo_t* (*fp_cairo_create)(cairo_surface_t *target); |
368 | static void (*fp_cairo_destroy)(cairo_t *cr); |
369 | static void (*fp_cairo_fill)(cairo_t *cr); |
370 | static void (*fp_cairo_surface_flush)(cairo_surface_t *surface); |
371 | static void (*fp_cairo_rectangle)(cairo_t *cr, double x, double y, double width, |
372 | double height); |
373 | static void (*fp_cairo_set_source_rgb)(cairo_t *cr, double red, double green, |
374 | double blue); |
375 | static void (*fp_cairo_set_source_rgba)(cairo_t *cr, double red, double green, |
376 | double blue, double alpha); |
377 | static void (*fp_cairo_paint)(cairo_t *cr); |
378 | static void (*fp_cairo_clip)(cairo_t *cr); |
379 | static unsigned char* (*fp_cairo_image_surface_get_data)( |
380 | cairo_surface_t *surface); |
381 | static int (*fp_cairo_image_surface_get_stride) (cairo_surface_t *surface); |
382 | static GdkPixbuf* (*fp_gdk_pixbuf_get_from_surface)(cairo_surface_t *surface, |
383 | gint src_x, gint src_y, gint width, gint height); |
384 | static GtkStateType (*fp_gtk_widget_get_state)(GtkWidget *widget); |
385 | static void (*fp_gtk_widget_set_state)(GtkWidget *widget, GtkStateType state); |
386 | static gboolean (*fp_gtk_widget_is_focus)(GtkWidget *widget); |
387 | static void (*fp_gtk_widget_set_allocation)(GtkWidget *widget, |
388 | const GtkAllocation *allocation); |
389 | static GtkWidget* (*fp_gtk_widget_get_parent)(GtkWidget *widget); |
390 | static GtkStyleContext* (*fp_gtk_widget_get_style_context)(GtkWidget *widget); |
391 | static void (*fp_gtk_style_context_get_color)(GtkStyleContext *context, |
392 | GtkStateFlags state, GdkRGBA *color); |
393 | static void (*fp_gtk_style_context_get_background_color) |
394 | (GtkStyleContext *context, GtkStateFlags state, GdkRGBA *color); |
395 | static void (*fp_gtk_style_context_get)(GtkStyleContext *context, |
396 | GtkStateFlags state, ...); |
397 | static GtkStateFlags (*fp_gtk_widget_get_state_flags)(GtkWidget* widget); |
398 | static void (*fp_gtk_style_context_set_state)(GtkStyleContext* style, |
399 | GtkStateFlags flags); |
400 | static void (*fp_gtk_style_context_add_class)(GtkStyleContext *context, |
401 | const gchar *class_name); |
402 | static void (*fp_gtk_style_context_save)(GtkStyleContext *context); |
403 | static void (*fp_gtk_style_context_restore)(GtkStyleContext *context); |
404 | static void (*fp_gtk_render_check)(GtkStyleContext *context, cairo_t *cr, |
405 | gdouble x, gdouble y, gdouble width, gdouble height); |
406 | static void (*fp_gtk_render_option)(GtkStyleContext *context, cairo_t *cr, |
407 | gdouble x, gdouble y, gdouble width, gdouble height); |
408 | static void (*fp_gtk_render_extension)(GtkStyleContext *context, cairo_t *cr, |
409 | gdouble x, gdouble y, gdouble width, gdouble height, |
410 | GtkPositionType gap_side); |
411 | static void (*fp_gtk_render_expander)(GtkStyleContext *context, cairo_t *cr, |
412 | gdouble x, gdouble y, gdouble width, gdouble height); |
413 | static void (*fp_gtk_render_frame_gap)(GtkStyleContext *context, cairo_t *cr, |
414 | gdouble x, gdouble y, gdouble width, gdouble height, |
415 | GtkPositionType gap_side, gdouble xy0_gap, |
416 | gdouble xy1_gap); |
417 | static void (*fp_gtk_render_line)(GtkStyleContext *context, cairo_t *cr, |
418 | gdouble x0, gdouble y0, gdouble x1, gdouble y1); |
419 | static GdkPixbuf* (*fp_gtk_widget_render_icon_pixbuf)(GtkWidget *widget, |
420 | const gchar *stock_id, GtkIconSize size); |
421 | static cairo_surface_t* (*fp_gdk_window_create_similar_image_surface)( |
422 | GdkWindow *window, cairo_format_t format, int width, |
423 | int height, int scale); |
424 | static cairo_surface_t* (*fp_gdk_window_create_similar_surface)( |
425 | GdkWindow *window, cairo_format_t format, |
426 | int width, int height); |
427 | static GdkWindow* (*fp_gtk_widget_get_window)(GtkWidget *widget); |
428 | static GtkSettings *(*fp_gtk_settings_get_for_screen)(GdkScreen *screen); |
429 | static GdkScreen *(*fp_gtk_widget_get_screen)(GtkWidget *widget); |
430 | static GtkStyleProvider* (*fp_gtk_css_provider_get_named)(const gchar *name, |
431 | const gchar *variant); |
432 | static void (*fp_gtk_style_context_add_provider)(GtkStyleContext *context, |
433 | GtkStyleProvider *provider, guint priority); |
434 | static void (*fp_gtk_render_frame)(GtkStyleContext *context,cairo_t *cr, |
435 | gdouble x, gdouble y, gdouble width, gdouble height); |
436 | static void (*fp_gtk_render_focus)(GtkStyleContext *context,cairo_t *cr, |
437 | gdouble x, gdouble y, gdouble width, gdouble height); |
438 | static void (*fp_gtk_render_handle)(GtkStyleContext *context,cairo_t *cr, |
439 | gdouble x, gdouble y, gdouble width, gdouble height); |
440 | static void (*fp_gtk_style_context_get_property)(GtkStyleContext *context, |
441 | const gchar *property, GtkStateFlags state, GValue *value); |
442 | static void (*fp_gtk_render_activity)(GtkStyleContext *context, cairo_t *cr, |
443 | gdouble x, gdouble y, gdouble width, gdouble height); |
444 | static void (*fp_gtk_render_background)(GtkStyleContext *context, cairo_t *cr, |
445 | gdouble x, gdouble y, gdouble width, gdouble height); |
446 | static gboolean (*fp_gtk_style_context_has_class)(GtkStyleContext *context, |
447 | const gchar *class_name); |
448 | static void transform_detail_string (const gchar *detail, |
449 | GtkStyleContext *context); |
450 | void (*fp_gtk_style_context_set_junction_sides)(GtkStyleContext *context, |
451 | GtkJunctionSides sides); |
452 | void (*fp_gtk_style_context_add_region)(GtkStyleContext *context, |
453 | const gchar *region_name, GtkRegionFlags flags); |
454 | void (*fp_gtk_render_arrow)(GtkStyleContext *context, cairo_t *cr, |
455 | gdouble angle, gdouble x, gdouble y, gdouble size); |
456 | void (*fp_gtk_bin_set_child)(GtkBin *bin, GtkWidget *widget); |
457 | void (*fp_gtk_scrolled_window_set_shadow_type)( |
458 | GtkScrolledWindow *scrolled_window, GtkShadowType type); |
459 | static void (*fp_gtk_render_slider)(GtkStyleContext *context, cairo_t *cr, |
460 | gdouble x, gdouble y, gdouble width, gdouble height, |
461 | GtkOrientation orientation); |
462 | static void (*fp_gtk_style_context_get_padding)(GtkStyleContext *self, |
463 | GtkStateFlags state, GtkBorder* padding); |
464 | static void (*fp_gtk_range_set_inverted)(GtkRange *range, gboolean setting); |
465 | static PangoFontDescription* (*fp_gtk_style_context_get_font)( |
466 | GtkStyleContext *context, GtkStateFlags state); |
467 | static int (*fp_gtk_widget_get_allocated_width)(GtkWidget *widget); |
468 | static int (*fp_gtk_widget_get_allocated_height)(GtkWidget *widget); |
469 | static GtkIconTheme* (*fp_gtk_icon_theme_get_default)(void); |
470 | static GdkPixbuf* (*fp_gtk_icon_theme_load_icon)(GtkIconTheme *icon_theme, |
471 | const gchar *icon_name, gint size, |
472 | GtkIconLookupFlags flags, GError **error); |
473 | static void (*fp_gtk_adjustment_set_lower)(GtkAdjustment *adjustment, |
474 | gdouble lower); |
475 | static void (*fp_gtk_adjustment_set_page_increment)(GtkAdjustment *adjustment, |
476 | gdouble page_increment); |
477 | static void (*fp_gtk_adjustment_set_page_size)(GtkAdjustment *adjustment, |
478 | gdouble page_size); |
479 | static void (*fp_gtk_adjustment_set_step_increment)(GtkAdjustment *adjustment, |
480 | gdouble step_increment); |
481 | static void (*fp_gtk_adjustment_set_upper)(GtkAdjustment *adjustment, |
482 | gdouble upper); |
483 | static void (*fp_gtk_adjustment_set_value)(GtkAdjustment *adjustment, |
484 | gdouble value); |
485 | static GdkGC *(*fp_gdk_gc_new)(GdkDrawable*); |
486 | static void (*fp_gdk_rgb_gc_set_foreground)(GdkGC*, guint32); |
487 | static void (*fp_gdk_draw_rectangle)(GdkDrawable*, GdkGC*, gboolean, |
488 | gint, gint, gint, gint); |
489 | static GdkPixbuf *(*fp_gdk_pixbuf_new)(GdkColorspace colorspace, |
490 | gboolean has_alpha, int bits_per_sample, int width, int height); |
491 | static void (*fp_gdk_drawable_get_size)(GdkDrawable *drawable, |
492 | gint* width, gint* height); |
493 | static gboolean (*fp_gtk_init_check)(int* argc, char** argv); |
494 | |
495 | /* Widget creation */ |
496 | static GtkWidget* (*fp_gtk_arrow_new)(GtkArrowType arrow_type, |
497 | GtkShadowType shadow_type); |
498 | static GtkWidget* (*fp_gtk_button_new)(); |
499 | static GtkWidget* (*fp_gtk_check_button_new)(); |
500 | static GtkWidget* (*)(); |
501 | static GtkWidget* (*fp_gtk_color_selection_dialog_new)(const gchar* title); |
502 | static GtkWidget* (*fp_gtk_combo_box_new)(); |
503 | static GtkWidget* (*fp_gtk_combo_box_entry_new)(); |
504 | static GtkWidget* (*fp_gtk_entry_new)(); |
505 | static GtkWidget* (*fp_gtk_fixed_new)(); |
506 | static GtkWidget* (*fp_gtk_handle_box_new)(); |
507 | static GtkWidget* (*fp_gtk_paned_new)(GtkOrientation orientation); |
508 | static GtkWidget* (*fp_gtk_scale_new)(GtkOrientation orientation, |
509 | GtkAdjustment* adjustment); |
510 | static GtkWidget* (*fp_gtk_hscrollbar_new)(GtkAdjustment* adjustment); |
511 | static GtkWidget* (*fp_gtk_vscrollbar_new)(GtkAdjustment* adjustment); |
512 | static GtkWidget* (*fp_gtk_hseparator_new)(); |
513 | static GtkWidget* (*fp_gtk_vseparator_new)(); |
514 | static GtkWidget* (*fp_gtk_image_new)(); |
515 | static GtkWidget* (*fp_gtk_label_new)(const gchar* str); |
516 | static GtkWidget* (*)(); |
517 | static GtkWidget* (*)(); |
518 | static GtkWidget* (*)(); |
519 | static GtkWidget* (*fp_gtk_notebook_new)(); |
520 | static GtkWidget* (*fp_gtk_progress_bar_new)(); |
521 | static GtkWidget* (*fp_gtk_progress_bar_set_orientation)( |
522 | GtkProgressBar *pbar, |
523 | GtkProgressBarOrientation orientation); |
524 | static GtkWidget* (*fp_gtk_radio_button_new)(GSList *group); |
525 | static GtkWidget* (*)(GSList *group); |
526 | static GtkWidget* (*fp_gtk_scrolled_window_new)(GtkAdjustment *hadjustment, |
527 | GtkAdjustment *vadjustment); |
528 | static GtkWidget* (*)(); |
529 | static GtkWidget* (*fp_gtk_separator_tool_item_new)(); |
530 | static GtkWidget* (*fp_gtk_text_view_new)(); |
531 | static GtkWidget* (*fp_gtk_toggle_button_new)(); |
532 | static GtkWidget* (*fp_gtk_toolbar_new)(); |
533 | static GtkWidget* (*fp_gtk_tree_view_new)(); |
534 | static GtkWidget* (*fp_gtk_viewport_new)(GtkAdjustment *hadjustment, |
535 | GtkAdjustment *vadjustment); |
536 | static GtkWidget* (*fp_gtk_window_new)(GtkWindowType type); |
537 | static GtkWidget* (*fp_gtk_dialog_new)(); |
538 | static GtkWidget* (*fp_gtk_spin_button_new)(GtkAdjustment *adjustment, |
539 | gdouble climb_rate, guint digits); |
540 | static GtkWidget* (*fp_gtk_frame_new)(const gchar *label); |
541 | |
542 | /* Other widget operations */ |
543 | static GtkAdjustment* (*fp_gtk_adjustment_new)(gdouble value, |
544 | gdouble lower, gdouble upper, gdouble step_increment, |
545 | gdouble page_increment, gdouble page_size); |
546 | static void (*fp_gtk_container_add)(GtkContainer *window, GtkWidget *widget); |
547 | static void (*)(GtkMenuShell *, |
548 | GtkWidget *child); |
549 | static void (*)(GtkMenuItem *, |
550 | GtkWidget *); |
551 | static void (*fp_gtk_widget_realize)(GtkWidget *widget); |
552 | static GdkPixbuf* (*fp_gtk_widget_render_icon)(GtkWidget *widget, |
553 | const gchar *stock_id, GtkIconSize size, const gchar *detail); |
554 | static void (*fp_gtk_widget_set_name)(GtkWidget *widget, const gchar *name); |
555 | static void (*fp_gtk_widget_set_parent)(GtkWidget *widget, GtkWidget *parent); |
556 | static void (*fp_gtk_widget_set_direction)(GtkWidget *widget, |
557 | GtkTextDirection direction); |
558 | static void (*fp_gtk_widget_style_get)(GtkWidget *widget, |
559 | const gchar *first_property_name, ...); |
560 | static void (*fp_gtk_widget_class_install_style_property)( |
561 | GtkWidgetClass* class, GParamSpec *pspec); |
562 | static GParamSpec* (*fp_gtk_widget_class_find_style_property)( |
563 | GtkWidgetClass* class, const gchar* property_name); |
564 | static void (*fp_gtk_widget_style_get_property)(GtkWidget* widget, |
565 | const gchar* property_name, GValue* value); |
566 | static char* (*fp_pango_font_description_to_string)( |
567 | const PangoFontDescription* fd); |
568 | static GtkSettings* (*fp_gtk_settings_get_default)(); |
569 | static GtkSettings* (*fp_gtk_widget_get_settings)(GtkWidget *widget); |
570 | static GType (*fp_gtk_border_get_type)(); |
571 | static void (*fp_gtk_arrow_set)(GtkWidget* arrow, |
572 | GtkArrowType arrow_type, |
573 | GtkShadowType shadow_type); |
574 | static void (*fp_gtk_widget_size_request)(GtkWidget *widget, |
575 | GtkRequisition *requisition); |
576 | static GtkAdjustment* (*fp_gtk_range_get_adjustment)(GtkRange* range); |
577 | static GtkWidgetPath* (*fp_gtk_widget_path_copy) |
578 | (const GtkWidgetPath *path); |
579 | static const GtkWidgetPath* (*fp_gtk_style_context_get_path) |
580 | (GtkStyleContext *context); |
581 | static GtkWidgetPath* (*fp_gtk_widget_path_new) (void); |
582 | static gint (*fp_gtk_widget_path_append_type) |
583 | (GtkWidgetPath *path, GType type); |
584 | static void (*fp_gtk_widget_path_iter_set_object_name) |
585 | (GtkWidgetPath *path, gint pos, const char *name); |
586 | static void (*fp_gtk_style_context_set_path) |
587 | (GtkStyleContext *context, GtkWidgetPath *path); |
588 | static void (*fp_gtk_widget_path_unref) (GtkWidgetPath *path); |
589 | static GtkStyleContext* (*fp_gtk_style_context_new) (void); |
590 | |
591 | #endif /* !_GTK3_INTERFACE_H */ |
592 | |