1 #ifndef dynamicgtk_h_
2 #define dynamicgtk_h_
3 
4 #include <gdk-pixbuf/gdk-pixdata.h>
5 #include <gdk-pixbuf/gdk-pixbuf.h>
6 #include <gdk/gdkkeysyms.h>
7 #include <gtk/gtk.h>
8 
9 #include "compat.h"
10 
11 #if !GTK_CHECK_VERSION(2,4,0)
12 #error You need at least 2.4.0 version of GTK+
13 #endif
14 
15 #ifndef G_GNUC_NULL_TERMINATED
16 /* this is a glib-2.8.x thing: */
17 #define G_GNUC_NULL_TERMINATED
18 #endif
19 
20 
21 // glib.h
22 typedef void (*g_free_ptr) (gpointer mem);
23 
24 // gobject.h
25 typedef gpointer (*g_object_get_data_ptr) (GObject *object, const gchar *key);
26 typedef void (*g_object_set_data_ptr) (GObject *object, const gchar *key, gpointer data);
27 typedef void (*g_object_set_data_full_ptr) (GObject *object, const gchar *key, gpointer data, GDestroyNotify destroy);
28 typedef void (*g_object_unref_ptr) (gpointer object);
29 
30 // gsignal.h
31 typedef gulong (*g_signal_connect_data_ptr) (gpointer instance, const gchar *detailed_signal, GCallback c_handler, gpointer data, GClosureNotify destroy_data, GConnectFlags connect_flags);
32 typedef guint (*g_signal_handlers_block_matched_ptr) (gpointer instance, GSignalMatchType mask, guint signal_id, GQuark detail, GClosure *closure, gpointer func, gpointer data);
33 typedef guint (*g_signal_handlers_unblock_matched_ptr) (gpointer instance, GSignalMatchType mask, guint signal_id, GQuark detail, GClosure *closure, gpointer func, gpointer data);
34 
35 // gtype.h
36 typedef GTypeInstance* (*g_type_check_instance_cast_ptr) (GTypeInstance *instance, GType iface_type);
37 
38 // gdk-pixdata.h
39 typedef GdkPixbuf* (*gdk_pixbuf_from_pixdata_ptr) (const GdkPixdata *pixdata, gboolean copy_pixels, GError **error);
40 
41 // gdk-pixbuf-core.h
42 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);
43 
44 // gtkaccelgroup.h
45 typedef GtkAccelGroup* (*gtk_accel_group_new_ptr) (void);
46 
47 // gtkalignment.h
48 typedef GtkWidget* (*gtk_alignment_new_ptr) (gfloat xalign, gfloat yalign, gfloat xscale, gfloat yscale);
49 
50 // gtkbox.h
51 typedef GType (*gtk_box_get_type_ptr) (void) G_GNUC_CONST;
52 typedef void (*gtk_box_pack_start_ptr) (GtkBox *box, GtkWidget *child, gboolean expand, gboolean fill, guint padding);
53 
54 // gtkbbox.h
55 typedef GType (*gtk_button_box_get_type_ptr) (void) G_GNUC_CONST;
56 typedef void (*gtk_button_box_set_layout_ptr) (GtkButtonBox *widget, GtkButtonBoxStyle layout_style);
57 
58 // gtkbutton.h
59 typedef GtkWidget* (*gtk_button_new_ptr) (void);
60 
61 // gtkcelllayout.h
62 typedef GType (*gtk_cell_layout_get_type_ptr) (void) G_GNUC_CONST;
63 typedef void (*gtk_cell_layout_pack_start_ptr) (GtkCellLayout *cell_layout, GtkCellRenderer *cell, gboolean expand);
64 typedef void (*gtk_cell_layout_set_attributes_ptr) (GtkCellLayout *cell_layout, GtkCellRenderer *cell, ...) G_GNUC_NULL_TERMINATED;
65 
66 // gtkcellrenderertext.h
67 typedef GtkCellRenderer *(*gtk_cell_renderer_text_new_ptr) (void);
68 
69 // gtkcheckbutton.h
70 typedef GtkWidget* (*gtk_check_button_new_with_mnemonic_ptr) (const gchar *label);
71 
72 // gtkcombobox.h
73 typedef gint (*gtk_combo_box_get_active_ptr) (GtkComboBox *combo_box);
74 typedef gboolean (*gtk_combo_box_get_active_iter_ptr) (GtkComboBox *combo_box, GtkTreeIter *iter);
75 typedef gchar (*gtk_combo_box_get_active_text_ptr) (GtkComboBox *combo_box);
76 typedef GtkTreeModel *(*gtk_combo_box_get_model_ptr) (GtkComboBox *combo_box);
77 typedef GType (*gtk_combo_box_get_type_ptr) (void) G_GNUC_CONST;
78 typedef GtkWidget *(*gtk_combo_box_new_text_ptr) (void);
79 typedef GtkWidget *(*gtk_combo_box_new_with_model_ptr) (GtkTreeModel *model);
80 typedef void (*gtk_combo_box_set_active_ptr) (GtkComboBox *combo_box, gint index_);
81 typedef void (*gtk_combo_box_set_active_iter_ptr) (GtkComboBox *combo_box, GtkTreeIter *iter);
82 
83 // gtkcontainer.h
84 typedef void (*gtk_container_add_ptr) (GtkContainer *container, GtkWidget *widget);
85 typedef void (*gtk_container_foreach_ptr) (GtkContainer *container, GtkCallback callback, gpointer callback_data);
86 typedef GType (*gtk_container_get_type_ptr) (void) G_GNUC_CONST;
87 typedef void (*gtk_container_set_border_width_ptr) (GtkContainer *container, guint border_width);
88 
89 // gtkdialog.h
90 typedef GType (*gtk_dialog_get_type_ptr) (void) G_GNUC_CONST;
91 typedef gint (*gtk_dialog_run_ptr) (GtkDialog *dialog);
92 
93 // gtkhbox.h
94 typedef GtkWidget* (*gtk_hbox_new_ptr) (gboolean homogeneous, gint spacing);
95 
96 // gtkhbbox.h
97 typedef GtkWidget* (*gtk_hbutton_box_new_ptr) (void);
98 
99 // gtkimage.h
100 typedef GtkWidget* (*gtk_image_new_from_pixbuf_ptr) (GdkPixbuf *pixbuf);
101 typedef GtkWidget* (*gtk_image_new_from_stock_ptr) (const gchar *stock_id, GtkIconSize size);
102 
103 // gtkmain.h
104 typedef gboolean (*gtk_init_check_ptr) (int32_t *argc, char ***argv);
105 
106 // gtklabel.h
107 typedef GType (*gtk_label_get_type_ptr) (void) G_GNUC_CONST;
108 typedef GtkWidget* (*gtk_label_new_ptr) (const gchar *str);
109 typedef GtkWidget* (*gtk_label_new_with_mnemonic_ptr) (const gchar *str);
110 typedef void (*gtk_label_set_mnemonic_widget_ptr) (GtkLabel *label, GtkWidget *widget);
111 
112 // gtkliststore.h
113 typedef void (*gtk_list_store_append_ptr) (GtkListStore *list_store, GtkTreeIter *iter);
114 typedef void (*gtk_list_store_clear_ptr) (GtkListStore *list_store);
115 typedef GType (*gtk_list_store_get_type_ptr) (void) G_GNUC_CONST;
116 typedef GtkListStore *(*gtk_list_store_new_ptr) (gint n_columns, ...);
117 typedef void (*gtk_list_store_set_ptr) (GtkListStore *list_store, GtkTreeIter *iter, ...);
118 
119 // gtkmain.h
120 typedef gboolean (*gtk_events_pending_ptr) (void);
121 typedef void (*gtk_main_ptr) (void);
122 typedef gboolean (*gtk_main_iteration_do_ptr) (gboolean blocking);
123 typedef void (*gtk_main_quit_ptr) (void);
124 
125 // gtkmessagedialog.h
126 typedef GtkWidget* (*gtk_message_dialog_new_ptr) (GtkWindow *parent, GtkDialogFlags flags, GtkMessageType type, GtkButtonsType buttons, const gchar *message_format, ...) G_GNUC_PRINTF (5, 6);
127 
128 // gtkmisc.h
129 typedef GType (*gtk_misc_get_type_ptr) (void) G_GNUC_CONST;
130 typedef void (*gtk_misc_set_alignment_ptr) (GtkMisc *misc, gfloat xalign, gfloat yalign);
131 
132 // gtknotebook.h
133 typedef GtkWidget* (*gtk_notebook_get_nth_page_ptr) (GtkNotebook *notebook, gint page_num);
134 typedef GType (*gtk_notebook_get_type_ptr) (void) G_GNUC_CONST;
135 typedef GtkWidget * (*gtk_notebook_new_ptr) (void);
136 typedef void (*gtk_notebook_set_current_page_ptr) (GtkNotebook *notebook, gint page_num);
137 typedef void (*gtk_notebook_set_tab_label_ptr) (GtkNotebook *notebook, GtkWidget *child, GtkWidget *tab_label);
138 
139 // gtkobject.h
140 typedef GtkType (*gtk_object_get_type_ptr) (void) G_GNUC_CONST;
141 
142 // gtkscrolledwindow.h
143 typedef GType (*gtk_scrolled_window_get_type_ptr) (void) G_GNUC_CONST;
144 typedef GtkWidget* (*gtk_scrolled_window_new_ptr) (GtkAdjustment *hadjustment, GtkAdjustment *vadjustment);
145 typedef void (*gtk_scrolled_window_set_policy_ptr) (GtkScrolledWindow *scrolled_window, GtkPolicyType hscrollbar_policy, GtkPolicyType vscrollbar_policy);
146 typedef void (*gtk_scrolled_window_set_shadow_type_ptr) (GtkScrolledWindow *scrolled_window, GtkShadowType type);
147 
148 // gtktable.h
149 typedef GType (*gtk_table_get_type_ptr) (void) G_GNUC_CONST;
150 typedef GtkWidget* (*gtk_table_new_ptr) (guint rows, guint columns, gboolean homogeneous);
151 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);
152 
153 // gtktextbuffer.h
154 typedef gboolean (*gtk_text_buffer_backspace_ptr) (GtkTextBuffer *buffer, GtkTextIter *iter, gboolean interactive, gboolean default_editable);
155 typedef GtkTextMark *(*gtk_text_buffer_create_mark_ptr) (GtkTextBuffer *buffer, const gchar *mark_name, const GtkTextIter *where, gboolean left_gravity);
156 typedef void (*gtk_text_buffer_delete_mark_ptr) (GtkTextBuffer *buffer, GtkTextMark *mark);
157 typedef void (*gtk_text_buffer_get_end_iter_ptr) (GtkTextBuffer *buffer, GtkTextIter *iter);
158 typedef void (*gtk_text_buffer_insert_ptr) (GtkTextBuffer *buffer, GtkTextIter *iter, const gchar *text, gint len);
159 
160 // gtktextiter.h
161 // FIXME: should I put a #if !GTK_CHECK_VERSION(2,6,0)
162 // around these three, or should I not care?
163 typedef gboolean (*gtk_text_iter_backward_cursor_position_ptr) (GtkTextIter *iter);
164 typedef gboolean (*gtk_text_iter_equal_ptr) (const GtkTextIter *lhs, const GtkTextIter *rhs);
165 typedef gboolean (*gtk_text_buffer_delete_interactive_ptr) (GtkTextBuffer *buffer, GtkTextIter *start_iter, GtkTextIter *end_iter, gboolean default_editable);
166 
167 // gtktextview.h
168 typedef GtkTextBuffer *(*gtk_text_view_get_buffer_ptr) (GtkTextView *text_view);
169 typedef GType (*gtk_text_view_get_type_ptr) (void) G_GNUC_CONST;
170 typedef GtkWidget * (*gtk_text_view_new_ptr) (void);
171 typedef void (*gtk_text_view_scroll_to_mark_ptr) (GtkTextView *text_view, GtkTextMark *mark, gdouble within_margin, gboolean use_align, gdouble xalign, gdouble yalign);
172 typedef void (*gtk_text_view_set_cursor_visible_ptr) (GtkTextView *text_view, gboolean setting);
173 typedef void (*gtk_text_view_set_editable_ptr) (GtkTextView *text_view, gboolean setting);
174 typedef void (*gtk_text_view_set_left_margin_ptr) (GtkTextView *text_view, gint left_margin);
175 typedef void (*gtk_text_view_set_right_margin_ptr) (GtkTextView *text_view, gint right_margin);
176 typedef void (*gtk_text_view_set_wrap_mode_ptr) (GtkTextView *text_view, GtkWrapMode wrap_mode);
177 
178 // gtktogglebutton.h
179 typedef gboolean (*gtk_toggle_button_get_active_ptr) (GtkToggleButton *toggle_button);
180 typedef GType (*gtk_toggle_button_get_type_ptr) (void) G_GNUC_CONST;
181 typedef void (*gtk_toggle_button_set_active_ptr) (GtkToggleButton *toggle_button, gboolean is_active);
182 
183 // gtktreemodel.h
184 typedef void (*gtk_tree_model_get_ptr) (GtkTreeModel *tree_model, GtkTreeIter *iter, ...);
185 typedef gboolean (*gtk_tree_model_get_iter_ptr) (GtkTreeModel *tree_model, GtkTreeIter *iter, GtkTreePath *path);
186 typedef GtkTreePath * (*gtk_tree_model_get_path_ptr) (GtkTreeModel *tree_model, GtkTreeIter *iter);
187 typedef GType (*gtk_tree_model_get_type_ptr) (void) G_GNUC_CONST;
188 typedef gint *(*gtk_tree_path_get_indices_ptr) (GtkTreePath *path);
189 typedef GtkTreePath *(*gtk_tree_path_new_from_indices_ptr) (gint first_index, ...);
190 
191 // gtktreeselection.h
192 typedef gboolean (*gtk_tree_selection_get_selected_ptr) (GtkTreeSelection *selection, GtkTreeModel **model, GtkTreeIter *iter);
193 typedef void (*gtk_tree_selection_select_iter_ptr) (GtkTreeSelection *selection, GtkTreeIter *iter);
194 typedef GType (*gtk_tree_selection_get_type_ptr) (void) G_GNUC_CONST;
195 typedef void (*gtk_tree_selection_set_mode_ptr) (GtkTreeSelection *selection, GtkSelectionMode type);
196 
197 // gtktreesortable.h
198 typedef GType (*gtk_tree_sortable_get_type_ptr) (void) G_GNUC_CONST;
199 typedef void (*gtk_tree_sortable_set_sort_column_id_ptr) (GtkTreeSortable *sortable, gint sort_column_id, GtkSortType order);
200 typedef void (*gtk_tree_sortable_set_sort_func_ptr) (GtkTreeSortable *sortable, gint sort_column_id, GtkTreeIterCompareFunc sort_func, gpointer user_data, GtkDestroyNotify destroy);
201 
202 // gtktreeview.h
203 typedef GType (*gtk_tree_view_get_type_ptr) (void) G_GNUC_CONST;
204 typedef GtkWidget *(*gtk_tree_view_new_with_model_ptr) (GtkTreeModel *model);
205 typedef GtkTreeModel *(*gtk_tree_view_get_model_ptr) (GtkTreeView *tree_view);
206 typedef GtkTreeSelection *(*gtk_tree_view_get_selection_ptr) (GtkTreeView *tree_view);
207 typedef gint (*gtk_tree_view_append_column_ptr) (GtkTreeView *tree_view, GtkTreeViewColumn *column);
208 typedef void (*gtk_tree_view_set_enable_search_ptr) (GtkTreeView *tree_view, gboolean enable_search);
209 typedef void (*gtk_tree_view_set_headers_visible_ptr) (GtkTreeView *tree_view, gboolean headers_visible);
210 
211 // gtktreeviewcolumn.h
212 typedef GtkTreeViewColumn *(*gtk_tree_view_column_new_with_attributes_ptr) (const gchar *title, GtkCellRenderer *cell, ...) G_GNUC_NULL_TERMINATED;
213 typedef void (*gtk_tree_view_column_set_expand_ptr) (GtkTreeViewColumn *tree_column, gboolean expand);
214 typedef void (*gtk_tree_view_column_set_min_width_ptr) (GtkTreeViewColumn *tree_column, gint min_width);
215 
216 // gtkvbox.h
217 typedef GtkWidget* (*gtk_vbox_new_ptr) (gboolean homogeneous, gint spacing);
218 
219 // gtkwidget.h
220 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);
221 typedef void (*gtk_widget_destroy_ptr) (GtkWidget *widget);
222 typedef GtkWidget* (*gtk_widget_ref_ptr) (GtkWidget *widget);
223 typedef void (*gtk_widget_set_sensitive_ptr) (GtkWidget *widget, gboolean sensitive);
224 typedef void (*gtk_widget_set_size_request_ptr) (GtkWidget *widget, gint width, gint height);
225 typedef void (*gtk_widget_show_all_ptr) (GtkWidget *widget);
226 typedef void (*gtk_widget_unref_ptr) (GtkWidget *widget);
227 
228 // gtkwindow.h
229 typedef void (*gtk_window_add_accel_group_ptr) (GtkWindow *window, GtkAccelGroup *accel_group);
230 typedef GType (*gtk_window_get_type_ptr) (void) G_GNUC_CONST;
231 typedef GtkWidget* (*gtk_window_new_ptr) (GtkWindowType type);
232 typedef void (*gtk_window_set_default_icon_ptr) (GdkPixbuf *icon);
233 typedef void (*gtk_window_set_position_ptr) (GtkWindow *window, GtkWindowPosition position);
234 typedef void (*gtk_window_set_resizable_ptr) (GtkWindow *window, gboolean resizable);
235 typedef void (*gtk_window_set_title_ptr) (GtkWindow *window, const gchar *title);
236 typedef void (*gtk_window_set_type_hint_ptr) (GtkWindow *window, GdkWindowTypeHint hint);
237 typedef void (*gtk_window_set_default_ptr) (GtkWindow *window, GtkWidget *default_widget);
238 
239 // gunicode.h
240 typedef gint (*g_utf8_collate_ptr) (const gchar *str1, const gchar *str2);
241 
242 
243 struct _dynamicgtksyms {
244     g_free_ptr g_free;
245     g_object_get_data_ptr g_object_get_data;
246     g_object_set_data_ptr g_object_set_data;
247     g_object_set_data_full_ptr g_object_set_data_full;
248     g_object_unref_ptr g_object_unref;
249     g_signal_connect_data_ptr g_signal_connect_data;
250     g_signal_handlers_block_matched_ptr g_signal_handlers_block_matched;
251     g_signal_handlers_unblock_matched_ptr g_signal_handlers_unblock_matched;
252     g_type_check_instance_cast_ptr g_type_check_instance_cast;
253     gdk_pixbuf_from_pixdata_ptr gdk_pixbuf_from_pixdata;
254     gdk_pixbuf_new_from_data_ptr gdk_pixbuf_new_from_data;
255     gtk_accel_group_new_ptr gtk_accel_group_new;
256     gtk_alignment_new_ptr gtk_alignment_new;
257     gtk_box_get_type_ptr gtk_box_get_type;
258     gtk_box_pack_start_ptr gtk_box_pack_start;
259     gtk_button_box_get_type_ptr gtk_button_box_get_type;
260     gtk_button_box_set_layout_ptr gtk_button_box_set_layout;
261     gtk_button_new_ptr gtk_button_new;
262     gtk_cell_layout_get_type_ptr gtk_cell_layout_get_type;
263     gtk_cell_layout_pack_start_ptr gtk_cell_layout_pack_start;
264     gtk_cell_layout_set_attributes_ptr gtk_cell_layout_set_attributes;
265     gtk_cell_renderer_text_new_ptr gtk_cell_renderer_text_new;
266     gtk_check_button_new_with_mnemonic_ptr gtk_check_button_new_with_mnemonic;
267     gtk_combo_box_get_active_ptr gtk_combo_box_get_active;
268     gtk_combo_box_get_active_iter_ptr gtk_combo_box_get_active_iter;
269     gtk_combo_box_get_active_text_ptr gtk_combo_box_get_active_text;
270     gtk_combo_box_get_model_ptr gtk_combo_box_get_model;
271     gtk_combo_box_get_type_ptr gtk_combo_box_get_type;
272     gtk_combo_box_new_text_ptr gtk_combo_box_new_text;
273     gtk_combo_box_new_with_model_ptr gtk_combo_box_new_with_model;
274     gtk_combo_box_set_active_ptr gtk_combo_box_set_active;
275     gtk_combo_box_set_active_iter_ptr gtk_combo_box_set_active_iter;
276     gtk_container_add_ptr gtk_container_add;
277     gtk_container_foreach_ptr gtk_container_foreach;
278     gtk_container_get_type_ptr gtk_container_get_type;
279     gtk_container_set_border_width_ptr gtk_container_set_border_width;
280     gtk_dialog_get_type_ptr gtk_dialog_get_type;
281     gtk_dialog_run_ptr gtk_dialog_run;
282     gtk_hbox_new_ptr gtk_hbox_new;
283     gtk_hbutton_box_new_ptr gtk_hbutton_box_new;
284     gtk_image_new_from_pixbuf_ptr gtk_image_new_from_pixbuf;
285     gtk_image_new_from_stock_ptr gtk_image_new_from_stock;
286     gtk_init_check_ptr gtk_init_check;
287     gtk_label_get_type_ptr gtk_label_get_type;
288     gtk_label_new_ptr gtk_label_new;
289     gtk_label_new_with_mnemonic_ptr gtk_label_new_with_mnemonic;
290     gtk_label_set_mnemonic_widget_ptr gtk_label_set_mnemonic_widget;
291     gtk_list_store_append_ptr gtk_list_store_append;
292     gtk_list_store_clear_ptr gtk_list_store_clear;
293     gtk_list_store_get_type_ptr gtk_list_store_get_type;
294     gtk_list_store_new_ptr gtk_list_store_new;
295     gtk_list_store_set_ptr gtk_list_store_set;
296     gtk_events_pending_ptr gtk_events_pending;
297     gtk_main_ptr gtk_main;
298     gtk_main_iteration_do_ptr gtk_main_iteration_do;
299     gtk_main_quit_ptr gtk_main_quit;
300     gtk_message_dialog_new_ptr gtk_message_dialog_new;
301     gtk_misc_get_type_ptr gtk_misc_get_type;
302     gtk_misc_set_alignment_ptr gtk_misc_set_alignment;
303     gtk_notebook_get_nth_page_ptr gtk_notebook_get_nth_page;
304     gtk_notebook_get_type_ptr gtk_notebook_get_type;
305     gtk_notebook_new_ptr gtk_notebook_new;
306     gtk_notebook_set_current_page_ptr gtk_notebook_set_current_page;
307     gtk_notebook_set_tab_label_ptr gtk_notebook_set_tab_label;
308     gtk_object_get_type_ptr gtk_object_get_type;
309     gtk_scrolled_window_get_type_ptr gtk_scrolled_window_get_type;
310     gtk_scrolled_window_new_ptr gtk_scrolled_window_new;
311     gtk_scrolled_window_set_policy_ptr gtk_scrolled_window_set_policy;
312     gtk_scrolled_window_set_shadow_type_ptr gtk_scrolled_window_set_shadow_type;
313     gtk_table_get_type_ptr gtk_table_get_type;
314     gtk_table_new_ptr gtk_table_new;
315     gtk_table_attach_ptr gtk_table_attach;
316     gtk_text_buffer_backspace_ptr gtk_text_buffer_backspace;
317     gtk_text_buffer_create_mark_ptr gtk_text_buffer_create_mark;
318     gtk_text_buffer_delete_mark_ptr gtk_text_buffer_delete_mark;
319     gtk_text_buffer_get_end_iter_ptr gtk_text_buffer_get_end_iter;
320     gtk_text_buffer_insert_ptr gtk_text_buffer_insert;
321     // FIXME: should I put a #if !GTK_CHECK_VERSION(2,6,0)
322     // around these three, or should I not care?
323     gtk_text_iter_backward_cursor_position_ptr gtk_text_iter_backward_cursor_position;
324     gtk_text_iter_equal_ptr gtk_text_iter_equal;
325     gtk_text_buffer_delete_interactive_ptr gtk_text_buffer_delete_interactive;
326     //
327     gtk_text_view_get_buffer_ptr gtk_text_view_get_buffer;
328     gtk_text_view_get_type_ptr gtk_text_view_get_type;
329     gtk_text_view_new_ptr gtk_text_view_new;
330     gtk_text_view_scroll_to_mark_ptr gtk_text_view_scroll_to_mark;
331     gtk_text_view_set_cursor_visible_ptr gtk_text_view_set_cursor_visible;
332     gtk_text_view_set_editable_ptr gtk_text_view_set_editable;
333     gtk_text_view_set_left_margin_ptr gtk_text_view_set_left_margin;
334     gtk_text_view_set_right_margin_ptr gtk_text_view_set_right_margin;
335     gtk_text_view_set_wrap_mode_ptr gtk_text_view_set_wrap_mode;
336     gtk_toggle_button_get_active_ptr gtk_toggle_button_get_active;
337     gtk_toggle_button_get_type_ptr gtk_toggle_button_get_type;
338     gtk_toggle_button_set_active_ptr gtk_toggle_button_set_active;
339     gtk_tree_model_get_ptr gtk_tree_model_get;
340     gtk_tree_model_get_iter_ptr gtk_tree_model_get_iter;
341     gtk_tree_model_get_path_ptr gtk_tree_model_get_path;
342     gtk_tree_model_get_type_ptr gtk_tree_model_get_type;
343     gtk_tree_path_get_indices_ptr gtk_tree_path_get_indices;
344     gtk_tree_path_new_from_indices_ptr gtk_tree_path_new_from_indices;
345     gtk_tree_selection_get_selected_ptr gtk_tree_selection_get_selected;
346     gtk_tree_selection_select_iter_ptr gtk_tree_selection_select_iter;
347     gtk_tree_selection_set_mode_ptr gtk_tree_selection_set_mode;
348     gtk_tree_sortable_get_type_ptr gtk_tree_sortable_get_type;
349     gtk_tree_sortable_set_sort_column_id_ptr gtk_tree_sortable_set_sort_column_id;
350     gtk_tree_sortable_set_sort_func_ptr gtk_tree_sortable_set_sort_func;
351     gtk_tree_view_append_column_ptr gtk_tree_view_append_column;
352     gtk_tree_view_column_new_with_attributes_ptr gtk_tree_view_column_new_with_attributes;
353     gtk_tree_view_column_set_expand_ptr gtk_tree_view_column_set_expand;
354     gtk_tree_view_column_set_min_width_ptr gtk_tree_view_column_set_min_width;
355     gtk_tree_view_get_model_ptr gtk_tree_view_get_model;
356     gtk_tree_view_get_selection_ptr gtk_tree_view_get_selection;
357     gtk_tree_view_get_type_ptr gtk_tree_view_get_type;
358     gtk_tree_view_new_with_model_ptr gtk_tree_view_new_with_model;
359     gtk_tree_view_set_enable_search_ptr gtk_tree_view_set_enable_search;
360     gtk_tree_view_set_headers_visible_ptr gtk_tree_view_set_headers_visible;
361     gtk_vbox_new_ptr gtk_vbox_new;
362     gtk_widget_add_accelerator_ptr gtk_widget_add_accelerator;
363     gtk_widget_destroy_ptr gtk_widget_destroy;
364     gtk_widget_ref_ptr gtk_widget_ref;
365     gtk_widget_set_sensitive_ptr gtk_widget_set_sensitive;
366     gtk_widget_set_size_request_ptr gtk_widget_set_size_request;
367     gtk_widget_show_all_ptr gtk_widget_show_all;
368     gtk_widget_unref_ptr gtk_widget_unref;
369     gtk_window_add_accel_group_ptr gtk_window_add_accel_group;
370     gtk_window_get_type_ptr gtk_window_get_type;
371     gtk_window_new_ptr gtk_window_new;
372     gtk_window_set_default_icon_ptr gtk_window_set_default_icon;
373     gtk_window_set_position_ptr gtk_window_set_position;
374     gtk_window_set_resizable_ptr gtk_window_set_resizable;
375     gtk_window_set_title_ptr gtk_window_set_title;
376     gtk_window_set_type_hint_ptr gtk_window_set_type_hint;
377     gtk_window_set_default_ptr gtk_window_set_default;
378     g_utf8_collate_ptr g_utf8_collate;
379 };
380 extern struct _dynamicgtksyms dynamicgtksyms;
381 
382 
383 int32_t dynamicgtk_init(void);
384 void dynamicgtk_uninit(void);
385 
386 #ifndef dynamicgtkfoo__
387 
388 // glib.h
389 #define g_free dynamicgtksyms.g_free
390 
391 // gobject.h
392 #define g_object_get_data dynamicgtksyms.g_object_get_data
393 #define g_object_set_data dynamicgtksyms.g_object_set_data
394 #define g_object_set_data_full dynamicgtksyms.g_object_set_data_full
395 #define g_object_unref dynamicgtksyms.g_object_unref
396 
397 // gsignal.h
398 #define g_signal_connect_data dynamicgtksyms.g_signal_connect_data
399 #define g_signal_handlers_block_matched dynamicgtksyms.g_signal_handlers_block_matched
400 #define g_signal_handlers_unblock_matched dynamicgtksyms.g_signal_handlers_unblock_matched
401 
402 // gtype.h
403 #define g_type_check_instance_cast dynamicgtksyms.g_type_check_instance_cast
404 
405 // gdk-pixdata.h
406 #define gdk_pixbuf_from_pixdata dynamicgtksyms.gdk_pixbuf_from_pixdata
407 
408 // gdk-pixbuf-core.h
409 #define gdk_pixbuf_new_from_data dynamicgtksyms.gdk_pixbuf_new_from_data
410 
411 // gtkaccelgroup.h
412 #define gtk_accel_group_new dynamicgtksyms.gtk_accel_group_new
413 
414 // gtkalignment.h
415 #define gtk_alignment_new dynamicgtksyms.gtk_alignment_new
416 
417 // gtkbox.h
418 #define gtk_box_get_type dynamicgtksyms.gtk_box_get_type
419 #define gtk_box_pack_start dynamicgtksyms.gtk_box_pack_start
420 
421 // gtkbbox.h
422 #define gtk_button_box_get_type dynamicgtksyms.gtk_button_box_get_type
423 #define gtk_button_box_set_layout dynamicgtksyms.gtk_button_box_set_layout
424 
425 // gtkbutton.h
426 #define gtk_button_new dynamicgtksyms.gtk_button_new
427 
428 // gtkcelllayout.h
429 #define gtk_cell_layout_get_type dynamicgtksyms.gtk_cell_layout_get_type
430 #define gtk_cell_layout_pack_start dynamicgtksyms.gtk_cell_layout_pack_start
431 #define gtk_cell_layout_set_attributes dynamicgtksyms.gtk_cell_layout_set_attributes
432 
433 // gtkcellrenderertext.h
434 #define gtk_cell_renderer_text_new dynamicgtksyms.gtk_cell_renderer_text_new
435 
436 // gtkcheckbutton.h
437 #define gtk_check_button_new_with_mnemonic dynamicgtksyms.gtk_check_button_new_with_mnemonic
438 
439 // gtkcombobox.h
440 #define gtk_combo_box_get_active dynamicgtksyms.gtk_combo_box_get_active
441 #define gtk_combo_box_get_active_iter dynamicgtksyms.gtk_combo_box_get_active_iter
442 #define gtk_combo_box_get_active_text dynamicgtksyms.gtk_combo_box_get_active_text
443 #define gtk_combo_box_get_model dynamicgtksyms.gtk_combo_box_get_model
444 #define gtk_combo_box_get_type dynamicgtksyms.gtk_combo_box_get_type
445 #define gtk_combo_box_new_text dynamicgtksyms.gtk_combo_box_new_text
446 #define gtk_combo_box_new_with_model dynamicgtksyms.gtk_combo_box_new_with_model
447 #define gtk_combo_box_set_active dynamicgtksyms.gtk_combo_box_set_active
448 #define gtk_combo_box_set_active_iter dynamicgtksyms.gtk_combo_box_set_active_iter
449 
450 // gtkcontainer.h
451 #define gtk_container_add dynamicgtksyms.gtk_container_add
452 #define gtk_container_foreach dynamicgtksyms.gtk_container_foreach
453 #define gtk_container_get_type dynamicgtksyms.gtk_container_get_type
454 #define gtk_container_set_border_width dynamicgtksyms.gtk_container_set_border_width
455 
456 // gtkdialog.h
457 #define gtk_dialog_get_type dynamicgtksyms.gtk_dialog_get_type
458 #define gtk_dialog_run dynamicgtksyms.gtk_dialog_run
459 
460 // gtkhbox.h
461 #define gtk_hbox_new dynamicgtksyms.gtk_hbox_new
462 
463 // gtkhbbox.h
464 #define gtk_hbutton_box_new dynamicgtksyms.gtk_hbutton_box_new
465 
466 // gtkimage.h
467 #define gtk_image_new_from_pixbuf dynamicgtksyms.gtk_image_new_from_pixbuf
468 #define gtk_image_new_from_stock dynamicgtksyms.gtk_image_new_from_stock
469 
470 // gtkmain.h
471 #define gtk_init_check dynamicgtksyms.gtk_init_check
472 
473 // gtklabel.h
474 #define gtk_label_get_type dynamicgtksyms.gtk_label_get_type
475 #define gtk_label_new dynamicgtksyms.gtk_label_new
476 #define gtk_label_new_with_mnemonic dynamicgtksyms.gtk_label_new_with_mnemonic
477 #define gtk_label_set_mnemonic_widget dynamicgtksyms.gtk_label_set_mnemonic_widget
478 
479 // gtkliststore.h
480 #define gtk_list_store_append dynamicgtksyms.gtk_list_store_append
481 #define gtk_list_store_clear dynamicgtksyms.gtk_list_store_clear
482 #define gtk_list_store_get_type dynamicgtksyms.gtk_list_store_get_type
483 #define gtk_list_store_new dynamicgtksyms.gtk_list_store_new
484 #define gtk_list_store_set dynamicgtksyms.gtk_list_store_set
485 
486 // gtkmain.h
487 #define gtk_events_pending dynamicgtksyms.gtk_events_pending
488 #define gtk_main dynamicgtksyms.gtk_main
489 #define gtk_main_iteration_do dynamicgtksyms.gtk_main_iteration_do
490 #define gtk_main_quit dynamicgtksyms.gtk_main_quit
491 
492 // gtkmessagedialog.h
493 #define gtk_message_dialog_new dynamicgtksyms.gtk_message_dialog_new
494 
495 // gtkmisc.h
496 #define gtk_misc_get_type dynamicgtksyms.gtk_misc_get_type
497 #define gtk_misc_set_alignment dynamicgtksyms.gtk_misc_set_alignment
498 
499 // gtknotebook.h
500 #define gtk_notebook_get_nth_page dynamicgtksyms.gtk_notebook_get_nth_page
501 #define gtk_notebook_get_type dynamicgtksyms.gtk_notebook_get_type
502 #define gtk_notebook_new dynamicgtksyms.gtk_notebook_new
503 #define gtk_notebook_set_current_page dynamicgtksyms.gtk_notebook_set_current_page
504 #define gtk_notebook_set_tab_label dynamicgtksyms.gtk_notebook_set_tab_label
505 
506 // gtkobject.h
507 #define gtk_object_get_type dynamicgtksyms.gtk_object_get_type
508 
509 // gtkscrolledwindow.h
510 #define gtk_scrolled_window_get_type dynamicgtksyms.gtk_scrolled_window_get_type
511 #define gtk_scrolled_window_new dynamicgtksyms.gtk_scrolled_window_new
512 #define gtk_scrolled_window_set_policy dynamicgtksyms.gtk_scrolled_window_set_policy
513 #define gtk_scrolled_window_set_shadow_type dynamicgtksyms.gtk_scrolled_window_set_shadow_type
514 
515 // gtktable.h
516 #define gtk_table_get_type dynamicgtksyms.gtk_table_get_type
517 #define gtk_table_new dynamicgtksyms.gtk_table_new
518 #define gtk_table_attach dynamicgtksyms.gtk_table_attach
519 
520 // gtktextbuffer.h
521 #define gtk_text_buffer_backspace dynamicgtksyms.gtk_text_buffer_backspace
522 #define gtk_text_buffer_create_mark dynamicgtksyms.gtk_text_buffer_create_mark
523 #define gtk_text_buffer_delete_mark dynamicgtksyms.gtk_text_buffer_delete_mark
524 #define gtk_text_buffer_get_end_iter dynamicgtksyms.gtk_text_buffer_get_end_iter
525 #define gtk_text_buffer_insert dynamicgtksyms.gtk_text_buffer_insert
526 
527 // gtktextiter.h
528 #define gtk_text_iter_backward_cursor_position dynamicgtksyms.gtk_text_iter_backward_cursor_position
529 #define gtk_text_iter_equal dynamicgtksyms.gtk_text_iter_equal
530 #define gtk_text_buffer_delete_interactive dynamicgtksyms.gtk_text_buffer_delete_interactive
531 
532 // gtktextview.h
533 #define gtk_text_view_get_buffer dynamicgtksyms.gtk_text_view_get_buffer
534 #define gtk_text_view_get_type dynamicgtksyms.gtk_text_view_get_type
535 #define gtk_text_view_new dynamicgtksyms.gtk_text_view_new
536 #define gtk_text_view_scroll_to_mark dynamicgtksyms.gtk_text_view_scroll_to_mark
537 #define gtk_text_view_set_cursor_visible dynamicgtksyms.gtk_text_view_set_cursor_visible
538 #define gtk_text_view_set_editable dynamicgtksyms.gtk_text_view_set_editable
539 #define gtk_text_view_set_left_margin dynamicgtksyms.gtk_text_view_set_left_margin
540 #define gtk_text_view_set_right_margin dynamicgtksyms.gtk_text_view_set_right_margin
541 #define gtk_text_view_set_wrap_mode dynamicgtksyms.gtk_text_view_set_wrap_mode
542 
543 // gtktogglebutton.h
544 #define gtk_toggle_button_get_active dynamicgtksyms.gtk_toggle_button_get_active
545 #define gtk_toggle_button_get_type dynamicgtksyms.gtk_toggle_button_get_type
546 #define gtk_toggle_button_set_active dynamicgtksyms.gtk_toggle_button_set_active
547 
548 // gtktreemodel.h
549 #define gtk_tree_model_get dynamicgtksyms.gtk_tree_model_get
550 #define gtk_tree_model_get_iter dynamicgtksyms.gtk_tree_model_get_iter
551 #define gtk_tree_model_get_path dynamicgtksyms.gtk_tree_model_get_path
552 #define gtk_tree_model_get_type dynamicgtksyms.gtk_tree_model_get_type
553 #define gtk_tree_path_get_indices dynamicgtksyms.gtk_tree_path_get_indices
554 #define gtk_tree_path_new_from_indices dynamicgtksyms.gtk_tree_path_new_from_indices
555 
556 // gtktreeselection.h
557 #define gtk_tree_selection_get_selected dynamicgtksyms.gtk_tree_selection_get_selected
558 #define gtk_tree_selection_select_iter dynamicgtksyms.gtk_tree_selection_select_iter
559 #define gtk_tree_selection_set_mode dynamicgtksyms.gtk_tree_selection_set_mode
560 
561 // gtktreesortable.h
562 #define gtk_tree_sortable_get_type dynamicgtksyms.gtk_tree_sortable_get_type
563 #define gtk_tree_sortable_set_sort_column_id dynamicgtksyms.gtk_tree_sortable_set_sort_column_id
564 #define gtk_tree_sortable_set_sort_func dynamicgtksyms.gtk_tree_sortable_set_sort_func
565 
566 // gtktreeview.h
567 #define gtk_tree_view_append_column dynamicgtksyms.gtk_tree_view_append_column
568 #define gtk_tree_view_get_model dynamicgtksyms.gtk_tree_view_get_model
569 #define gtk_tree_view_get_selection dynamicgtksyms.gtk_tree_view_get_selection
570 #define gtk_tree_view_get_type dynamicgtksyms.gtk_tree_view_get_type
571 #define gtk_tree_view_new_with_model dynamicgtksyms.gtk_tree_view_new_with_model
572 #define gtk_tree_view_set_enable_search dynamicgtksyms.gtk_tree_view_set_enable_search
573 #define gtk_tree_view_set_headers_visible dynamicgtksyms.gtk_tree_view_set_headers_visible
574 
575 // gtktreeviewcolumn.h
576 #define gtk_tree_view_column_new_with_attributes dynamicgtksyms.gtk_tree_view_column_new_with_attributes
577 #define gtk_tree_view_column_set_expand dynamicgtksyms.gtk_tree_view_column_set_expand
578 #define gtk_tree_view_column_set_min_width dynamicgtksyms.gtk_tree_view_column_set_min_width
579 
580 
581 // gtkvbox.h
582 #define gtk_vbox_new dynamicgtksyms.gtk_vbox_new
583 
584 // gtkwidget.h
585 #define gtk_widget_add_accelerator dynamicgtksyms.gtk_widget_add_accelerator
586 #define gtk_widget_destroy dynamicgtksyms.gtk_widget_destroy
587 #define gtk_widget_ref dynamicgtksyms.gtk_widget_ref
588 #define gtk_widget_set_sensitive dynamicgtksyms.gtk_widget_set_sensitive
589 #define gtk_widget_set_size_request dynamicgtksyms.gtk_widget_set_size_request
590 #define gtk_widget_show_all dynamicgtksyms.gtk_widget_show_all
591 #define gtk_widget_unref dynamicgtksyms.gtk_widget_unref
592 
593 // gtkwindow.h
594 #define gtk_window_add_accel_group dynamicgtksyms.gtk_window_add_accel_group
595 #define gtk_window_get_type dynamicgtksyms.gtk_window_get_type
596 #define gtk_window_new dynamicgtksyms.gtk_window_new
597 #define gtk_window_set_default_icon dynamicgtksyms.gtk_window_set_default_icon
598 #define gtk_window_set_position dynamicgtksyms.gtk_window_set_position
599 #define gtk_window_set_resizable dynamicgtksyms.gtk_window_set_resizable
600 #define gtk_window_set_title dynamicgtksyms.gtk_window_set_title
601 #define gtk_window_set_type_hint dynamicgtksyms.gtk_window_set_type_hint
602 #define gtk_window_set_default dynamicgtksyms.gtk_window_set_default
603 
604 // gunicode.h
605 #define g_utf8_collate dynamicgtksyms.g_utf8_collate
606 
607 #endif	/* __dynamicgtkfoo__ */
608 
609 #endif	/* dynamicgtk_h_ */
610