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