Restructure dynamicgtk to comply with C++ casting rules. DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@4772 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
hendricks266 2014-11-29 00:32:28 +00:00
parent 9d5a17c93e
commit dc9d552470
2 changed files with 359 additions and 376 deletions

View File

@ -19,385 +19,367 @@
#define G_GNUC_NULL_TERMINATED #define G_GNUC_NULL_TERMINATED
#endif #endif
// glib.h
typedef void (*g_free_ptr) (gpointer mem);
// gobject.h
typedef gpointer (*g_object_get_data_ptr) (GObject *object, const gchar *key);
typedef void (*g_object_set_data_ptr) (GObject *object, const gchar *key, gpointer data);
typedef void (*g_object_set_data_full_ptr) (GObject *object, const gchar *key, gpointer data, GDestroyNotify destroy);
typedef void (*g_object_unref_ptr) (gpointer object);
// gsignal.h
typedef gulong (*g_signal_connect_data_ptr) (gpointer instance, const gchar *detailed_signal, GCallback c_handler, gpointer data, GClosureNotify destroy_data, GConnectFlags connect_flags);
typedef guint (*g_signal_handlers_block_matched_ptr) (gpointer instance, GSignalMatchType mask, guint signal_id, GQuark detail, GClosure *closure, gpointer func, gpointer data);
typedef guint (*g_signal_handlers_unblock_matched_ptr) (gpointer instance, GSignalMatchType mask, guint signal_id, GQuark detail, GClosure *closure, gpointer func, gpointer data);
// gtype.h
typedef GTypeInstance* (*g_type_check_instance_cast_ptr) (GTypeInstance *instance, GType iface_type);
// gdk-pixdata.h
typedef GdkPixbuf* (*gdk_pixbuf_from_pixdata_ptr) (const GdkPixdata *pixdata, gboolean copy_pixels, GError **error);
// gdk-pixbuf-core.h
typedef GdkPixbuf *(*gdk_pixbuf_new_from_data_ptr) (const guchar *data, GdkColorspace colorspace, gboolean has_alpha, int32_t bits_per_sample, int32_t width, int32_t height, int32_t rowstride, GdkPixbufDestroyNotify destroy_fn, gpointer destroy_fn_data);
// gtkaccelgroup.h
typedef GtkAccelGroup* (*gtk_accel_group_new_ptr) (void);
// gtkalignment.h
typedef GtkWidget* (*gtk_alignment_new_ptr) (gfloat xalign, gfloat yalign, gfloat xscale, gfloat yscale);
// gtkbox.h
typedef GType (*gtk_box_get_type_ptr) (void) G_GNUC_CONST;
typedef void (*gtk_box_pack_start_ptr) (GtkBox *box, GtkWidget *child, gboolean expand, gboolean fill, guint padding);
// gtkbbox.h
typedef GType (*gtk_button_box_get_type_ptr) (void) G_GNUC_CONST;
typedef void (*gtk_button_box_set_layout_ptr) (GtkButtonBox *widget, GtkButtonBoxStyle layout_style);
// gtkbutton.h
typedef GtkWidget* (*gtk_button_new_ptr) (void);
// gtkcelllayout.h
typedef GType (*gtk_cell_layout_get_type_ptr) (void) G_GNUC_CONST;
typedef void (*gtk_cell_layout_pack_start_ptr) (GtkCellLayout *cell_layout, GtkCellRenderer *cell, gboolean expand);
typedef void (*gtk_cell_layout_set_attributes_ptr) (GtkCellLayout *cell_layout, GtkCellRenderer *cell, ...) G_GNUC_NULL_TERMINATED;
// gtkcellrenderertext.h
typedef GtkCellRenderer *(*gtk_cell_renderer_text_new_ptr) (void);
// gtkcheckbutton.h
typedef GtkWidget* (*gtk_check_button_new_with_mnemonic_ptr) (const gchar *label);
// gtkcombobox.h
typedef gint (*gtk_combo_box_get_active_ptr) (GtkComboBox *combo_box);
typedef gboolean (*gtk_combo_box_get_active_iter_ptr) (GtkComboBox *combo_box, GtkTreeIter *iter);
typedef gchar (*gtk_combo_box_get_active_text_ptr) (GtkComboBox *combo_box);
typedef GtkTreeModel *(*gtk_combo_box_get_model_ptr) (GtkComboBox *combo_box);
typedef GType (*gtk_combo_box_get_type_ptr) (void) G_GNUC_CONST;
typedef GtkWidget *(*gtk_combo_box_new_text_ptr) (void);
typedef GtkWidget *(*gtk_combo_box_new_with_model_ptr) (GtkTreeModel *model);
typedef void (*gtk_combo_box_set_active_ptr) (GtkComboBox *combo_box, gint index_);
typedef void (*gtk_combo_box_set_active_iter_ptr) (GtkComboBox *combo_box, GtkTreeIter *iter);
// gtkcontainer.h
typedef void (*gtk_container_add_ptr) (GtkContainer *container, GtkWidget *widget);
typedef void (*gtk_container_foreach_ptr) (GtkContainer *container, GtkCallback callback, gpointer callback_data);
typedef GType (*gtk_container_get_type_ptr) (void) G_GNUC_CONST;
typedef void (*gtk_container_set_border_width_ptr) (GtkContainer *container, guint border_width);
// gtkdialog.h
typedef GType (*gtk_dialog_get_type_ptr) (void) G_GNUC_CONST;
typedef gint (*gtk_dialog_run_ptr) (GtkDialog *dialog);
// gtkhbox.h
typedef GtkWidget* (*gtk_hbox_new_ptr) (gboolean homogeneous, gint spacing);
// gtkhbbox.h
typedef GtkWidget* (*gtk_hbutton_box_new_ptr) (void);
// gtkimage.h
typedef GtkWidget* (*gtk_image_new_from_pixbuf_ptr) (GdkPixbuf *pixbuf);
typedef GtkWidget* (*gtk_image_new_from_stock_ptr) (const gchar *stock_id, GtkIconSize size);
// gtkmain.h
typedef gboolean (*gtk_init_check_ptr) (int32_t *argc, char ***argv);
// gtklabel.h
typedef GType (*gtk_label_get_type_ptr) (void) G_GNUC_CONST;
typedef GtkWidget* (*gtk_label_new_ptr) (const gchar *str);
typedef GtkWidget* (*gtk_label_new_with_mnemonic_ptr) (const gchar *str);
typedef void (*gtk_label_set_mnemonic_widget_ptr) (GtkLabel *label, GtkWidget *widget);
// gtkliststore.h
typedef void (*gtk_list_store_append_ptr) (GtkListStore *list_store, GtkTreeIter *iter);
typedef void (*gtk_list_store_clear_ptr) (GtkListStore *list_store);
typedef GType (*gtk_list_store_get_type_ptr) (void) G_GNUC_CONST;
typedef GtkListStore *(*gtk_list_store_new_ptr) (gint n_columns, ...);
typedef void (*gtk_list_store_set_ptr) (GtkListStore *list_store, GtkTreeIter *iter, ...);
// gtkmain.h
typedef void (*gtk_main_ptr) (void);
typedef gboolean (*gtk_main_iteration_do_ptr) (gboolean blocking);
typedef void (*gtk_main_quit_ptr) (void);
// gtkmessagedialog.h
typedef GtkWidget* (*gtk_message_dialog_new_ptr) (GtkWindow *parent, GtkDialogFlags flags, GtkMessageType type, GtkButtonsType buttons, const gchar *message_format, ...) G_GNUC_PRINTF (5, 6);
// gtkmisc.h
typedef GType (*gtk_misc_get_type_ptr) (void) G_GNUC_CONST;
typedef void (*gtk_misc_set_alignment_ptr) (GtkMisc *misc, gfloat xalign, gfloat yalign);
// gtknotebook.h
typedef GtkWidget* (*gtk_notebook_get_nth_page_ptr) (GtkNotebook *notebook, gint page_num);
typedef GType (*gtk_notebook_get_type_ptr) (void) G_GNUC_CONST;
typedef GtkWidget * (*gtk_notebook_new_ptr) (void);
typedef void (*gtk_notebook_set_current_page_ptr) (GtkNotebook *notebook, gint page_num);
typedef void (*gtk_notebook_set_tab_label_ptr) (GtkNotebook *notebook, GtkWidget *child, GtkWidget *tab_label);
// gtkobject.h
typedef GtkType (*gtk_object_get_type_ptr) (void) G_GNUC_CONST;
// gtkscrolledwindow.h
typedef GType (*gtk_scrolled_window_get_type_ptr) (void) G_GNUC_CONST;
typedef GtkWidget* (*gtk_scrolled_window_new_ptr) (GtkAdjustment *hadjustment, GtkAdjustment *vadjustment);
typedef void (*gtk_scrolled_window_set_policy_ptr) (GtkScrolledWindow *scrolled_window, GtkPolicyType hscrollbar_policy, GtkPolicyType vscrollbar_policy);
typedef void (*gtk_scrolled_window_set_shadow_type_ptr) (GtkScrolledWindow *scrolled_window, GtkShadowType type);
// gtktable.h
typedef GType (*gtk_table_get_type_ptr) (void) G_GNUC_CONST;
typedef GtkWidget* (*gtk_table_new_ptr) (guint rows, guint columns, gboolean homogeneous);
typedef void (*gtk_table_attach_ptr) (GtkTable *table, GtkWidget *child, guint left_attach, guint right_attach, guint top_attach, guint bottom_attach, GtkAttachOptions xoptions, GtkAttachOptions yoptions, guint xpadding, guint ypadding);
// gtktextbuffer.h
typedef gboolean (*gtk_text_buffer_backspace_ptr) (GtkTextBuffer *buffer, GtkTextIter *iter, gboolean interactive, gboolean default_editable);
typedef GtkTextMark *(*gtk_text_buffer_create_mark_ptr) (GtkTextBuffer *buffer, const gchar *mark_name, const GtkTextIter *where, gboolean left_gravity);
typedef void (*gtk_text_buffer_delete_mark_ptr) (GtkTextBuffer *buffer, GtkTextMark *mark);
typedef void (*gtk_text_buffer_get_end_iter_ptr) (GtkTextBuffer *buffer, GtkTextIter *iter);
typedef void (*gtk_text_buffer_insert_ptr) (GtkTextBuffer *buffer, GtkTextIter *iter, const gchar *text, gint len);
// gtktextiter.h
// FIXME: should I put a #if !GTK_CHECK_VERSION(2,6,0)
// around these three, or should I not care?
typedef gboolean (*gtk_text_iter_backward_cursor_position_ptr) (GtkTextIter *iter);
typedef gboolean (*gtk_text_iter_equal_ptr) (const GtkTextIter *lhs, const GtkTextIter *rhs);
typedef gboolean (*gtk_text_buffer_delete_interactive_ptr) (GtkTextBuffer *buffer, GtkTextIter *start_iter, GtkTextIter *end_iter, gboolean default_editable);
// gtktextview.h
typedef GtkTextBuffer *(*gtk_text_view_get_buffer_ptr) (GtkTextView *text_view);
typedef GType (*gtk_text_view_get_type_ptr) (void) G_GNUC_CONST;
typedef GtkWidget * (*gtk_text_view_new_ptr) (void);
typedef void (*gtk_text_view_scroll_to_mark_ptr) (GtkTextView *text_view, GtkTextMark *mark, gdouble within_margin, gboolean use_align, gdouble xalign, gdouble yalign);
typedef void (*gtk_text_view_set_cursor_visible_ptr) (GtkTextView *text_view, gboolean setting);
typedef void (*gtk_text_view_set_editable_ptr) (GtkTextView *text_view, gboolean setting);
typedef void (*gtk_text_view_set_left_margin_ptr) (GtkTextView *text_view, gint left_margin);
typedef void (*gtk_text_view_set_right_margin_ptr) (GtkTextView *text_view, gint right_margin);
typedef void (*gtk_text_view_set_wrap_mode_ptr) (GtkTextView *text_view, GtkWrapMode wrap_mode);
// gtktogglebutton.h
typedef gboolean (*gtk_toggle_button_get_active_ptr) (GtkToggleButton *toggle_button);
typedef GType (*gtk_toggle_button_get_type_ptr) (void) G_GNUC_CONST;
typedef void (*gtk_toggle_button_set_active_ptr) (GtkToggleButton *toggle_button, gboolean is_active);
// gtktreemodel.h
typedef void (*gtk_tree_model_get_ptr) (GtkTreeModel *tree_model, GtkTreeIter *iter, ...);
typedef gboolean (*gtk_tree_model_get_iter_ptr) (GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreePath *path);
typedef GtkTreePath * (*gtk_tree_model_get_path_ptr) (GtkTreeModel *tree_model, GtkTreeIter *iter);
typedef GType (*gtk_tree_model_get_type_ptr) (void) G_GNUC_CONST;
typedef gint *(*gtk_tree_path_get_indices_ptr) (GtkTreePath *path);
typedef GtkTreePath *(*gtk_tree_path_new_from_indices_ptr) (gint first_index, ...);
// gtktreeselection.h
typedef gboolean (*gtk_tree_selection_get_selected_ptr) (GtkTreeSelection *selection, GtkTreeModel **model, GtkTreeIter *iter);
typedef void (*gtk_tree_selection_select_iter_ptr) (GtkTreeSelection *selection, GtkTreeIter *iter);
typedef GType (*gtk_tree_selection_get_type_ptr) (void) G_GNUC_CONST;
typedef void (*gtk_tree_selection_set_mode_ptr) (GtkTreeSelection *selection, GtkSelectionMode type);
// gtktreesortable.h
typedef GType (*gtk_tree_sortable_get_type_ptr) (void) G_GNUC_CONST;
typedef void (*gtk_tree_sortable_set_sort_column_id_ptr) (GtkTreeSortable *sortable, gint sort_column_id, GtkSortType order);
typedef void (*gtk_tree_sortable_set_sort_func_ptr) (GtkTreeSortable *sortable, gint sort_column_id, GtkTreeIterCompareFunc sort_func, gpointer user_data, GtkDestroyNotify destroy);
// gtktreeview.h
typedef GType (*gtk_tree_view_get_type_ptr) (void) G_GNUC_CONST;
typedef GtkWidget *(*gtk_tree_view_new_with_model_ptr) (GtkTreeModel *model);
typedef GtkTreeModel *(*gtk_tree_view_get_model_ptr) (GtkTreeView *tree_view);
typedef GtkTreeSelection *(*gtk_tree_view_get_selection_ptr) (GtkTreeView *tree_view);
typedef gint (*gtk_tree_view_append_column_ptr) (GtkTreeView *tree_view, GtkTreeViewColumn *column);
typedef void (*gtk_tree_view_set_enable_search_ptr) (GtkTreeView *tree_view, gboolean enable_search);
typedef void (*gtk_tree_view_set_headers_visible_ptr) (GtkTreeView *tree_view, gboolean headers_visible);
// gtktreeviewcolumn.h
typedef GtkTreeViewColumn *(*gtk_tree_view_column_new_with_attributes_ptr) (const gchar *title, GtkCellRenderer *cell, ...) G_GNUC_NULL_TERMINATED;
typedef void (*gtk_tree_view_column_set_expand_ptr) (GtkTreeViewColumn *tree_column, gboolean expand);
typedef void (*gtk_tree_view_column_set_min_width_ptr) (GtkTreeViewColumn *tree_column, gint min_width);
// gtkvbox.h
typedef GtkWidget* (*gtk_vbox_new_ptr) (gboolean homogeneous, gint spacing);
// gtkwidget.h
typedef void (*gtk_widget_add_accelerator_ptr) (GtkWidget *widget, const gchar *accel_signal, GtkAccelGroup *accel_group, guint accel_key, GdkModifierType accel_mods, GtkAccelFlags accel_flags);
typedef void (*gtk_widget_destroy_ptr) (GtkWidget *widget);
typedef GtkWidget* (*gtk_widget_ref_ptr) (GtkWidget *widget);
typedef void (*gtk_widget_set_sensitive_ptr) (GtkWidget *widget, gboolean sensitive);
typedef void (*gtk_widget_set_size_request_ptr) (GtkWidget *widget, gint width, gint height);
typedef void (*gtk_widget_show_all_ptr) (GtkWidget *widget);
typedef void (*gtk_widget_unref_ptr) (GtkWidget *widget);
// gtkwindow.h
typedef void (*gtk_window_add_accel_group_ptr) (GtkWindow *window, GtkAccelGroup *accel_group);
typedef GType (*gtk_window_get_type_ptr) (void) G_GNUC_CONST;
typedef GtkWidget* (*gtk_window_new_ptr) (GtkWindowType type);
typedef void (*gtk_window_set_default_icon_ptr) (GdkPixbuf *icon);
typedef void (*gtk_window_set_position_ptr) (GtkWindow *window, GtkWindowPosition position);
typedef void (*gtk_window_set_resizable_ptr) (GtkWindow *window, gboolean resizable);
typedef void (*gtk_window_set_title_ptr) (GtkWindow *window, const gchar *title);
typedef void (*gtk_window_set_type_hint_ptr) (GtkWindow *window, GdkWindowTypeHint hint);
typedef void (*gtk_window_set_default_ptr) (GtkWindow *window, GtkWidget *default_widget);
// gunicode.h
typedef gint (*g_utf8_collate_ptr) (const gchar *str1, const gchar *str2);
struct _dynamicgtksyms { struct _dynamicgtksyms {
g_free_ptr g_free;
// glib.h g_object_get_data_ptr g_object_get_data;
void (*g_free) (gpointer mem); g_object_set_data_ptr g_object_set_data;
// gobject.h g_object_set_data_full_ptr g_object_set_data_full;
gpointer (*g_object_get_data) (GObject *object, g_object_unref_ptr g_object_unref;
const gchar *key); g_signal_connect_data_ptr g_signal_connect_data;
void (*g_object_set_data) (GObject *object, g_signal_handlers_block_matched_ptr g_signal_handlers_block_matched;
const gchar *key, g_signal_handlers_unblock_matched_ptr g_signal_handlers_unblock_matched;
gpointer data); g_type_check_instance_cast_ptr g_type_check_instance_cast;
void (*g_object_set_data_full) (GObject *object, gdk_pixbuf_from_pixdata_ptr gdk_pixbuf_from_pixdata;
const gchar *key, gdk_pixbuf_new_from_data_ptr gdk_pixbuf_new_from_data;
gpointer data, gtk_accel_group_new_ptr gtk_accel_group_new;
GDestroyNotify destroy); gtk_alignment_new_ptr gtk_alignment_new;
void (*g_object_unref) (gpointer object); gtk_box_get_type_ptr gtk_box_get_type;
gtk_box_pack_start_ptr gtk_box_pack_start;
// gsignal.h gtk_button_box_get_type_ptr gtk_button_box_get_type;
gulong (*g_signal_connect_data) (gpointer instance, gtk_button_box_set_layout_ptr gtk_button_box_set_layout;
const gchar *detailed_signal, gtk_button_new_ptr gtk_button_new;
GCallback c_handler, gtk_cell_layout_get_type_ptr gtk_cell_layout_get_type;
gpointer data, gtk_cell_layout_pack_start_ptr gtk_cell_layout_pack_start;
GClosureNotify destroy_data, gtk_cell_layout_set_attributes_ptr gtk_cell_layout_set_attributes;
GConnectFlags connect_flags); gtk_cell_renderer_text_new_ptr gtk_cell_renderer_text_new;
guint (*g_signal_handlers_block_matched) (gpointer instance, gtk_check_button_new_with_mnemonic_ptr gtk_check_button_new_with_mnemonic;
GSignalMatchType mask, gtk_combo_box_get_active_ptr gtk_combo_box_get_active;
guint signal_id, gtk_combo_box_get_active_iter_ptr gtk_combo_box_get_active_iter;
GQuark detail, gtk_combo_box_get_active_text_ptr gtk_combo_box_get_active_text;
GClosure *closure, gtk_combo_box_get_model_ptr gtk_combo_box_get_model;
gpointer func, gtk_combo_box_get_type_ptr gtk_combo_box_get_type;
gpointer data); gtk_combo_box_new_text_ptr gtk_combo_box_new_text;
guint (*g_signal_handlers_unblock_matched) (gpointer instance, gtk_combo_box_new_with_model_ptr gtk_combo_box_new_with_model;
GSignalMatchType mask, gtk_combo_box_set_active_ptr gtk_combo_box_set_active;
guint signal_id, gtk_combo_box_set_active_iter_ptr gtk_combo_box_set_active_iter;
GQuark detail, gtk_container_add_ptr gtk_container_add;
GClosure *closure, gtk_container_foreach_ptr gtk_container_foreach;
gpointer func, gtk_container_get_type_ptr gtk_container_get_type;
gpointer data); gtk_container_set_border_width_ptr gtk_container_set_border_width;
gtk_dialog_get_type_ptr gtk_dialog_get_type;
// gtype.h gtk_dialog_run_ptr gtk_dialog_run;
GTypeInstance* (*g_type_check_instance_cast) (GTypeInstance *instance, gtk_hbox_new_ptr gtk_hbox_new;
GType iface_type); gtk_hbutton_box_new_ptr gtk_hbutton_box_new;
gtk_image_new_from_pixbuf_ptr gtk_image_new_from_pixbuf;
// gdk-pixdata.h gtk_image_new_from_stock_ptr gtk_image_new_from_stock;
GdkPixbuf* (*gdk_pixbuf_from_pixdata) (const GdkPixdata *pixdata, gtk_init_check_ptr gtk_init_check;
gboolean copy_pixels, gtk_label_get_type_ptr gtk_label_get_type;
GError **error); gtk_label_new_ptr gtk_label_new;
gtk_label_new_with_mnemonic_ptr gtk_label_new_with_mnemonic;
// gdk-pixbuf-core.h gtk_label_set_mnemonic_widget_ptr gtk_label_set_mnemonic_widget;
GdkPixbuf *(*gdk_pixbuf_new_from_data) (const guchar *data, gtk_list_store_append_ptr gtk_list_store_append;
GdkColorspace colorspace, gtk_list_store_clear_ptr gtk_list_store_clear;
gboolean has_alpha, gtk_list_store_get_type_ptr gtk_list_store_get_type;
int32_t bits_per_sample, gtk_list_store_new_ptr gtk_list_store_new;
int32_t width, int32_t height, gtk_list_store_set_ptr gtk_list_store_set;
int32_t rowstride, gtk_main_ptr gtk_main;
GdkPixbufDestroyNotify destroy_fn, gtk_main_iteration_do_ptr gtk_main_iteration_do;
gpointer destroy_fn_data); gtk_main_quit_ptr gtk_main_quit;
gtk_message_dialog_new_ptr gtk_message_dialog_new;
// gtkaccelgroup.h gtk_misc_get_type_ptr gtk_misc_get_type;
GtkAccelGroup* (*gtk_accel_group_new) (void); gtk_misc_set_alignment_ptr gtk_misc_set_alignment;
gtk_notebook_get_nth_page_ptr gtk_notebook_get_nth_page;
// gtkalignment.h gtk_notebook_get_type_ptr gtk_notebook_get_type;
GtkWidget* (*gtk_alignment_new) (gfloat xalign, gtk_notebook_new_ptr gtk_notebook_new;
gfloat yalign, gtk_notebook_set_current_page_ptr gtk_notebook_set_current_page;
gfloat xscale, gtk_notebook_set_tab_label_ptr gtk_notebook_set_tab_label;
gfloat yscale); gtk_object_get_type_ptr gtk_object_get_type;
gtk_scrolled_window_get_type_ptr gtk_scrolled_window_get_type;
// gtkbox.h gtk_scrolled_window_new_ptr gtk_scrolled_window_new;
GType (*gtk_box_get_type) (void) G_GNUC_CONST; gtk_scrolled_window_set_policy_ptr gtk_scrolled_window_set_policy;
void (*gtk_box_pack_start) (GtkBox *box, gtk_scrolled_window_set_shadow_type_ptr gtk_scrolled_window_set_shadow_type;
GtkWidget *child, gtk_table_get_type_ptr gtk_table_get_type;
gboolean expand, gtk_table_new_ptr gtk_table_new;
gboolean fill, gtk_table_attach_ptr gtk_table_attach;
guint padding); gtk_text_buffer_backspace_ptr gtk_text_buffer_backspace;
gtk_text_buffer_create_mark_ptr gtk_text_buffer_create_mark;
// gtkbbox.h gtk_text_buffer_delete_mark_ptr gtk_text_buffer_delete_mark;
GType (*gtk_button_box_get_type) (void) G_GNUC_CONST; gtk_text_buffer_get_end_iter_ptr gtk_text_buffer_get_end_iter;
void (*gtk_button_box_set_layout) (GtkButtonBox *widget, gtk_text_buffer_insert_ptr gtk_text_buffer_insert;
GtkButtonBoxStyle layout_style);
// gtkbutton.h
GtkWidget* (*gtk_button_new) (void);
// gtkcelllayout.h
GType (*gtk_cell_layout_get_type) (void) G_GNUC_CONST;
void (*gtk_cell_layout_pack_start) (GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
gboolean expand);
void (*gtk_cell_layout_set_attributes) (GtkCellLayout *cell_layout,
GtkCellRenderer *cell,
...) G_GNUC_NULL_TERMINATED;
// gtkcellrenderertext.h
GtkCellRenderer *(*gtk_cell_renderer_text_new) (void);
// gtkcheckbutton.h
GtkWidget* (*gtk_check_button_new_with_mnemonic) (const gchar *label);
// gtkcombobox.h
gint (*gtk_combo_box_get_active) (GtkComboBox *combo_box);
gboolean (*gtk_combo_box_get_active_iter) (GtkComboBox *combo_box,
GtkTreeIter *iter);
gchar (*gtk_combo_box_get_active_text) (GtkComboBox *combo_box);
GtkTreeModel *(*gtk_combo_box_get_model) (GtkComboBox *combo_box);
GType (*gtk_combo_box_get_type) (void) G_GNUC_CONST;
GtkWidget *(*gtk_combo_box_new_text) (void);
GtkWidget *(*gtk_combo_box_new_with_model) (GtkTreeModel *model);
void (*gtk_combo_box_set_active) (GtkComboBox *combo_box,
gint index_);
void (*gtk_combo_box_set_active_iter) (GtkComboBox *combo_box,
GtkTreeIter *iter);
// gtkcontainer.h
void (*gtk_container_add) (GtkContainer *container,
GtkWidget *widget);
void (*gtk_container_foreach) (GtkContainer *container,
GtkCallback callback,
gpointer callback_data);
GType (*gtk_container_get_type) (void) G_GNUC_CONST;
void (*gtk_container_set_border_width) (GtkContainer *container,
guint border_width);
// gtkdialog.h
GType (*gtk_dialog_get_type) (void) G_GNUC_CONST;
gint (*gtk_dialog_run) (GtkDialog *dialog);
// gtkhbox.h
GtkWidget* (*gtk_hbox_new) (gboolean homogeneous,
gint spacing);
// gtkhbbox.h
GtkWidget* (*gtk_hbutton_box_new) (void);
// gtkimage.h
GtkWidget* (*gtk_image_new_from_pixbuf) (GdkPixbuf *pixbuf);
GtkWidget* (*gtk_image_new_from_stock) (const gchar *stock_id,
GtkIconSize size);
// gtkmain.h
gboolean (*gtk_init_check) (int32_t *argc,
char ***argv);
// gtklabel.h
GType (*gtk_label_get_type) (void) G_GNUC_CONST;
GtkWidget* (*gtk_label_new) (const gchar *str);
GtkWidget* (*gtk_label_new_with_mnemonic) (const gchar *str);
void (*gtk_label_set_mnemonic_widget) (GtkLabel *label,
GtkWidget *widget);
// gtkliststore.h
void (*gtk_list_store_append) (GtkListStore *list_store,
GtkTreeIter *iter);
void (*gtk_list_store_clear) (GtkListStore *list_store);
GType (*gtk_list_store_get_type) (void) G_GNUC_CONST;
GtkListStore *(*gtk_list_store_new) (gint n_columns,
...);
void (*gtk_list_store_set) (GtkListStore *list_store,
GtkTreeIter *iter,
...);
// gtkmain.h
void (*gtk_main) (void);
gboolean (*gtk_main_iteration_do) (gboolean blocking);
void (*gtk_main_quit) (void);
// gtkmessagedialog.h
GtkWidget* (*gtk_message_dialog_new) (GtkWindow *parent,
GtkDialogFlags flags,
GtkMessageType type,
GtkButtonsType buttons,
const gchar *message_format,
...) G_GNUC_PRINTF (5, 6);
// gtkmisc.h
GType (*gtk_misc_get_type) (void) G_GNUC_CONST;
void (*gtk_misc_set_alignment) (GtkMisc *misc,
gfloat xalign,
gfloat yalign);
// gtknotebook.h
GtkWidget* (*gtk_notebook_get_nth_page) (GtkNotebook *notebook,
gint page_num);
GType (*gtk_notebook_get_type) (void) G_GNUC_CONST;
GtkWidget * (*gtk_notebook_new) (void);
void (*gtk_notebook_set_current_page) (GtkNotebook *notebook,
gint page_num);
void (*gtk_notebook_set_tab_label) (GtkNotebook *notebook,
GtkWidget *child,
GtkWidget *tab_label);
// gtkobject.h
GtkType (*gtk_object_get_type) (void) G_GNUC_CONST;
// gtkscrolledwindow.h
GType (*gtk_scrolled_window_get_type) (void) G_GNUC_CONST;
GtkWidget* (*gtk_scrolled_window_new) (GtkAdjustment *hadjustment,
GtkAdjustment *vadjustment);
void (*gtk_scrolled_window_set_policy) (GtkScrolledWindow *scrolled_window,
GtkPolicyType hscrollbar_policy,
GtkPolicyType vscrollbar_policy);
void (*gtk_scrolled_window_set_shadow_type) (GtkScrolledWindow *scrolled_window,
GtkShadowType type);
// gtktable.h
GType (*gtk_table_get_type) (void) G_GNUC_CONST;
GtkWidget* (*gtk_table_new) (guint rows,
guint columns,
gboolean homogeneous);
void (*gtk_table_attach) (GtkTable *table,
GtkWidget *child,
guint left_attach,
guint right_attach,
guint top_attach,
guint bottom_attach,
GtkAttachOptions xoptions,
GtkAttachOptions yoptions,
guint xpadding,
guint ypadding);
// gtktextbuffer.h
gboolean (*gtk_text_buffer_backspace) (GtkTextBuffer *buffer,
GtkTextIter *iter,
gboolean interactive,
gboolean default_editable);
GtkTextMark *(*gtk_text_buffer_create_mark) (GtkTextBuffer *buffer,
const gchar *mark_name,
const GtkTextIter *where,
gboolean left_gravity);
void (*gtk_text_buffer_delete_mark) (GtkTextBuffer *buffer,
GtkTextMark *mark);
void (*gtk_text_buffer_get_end_iter) (GtkTextBuffer *buffer,
GtkTextIter *iter);
void (*gtk_text_buffer_insert) (GtkTextBuffer *buffer,
GtkTextIter *iter,
const gchar *text,
gint len);
// gtktextiter.h
// FIXME: should I put a #if !GTK_CHECK_VERSION(2,6,0) // FIXME: should I put a #if !GTK_CHECK_VERSION(2,6,0)
// around these three, or should I not care? // around these three, or should I not care?
gboolean (*gtk_text_iter_backward_cursor_position) (GtkTextIter *iter); gtk_text_iter_backward_cursor_position_ptr gtk_text_iter_backward_cursor_position;
gboolean (*gtk_text_iter_equal) (const GtkTextIter *lhs, gtk_text_iter_equal_ptr gtk_text_iter_equal;
const GtkTextIter *rhs); gtk_text_buffer_delete_interactive_ptr gtk_text_buffer_delete_interactive;
gboolean (*gtk_text_buffer_delete_interactive) (GtkTextBuffer *buffer, //
GtkTextIter *start_iter, gtk_text_view_get_buffer_ptr gtk_text_view_get_buffer;
GtkTextIter *end_iter, gtk_text_view_get_type_ptr gtk_text_view_get_type;
gboolean default_editable); gtk_text_view_new_ptr gtk_text_view_new;
gtk_text_view_scroll_to_mark_ptr gtk_text_view_scroll_to_mark;
// gtktextview.h gtk_text_view_set_cursor_visible_ptr gtk_text_view_set_cursor_visible;
GtkTextBuffer *(*gtk_text_view_get_buffer) (GtkTextView *text_view); gtk_text_view_set_editable_ptr gtk_text_view_set_editable;
GType (*gtk_text_view_get_type) (void) G_GNUC_CONST; gtk_text_view_set_left_margin_ptr gtk_text_view_set_left_margin;
GtkWidget * (*gtk_text_view_new) (void); gtk_text_view_set_right_margin_ptr gtk_text_view_set_right_margin;
void (*gtk_text_view_scroll_to_mark) (GtkTextView *text_view, gtk_text_view_set_wrap_mode_ptr gtk_text_view_set_wrap_mode;
GtkTextMark *mark, gtk_toggle_button_get_active_ptr gtk_toggle_button_get_active;
gdouble within_margin, gtk_toggle_button_get_type_ptr gtk_toggle_button_get_type;
gboolean use_align, gtk_toggle_button_set_active_ptr gtk_toggle_button_set_active;
gdouble xalign, gtk_tree_model_get_ptr gtk_tree_model_get;
gdouble yalign); gtk_tree_model_get_iter_ptr gtk_tree_model_get_iter;
void (*gtk_text_view_set_cursor_visible) (GtkTextView *text_view, gtk_tree_model_get_path_ptr gtk_tree_model_get_path;
gboolean setting); gtk_tree_model_get_type_ptr gtk_tree_model_get_type;
void (*gtk_text_view_set_editable) (GtkTextView *text_view, gtk_tree_path_get_indices_ptr gtk_tree_path_get_indices;
gboolean setting); gtk_tree_path_new_from_indices_ptr gtk_tree_path_new_from_indices;
void (*gtk_text_view_set_left_margin) (GtkTextView *text_view, gtk_tree_selection_get_selected_ptr gtk_tree_selection_get_selected;
gint left_margin); gtk_tree_selection_select_iter_ptr gtk_tree_selection_select_iter;
void (*gtk_text_view_set_right_margin) (GtkTextView *text_view, gtk_tree_selection_set_mode_ptr gtk_tree_selection_set_mode;
gint right_margin); gtk_tree_sortable_get_type_ptr gtk_tree_sortable_get_type;
void (*gtk_text_view_set_wrap_mode) (GtkTextView *text_view, gtk_tree_sortable_set_sort_column_id_ptr gtk_tree_sortable_set_sort_column_id;
GtkWrapMode wrap_mode); gtk_tree_sortable_set_sort_func_ptr gtk_tree_sortable_set_sort_func;
gtk_tree_view_append_column_ptr gtk_tree_view_append_column;
// gtktogglebutton.h gtk_tree_view_column_new_with_attributes_ptr gtk_tree_view_column_new_with_attributes;
gboolean (*gtk_toggle_button_get_active) (GtkToggleButton *toggle_button); gtk_tree_view_column_set_expand_ptr gtk_tree_view_column_set_expand;
GType (*gtk_toggle_button_get_type) (void) G_GNUC_CONST; gtk_tree_view_column_set_min_width_ptr gtk_tree_view_column_set_min_width;
void (*gtk_toggle_button_set_active) (GtkToggleButton *toggle_button, gtk_tree_view_get_model_ptr gtk_tree_view_get_model;
gboolean is_active); gtk_tree_view_get_selection_ptr gtk_tree_view_get_selection;
gtk_tree_view_get_type_ptr gtk_tree_view_get_type;
// gtktreemodel.h gtk_tree_view_new_with_model_ptr gtk_tree_view_new_with_model;
void (*gtk_tree_model_get) (GtkTreeModel *tree_model, gtk_tree_view_set_enable_search_ptr gtk_tree_view_set_enable_search;
GtkTreeIter *iter, gtk_tree_view_set_headers_visible_ptr gtk_tree_view_set_headers_visible;
...); gtk_vbox_new_ptr gtk_vbox_new;
gboolean (*gtk_tree_model_get_iter) (GtkTreeModel *tree_model, gtk_widget_add_accelerator_ptr gtk_widget_add_accelerator;
GtkTreeIter *iter, gtk_widget_destroy_ptr gtk_widget_destroy;
GtkTreePath *path); gtk_widget_ref_ptr gtk_widget_ref;
GtkTreePath * (*gtk_tree_model_get_path) (GtkTreeModel *tree_model, gtk_widget_set_sensitive_ptr gtk_widget_set_sensitive;
GtkTreeIter *iter); gtk_widget_set_size_request_ptr gtk_widget_set_size_request;
GType (*gtk_tree_model_get_type) (void) G_GNUC_CONST; gtk_widget_show_all_ptr gtk_widget_show_all;
gint *(*gtk_tree_path_get_indices) (GtkTreePath *path); gtk_widget_unref_ptr gtk_widget_unref;
GtkTreePath *(*gtk_tree_path_new_from_indices) (gint first_index, gtk_window_add_accel_group_ptr gtk_window_add_accel_group;
...); gtk_window_get_type_ptr gtk_window_get_type;
// gtktreeselection.h gtk_window_new_ptr gtk_window_new;
gboolean (*gtk_tree_selection_get_selected) (GtkTreeSelection *selection, gtk_window_set_default_icon_ptr gtk_window_set_default_icon;
GtkTreeModel **model, gtk_window_set_position_ptr gtk_window_set_position;
GtkTreeIter *iter); gtk_window_set_resizable_ptr gtk_window_set_resizable;
void (*gtk_tree_selection_select_iter) (GtkTreeSelection *selection, gtk_window_set_title_ptr gtk_window_set_title;
GtkTreeIter *iter); gtk_window_set_type_hint_ptr gtk_window_set_type_hint;
GType (*gtk_tree_selection_get_type) (void) G_GNUC_CONST; gtk_window_set_default_ptr gtk_window_set_default;
g_utf8_collate_ptr g_utf8_collate;
void (*gtk_tree_selection_set_mode) (GtkTreeSelection *selection,
GtkSelectionMode type);
// gtktreesortable.h
GType (*gtk_tree_sortable_get_type) (void) G_GNUC_CONST;
void (*gtk_tree_sortable_set_sort_column_id) (GtkTreeSortable *sortable,
gint sort_column_id,
GtkSortType order);
void (*gtk_tree_sortable_set_sort_func) (GtkTreeSortable *sortable,
gint sort_column_id,
GtkTreeIterCompareFunc sort_func,
gpointer user_data,
GtkDestroyNotify destroy);
// gtktreeview.h
GType (*gtk_tree_view_get_type) (void) G_GNUC_CONST;
GtkWidget *(*gtk_tree_view_new_with_model) (GtkTreeModel *model);
GtkTreeModel *(*gtk_tree_view_get_model) (GtkTreeView *tree_view);
GtkTreeSelection *(*gtk_tree_view_get_selection) (GtkTreeView *tree_view);
gint (*gtk_tree_view_append_column) (GtkTreeView *tree_view,
GtkTreeViewColumn *column);
void (*gtk_tree_view_set_enable_search) (GtkTreeView *tree_view,
gboolean enable_search);
void (*gtk_tree_view_set_headers_visible) (GtkTreeView *tree_view,
gboolean headers_visible);
// gtktreeviewcolumn.h
GtkTreeViewColumn *(*gtk_tree_view_column_new_with_attributes) (const gchar *title,
GtkCellRenderer *cell,
...) G_GNUC_NULL_TERMINATED;
void (*gtk_tree_view_column_set_expand) (GtkTreeViewColumn *tree_column,
gboolean expand);
void (*gtk_tree_view_column_set_min_width) (GtkTreeViewColumn *tree_column,
gint min_width);
// gtkvbox.h
GtkWidget* (*gtk_vbox_new) (gboolean homogeneous,
gint spacing);
// gtkwidget.h
void (*gtk_widget_add_accelerator) (GtkWidget *widget,
const gchar *accel_signal,
GtkAccelGroup *accel_group,
guint accel_key,
GdkModifierType accel_mods,
GtkAccelFlags accel_flags);
void (*gtk_widget_destroy) (GtkWidget *widget);
GtkWidget* (*gtk_widget_ref) (GtkWidget *widget);
void (*gtk_widget_set_sensitive) (GtkWidget *widget,
gboolean sensitive);
void (*gtk_widget_set_size_request) (GtkWidget *widget,
gint width,
gint height);
void (*gtk_widget_show_all) (GtkWidget *widget);
void (*gtk_widget_unref) (GtkWidget *widget);
// gtkwindow.h
void (*gtk_window_add_accel_group) (GtkWindow *window,
GtkAccelGroup *accel_group);
GType (*gtk_window_get_type) (void) G_GNUC_CONST;
GtkWidget* (*gtk_window_new) (GtkWindowType type);
void (*gtk_window_set_default_icon) (GdkPixbuf *icon);
void (*gtk_window_set_position) (GtkWindow *window,
GtkWindowPosition position);
void (*gtk_window_set_resizable) (GtkWindow *window,
gboolean resizable);
void (*gtk_window_set_title) (GtkWindow *window,
const gchar *title);
void (*gtk_window_set_type_hint) (GtkWindow *window,
GdkWindowTypeHint hint);
void (*gtk_window_set_default) (GtkWindow *window,
GtkWidget *default_widget);
// gunicode.h
gint (*g_utf8_collate) (const gchar *str1,
const gchar *str2);
}; };
extern struct _dynamicgtksyms dynamicgtksyms; extern struct _dynamicgtksyms dynamicgtksyms;
int32_t dynamicgtk_init(void); int32_t dynamicgtk_init(void);
void dynamicgtk_uninit(void); void dynamicgtk_uninit(void);

View File

@ -9,7 +9,7 @@ static void *handle = NULL;
struct _dynamicgtksyms dynamicgtksyms; struct _dynamicgtksyms dynamicgtksyms;
#define GETDLSYM(x) { \ #define GETDLSYM(x) { \
dynamicgtksyms.x = dlsym(handle, (failsym = (const char *)#x)); \ dynamicgtksyms.x = (x ## _ptr) dlsym(handle, (failsym = (const char *)#x)); \
if (!dynamicgtksyms.x ) { err = 1; break; } \ if (!dynamicgtksyms.x ) { err = 1; break; } \
} }
@ -187,3 +187,4 @@ void dynamicgtk_uninit(void)
handle = NULL; handle = NULL;
memset(&dynamicgtksyms, 0, sizeof(dynamicgtksyms)); memset(&dynamicgtksyms, 0, sizeof(dynamicgtksyms));
} }