Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/src/solaris/native/sun/awt/gtk_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 _GTK_INTERFACE_H25#define _GTK_INTERFACE_H2627#include <X11/X.h>28#include <jni.h>2930#ifndef FALSE31#define FALSE (0)32#define TRUE (!FALSE)33#endif3435#define GTHREAD_LIB_VERSIONED VERSIONED_JNI_LIB_NAME("gthread-2.0", "0")36#define GTHREAD_LIB JNI_LIB_NAME("gthread-2.0")3738#define _G_TYPE_CIC(ip, gt, ct) ((ct*) ip)39#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type) \40(_G_TYPE_CIC ((instance), (g_type), c_type))41#define GTK_TYPE_FILE_CHOOSER (fp_gtk_file_chooser_get_type ())42#define GTK_FILE_CHOOSER(obj) \43(G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_FILE_CHOOSER, GtkFileChooser))44#define G_CALLBACK(f) ((GCallback) (f))45#define G_TYPE_FUNDAMENTAL_SHIFT (2)46#define G_TYPE_MAKE_FUNDAMENTAL(x) ((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))47#define G_TYPE_OBJECT G_TYPE_MAKE_FUNDAMENTAL (20)48#define GTK_STOCK_CANCEL "gtk-cancel"49#define GTK_STOCK_SAVE "gtk-save"50#define GTK_STOCK_OPEN "gtk-open"51#define GDK_CURRENT_TIME 0L5253#define G_TYPE_INVALID G_TYPE_MAKE_FUNDAMENTAL (0)54#define G_TYPE_NONE G_TYPE_MAKE_FUNDAMENTAL (1)55#define G_TYPE_INTERFACE G_TYPE_MAKE_FUNDAMENTAL (2)56#define G_TYPE_CHAR G_TYPE_MAKE_FUNDAMENTAL (3)57#define G_TYPE_UCHAR G_TYPE_MAKE_FUNDAMENTAL (4)58#define G_TYPE_BOOLEAN G_TYPE_MAKE_FUNDAMENTAL (5)59#define G_TYPE_INT G_TYPE_MAKE_FUNDAMENTAL (6)60#define G_TYPE_UINT G_TYPE_MAKE_FUNDAMENTAL (7)61#define G_TYPE_LONG G_TYPE_MAKE_FUNDAMENTAL (8)62#define G_TYPE_ULONG G_TYPE_MAKE_FUNDAMENTAL (9)63#define G_TYPE_INT64 G_TYPE_MAKE_FUNDAMENTAL (10)64#define G_TYPE_UINT64 G_TYPE_MAKE_FUNDAMENTAL (11)65#define G_TYPE_ENUM G_TYPE_MAKE_FUNDAMENTAL (12)66#define G_TYPE_FLAGS G_TYPE_MAKE_FUNDAMENTAL (13)67#define G_TYPE_FLOAT G_TYPE_MAKE_FUNDAMENTAL (14)68#define G_TYPE_DOUBLE G_TYPE_MAKE_FUNDAMENTAL (15)69#define G_TYPE_STRING G_TYPE_MAKE_FUNDAMENTAL (16)70#define G_TYPE_POINTER G_TYPE_MAKE_FUNDAMENTAL (17)71#define G_TYPE_BOXED G_TYPE_MAKE_FUNDAMENTAL (18)72#define G_TYPE_PARAM G_TYPE_MAKE_FUNDAMENTAL (19)73#define G_TYPE_OBJECT G_TYPE_MAKE_FUNDAMENTAL (20)7475#define GTK_TYPE_BORDER ((*fp_gtk_border_get_type)())7677#define G_TYPE_FUNDAMENTAL_SHIFT (2)78#define G_TYPE_MAKE_FUNDAMENTAL(x) ((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))7980#ifndef MIN81#define MIN(a, b) (((a) < (b)) ? (a) : (b))82#endif8384#define CONV_BUFFER_SIZE 12885#define NO_SYMBOL_EXCEPTION 18687/* basic types */88typedef char gchar;89typedef short gshort;90typedef int gint;91typedef long glong;92typedef float gfloat;93typedef double gdouble;94typedef void* gpointer;95typedef gint gboolean;96typedef signed char gint8;97typedef signed short gint16;98typedef signed int gint32;99typedef unsigned char guchar;100typedef unsigned char guint8;101typedef unsigned short gushort;102typedef unsigned short guint16;103typedef unsigned int guint;104typedef unsigned int guint32;105typedef unsigned int gsize;106typedef unsigned long gulong;107typedef signed long long gint64;108typedef unsigned long long guint64;109typedef gulong GType;110111typedef struct _GList GList;112struct _GList113{114gpointer data;115GList *next;116GList *prev;117};118119typedef struct _GSList GSList;120struct _GSList {121gpointer data;122GSList *next;123};124125typedef enum {126BUTTON, /* GtkButton */127CHECK_BOX, /* GtkCheckButton */128CHECK_BOX_MENU_ITEM, /* GtkCheckMenuItem */129COLOR_CHOOSER, /* GtkColorSelectionDialog */130COMBO_BOX, /* GtkComboBox */131COMBO_BOX_ARROW_BUTTON, /* GtkComboBoxEntry */132COMBO_BOX_TEXT_FIELD, /* GtkComboBoxEntry */133DESKTOP_ICON, /* GtkLabel */134DESKTOP_PANE, /* GtkContainer */135EDITOR_PANE, /* GtkTextView */136FORMATTED_TEXT_FIELD, /* GtkEntry */137HANDLE_BOX, /* GtkHandleBox */138HPROGRESS_BAR, /* GtkProgressBar */139HSCROLL_BAR, /* GtkHScrollbar */140HSCROLL_BAR_BUTTON_LEFT, /* GtkHScrollbar */141HSCROLL_BAR_BUTTON_RIGHT, /* GtkHScrollbar */142HSCROLL_BAR_TRACK, /* GtkHScrollbar */143HSCROLL_BAR_THUMB, /* GtkHScrollbar */144HSEPARATOR, /* GtkHSeparator */145HSLIDER, /* GtkHScale */146HSLIDER_TRACK, /* GtkHScale */147HSLIDER_THUMB, /* GtkHScale */148HSPLIT_PANE_DIVIDER, /* GtkHPaned */149INTERNAL_FRAME, /* GtkWindow */150INTERNAL_FRAME_TITLE_PANE, /* GtkLabel */151IMAGE, /* GtkImage */152LABEL, /* GtkLabel */153LIST, /* GtkTreeView */154MENU, /* GtkMenu */155MENU_BAR, /* GtkMenuBar */156MENU_ITEM, /* GtkMenuItem */157MENU_ITEM_ACCELERATOR, /* GtkLabel */158OPTION_PANE, /* GtkMessageDialog */159PANEL, /* GtkContainer */160PASSWORD_FIELD, /* GtkEntry */161POPUP_MENU, /* GtkMenu */162POPUP_MENU_SEPARATOR, /* GtkSeparatorMenuItem */163RADIO_BUTTON, /* GtkRadioButton */164RADIO_BUTTON_MENU_ITEM, /* GtkRadioMenuItem */165ROOT_PANE, /* GtkContainer */166SCROLL_PANE, /* GtkScrolledWindow */167SPINNER, /* GtkSpinButton */168SPINNER_ARROW_BUTTON, /* GtkSpinButton */169SPINNER_TEXT_FIELD, /* GtkSpinButton */170SPLIT_PANE, /* GtkPaned */171TABBED_PANE, /* GtkNotebook */172TABBED_PANE_TAB_AREA, /* GtkNotebook */173TABBED_PANE_CONTENT, /* GtkNotebook */174TABBED_PANE_TAB, /* GtkNotebook */175TABLE, /* GtkTreeView */176TABLE_HEADER, /* GtkButton */177TEXT_AREA, /* GtkTextView */178TEXT_FIELD, /* GtkEntry */179TEXT_PANE, /* GtkTextView */180TITLED_BORDER, /* GtkFrame */181TOGGLE_BUTTON, /* GtkToggleButton */182TOOL_BAR, /* GtkToolbar */183TOOL_BAR_DRAG_WINDOW, /* GtkToolbar */184TOOL_BAR_SEPARATOR, /* GtkSeparatorToolItem */185TOOL_TIP, /* GtkWindow */186TREE, /* GtkTreeView */187TREE_CELL, /* GtkTreeView */188VIEWPORT, /* GtkViewport */189VPROGRESS_BAR, /* GtkProgressBar */190VSCROLL_BAR, /* GtkVScrollbar */191VSCROLL_BAR_BUTTON_UP, /* GtkVScrollbar */192VSCROLL_BAR_BUTTON_DOWN, /* GtkVScrollbar */193VSCROLL_BAR_TRACK, /* GtkVScrollbar */194VSCROLL_BAR_THUMB, /* GtkVScrollbar */195VSEPARATOR, /* GtkVSeparator */196VSLIDER, /* GtkVScale */197VSLIDER_TRACK, /* GtkVScale */198VSLIDER_THUMB, /* GtkVScale */199VSPLIT_PANE_DIVIDER, /* GtkVPaned */200WIDGET_TYPE_SIZE201} WidgetType;202203typedef enum204{205_GTK_ARROW_TYPE,206_GTK_BUTTON_TYPE,207_GTK_CHECK_BUTTON_TYPE,208_GTK_CHECK_MENU_ITEM_TYPE,209_GTK_COLOR_SELECTION_DIALOG_TYPE,210_GTK_COMBO_BOX_TYPE,211_GTK_COMBO_BOX_ARROW_BUTTON_TYPE,212_GTK_COMBO_BOX_TEXT_FIELD_TYPE,213_GTK_CONTAINER_TYPE,214_GTK_ENTRY_TYPE,215_GTK_FRAME_TYPE,216_GTK_HANDLE_BOX_TYPE,217_GTK_HPANED_TYPE,218_GTK_HPROGRESS_BAR_TYPE,219_GTK_HSCALE_TYPE,220_GTK_HSCROLLBAR_TYPE,221_GTK_HSEPARATOR_TYPE,222_GTK_IMAGE_TYPE,223_GTK_MENU_TYPE,224_GTK_MENU_BAR_TYPE,225_GTK_MENU_ITEM_TYPE,226_GTK_NOTEBOOK_TYPE,227_GTK_LABEL_TYPE,228_GTK_RADIO_BUTTON_TYPE,229_GTK_RADIO_MENU_ITEM_TYPE,230_GTK_SCROLLED_WINDOW_TYPE,231_GTK_SEPARATOR_MENU_ITEM_TYPE,232_GTK_SEPARATOR_TOOL_ITEM_TYPE,233_GTK_SPIN_BUTTON_TYPE,234_GTK_TEXT_VIEW_TYPE,235_GTK_TOGGLE_BUTTON_TYPE,236_GTK_TOOLBAR_TYPE,237_GTK_TOOLTIP_TYPE,238_GTK_TREE_VIEW_TYPE,239_GTK_VIEWPORT_TYPE,240_GTK_VPANED_TYPE,241_GTK_VPROGRESS_BAR_TYPE,242_GTK_VSCALE_TYPE,243_GTK_VSCROLLBAR_TYPE,244_GTK_VSEPARATOR_TYPE,245_GTK_WINDOW_TYPE,246_GTK_DIALOG_TYPE,247_GTK_WIDGET_TYPE_SIZE248} GtkWidgetType;249250typedef enum251{252GTK_STATE_NORMAL,253GTK_STATE_ACTIVE,254GTK_STATE_PRELIGHT,255GTK_STATE_SELECTED,256GTK_STATE_INSENSITIVE,257GTK_STATE_INCONSISTENT,258GTK_STATE_FOCUSED259} GtkStateType;260261typedef enum262{263GTK_SHADOW_NONE,264GTK_SHADOW_IN,265GTK_SHADOW_OUT,266GTK_SHADOW_ETCHED_IN,267GTK_SHADOW_ETCHED_OUT268} GtkShadowType;269270typedef enum271{272GTK_EXPANDER_COLLAPSED,273GTK_EXPANDER_SEMI_COLLAPSED,274GTK_EXPANDER_SEMI_EXPANDED,275GTK_EXPANDER_EXPANDED276} GtkExpanderStyle;277278typedef enum279{280GTK_ICON_SIZE_INVALID,281GTK_ICON_SIZE_MENU,282GTK_ICON_SIZE_SMALL_TOOLBAR,283GTK_ICON_SIZE_LARGE_TOOLBAR,284GTK_ICON_SIZE_BUTTON,285GTK_ICON_SIZE_DND,286GTK_ICON_SIZE_DIALOG287} GtkIconSize;288289typedef enum290{291GTK_ORIENTATION_HORIZONTAL,292GTK_ORIENTATION_VERTICAL293} GtkOrientation;294295typedef enum296{297FOREGROUND,298BACKGROUND,299TEXT_FOREGROUND,300TEXT_BACKGROUND,301FOCUS,302LIGHT,303DARK,304MID,305BLACK,306WHITE307} ColorType;308309typedef enum310{311GTK_FONT_NAME,312GTK_ICON_SIZES,313GTK_CURSOR_BLINK,314GTK_CURSOR_BLINK_TIME315} Setting;316317typedef enum318{319GTK_ARROW_UP,320GTK_ARROW_DOWN,321GTK_ARROW_LEFT,322GTK_ARROW_RIGHT,323GTK_ARROW_NONE324} GtkArrowType;325326typedef enum327{328GTK_TEXT_DIR_NONE,329GTK_TEXT_DIR_LTR,330GTK_TEXT_DIR_RTL331} GtkTextDirection;332333typedef enum334{335GTK_POS_LEFT,336GTK_POS_RIGHT,337GTK_POS_TOP,338GTK_POS_BOTTOM339} GtkPositionType;340341/* SynthConstants */342static const gint ENABLED = 1 << 0;343static const gint MOUSE_OVER = 1 << 1;344static const gint PRESSED = 1 << 2;345static const gint DISABLED = 1 << 3;346static const gint FOCUSED = 1 << 8;347static const gint SELECTED = 1 << 9;348static const gint DEFAULT = 1 << 10;349350typedef enum351{352GTK_ANY,353GTK_1,354GTK_2,355GTK_3356} GtkVersion;357358//------------------------------359360361362typedef enum {363GTK_RESPONSE_NONE = -1,364GTK_RESPONSE_REJECT = -2,365GTK_RESPONSE_ACCEPT = -3,366GTK_RESPONSE_DELETE_EVENT = -4,367GTK_RESPONSE_OK = -5,368GTK_RESPONSE_CANCEL = -6,369GTK_RESPONSE_CLOSE = -7,370GTK_RESPONSE_YES = -8,371GTK_RESPONSE_NO = -9,372GTK_RESPONSE_APPLY = -10,373GTK_RESPONSE_HELP = -11374} GtkResponseType;375376typedef enum {377GTK_FILE_CHOOSER_ACTION_OPEN,378GTK_FILE_CHOOSER_ACTION_SAVE,379GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,380GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER381} GtkFileChooserAction;382383typedef enum {384GTK_FILE_FILTER_FILENAME = 1 << 0,385GTK_FILE_FILTER_URI = 1 << 1,386GTK_FILE_FILTER_DISPLAY_NAME = 1 << 2,387GTK_FILE_FILTER_MIME_TYPE = 1 << 3388} GtkFileFilterFlags;389390typedef enum {391GDK_COLORSPACE_RGB392} GdkColorspace;393394typedef enum {395GDK_INTERP_NEAREST,396GDK_INTERP_TILES,397GDK_INTERP_BILINEAR,398GDK_INTERP_HYPER399} GdkInterpType;400401typedef enum {402G_CONNECT_AFTER = 1 << 0, G_CONNECT_SWAPPED = 1 << 1403} GConnectFlags;404//------------------------------405406407typedef void GError;408typedef void GdkScreen;409typedef void GtkWindow;410typedef void GdkWindow;411typedef void GClosure;412typedef void GtkFileChooser;413typedef void GtkFileFilter;414typedef struct {415GtkFileFilterFlags contains;416const gchar *filename;417const gchar *uri;418const gchar *display_name;419const gchar *mime_type;420} GtkFileFilterInfo;421typedef gboolean (*GtkFileFilterFunc)(const GtkFileFilterInfo *filter_info,422gpointer data);423typedef void (*GClosureNotify)(gpointer data, GClosure *closure);424typedef void (*GDestroyNotify)(gpointer data);425typedef void (*GCallback)(void);426427428typedef struct GtkApi {429int version;430gboolean (*show_uri_load)(JNIEnv *env);431gboolean (*unload)();432void (*flush_event_loop)();433gchar* (*gtk_check_version)(guint required_major, guint required_minor,434guint required_micro);435jobject (*get_setting)(JNIEnv *env, Setting property);436437void (*paint_arrow)(WidgetType widget_type, GtkStateType state_type,438GtkShadowType shadow_type, const gchar *detail,439gint x, gint y, gint width, gint height,440GtkArrowType arrow_type, gboolean fill);441void (*paint_box)(WidgetType widget_type, GtkStateType state_type,442GtkShadowType shadow_type, const gchar *detail,443gint x, gint y, gint width, gint height,444gint synth_state, GtkTextDirection dir);445void (*paint_box_gap)(WidgetType widget_type, GtkStateType state_type,446GtkShadowType shadow_type, const gchar *detail,447gint x, gint y, gint width, gint height,448GtkPositionType gap_side, gint gap_x, gint gap_width);449void (*paint_expander)(WidgetType widget_type, GtkStateType state_type,450const gchar *detail, gint x, gint y, gint width, gint height,451GtkExpanderStyle expander_style);452void (*paint_extension)(WidgetType widget_type, GtkStateType state_type,453GtkShadowType shadow_type, const gchar *detail,454gint x, gint y, gint width, gint height, GtkPositionType gap_side);455void (*paint_flat_box)(WidgetType widget_type, GtkStateType state_type,456GtkShadowType shadow_type, const gchar *detail,457gint x, gint y, gint width, gint height, gboolean has_focus);458void (*paint_focus)(WidgetType widget_type, GtkStateType state_type,459const char *detail, gint x, gint y, gint width, gint height);460void (*paint_handle)(WidgetType widget_type, GtkStateType state_type,461GtkShadowType shadow_type, const gchar *detail,462gint x, gint y, gint width, gint height, GtkOrientation orientation);463void (*paint_hline)(WidgetType widget_type, GtkStateType state_type,464const gchar *detail, gint x, gint y, gint width, gint height);465void (*paint_vline)(WidgetType widget_type, GtkStateType state_type,466const gchar *detail, gint x, gint y, gint width, gint height);467void (*paint_option)(WidgetType widget_type, gint synth_state,468const gchar *detail, gint x, gint y, gint width, gint height);469void (*paint_shadow)(WidgetType widget_type, GtkStateType state_type,470GtkShadowType shadow_type, const gchar *detail,471gint x, gint y, gint width, gint height,472gint synth_state, GtkTextDirection dir);473void (*paint_slider)(WidgetType widget_type, GtkStateType state_type,474GtkShadowType shadow_type, const gchar *detail,475gint x, gint y, gint width, gint height, GtkOrientation orientation,476gboolean has_focus);477void (*paint_background)(WidgetType widget_type, GtkStateType state_type,478gint x, gint y, gint width, gint height);479void (*paint_check)(WidgetType widget_type, gint synth_state,480const gchar *detail, gint x, gint y, gint width, gint height);481void (*set_range_value)(WidgetType widget_type, jdouble value,482jdouble min, jdouble max, jdouble visible);483484void (*init_painting)(JNIEnv *env, gint w, gint h);485gint (*copy_image)(gint *dest, gint width, gint height);486487gint (*get_xthickness)(JNIEnv *env, WidgetType widget_type);488gint (*get_ythickness)(JNIEnv *env, WidgetType widget_type);489gint (*get_color_for_state)(JNIEnv *env, WidgetType widget_type,490GtkStateType state_type, ColorType color_type);491jobject (*get_class_value)(JNIEnv *env, WidgetType widget_type,492const char* key);493494jstring (*get_pango_font_name)(JNIEnv *env, WidgetType widget_type);495jboolean (*get_icon_data)(JNIEnv *env, gint widget_type,496const gchar *stock_id, GtkIconSize size,497GtkTextDirection direction, const char *detail,498jmethodID icon_upcall_method, jobject this);499jboolean (*get_file_icon_data)(JNIEnv *env, const char *filename,500GError **error, jmethodID icon_upcall_method, jobject this);501void (*gdk_threads_enter)(void);502void (*gdk_threads_leave)(void);503gboolean (*gtk_show_uri)(GdkScreen *screen, const gchar *uri,504guint32 timestamp, GError **error);505void (*g_free)(gpointer mem);506507508gchar* (*gtk_file_chooser_get_filename)(GtkFileChooser *chooser);509void (*gtk_widget_hide)(void* widget);510void (*gtk_main_quit)(void);511void* (*gtk_file_chooser_dialog_new)(const gchar *title,512GtkWindow *parent, GtkFileChooserAction action,513const gchar *first_button_text, ...);514gboolean (*gtk_file_chooser_set_current_folder)(GtkFileChooser *chooser,515const gchar *filename);516gboolean (*gtk_file_chooser_set_filename)(GtkFileChooser *chooser,517const char *filename);518void (*gtk_file_chooser_set_current_name)(GtkFileChooser *chooser,519const gchar *name);520void (*gtk_file_filter_add_custom)(GtkFileFilter *filter,521GtkFileFilterFlags needed, GtkFileFilterFunc func, gpointer data,522GDestroyNotify notify);523void (*gtk_file_chooser_set_filter)(GtkFileChooser *chooser,524GtkFileFilter *filter);525GType (*gtk_file_chooser_get_type)(void);526GtkFileFilter* (*gtk_file_filter_new)(void);527void (*gtk_file_chooser_set_do_overwrite_confirmation)(528GtkFileChooser *chooser, gboolean do_overwrite_confirmation);529void (*gtk_file_chooser_set_select_multiple)(530GtkFileChooser *chooser, gboolean select_multiple);531gchar* (*gtk_file_chooser_get_current_folder)(GtkFileChooser *chooser);532GSList* (*gtk_file_chooser_get_filenames)(GtkFileChooser *chooser);533guint (*gtk_g_slist_length)(GSList *list);534gulong (*g_signal_connect_data)(gpointer instance,535const gchar *detailed_signal, GCallback c_handler, gpointer data,536GClosureNotify destroy_data, GConnectFlags connect_flags);537void (*gtk_widget_show)(void *widget);538void (*gtk_main)(void);539guint (*gtk_main_level)(void);540gchar* (*g_path_get_dirname) (const gchar *file_name);541XID (*gdk_x11_drawable_get_xid) (void *drawable);542void (*gtk_widget_destroy)(void *widget);543void (*gtk_window_present)(void *window);544void (*gtk_window_move)(void *window, gint x, gint y);545void (*gtk_window_resize)(void *window, gint width, gint height);546GdkWindow *(*get_window)(void *widget);547548void (*g_object_unref)(gpointer object);549GList* (*g_list_append) (GList *list, gpointer data);550void (*g_list_free) (GList *list);551void (*g_list_free_full) (GList *list, GDestroyNotify free_func);552} GtkApi;553554gboolean gtk_load(JNIEnv *env, GtkVersion version, gboolean verbose);555gboolean gtk_check_version(GtkVersion version);556557typedef struct _GThreadFunctions GThreadFunctions;558static gboolean (*fp_g_thread_get_initialized)(void);559static void (*fp_g_thread_init)(GThreadFunctions *vtable);560static void (*fp_gdk_threads_init)(void);561static void (*fp_gdk_threads_enter)(void);562static void (*fp_gdk_threads_leave)(void);563564extern GtkApi* gtk;565566#endif /* !_GTK_INTERFACE_H */567568569