Path: blob/master/src/java.desktop/unix/native/libawt_xawt/awt/gtk3_interface.h
41155 views
/*1* Copyright (c) 2005, 2020, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation. Oracle designates this7* particular file as subject to the "Classpath" exception as provided8* by Oracle in the LICENSE file that accompanied this code.9*10* This code is distributed in the hope that it will be useful, but WITHOUT11* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or12* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License13* version 2 for more details (a copy is included in the LICENSE file that14* accompanied this code).15*16* You should have received a copy of the GNU General Public License version17* 2 along with this work; if not, write to the Free Software Foundation,18* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.19*20* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA21* or visit www.oracle.com if you need additional information or have any22* questions.23*/2425#ifdef HEADLESS26#error This file should not be included in headless library27#endif2829#ifndef _GTK3_INTERFACE_H30#define _GTK3_INTERFACE_H3132#include <stdlib.h>33#include <jni.h>34#include <X11/X.h>35#include "gtk_interface.h"3637#define LIGHTNESS_MULT 1.338#define DARKNESS_MULT 0.73940#define G_PI 3.14159265358979323846264338327950288419716939937514142typedef enum43{44GTK_STATE_FLAG_NORMAL = 0,45GTK_STATE_FLAG_ACTIVE = 1 << 0,46GTK_STATE_FLAG_PRELIGHT = 1 << 1,47GTK_STATE_FLAG_SELECTED = 1 << 2,48GTK_STATE_FLAG_INSENSITIVE = 1 << 3,49GTK_STATE_FLAG_INCONSISTENT = 1 << 4,50GTK_STATE_FLAG_FOCUSED = 1 << 5,51GTK_STATE_FLAG_BACKDROP = 1 << 6,52GTK_STATE_FLAG_DIR_LTR = 1 << 7,53GTK_STATE_FLAG_DIR_RTL = 1 << 8,54GTK_STATE_FLAG_LINK = 1 << 9,55GTK_STATE_FLAG_VISITED = 1 << 10,56GTK_STATE_FLAG_CHECKED = 1 << 1157} GtkStateFlags;5859typedef enum {60GTK_JUNCTION_NONE = 0,61GTK_JUNCTION_CORNER_TOPLEFT = 1 << 0,62GTK_JUNCTION_CORNER_TOPRIGHT = 1 << 1,63GTK_JUNCTION_CORNER_BOTTOMLEFT = 1 << 2,64GTK_JUNCTION_CORNER_BOTTOMRIGHT = 1 << 3,65GTK_JUNCTION_TOP =66(GTK_JUNCTION_CORNER_TOPLEFT | GTK_JUNCTION_CORNER_TOPRIGHT),67GTK_JUNCTION_BOTTOM =68(GTK_JUNCTION_CORNER_BOTTOMLEFT | GTK_JUNCTION_CORNER_BOTTOMRIGHT),69GTK_JUNCTION_LEFT =70(GTK_JUNCTION_CORNER_TOPLEFT | GTK_JUNCTION_CORNER_BOTTOMLEFT),71GTK_JUNCTION_RIGHT =72(GTK_JUNCTION_CORNER_TOPRIGHT | GTK_JUNCTION_CORNER_BOTTOMRIGHT)73} GtkJunctionSides;7475typedef enum {76GTK_REGION_EVEN = 1 << 0,77GTK_REGION_ODD = 1 << 1,78GTK_REGION_FIRST = 1 << 2,79GTK_REGION_LAST = 1 << 3,80GTK_REGION_ONLY = 1 << 4,81GTK_REGION_SORTED = 1 << 582} GtkRegionFlags;8384typedef enum85{86GTK_WINDOW_TOPLEVEL,87GTK_WINDOW_POPUP88} GtkWindowType;8990typedef enum91{92G_PARAM_READABLE = 1 << 0,93G_PARAM_WRITABLE = 1 << 1,94G_PARAM_CONSTRUCT = 1 << 2,95G_PARAM_CONSTRUCT_ONLY = 1 << 3,96G_PARAM_LAX_VALIDATION = 1 << 4,97G_PARAM_STATIC_NAME = 1 << 598} GParamFlags;99100typedef enum101{102GTK_ICON_LOOKUP_NO_SVG = 1 << 0,103GTK_ICON_LOOKUP_FORCE_SVG = 1 << 1,104GTK_ICON_LOOKUP_USE_BUILTIN = 1 << 2,105GTK_ICON_LOOKUP_GENERIC_FALLBACK = 1 << 3,106GTK_ICON_LOOKUP_FORCE_SIZE = 1 << 4107} GtkIconLookupFlags;108109typedef enum110{111GTK_UPDATE_CONTINUOUS,112GTK_UPDATE_DISCONTINUOUS,113GTK_UPDATE_DELAYED114} GtkUpdateType;115116typedef enum117{118GTK_PROGRESS_CONTINUOUS,119GTK_PROGRESS_DISCRETE120} GtkProgressBarStyle;121122typedef enum123{124GTK_PROGRESS_LEFT_TO_RIGHT,125GTK_PROGRESS_RIGHT_TO_LEFT,126GTK_PROGRESS_BOTTOM_TO_TOP,127GTK_PROGRESS_TOP_TO_BOTTOM128} GtkProgressBarOrientation;129130typedef enum {131CAIRO_FORMAT_INVALID = -1,132CAIRO_FORMAT_ARGB32 = 0,133CAIRO_FORMAT_RGB24 = 1,134CAIRO_FORMAT_A8 = 2,135CAIRO_FORMAT_A1 = 3,136CAIRO_FORMAT_RGB16_565 = 4137} cairo_format_t;138139typedef enum _cairo_status {140CAIRO_STATUS_SUCCESS = 0,141142CAIRO_STATUS_NO_MEMORY,143CAIRO_STATUS_INVALID_RESTORE,144CAIRO_STATUS_INVALID_POP_GROUP,145CAIRO_STATUS_NO_CURRENT_POINT,146CAIRO_STATUS_INVALID_MATRIX,147CAIRO_STATUS_INVALID_STATUS,148CAIRO_STATUS_NULL_POINTER,149CAIRO_STATUS_INVALID_STRING,150CAIRO_STATUS_INVALID_PATH_DATA,151CAIRO_STATUS_READ_ERROR,152CAIRO_STATUS_WRITE_ERROR,153CAIRO_STATUS_SURFACE_FINISHED,154CAIRO_STATUS_SURFACE_TYPE_MISMATCH,155CAIRO_STATUS_PATTERN_TYPE_MISMATCH,156CAIRO_STATUS_INVALID_CONTENT,157CAIRO_STATUS_INVALID_FORMAT,158CAIRO_STATUS_INVALID_VISUAL,159CAIRO_STATUS_FILE_NOT_FOUND,160CAIRO_STATUS_INVALID_DASH,161CAIRO_STATUS_INVALID_DSC_COMMENT,162CAIRO_STATUS_INVALID_INDEX,163CAIRO_STATUS_CLIP_NOT_REPRESENTABLE,164CAIRO_STATUS_TEMP_FILE_ERROR,165CAIRO_STATUS_INVALID_STRIDE,166CAIRO_STATUS_FONT_TYPE_MISMATCH,167CAIRO_STATUS_USER_FONT_IMMUTABLE,168CAIRO_STATUS_USER_FONT_ERROR,169CAIRO_STATUS_NEGATIVE_COUNT,170CAIRO_STATUS_INVALID_CLUSTERS,171CAIRO_STATUS_INVALID_SLANT,172CAIRO_STATUS_INVALID_WEIGHT,173CAIRO_STATUS_INVALID_SIZE,174CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED,175CAIRO_STATUS_DEVICE_TYPE_MISMATCH,176CAIRO_STATUS_DEVICE_ERROR,177178CAIRO_STATUS_LAST_STATUS179} cairo_status_t;180181/* We define all structure pointers to be void* */182typedef void GdkPixbuf;183typedef void GMainContext;184typedef void GVfs;185186typedef void GdkColormap;187typedef void GdkDrawable;188typedef void GdkGC;189typedef void GdkPixmap;190typedef void GtkStyleContext;191typedef void GtkFixed;192typedef void GtkMenuItem;193typedef void GtkMenuShell;194typedef void GtkWidgetClass;195typedef void PangoFontDescription;196typedef void GtkSettings;197typedef void GtkStyleProvider;198typedef void cairo_pattern_t;199typedef void cairo_t;200typedef void cairo_surface_t;201typedef void GtkScrolledWindow;202typedef void GtkIconTheme;203typedef void GtkWidget;204typedef void GtkMisc;205typedef void GtkContainer;206typedef void GtkBin;207typedef void GtkAdjustment;208typedef void GtkRange;209typedef void GtkProgressBar;210typedef void GtkProgress;211typedef void GtkWidgetPath;212typedef void GtkPaned;213214/* Some real structures */215typedef struct216{217guint32 pixel;218guint16 red;219guint16 green;220guint16 blue;221} GdkColor;222223typedef struct224{225gdouble red;226gdouble green;227gdouble blue;228gdouble alpha;229} GdkRGBA;230231typedef struct {232gint fd;233gushort events;234gushort revents;235} GPollFD;236237typedef struct {238gint x;239gint y;240gint width;241gint height;242} GdkRectangle;243244typedef struct {245int x, y;246int width, height;247} GtkAllocation;248249typedef struct {250gint width;251gint height;252} GtkRequisition;253254typedef struct {255GtkWidgetClass *g_class;256} GTypeInstance;257258typedef struct {259gint16 left;260gint16 right;261gint16 top;262gint16 bottom;263} GtkBorder;264265typedef struct266{267GType g_type;268union {269gint v_int;270guint v_uint;271glong v_long;272gulong v_ulong;273gint64 v_int64;274guint64 v_uint64;275gfloat v_float;276gdouble v_double;277gpointer v_pointer;278} data[2];279} GValue;280281typedef struct {282GTypeInstance g_type_instance;283const gchar *name;284GParamFlags flags;285GType value_type;286GType owner_type;287} GParamSpec;288289static gchar* (*fp_glib_check_version)(guint required_major,290guint required_minor, guint required_micro);291292/**293* Returns :294* NULL if the GTK+ library is compatible with the given version, or a string295* describing the version mismatch.296*/297static gchar* (*fp_gtk_check_version)(guint required_major, guint298required_minor, guint required_micro);299300static void (*fp_g_free)(gpointer mem);301static void (*fp_g_object_unref)(gpointer object);302static GdkWindow *(*fp_gdk_get_default_root_window) (void);303static int (*fp_gdk_window_get_scale_factor) (GdkWindow *window);304305static int (*fp_gdk_pixbuf_get_bits_per_sample)(const GdkPixbuf *pixbuf);306static guchar *(*fp_gdk_pixbuf_get_pixels)(const GdkPixbuf *pixbuf);307static gboolean (*fp_gdk_pixbuf_get_has_alpha)(const GdkPixbuf *pixbuf);308static int (*fp_gdk_pixbuf_get_height)(const GdkPixbuf *pixbuf);309static int (*fp_gdk_pixbuf_get_n_channels)(const GdkPixbuf *pixbuf);310static int (*fp_gdk_pixbuf_get_rowstride)(const GdkPixbuf *pixbuf);311static int (*fp_gdk_pixbuf_get_width)(const GdkPixbuf *pixbuf);312static GdkPixbuf *(*fp_gdk_pixbuf_new_from_file)(const char *filename,313GError **error);314static GdkColorspace (*fp_gdk_pixbuf_get_colorspace)(const GdkPixbuf *pixbuf);315316static GdkPixbuf *(*fp_gdk_pixbuf_get_from_drawable)(GdkWindow *window,317int src_x, int src_y, int width, int height);318static GdkPixbuf *(*fp_gdk_pixbuf_scale_simple)(GdkPixbuf *src,319int dest_width, int dest_heigh, GdkInterpType interp_type);320321322static void (*fp_gtk_widget_destroy)(void *widget);323static void (*fp_gtk_window_present)(GtkWindow *window);324static void (*fp_gtk_window_move)(GtkWindow *window, gint x, gint y);325static void (*fp_gtk_window_resize)(GtkWindow *window, gint width, gint height);326327/**328* Function Pointers for GtkFileChooser329*/330static gchar* (*fp_gtk_file_chooser_get_filename)(GtkFileChooser *chooser);331static void (*fp_gtk_widget_hide)(void *widget);332static void (*fp_gtk_main_quit)(void);333static void* (*fp_gtk_file_chooser_dialog_new)(const gchar *title,334GtkWindow *parent, GtkFileChooserAction action,335const gchar *first_button_text, ...);336static gboolean (*fp_gtk_file_chooser_set_current_folder)337(GtkFileChooser *chooser, const gchar *filename);338static gboolean (*fp_gtk_file_chooser_set_filename)(GtkFileChooser *chooser,339const char *filename);340static void (*fp_gtk_file_chooser_set_current_name)(GtkFileChooser *chooser,341const gchar *name);342static void (*fp_gtk_file_filter_add_custom)(GtkFileFilter *filter,343GtkFileFilterFlags needed, GtkFileFilterFunc func, gpointer data,344GDestroyNotify notify);345static void (*fp_gtk_file_chooser_set_filter)(GtkFileChooser *chooser,346GtkFileFilter *filter);347static GType (*fp_gtk_file_chooser_get_type)(void);348static GtkFileFilter* (*fp_gtk_file_filter_new)(void);349static void (*fp_gtk_file_chooser_set_do_overwrite_confirmation)(350GtkFileChooser *chooser, gboolean do_overwrite_confirmation);351static void (*fp_gtk_file_chooser_set_select_multiple)(352GtkFileChooser *chooser, gboolean select_multiple);353static gchar* (*fp_gtk_file_chooser_get_current_folder)354(GtkFileChooser *chooser);355static GSList* (*fp_gtk_file_chooser_get_filenames)(GtkFileChooser *chooser);356static guint (*fp_gtk_g_slist_length)(GSList *list);357static gulong (*fp_g_signal_connect_data)(gpointer instance,358const gchar *detailed_signal, GCallback c_handler, gpointer data,359GClosureNotify destroy_data, GConnectFlags connect_flags);360static void (*fp_gtk_widget_show)(void *widget);361static void (*fp_gtk_main)(void);362static guint (*fp_gtk_main_level)(void);363static gchar* (*fp_g_path_get_dirname) (const gchar *file_name);364static XID (*fp_gdk_x11_drawable_get_xid) (GdkWindow *drawable);365366static GList* (*fp_g_list_append) (GList *list, gpointer data);367static void (*fp_g_list_free) (GList *list);368static void (*fp_g_list_free_full) (GList *list, GDestroyNotify free_func);369370static void (*fp_gdk_threads_enter)(void);371static void (*fp_gdk_threads_leave)(void);372373static gboolean (*fp_gtk_show_uri)(GdkScreen *screen, const gchar *uri,374guint32 timestamp, GError **error);375376// Implementation functions prototypes377static void gtk3_init(GtkApi* gtk);378static GValue* (*fp_g_value_init)(GValue *value, GType g_type);379static gboolean (*fp_g_type_is_a)(GType type, GType is_a_type);380static gboolean (*fp_g_value_get_boolean)(const GValue *value);381static gchar (*fp_g_value_get_char)(const GValue *value);382static guchar (*fp_g_value_get_uchar)(const GValue *value);383static gint (*fp_g_value_get_int)(const GValue *value);384static guint (*fp_g_value_get_uint)(const GValue *value);385static glong (*fp_g_value_get_long)(const GValue *value);386static gulong (*fp_g_value_get_ulong)(const GValue *value);387static gint64 (*fp_g_value_get_int64)(const GValue *value);388static guint64 (*fp_g_value_get_uint64)(const GValue *value);389static gfloat (*fp_g_value_get_float)(const GValue *value);390static gdouble (*fp_g_value_get_double)(const GValue *value);391static const gchar* (*fp_g_value_get_string)(const GValue *value);392static gint (*fp_g_value_get_enum)(const GValue *value);393static guint (*fp_g_value_get_flags)(const GValue *value);394static GParamSpec* (*fp_g_value_get_param)(const GValue *value);395static gpointer* (*fp_g_value_get_boxed)(const GValue *value);396static gpointer* (*fp_g_value_get_pointer)(const GValue *value);397static void (*fp_g_object_get)(gpointer object,398const gchar* fpn, ...);399static void (*fp_g_object_set)(gpointer object,400const gchar *first_property_name,401...);402403static gboolean (*fp_g_main_context_iteration)(GMainContext *context, gboolean may_block);404static gboolean (*fp_g_str_has_prefix)(const gchar *str, const gchar *prefix);405static gchar** (*fp_g_strsplit)(const gchar *string, const gchar *delimiter,406gint max_tokens);407static void (*fp_g_strfreev)(gchar **str_array);408409410static cairo_surface_t* (*fp_cairo_image_surface_create)(cairo_format_t format,411int width, int height);412static void (*fp_cairo_surface_destroy)(cairo_surface_t *surface);413static cairo_status_t (*fp_cairo_surface_status)(cairo_surface_t *surface);414static cairo_t* (*fp_cairo_create)(cairo_surface_t *target);415static void (*fp_cairo_destroy)(cairo_t *cr);416static cairo_status_t (*fp_cairo_status)(cairo_t *cr);417static void (*fp_cairo_fill)(cairo_t *cr);418static void (*fp_cairo_surface_flush)(cairo_surface_t *surface);419static void (*fp_cairo_rectangle)(cairo_t *cr, double x, double y, double width,420double height);421static void (*fp_cairo_set_source_rgb)(cairo_t *cr, double red, double green,422double blue);423static void (*fp_cairo_set_source_rgba)(cairo_t *cr, double red, double green,424double blue, double alpha);425static void (*fp_cairo_paint)(cairo_t *cr);426static void (*fp_cairo_clip)(cairo_t *cr);427static unsigned char* (*fp_cairo_image_surface_get_data)(428cairo_surface_t *surface);429static int (*fp_cairo_image_surface_get_stride) (cairo_surface_t *surface);430static GdkPixbuf* (*fp_gdk_pixbuf_get_from_surface)(cairo_surface_t *surface,431gint src_x, gint src_y, gint width, gint height);432static GtkStateType (*fp_gtk_widget_get_state)(GtkWidget *widget);433static void (*fp_gtk_widget_set_state)(GtkWidget *widget, GtkStateType state);434static gboolean (*fp_gtk_widget_is_focus)(GtkWidget *widget);435static void (*fp_gtk_widget_set_allocation)(GtkWidget *widget,436const GtkAllocation *allocation);437static GtkWidget* (*fp_gtk_widget_get_parent)(GtkWidget *widget);438static GtkStyleContext* (*fp_gtk_widget_get_style_context)(GtkWidget *widget);439static void (*fp_gtk_style_context_get_color)(GtkStyleContext *context,440GtkStateFlags state, GdkRGBA *color);441static void (*fp_gtk_style_context_get_background_color)442(GtkStyleContext *context, GtkStateFlags state, GdkRGBA *color);443static void (*fp_gtk_style_context_get)(GtkStyleContext *context,444GtkStateFlags state, ...);445static GtkStateFlags (*fp_gtk_widget_get_state_flags)(GtkWidget* widget);446static void (*fp_gtk_style_context_set_state)(GtkStyleContext* style,447GtkStateFlags flags);448static void (*fp_gtk_style_context_add_class)(GtkStyleContext *context,449const gchar *class_name);450static void (*fp_gtk_style_context_save)(GtkStyleContext *context);451static void (*fp_gtk_style_context_restore)(GtkStyleContext *context);452static void (*fp_gtk_render_check)(GtkStyleContext *context, cairo_t *cr,453gdouble x, gdouble y, gdouble width, gdouble height);454static void (*fp_gtk_render_option)(GtkStyleContext *context, cairo_t *cr,455gdouble x, gdouble y, gdouble width, gdouble height);456static void (*fp_gtk_render_extension)(GtkStyleContext *context, cairo_t *cr,457gdouble x, gdouble y, gdouble width, gdouble height,458GtkPositionType gap_side);459static void (*fp_gtk_render_expander)(GtkStyleContext *context, cairo_t *cr,460gdouble x, gdouble y, gdouble width, gdouble height);461static void (*fp_gtk_render_frame_gap)(GtkStyleContext *context, cairo_t *cr,462gdouble x, gdouble y, gdouble width, gdouble height,463GtkPositionType gap_side, gdouble xy0_gap,464gdouble xy1_gap);465static void (*fp_gtk_render_line)(GtkStyleContext *context, cairo_t *cr,466gdouble x0, gdouble y0, gdouble x1, gdouble y1);467static GdkPixbuf* (*fp_gtk_widget_render_icon_pixbuf)(GtkWidget *widget,468const gchar *stock_id, GtkIconSize size);469static cairo_surface_t* (*fp_gdk_window_create_similar_image_surface)(470GdkWindow *window, cairo_format_t format, int width,471int height, int scale);472static cairo_surface_t* (*fp_gdk_window_create_similar_surface)(473GdkWindow *window, cairo_format_t format,474int width, int height);475static GdkWindow* (*fp_gtk_widget_get_window)(GtkWidget *widget);476static GtkSettings *(*fp_gtk_settings_get_for_screen)(GdkScreen *screen);477static GdkScreen *(*fp_gtk_widget_get_screen)(GtkWidget *widget);478static GtkStyleProvider* (*fp_gtk_css_provider_get_named)(const gchar *name,479const gchar *variant);480static void (*fp_gtk_style_context_add_provider)(GtkStyleContext *context,481GtkStyleProvider *provider, guint priority);482static void (*fp_gtk_render_frame)(GtkStyleContext *context,cairo_t *cr,483gdouble x, gdouble y, gdouble width, gdouble height);484static void (*fp_gtk_render_focus)(GtkStyleContext *context,cairo_t *cr,485gdouble x, gdouble y, gdouble width, gdouble height);486static void (*fp_gtk_render_handle)(GtkStyleContext *context,cairo_t *cr,487gdouble x, gdouble y, gdouble width, gdouble height);488static void (*fp_gtk_style_context_get_property)(GtkStyleContext *context,489const gchar *property, GtkStateFlags state, GValue *value);490static void (*fp_gtk_render_activity)(GtkStyleContext *context, cairo_t *cr,491gdouble x, gdouble y, gdouble width, gdouble height);492static void (*fp_gtk_render_background)(GtkStyleContext *context, cairo_t *cr,493gdouble x, gdouble y, gdouble width, gdouble height);494static gboolean (*fp_gtk_style_context_has_class)(GtkStyleContext *context,495const gchar *class_name);496static void transform_detail_string (const gchar *detail,497GtkStyleContext *context);498void (*fp_gtk_style_context_set_junction_sides)(GtkStyleContext *context,499GtkJunctionSides sides);500void (*fp_gtk_style_context_add_region)(GtkStyleContext *context,501const gchar *region_name, GtkRegionFlags flags);502void (*fp_gtk_render_arrow)(GtkStyleContext *context, cairo_t *cr,503gdouble angle, gdouble x, gdouble y, gdouble size);504void (*fp_gtk_bin_set_child)(GtkBin *bin, GtkWidget *widget);505void (*fp_gtk_scrolled_window_set_shadow_type)(506GtkScrolledWindow *scrolled_window, GtkShadowType type);507static void (*fp_gtk_render_slider)(GtkStyleContext *context, cairo_t *cr,508gdouble x, gdouble y, gdouble width, gdouble height,509GtkOrientation orientation);510static void (*fp_gtk_style_context_get_padding)(GtkStyleContext *self,511GtkStateFlags state, GtkBorder* padding);512static void (*fp_gtk_range_set_inverted)(GtkRange *range, gboolean setting);513static PangoFontDescription* (*fp_gtk_style_context_get_font)(514GtkStyleContext *context, GtkStateFlags state);515static int (*fp_gtk_widget_get_allocated_width)(GtkWidget *widget);516static int (*fp_gtk_widget_get_allocated_height)(GtkWidget *widget);517static GtkIconTheme* (*fp_gtk_icon_theme_get_default)(void);518static GdkPixbuf* (*fp_gtk_icon_theme_load_icon)(GtkIconTheme *icon_theme,519const gchar *icon_name, gint size,520GtkIconLookupFlags flags, GError **error);521static void (*fp_gtk_adjustment_set_lower)(GtkAdjustment *adjustment,522gdouble lower);523static void (*fp_gtk_adjustment_set_page_increment)(GtkAdjustment *adjustment,524gdouble page_increment);525static void (*fp_gtk_adjustment_set_page_size)(GtkAdjustment *adjustment,526gdouble page_size);527static void (*fp_gtk_adjustment_set_step_increment)(GtkAdjustment *adjustment,528gdouble step_increment);529static void (*fp_gtk_adjustment_set_upper)(GtkAdjustment *adjustment,530gdouble upper);531static void (*fp_gtk_adjustment_set_value)(GtkAdjustment *adjustment,532gdouble value);533static GdkGC *(*fp_gdk_gc_new)(GdkDrawable*);534static void (*fp_gdk_rgb_gc_set_foreground)(GdkGC*, guint32);535static void (*fp_gdk_draw_rectangle)(GdkDrawable*, GdkGC*, gboolean,536gint, gint, gint, gint);537static GdkPixbuf *(*fp_gdk_pixbuf_new)(GdkColorspace colorspace,538gboolean has_alpha, int bits_per_sample, int width, int height);539static void (*fp_gdk_drawable_get_size)(GdkDrawable *drawable,540gint* width, gint* height);541static gboolean (*fp_gtk_init_check)(int* argc, char** argv);542543/* Widget creation */544static GtkWidget* (*fp_gtk_arrow_new)(GtkArrowType arrow_type,545GtkShadowType shadow_type);546static GtkWidget* (*fp_gtk_button_new)();547static GtkWidget* (*fp_gtk_check_button_new)();548static GtkWidget* (*fp_gtk_check_menu_item_new)();549static GtkWidget* (*fp_gtk_color_selection_dialog_new)(const gchar* title);550static GtkWidget* (*fp_gtk_combo_box_new)();551static GtkWidget* (*fp_gtk_combo_box_entry_new)();552static GtkWidget* (*fp_gtk_entry_new)();553static GtkWidget* (*fp_gtk_fixed_new)();554static GtkWidget* (*fp_gtk_handle_box_new)();555static GtkWidget* (*fp_gtk_paned_new)(GtkOrientation orientation);556static GtkWidget* (*fp_gtk_scale_new)(GtkOrientation orientation,557GtkAdjustment* adjustment);558static GtkWidget* (*fp_gtk_hscrollbar_new)(GtkAdjustment* adjustment);559static GtkWidget* (*fp_gtk_vscrollbar_new)(GtkAdjustment* adjustment);560static GtkWidget* (*fp_gtk_hseparator_new)();561static GtkWidget* (*fp_gtk_vseparator_new)();562static GtkWidget* (*fp_gtk_image_new)();563static GtkWidget* (*fp_gtk_label_new)(const gchar* str);564static GtkWidget* (*fp_gtk_menu_new)();565static GtkWidget* (*fp_gtk_menu_bar_new)();566static GtkWidget* (*fp_gtk_menu_item_new)();567static GtkWidget* (*fp_gtk_notebook_new)();568static GtkWidget* (*fp_gtk_progress_bar_new)();569static GtkWidget* (*fp_gtk_progress_bar_set_orientation)(570GtkProgressBar *pbar,571GtkProgressBarOrientation orientation);572static GtkWidget* (*fp_gtk_radio_button_new)(GSList *group);573static GtkWidget* (*fp_gtk_radio_menu_item_new)(GSList *group);574static GtkWidget* (*fp_gtk_scrolled_window_new)(GtkAdjustment *hadjustment,575GtkAdjustment *vadjustment);576static GtkWidget* (*fp_gtk_separator_menu_item_new)();577static GtkWidget* (*fp_gtk_separator_tool_item_new)();578static GtkWidget* (*fp_gtk_text_view_new)();579static GtkWidget* (*fp_gtk_toggle_button_new)();580static GtkWidget* (*fp_gtk_toolbar_new)();581static GtkWidget* (*fp_gtk_tree_view_new)();582static GtkWidget* (*fp_gtk_viewport_new)(GtkAdjustment *hadjustment,583GtkAdjustment *vadjustment);584static GtkWidget* (*fp_gtk_window_new)(GtkWindowType type);585static GtkWidget* (*fp_gtk_dialog_new)();586static GtkWidget* (*fp_gtk_spin_button_new)(GtkAdjustment *adjustment,587gdouble climb_rate, guint digits);588static GtkWidget* (*fp_gtk_frame_new)(const gchar *label);589590/* Other widget operations */591static GtkAdjustment* (*fp_gtk_adjustment_new)(gdouble value,592gdouble lower, gdouble upper, gdouble step_increment,593gdouble page_increment, gdouble page_size);594static void (*fp_gtk_container_add)(GtkContainer *window, GtkWidget *widget);595static void (*fp_gtk_menu_shell_append)(GtkMenuShell *menu_shell,596GtkWidget *child);597static void (*fp_gtk_menu_item_set_submenu)(GtkMenuItem *menu_item,598GtkWidget *submenu);599static void (*fp_gtk_widget_realize)(GtkWidget *widget);600static GdkPixbuf* (*fp_gtk_widget_render_icon)(GtkWidget *widget,601const gchar *stock_id, GtkIconSize size, const gchar *detail);602static void (*fp_gtk_widget_set_name)(GtkWidget *widget, const gchar *name);603static void (*fp_gtk_widget_set_parent)(GtkWidget *widget, GtkWidget *parent);604static void (*fp_gtk_widget_set_direction)(GtkWidget *widget,605GtkTextDirection direction);606static void (*fp_gtk_widget_style_get)(GtkWidget *widget,607const gchar *first_property_name, ...);608static void (*fp_gtk_widget_class_install_style_property)(609GtkWidgetClass* class, GParamSpec *pspec);610static GParamSpec* (*fp_gtk_widget_class_find_style_property)(611GtkWidgetClass* class, const gchar* property_name);612static void (*fp_gtk_widget_style_get_property)(GtkWidget* widget,613const gchar* property_name, GValue* value);614static char* (*fp_pango_font_description_to_string)(615const PangoFontDescription* fd);616static GtkSettings* (*fp_gtk_settings_get_default)();617static GtkSettings* (*fp_gtk_widget_get_settings)(GtkWidget *widget);618static GType (*fp_gtk_border_get_type)();619static void (*fp_gtk_arrow_set)(GtkWidget* arrow,620GtkArrowType arrow_type,621GtkShadowType shadow_type);622static void (*fp_gtk_widget_size_request)(GtkWidget *widget,623GtkRequisition *requisition);624static GtkAdjustment* (*fp_gtk_range_get_adjustment)(GtkRange* range);625static GtkWidgetPath* (*fp_gtk_widget_path_copy)626(const GtkWidgetPath *path);627static const GtkWidgetPath* (*fp_gtk_style_context_get_path)628(GtkStyleContext *context);629static GtkWidgetPath* (*fp_gtk_widget_path_new) (void);630static gint (*fp_gtk_widget_path_append_type)631(GtkWidgetPath *path, GType type);632static void (*fp_gtk_widget_path_iter_set_object_name)633(GtkWidgetPath *path, gint pos, const char *name);634static void (*fp_gtk_style_context_set_path)635(GtkStyleContext *context, GtkWidgetPath *path);636static void (*fp_gtk_widget_path_unref) (GtkWidgetPath *path);637static GtkStyleContext* (*fp_gtk_style_context_new) (void);638639#endif /* !_GTK3_INTERFACE_H */640641642