#ifndef GTK_IMPORTS_H #define GTK_IMPORTS_H #include /************************************************************************************* * boiler plate code to initialize Gtk functions etc. *************************************************************************************/ void loadGtkFunctions(void (*loader)(const char *, void **, void *), void *user_data); /************************************************************************************* * Gtk Functions to load from shared library *************************************************************************************/ #ifdef GTK_DECLARE_FUNCS #define EXTERN #ifndef NULL #define NULL 0 #endif #define DECL(ret, f, arg1) EXTERN ret (*f) arg1 = NULL; #else #ifdef GTK_LOAD_FUNCS #define DECL(ret, f, arg1) loader(#f, (void **) &f, user_data); #else #define EXTERN extern #define DECL(ret, f, arg1) EXTERN ret (*f) arg1; #endif #endif #ifndef GTK_IMPORTS_TYPES #define GTK_IMPORTS_TYPES typedef void GtkWidget; typedef void GtkWindow; typedef void GtkApplication; typedef void GApplication; typedef void GObject; typedef void *GCallback; typedef void *gpointer; typedef void GClosure; typedef void (*GClosureNotify) (gpointer data, GClosure *closure); typedef void GtkStatusIcon; typedef void GtkMenuShell; typedef GtkMenuShell GtkMenu; typedef void GtkMenuItem; typedef void GdkEvent; typedef void GtkTextBuffer; typedef void GtkTextView; typedef void GtkTextTagTable; typedef void GtkContainer; typedef void GtkLabel; typedef void GtkHeaderBar; typedef void GdkWindow; typedef void GdkDevice; typedef void GtkImage; typedef void GdkPixbuf; typedef void GError; typedef void GtkStyleContext; typedef void GtkCssProvider; typedef void GtkStyleProvider; typedef void GtkWidgetPath; typedef void GtkAdjustment; typedef void GtkFrame; typedef void GtkEventBox; typedef void GdkCursor; typedef void GdkDisplay; typedef void GtkEntry; typedef void GtkDialog; typedef void GTimer; typedef void GtkComboBoxText; typedef void GtkComboBox; typedef void GtkGrid; typedef void GtkColorButton; typedef void GtkColorChooser; typedef void GtkSpinButton; typedef void GdkMonitor; typedef void GdkScreen; typedef int gboolean; typedef int gint; typedef char gchar; typedef long glong; typedef unsigned long gulong; typedef unsigned int guint32; typedef unsigned int guint; typedef long long gint64; typedef unsigned long long guint64; typedef float gfloat; typedef double gdouble; typedef char gint8; typedef unsigned char guint8; typedef short gint16; typedef unsigned short guint16; typedef size_t gssize; typedef enum { GTK_WINDOW_TOPLEVEL = 0, GTK_WINDOW_POPUP = 1 } GtkWindowType; typedef enum { G_APPLICATION_FLAGS_NONE = 0, G_APPLICATION_DEFAULT_FLAGS = 0, G_APPLICATION_IS_SERVICE = 1, G_APPLICATION_IS_LAUNCHER = 2, G_APPLICATION_HANDLES_OPEN = 4, G_APPLICATION_HANDLES_COMMAND_LINE = 8, G_APPLICATION_SEND_ENVIRONMENT = 16, G_APPLICATION_NON_UNIQUE = 32, G_APPLICATION_CAN_OVERRIDE_APP_ID = 64, G_APPLICATION_ALLOW_REPLACEMENT = 128, G_APPLICATION_REPLACE = 256 } GApplicationFlags; typedef enum { G_CONNECT_DEFAULT = 0, G_CONNECT_AFTER = 1, G_CONNECT_SWAPPED = 2 } GConnectFlags; typedef enum { GDK_GRAVITY_NORTH_WEST = 1, GDK_GRAVITY_NORTH, GDK_GRAVITY_NORTH_EAST, GDK_GRAVITY_WEST, GDK_GRAVITY_CENTER, GDK_GRAVITY_EAST, GDK_GRAVITY_SOUTH_WEST, GDK_GRAVITY_SOUTH, GDK_GRAVITY_SOUTH_EAST, GDK_GRAVITY_STATIC } GdkGravity; typedef enum { GTK_ORIENTATION_HORIZONTAL = 0, GTK_ORIENTATION_VERTICAL = 1 } GtkOrientation; typedef enum { PANGO_ELLIPSIZE_NONE = 0, PANGO_ELLIPSIZE_START = 1, PANGO_ELLIPSIZE_MIDDLE = 2, PANGO_ELLIPSIZE_END = 3 } PangoEllipsizeMode; typedef struct _GdkRectangle { int x; int y; int width; int height; } GdkRectangle; typedef struct _GdkRectangle GtkAllocation; #define G_VALUE_INIT { 0, { { 0 } } } typedef void *GType; typedef struct _GValue { /*< private >*/ GType g_type; /* public for GTypeValueTable methods */ union { gint v_int; guint v_uint; glong v_long; gulong v_ulong; gint64 v_int64; guint64 v_uint64; gfloat v_float; gdouble v_double; gpointer v_pointer; } data[2]; } GValue; typedef struct _GtkTextIter { /* GtkTextIter is an opaque datatype; ignore all these fields. * Initialize the iter with gtk_text_buffer_get_iter_* * functions */ /*< private >*/ gpointer dummy1; gpointer dummy2; gint dummy3; gint dummy4; gint dummy5; gint dummy6; gint dummy7; gint dummy8; gpointer dummy9; gpointer dummy10; gint dummy11; gint dummy12; /* padding */ gint dummy13; gpointer dummy14; } GtkTextIter; typedef enum { GDK_NOTHING = -1, GDK_DELETE = 0, GDK_DESTROY = 1, GDK_EXPOSE = 2, GDK_MOTION_NOTIFY = 3, GDK_BUTTON_PRESS = 4, GDK_2BUTTON_PRESS = 5, GDK_DOUBLE_BUTTON_PRESS = GDK_2BUTTON_PRESS, GDK_3BUTTON_PRESS = 6, GDK_TRIPLE_BUTTON_PRESS = GDK_3BUTTON_PRESS, GDK_BUTTON_RELEASE = 7, GDK_KEY_PRESS = 8, GDK_KEY_RELEASE = 9, GDK_ENTER_NOTIFY = 10, GDK_LEAVE_NOTIFY = 11, GDK_FOCUS_CHANGE = 12, GDK_CONFIGURE = 13, GDK_MAP = 14, GDK_UNMAP = 15, GDK_PROPERTY_NOTIFY = 16, GDK_SELECTION_CLEAR = 17, GDK_SELECTION_REQUEST = 18, GDK_SELECTION_NOTIFY = 19, GDK_PROXIMITY_IN = 20, GDK_PROXIMITY_OUT = 21, GDK_DRAG_ENTER = 22, GDK_DRAG_LEAVE = 23, GDK_DRAG_MOTION = 24, GDK_DRAG_STATUS = 25, GDK_DROP_START = 26, GDK_DROP_FINISHED = 27, GDK_CLIENT_EVENT = 28, GDK_VISIBILITY_NOTIFY = 29, GDK_SCROLL = 31, GDK_WINDOW_STATE = 32, GDK_SETTING = 33, GDK_OWNER_CHANGE = 34, GDK_GRAB_BROKEN = 35, GDK_DAMAGE = 36, GDK_TOUCH_BEGIN = 37, GDK_TOUCH_UPDATE = 38, GDK_TOUCH_END = 39, GDK_TOUCH_CANCEL = 40, GDK_TOUCHPAD_SWIPE = 41, GDK_TOUCHPAD_PINCH = 42, GDK_PAD_BUTTON_PRESS = 43, GDK_PAD_BUTTON_RELEASE = 44, GDK_PAD_RING = 45, GDK_PAD_STRIP = 46, GDK_PAD_GROUP_MODE = 47, GDK_EVENT_LAST /* helper variable for decls */ } GdkEventType; typedef struct _GdkEventButton { GdkEventType type; GdkWindow *window; gint8 send_event; guint32 time; gdouble x; gdouble y; gdouble *axes; guint state; guint button; GdkDevice *device; gdouble x_root, y_root; } GdkEventButton; typedef struct _GdkEventMotion { GdkEventType type; GdkWindow *window; gint8 send_event; guint32 time; gdouble x; gdouble y; gdouble *axes; guint state; gint16 is_hint; GdkDevice *device; gdouble x_root, y_root; } GdkEventMotion;; typedef struct _GdkEventKey { GdkEventType type; GdkWindow *window; gint8 send_event; guint32 time; guint state; guint keyval; gint length; gchar *string; guint16 hardware_keycode; guint8 group; guint is_modifier : 1; } GdkEventKey; #define GDK_KEY_Escape 65307 typedef enum { GDK_EXPOSURE_MASK = 1 << 1, GDK_POINTER_MOTION_MASK = 1 << 2, GDK_POINTER_MOTION_HINT_MASK = 1 << 3, GDK_BUTTON_MOTION_MASK = 1 << 4, GDK_BUTTON1_MOTION_MASK = 1 << 5, GDK_BUTTON2_MOTION_MASK = 1 << 6, GDK_BUTTON3_MOTION_MASK = 1 << 7, GDK_BUTTON_PRESS_MASK = 1 << 8, GDK_BUTTON_RELEASE_MASK = 1 << 9, GDK_KEY_PRESS_MASK = 1 << 10, GDK_KEY_RELEASE_MASK = 1 << 11, GDK_ENTER_NOTIFY_MASK = 1 << 12, GDK_LEAVE_NOTIFY_MASK = 1 << 13, GDK_FOCUS_CHANGE_MASK = 1 << 14, GDK_STRUCTURE_MASK = 1 << 15, GDK_PROPERTY_CHANGE_MASK = 1 << 16, GDK_VISIBILITY_NOTIFY_MASK = 1 << 17, GDK_PROXIMITY_IN_MASK = 1 << 18, GDK_PROXIMITY_OUT_MASK = 1 << 19, GDK_SUBSTRUCTURE_MASK = 1 << 20, GDK_SCROLL_MASK = 1 << 21, GDK_TOUCH_MASK = 1 << 22, GDK_SMOOTH_SCROLL_MASK = 1 << 23, GDK_TOUCHPAD_GESTURE_MASK = 1 << 24, GDK_TABLET_PAD_MASK = 1 << 25, GDK_ALL_EVENTS_MASK = 0x3FFFFFE } GdkEventMask; typedef enum { GTK_STATE_FLAG_NORMAL = 0, GTK_STATE_FLAG_ACTIVE = 1 << 0, GTK_STATE_FLAG_PRELIGHT = 1 << 1, GTK_STATE_FLAG_SELECTED = 1 << 2, GTK_STATE_FLAG_INSENSITIVE = 1 << 3, GTK_STATE_FLAG_INCONSISTENT = 1 << 4, GTK_STATE_FLAG_FOCUSED = 1 << 5, GTK_STATE_FLAG_BACKDROP = 1 << 6, GTK_STATE_FLAG_DIR_LTR = 1 << 7, GTK_STATE_FLAG_DIR_RTL = 1 << 8, GTK_STATE_FLAG_LINK = 1 << 9, GTK_STATE_FLAG_VISITED = 1 << 10, GTK_STATE_FLAG_CHECKED = 1 << 11, GTK_STATE_FLAG_DROP_ACTIVE = 1 << 12 } GtkStateFlags; typedef void (* GtkMenuPositionFunc) ( GtkMenu* menu, gint* x, gint* y, gboolean* push_in, gpointer user_data ); typedef struct _GdkRGBA { gdouble red; gdouble green; gdouble blue; gdouble alpha; } GdkRGBA; typedef struct _GtkRequisition { gint width; gint height; } GtkRequisition; typedef enum { GTK_STYLE_CONTEXT_PRINT_NONE = 0, GTK_STYLE_CONTEXT_PRINT_RECURSE = 1 << 0, GTK_STYLE_CONTEXT_PRINT_SHOW_STYLE = 1 << 1 } GtkStyleContextPrintFlags; typedef enum { GTK_WRAP_NONE, GTK_WRAP_CHAR, GTK_WRAP_WORD, GTK_WRAP_WORD_CHAR } GtkWrapMode; typedef enum { GTK_SHADOW_NONE, GTK_SHADOW_IN, GTK_SHADOW_OUT, GTK_SHADOW_ETCHED_IN, GTK_SHADOW_ETCHED_OUT } GtkShadowType; typedef enum { GDK_X_CURSOR = 0, GDK_ARROW = 2, GDK_BASED_ARROW_DOWN = 4, GDK_BASED_ARROW_UP = 6, GDK_BOAT = 8, GDK_BOGOSITY = 10, GDK_BOTTOM_LEFT_CORNER = 12, GDK_BOTTOM_RIGHT_CORNER = 14, GDK_BOTTOM_SIDE = 16, GDK_BOTTOM_TEE = 18, GDK_BOX_SPIRAL = 20, GDK_CENTER_PTR = 22, GDK_CIRCLE = 24, GDK_CLOCK = 26, GDK_COFFEE_MUG = 28, GDK_CROSS = 30, GDK_CROSS_REVERSE = 32, GDK_CROSSHAIR = 34, GDK_DIAMOND_CROSS = 36, GDK_DOT = 38, GDK_DOTBOX = 40, GDK_DOUBLE_ARROW = 42, GDK_DRAFT_LARGE = 44, GDK_DRAFT_SMALL = 46, GDK_DRAPED_BOX = 48, GDK_EXCHANGE = 50, GDK_FLEUR = 52, GDK_GOBBLER = 54, GDK_GUMBY = 56, GDK_HAND1 = 58, GDK_HAND2 = 60, GDK_HEART = 62, GDK_ICON = 64, GDK_IRON_CROSS = 66, GDK_LEFT_PTR = 68, GDK_LEFT_SIDE = 70, GDK_LEFT_TEE = 72, GDK_LEFTBUTTON = 74, GDK_LL_ANGLE = 76, GDK_LR_ANGLE = 78, GDK_MAN = 80, GDK_MIDDLEBUTTON = 82, GDK_MOUSE = 84, GDK_PENCIL = 86, GDK_PIRATE = 88, GDK_PLUS = 90, GDK_QUESTION_ARROW = 92, GDK_RIGHT_PTR = 94, GDK_RIGHT_SIDE = 96, GDK_RIGHT_TEE = 98, GDK_RIGHTBUTTON = 100, GDK_RTL_LOGO = 102, GDK_SAILBOAT = 104, GDK_SB_DOWN_ARROW = 106, GDK_SB_H_DOUBLE_ARROW = 108, GDK_SB_LEFT_ARROW = 110, GDK_SB_RIGHT_ARROW = 112, GDK_SB_UP_ARROW = 114, GDK_SB_V_DOUBLE_ARROW = 116, GDK_SHUTTLE = 118, GDK_SIZING = 120, GDK_SPIDER = 122, GDK_SPRAYCAN = 124, GDK_STAR = 126, GDK_TARGET = 128, GDK_TCROSS = 130, GDK_TOP_LEFT_ARROW = 132, GDK_TOP_LEFT_CORNER = 134, GDK_TOP_RIGHT_CORNER = 136, GDK_TOP_SIDE = 138, GDK_TOP_TEE = 140, GDK_TREK = 142, GDK_UL_ANGLE = 144, GDK_UMBRELLA = 146, GDK_UR_ANGLE = 148, GDK_WATCH = 150, GDK_XTERM = 152, GDK_LAST_CURSOR, GDK_BLANK_CURSOR = -2, GDK_CURSOR_IS_PIXMAP = -1 } GdkCursorType; typedef enum { GTK_ALIGN_FILL, GTK_ALIGN_START, GTK_ALIGN_END, GTK_ALIGN_CENTER, GTK_ALIGN_BASELINE } GtkAlign; typedef enum { GTK_DIALOG_MODAL = 1 << 0, GTK_DIALOG_DESTROY_WITH_PARENT = 1 << 1, GTK_DIALOG_USE_HEADER_BAR = 1 << 2 } GtkDialogFlags; typedef enum { GTK_MESSAGE_INFO, GTK_MESSAGE_WARNING, GTK_MESSAGE_QUESTION, GTK_MESSAGE_ERROR, GTK_MESSAGE_OTHER } GtkMessageType; typedef enum { GTK_BUTTONS_NONE, GTK_BUTTONS_OK, GTK_BUTTONS_CLOSE, GTK_BUTTONS_CANCEL, GTK_BUTTONS_YES_NO, GTK_BUTTONS_OK_CANCEL } GtkButtonsType; typedef enum { GTK_RESPONSE_NONE = -1, GTK_RESPONSE_REJECT = -2, GTK_RESPONSE_ACCEPT = -3, GTK_RESPONSE_DELETE_EVENT = -4, GTK_RESPONSE_OK = -5, GTK_RESPONSE_CANCEL = -6, GTK_RESPONSE_CLOSE = -7, GTK_RESPONSE_YES = -8, GTK_RESPONSE_NO = -9, GTK_RESPONSE_APPLY = -10, GTK_RESPONSE_HELP = -11 } GtkResponseType; typedef struct _GdkEventFocus { GdkEventType type; GdkWindow *window; gint8 send_event; gint16 in; } GdkEventFocus; typedef gboolean (*GSourceFunc) (gpointer user_data); typedef enum { GDK_WINDOW_TYPE_HINT_NORMAL, GDK_WINDOW_TYPE_HINT_DIALOG, GDK_WINDOW_TYPE_HINT_MENU, /* Torn off menu */ GDK_WINDOW_TYPE_HINT_TOOLBAR, GDK_WINDOW_TYPE_HINT_SPLASHSCREEN, GDK_WINDOW_TYPE_HINT_UTILITY, GDK_WINDOW_TYPE_HINT_DOCK, GDK_WINDOW_TYPE_HINT_DESKTOP, GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU, /* A drop down menu (from a menubar) */ GDK_WINDOW_TYPE_HINT_POPUP_MENU, /* A popup menu (from right-click) */ GDK_WINDOW_TYPE_HINT_TOOLTIP, GDK_WINDOW_TYPE_HINT_NOTIFICATION, GDK_WINDOW_TYPE_HINT_COMBO, GDK_WINDOW_TYPE_HINT_DND } GdkWindowTypeHint; typedef enum { GDK_VISIBILITY_UNOBSCURED, GDK_VISIBILITY_PARTIAL, GDK_VISIBILITY_FULLY_OBSCURED } GdkVisibilityState; typedef struct _GdkEventVisibility { GdkEventType type; GdkWindow *window; gint8 send_event; GdkVisibilityState state; } GdkEventVisibility; typedef struct _GList { gpointer data; gpointer next; gpointer prev; } GList; typedef void GListModel; #define G_TYPE_FUNDAMENTAL_SHIFT (2) #define G_TYPE_MAKE_FUNDAMENTAL(x) ((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT)) #define G_TYPE_INT G_TYPE_MAKE_FUNDAMENTAL (6) #define GTK_STYLE_PROVIDER_PRIORITY_USER 800 #endif // GLib DECL(GTimer*, g_timeout_add, (guint interval, GSourceFunc func, gpointer data)); // Gtk Application / Window / Widget DECL(GtkApplication *, gtk_application_new, (const char *name, GApplicationFlags flags)) DECL(int, g_application_run, (GApplication* application, int argc, char** argv)) DECL(GtkWidget*, gtk_application_window_new, ( GtkApplication* application )) DECL(GtkWidget *, gtk_window_new, (GtkWindowType)) DECL(void, gtk_window_close, (GtkWindow *)) DECL(void, gtk_window_set_decorated, (GtkWindow* window, gboolean setting )) DECL(void, gtk_widget_show_all, (GtkWindow *window)) DECL(void, gtk_widget_hide, (GtkWidget* widget )) DECL(void, gtk_widget_show, (GtkWidget* widget)) DECL(gboolean, gtk_widget_grab_focus, ( GtkWidget* widget )) DECL(GtkWidget*, gtk_event_box_new, (void)) DECL(void, gtk_event_box_set_visible_window, (GtkEventBox* event_box, gboolean visible_window )) DECL(void, gtk_window_get_size, (GtkWindow *win, int *width, int *height)) DECL(void, gtk_window_resize, (GtkWindow* window, gint width, gint height)) DECL(void, gtk_window_set_default_size, (GtkWindow *window, gint width, gint height)) DECL(void, gtk_window_get_position, (GtkWindow* window, gint* root_x, gint* root_y)) DECL(void, gtk_window_move, (GtkWindow* window, gint x, gint y)) DECL(void, gtk_window_present, (GtkWindow* window)) DECL(void, gtk_window_set_type_hint, (GtkWindow* window, GdkWindowTypeHint hint)) DECL(void, gtk_window_set_skip_taskbar_hint, (GtkWindow* window, gboolean setting)) DECL(void, gtk_window_set_skip_pager_hint, (GtkWindow* window, gboolean setting)) DECL(void, gtk_widget_set_can_focus, (GtkWidget* widget, gboolean can_focus )) DECL(void, gtk_window_set_transient_for, (GtkWindow* window, GtkWindow* parent )) DECL(GType, gtk_window_get_type, (void)) DECL(GObject*, g_object_new, (GType object_type, const gchar* first_property_name, ...)) DECL(void, gtk_widget_set_size_request, (GtkWidget* widget, int width, int height )) DECL(void, gtk_widget_get_preferred_size, (GtkWidget* widget, GtkRequisition* minimum_size, GtkRequisition* natural_size)) DECL(void, gtk_widget_get_allocation, ( GtkWidget* widget, GtkAllocation* allocation )) DECL(void, gtk_window_set_resizable, (GtkWindow* window, gboolean resizable)) DECL(GdkWindow *, gtk_widget_get_window, (GtkWidget *w)); DECL(GdkWindow*, gdk_window_get_effective_toplevel, (GdkWindow* window)) DECL(void, gdk_window_set_override_redirect, (GdkWindow* window, gboolean override_redirect)) DECL(GtkWidget*, gtk_scrolled_window_new, (GtkAdjustment* hadjustment, GtkAdjustment* vadjustment)) DECL(gboolean, gtk_window_get_decorated, (GtkWindow* window)) DECL(void, gdk_window_set_events, (GdkWindow* window, GdkEventMask event_mask )) DECL(GdkEventMask, gdk_window_get_events, (GdkWindow* window )) DECL(void, gtk_window_set_title, (GtkWindow* window, const gchar* title)) DECL(const gchar*, gtk_window_get_title, (GtkWindow* window)) DECL(void, gtk_widget_destroy, (GtkWidget* widget)) DECL(void, gtk_container_add, (GtkContainer* container, GtkWidget* widget)) DECL(void, gtk_container_remove, (GtkContainer* container, GtkWidget* widget)) DECL(gboolean, gtk_widget_is_visible, (GtkWidget* widget)) DECL(GtkWidget*, gtk_label_new, (const char* str)) DECL(void, gtk_label_set_ellipsize, (GtkLabel* label, PangoEllipsizeMode mode)) DECL(void, gtk_label_set_label, (GtkLabel* label, const gchar* str)) DECL(const gchar*, gtk_label_get_text, (GtkLabel* label)) DECL(GtkWidget*, gtk_entry_new, (void)) DECL(void, gtk_entry_set_text, (GtkEntry* entry, const gchar* text )) DECL(const gchar*, gtk_entry_get_text, (GtkEntry* entry)) DECL(GtkWidget*, gtk_separator_new, ( GtkOrientation orientation )) DECL(GtkWidget*, gtk_frame_new, ( const gchar* label )) DECL(void, gtk_frame_set_shadow_type, (GtkFrame* frame, GtkShadowType type )) DECL(GtkWidget*, gtk_box_new, (GtkOrientation orientation, gint spacing )) DECL(void, gtk_widget_set_vexpand, (GtkWidget* widget, gboolean expand )) DECL(void, gtk_widget_set_hexpand, (GtkWidget* widget, gboolean expand )) DECL(void, gtk_widget_set_halign, (GtkWidget* widget, GtkAlign align )) DECL(void, gtk_widget_set_valign, (GtkWidget* widget, GtkAlign align )) DECL(GtkWidget*,gtk_grid_new, (void)) DECL(void, gtk_grid_attach, (GtkGrid* grid, GtkWidget* child, gint left, gint top, gint width, gint height )) DECL(GtkWidget*, gtk_color_button_new, (void )) DECL(void, gtk_color_chooser_set_rgba, (GtkColorChooser* chooser, const GdkRGBA* color )) DECL(void, gtk_color_chooser_get_rgba, (GtkColorChooser* chooser, GdkRGBA* color )) DECL(gboolean, gtk_widget_translate_coordinates, ( GtkWidget* src_widget, GtkWidget* dest_widget, gint src_x, gint src_y, gint* dest_x, gint* dest_y)) DECL(void, gtk_main, (void)) DECL(void, gtk_main_quit, (void)) DECL(GdkEvent*, gtk_get_current_event, (void )) DECL(void, gtk_main_do_event, (GdkEvent* event)) DECL(void, gdk_event_free, (GdkEvent* event)) DECL(GtkWidget*, gtk_spin_button_new_with_range, (gdouble min, gdouble max, gdouble step)) DECL(void, gtk_spin_button_set_value, (GtkSpinButton* spin_button, gdouble value )) DECL(gint, gtk_spin_button_get_value_as_int, (GtkSpinButton* spin_button )) DECL(unsigned long, g_signal_connect_data, (GObject *obj, const char *signal, GCallback c_handler, gpointer data, GClosureNotify destroy_data, GConnectFlags connect_flags)) // Messages DECL(GtkWidget*, gtk_message_dialog_new, (GtkWindow* parent, GtkDialogFlags flags, GtkMessageType type, GtkButtonsType buttons, const gchar* message_format, ...)) DECL(gint, gtk_dialog_run, (GtkDialog* dialog)) // Dialogs DECL(GtkWidget*, gtk_dialog_new, (void)) DECL(GtkWidget*, gtk_dialog_add_button, (GtkDialog* dialog, const gchar* button_text, gint response_id )) DECL(void, gtk_dialog_response, (GtkDialog* dialog, gint response_id )) //DECL(GtkWidget*, gtk_dialog_new_with_buttons, (const gchar* title, GtkWindow* parent, GtkDialogFlags flags, const gchar* first_button_text, ...)) //DECL(GtkWidget*, gtk_drop_down_new_from_strings, (const char* const* strings )) DECL(GtkWidget*, gtk_combo_box_new, (void)); DECL(GtkWidget*, gtk_combo_box_text_new, (void)) DECL(void, gtk_combo_box_text_append, ( GtkComboBoxText* combo_box, const gchar* id, const gchar* text )) DECL(GtkWidget*, gtk_dialog_get_content_area, (GtkDialog* dialog )) DECL(gboolean, gtk_combo_box_set_active_id, ( GtkComboBox* combo_box, const gchar* active_id )) DECL(const gchar*, gtk_combo_box_get_active_id, (GtkComboBox* combo_box)) // Gdk Monitor/Screen DECL(GdkDisplay*, gdk_display_get_default, (void)) DECL(int, gdk_display_get_n_monitors, (GdkDisplay* display)) DECL(GdkMonitor*, gdk_display_get_monitor, (GdkDisplay* display, int monitor_num)) DECL(void, gdk_monitor_get_geometry, (GdkMonitor* monitor, GdkRectangle* geometry)) DECL(GList*, gdk_screen_get_window_stack, (GdkScreen* screen)) DECL(GdkScreen*, gdk_screen_get_default, (void)) // GObject / GValue DECL(void, g_object_unref, (GObject* object)) DECL(void, g_object_ref, (GObject* object)) DECL(void, g_object_set_property, (GObject* object, const gchar* property_name, const GValue* value)) DECL(GValue*, g_value_init, (GValue* value, GType g_type)) DECL(void, g_value_unset, (GValue* value)) DECL(void, g_value_set_int, (GValue* value, gint v_int)) DECL(void, g_free, (gpointer mem)) // Cursors DECL(GdkCursor*, gdk_cursor_new_from_name, (GdkDisplay* display, const gchar* name )) DECL(GdkCursor*, gdk_cursor_new, ( GdkCursorType cursor_type )) DECL(void, gdk_window_set_cursor, (GdkWindow* window, GdkCursor* cursor )) // Menus DECL(void, gtk_menu_popup_at_pointer, (GtkMenu* menu, const GdkEvent* trigger_event)) DECL(void, gtk_menu_popup_at_widget, (GtkMenu *menu, GtkWidget *widget, GdkGravity widget_anchor, GdkGravity menu_anchor, const GdkEvent *trigger_event)) DECL(GtkMenu *, gtk_menu_new, (void)) DECL(GtkMenuItem *, gtk_menu_item_new, (void)); DECL(GtkMenuItem *, gtk_menu_item_new_with_label, (const gchar *label)); DECL(void, gtk_menu_shell_append, (GtkMenuShell* menu_shell, GtkWidget* child)) DECL(GtkWidget *, gtk_separator_menu_item_new, (void)) DECL(void, gtk_menu_popup, (GtkMenu* menu, GtkWidget* parent_menu_shell, GtkWidget* parent_menu_item, GtkMenuPositionFunc func, gpointer data, guint button, guint32 activate_time)) // Text Buffer / Widget DECL(GtkTextBuffer*, gtk_text_buffer_new, (GtkTextTagTable* table)) DECL(gchar*, gtk_text_buffer_get_text, (GtkTextBuffer* buffer, const GtkTextIter* start, const GtkTextIter* end, gboolean include_hidden_chars)) DECL(void,gtk_text_buffer_get_start_iter, (GtkTextBuffer* buffer, GtkTextIter* iter)) DECL(void, gtk_text_buffer_get_end_iter, (GtkTextBuffer* buffer, GtkTextIter* iter)) DECL(GtkWidget*, gtk_text_view_new, (void)) DECL(GtkWidget*, gtk_text_view_new_with_buffer, ( GtkTextBuffer* buffer )) DECL(void, gtk_text_buffer_set_text, (GtkTextBuffer* buffer, const gchar* text, gint len )) DECL(void, gtk_text_view_set_wrap_mode, (GtkTextView* text_view, GtkWrapMode wrap_mode )) // Titlebar DECL(GtkWidget*, gtk_header_bar_new, (void)) DECL(void, gtk_header_bar_set_custom_title, (GtkHeaderBar* bar, GtkWidget* title_widget)) // Image DECL(GtkWidget*, gtk_image_new_from_file, (const char* filename )) DECL(GtkWidget*, gtk_image_new_from_pixbuf, (GdkPixbuf* pixbuf )) DECL(void, gtk_image_set_from_pixbuf, ( GtkImage* image, GdkPixbuf* pixbuf )) DECL(GdkPixbuf*, gdk_pixbuf_new_from_file, (const char* filename, GError** error)) DECL(GdkPixbuf*, gdk_pixbuf_new_from_file_at_size, (const char* filename, int width, int height, GError** error)) // Styles DECL(GtkStyleContext*, gtk_widget_get_style_context, (GtkWidget* widget)) DECL(char*, gtk_style_context_to_string, (GtkStyleContext* context, GtkStyleContextPrintFlags flags)) DECL(GtkCssProvider*, gtk_css_provider_new, (void)) DECL(gboolean, gtk_css_provider_load_from_data, (GtkCssProvider* css_provider, const gchar* data, gssize length, GError** error)) DECL(void, gtk_style_context_add_provider, (GtkStyleContext* context, GtkStyleProvider* provider, guint priority)) DECL(const GtkWidgetPath*, gtk_style_context_get_path, (GtkStyleContext* context)) DECL(char*, gtk_widget_path_to_string, (const GtkWidgetPath* path)) // Deprecated in Gtk3 DECL(GtkStatusIcon*, gtk_status_icon_new, (void )) DECL(GtkStatusIcon*, gtk_status_icon_new_from_file, (const gchar* filename)) DECL(void, gtk_widget_override_background_color, (GtkWidget* widget, GtkStateFlags state, const GdkRGBA* color)) DECL(void, gtk_window_set_has_resize_grip, (GtkWindow* window, gboolean value )) #define g_signal_connect(instance, signal, c_handler, data) \ g_signal_connect_data(instance, signal, reinterpret_cast(c_handler), data, NULL, G_CONNECT_DEFAULT) // WIN32 #ifdef _WIN32 #include DECL(HWND, gdk_win32_window_get_handle, (GdkWindow *window)); #endif #endif // GTK_IMPORTS_H