changeset 11:5f725d09c076

Added dynamic loader from gtkd with cleanup and modifications. Tango only support. No OS.d tie-in yet.
author John Reimer<terminal.node@gmail.com>
date Sat, 05 Jan 2008 15:13:44 -0800
parents 63c023465156
children 0c78fa47d476 758bbbe4b86a
files dwt/internal/gtk/c/atk.d dwt/internal/gtk/c/atktypes.d dwt/internal/gtk/c/cairo.d dwt/internal/gtk/c/cairotypes.d dwt/internal/gtk/c/gdk.d dwt/internal/gtk/c/gdkpixbuf.d dwt/internal/gtk/c/gdkpixbuftypes.d dwt/internal/gtk/c/gdktypes.d dwt/internal/gtk/c/glib.d dwt/internal/gtk/c/glibtypes.d dwt/internal/gtk/c/gobject.d dwt/internal/gtk/c/gobjecttypes.d dwt/internal/gtk/c/gthread.d dwt/internal/gtk/c/gthreadtypes.d dwt/internal/gtk/c/gtk.d dwt/internal/gtk/c/gtktypes.d dwt/internal/gtk/c/pango.d dwt/internal/gtk/c/pangotypes.d dwt/internal/gtk/runtime/Loader.d
diffstat 19 files changed, 34457 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/gtk/c/atk.d	Sat Jan 05 15:13:44 2008 -0800
@@ -0,0 +1,529 @@
+/******************************************************************************
+
+    This file is part of gtkD.
+
+    gtkD is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation; either version 2.1 of the License, or
+    (at your option) any later version.
+ 
+    gtkD is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with gtkD; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+******************************************************************************/
+
+module dwt.internal.gtk.c.atk;
+
+private import dwt.internal.gtk.c.atktypes;
+private import dwt.internal.gtk.runtime.Loader;
+
+/******************************************************************************
+
+******************************************************************************/
+
+private Linker atkLinker;
+
+/******************************************************************************
+
+******************************************************************************/
+
+static this()
+{
+    atkLinker = new Linker( getLibraryPath ~ importLibs[LIBRARY.ATK] );
+    atkLinker.link( atkLinks );
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+static ~this()
+{
+    delete atkLinker;
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+extern(C) 
+{	
+	// atk.Action
+	
+	gboolean function(AtkAction* action, gint i)atk_action_do_action;
+	gint function(AtkAction* action)atk_action_get_n_actions;
+	gchar* function(AtkAction* action, gint i)atk_action_get_description;
+	gchar* function(AtkAction* action, gint i)atk_action_get_name;
+	gchar* function(AtkAction* action, gint i)atk_action_get_localized_name;
+	gchar* function(AtkAction* action, gint i)atk_action_get_keybinding;
+	gboolean function(AtkAction* action, gint i, gchar* desc)atk_action_set_description;
+	
+	// atk.Component
+	
+	guint function(AtkComponent* component, AtkFocusHandler handler)atk_component_add_focus_handler;
+	gboolean function(AtkComponent* component, gint x, gint y, AtkCoordType coordType)atk_component_contains;
+	void function(AtkComponent* component, gint* x, gint* y, gint* width, gint* height, AtkCoordType coordType)atk_component_get_extents;
+	AtkLayer function(AtkComponent* component)atk_component_get_layer;
+	gint function(AtkComponent* component)atk_component_get_mdi_zorder;
+	void function(AtkComponent* component, gint* x, gint* y, AtkCoordType coordType)atk_component_get_position;
+	void function(AtkComponent* component, gint* width, gint* height)atk_component_get_size;
+	gboolean function(AtkComponent* component)atk_component_grab_focus;
+	AtkObject* function(AtkComponent* component, gint x, gint y, AtkCoordType coordType)atk_component_ref_accessible_at_point;
+	void function(AtkComponent* component, guint handlerId)atk_component_remove_focus_handler;
+	gboolean function(AtkComponent* component, gint x, gint y, gint width, gint height, AtkCoordType coordType)atk_component_set_extents;
+	gboolean function(AtkComponent* component, gint x, gint y, AtkCoordType coordType)atk_component_set_position;
+	gboolean function(AtkComponent* component, gint width, gint height)atk_component_set_size;
+	gdouble function(AtkComponent* component)atk_component_get_alpha;
+	
+	// atk.Document
+	
+	gchar* function(AtkDocument* document)atk_document_get_document_type;
+	gpointer function(AtkDocument* document)atk_document_get_document;
+	gchar* function(AtkDocument* document, gchar* attributeName)atk_document_get_attribute_value;
+	gboolean function(AtkDocument* document, gchar* attributeName, gchar* attributeValue)atk_document_set_attribute_value;
+	AtkAttributeSet* function(AtkDocument* document)atk_document_get_attributes;
+	gchar* function(AtkDocument* document)atk_document_get_locale;
+	
+	// atk.EditableText
+	
+	gboolean function(AtkEditableText* text, AtkAttributeSet* attribSet, gint startOffset, gint endOffset)atk_editable_text_set_run_attributes;
+	void function(AtkEditableText* text, gchar* string)atk_editable_text_set_text_contents;
+	void function(AtkEditableText* text, gchar* string, gint length, gint* position)atk_editable_text_insert_text;
+	void function(AtkEditableText* text, gint startPos, gint endPos)atk_editable_text_copy_text;
+	void function(AtkEditableText* text, gint startPos, gint endPos)atk_editable_text_cut_text;
+	void function(AtkEditableText* text, gint startPos, gint endPos)atk_editable_text_delete_text;
+	void function(AtkEditableText* text, gint position)atk_editable_text_paste_text;
+	
+	// atk.GObjectAccessible
+	
+	AtkObject* function(GObject* obj)atk_gobject_accessible_for_object;
+	GObject* function(AtkGObjectAccessible* obj)atk_gobject_accessible_get_object;
+	
+	// atk.Hyperlink
+	
+	gchar* function(AtkHyperlink* link, gint i)atk_hyperlink_get_uri;
+	AtkObject* function(AtkHyperlink* link, gint i)atk_hyperlink_get_object;
+	gint function(AtkHyperlink* link)atk_hyperlink_get_end_index;
+	gint function(AtkHyperlink* link)atk_hyperlink_get_start_index;
+	gboolean function(AtkHyperlink* link)atk_hyperlink_is_valid;
+	gboolean function(AtkHyperlink* link)atk_hyperlink_is_inline;
+	gint function(AtkHyperlink* link)atk_hyperlink_get_n_anchors;
+	gboolean function(AtkHyperlink* link)atk_hyperlink_is_selected_link;
+	
+	// atk.Hypertext
+	
+	AtkHyperlink* function(AtkHypertext* hypertext, gint linkIndex)atk_hypertext_get_link;
+	gint function(AtkHypertext* hypertext)atk_hypertext_get_n_links;
+	gint function(AtkHypertext* hypertext, gint charIndex)atk_hypertext_get_link_index;
+	
+	// atk.Image
+	
+	void function(AtkImage* image, gint* x, gint* y, AtkCoordType coordType)atk_image_get_image_position;
+	gchar* function(AtkImage* image)atk_image_get_image_description;
+	gboolean function(AtkImage* image, gchar* description)atk_image_set_image_description;
+	void function(AtkImage* image, gint* width, gint* height)atk_image_get_image_size;
+	gchar* function(AtkImage* image)atk_image_get_image_locale;
+	
+	// atk.NoOpObject
+	
+	AtkObject* function(GObject* obj)atk_no_op_object_new;
+	
+	// atk.NoOpObjectFactory
+	
+	AtkObjectFactory* function()atk_no_op_object_factory_new;
+	
+	// atk.ObjectAtk
+	
+	AtkRole function(gchar* name)atk_role_register;
+	AtkObject* function(AtkImplementor* implementor)atk_implementor_ref_accessible;
+	gchar* function(AtkObject* accessible)atk_object_get_name;
+	gchar* function(AtkObject* accessible)atk_object_get_description;
+	AtkObject* function(AtkObject* accessible)atk_object_get_parent;
+	gint function(AtkObject* accessible)atk_object_get_n_accessible_children;
+	AtkObject* function(AtkObject* accessible, gint i)atk_object_ref_accessible_child;
+	AtkRelationSet* function(AtkObject* accessible)atk_object_ref_relation_set;
+	AtkLayer function(AtkObject* accessible)atk_object_get_layer;
+	gint function(AtkObject* accessible)atk_object_get_mdi_zorder;
+	AtkRole function(AtkObject* accessible)atk_object_get_role;
+	AtkStateSet* function(AtkObject* accessible)atk_object_ref_state_set;
+	gint function(AtkObject* accessible)atk_object_get_index_in_parent;
+	void function(AtkObject* accessible, gchar* name)atk_object_set_name;
+	void function(AtkObject* accessible, gchar* description)atk_object_set_description;
+	void function(AtkObject* accessible, AtkObject* parent)atk_object_set_parent;
+	void function(AtkObject* accessible, AtkRole role)atk_object_set_role;
+	guint function(AtkObject* accessible, AtkPropertyChangeHandler* handler)atk_object_connect_property_change_handler;
+	void function(AtkObject* accessible, guint handlerId)atk_object_remove_property_change_handler;
+	void function(AtkObject* accessible, AtkState state, gboolean value)atk_object_notify_state_change;
+	void function(AtkObject* accessible, gpointer data)atk_object_initialize;
+	gboolean function(AtkObject* object, AtkRelationType relationship, AtkObject* target)atk_object_add_relationship;
+	gboolean function(AtkObject* object, AtkRelationType relationship, AtkObject* target)atk_object_remove_relationship;
+	AtkAttributeSet* function(AtkObject* accessible)atk_object_get_attributes;
+	gchar* function(AtkRole role)atk_role_get_name;
+	gchar* function(AtkRole role)atk_role_get_localized_name;
+	AtkRole function(gchar* name)atk_role_for_name;
+	
+	// atk.ObjectFactory
+	
+	AtkObject* function(AtkObjectFactory* factory, GObject* obj)atk_object_factory_create_accessible;
+	GType function(AtkObjectFactory* factory)atk_object_factory_get_accessible_type;
+	void function(AtkObjectFactory* factory)atk_object_factory_invalidate;
+	
+	// atk.Registry
+	
+	void function(AtkRegistry* registry, GType type, GType factoryType)atk_registry_set_factory_type;
+	GType function(AtkRegistry* registry, GType type)atk_registry_get_factory_type;
+	AtkObjectFactory* function(AtkRegistry* registry, GType type)atk_registry_get_factory;
+	AtkRegistry* function()atk_get_default_registry;
+	
+	// atk.Relation
+	
+	AtkRelationType function(gchar* name)atk_relation_type_register;
+	gchar* function(AtkRelationType type)atk_relation_type_get_name;
+	AtkRelationType function(gchar* name)atk_relation_type_for_name;
+	AtkRelation* function(AtkObject** targets, gint nTargets, AtkRelationType relationship)atk_relation_new;
+	AtkRelationType function(AtkRelation* relation)atk_relation_get_relation_type;
+	GPtrArray* function(AtkRelation* relation)atk_relation_get_target;
+	void function(AtkRelation* relation, AtkObject* target)atk_relation_add_target;
+	
+	// atk.RelationSet
+	
+	AtkRelationSet* function()atk_relation_set_new;
+	gboolean function(AtkRelationSet* set, AtkRelationType relationship)atk_relation_set_contains;
+	void function(AtkRelationSet* set, AtkRelation* relation)atk_relation_set_remove;
+	void function(AtkRelationSet* set, AtkRelation* relation)atk_relation_set_add;
+	gint function(AtkRelationSet* set)atk_relation_set_get_n_relations;
+	AtkRelation* function(AtkRelationSet* set, gint i)atk_relation_set_get_relation;
+	AtkRelation* function(AtkRelationSet* set, AtkRelationType relationship)atk_relation_set_get_relation_by_type;
+	void function(AtkRelationSet* set, AtkRelationType relationship, AtkObject* target)atk_relation_set_add_relation_by_type;
+	
+	// atk.Selection
+	
+	gboolean function(AtkSelection* selection, gint i)atk_selection_add_selection;
+	gboolean function(AtkSelection* selection)atk_selection_clear_selection;
+	AtkObject* function(AtkSelection* selection, gint i)atk_selection_ref_selection;
+	gint function(AtkSelection* selection)atk_selection_get_selection_count;
+	gboolean function(AtkSelection* selection, gint i)atk_selection_is_child_selected;
+	gboolean function(AtkSelection* selection, gint i)atk_selection_remove_selection;
+	gboolean function(AtkSelection* selection)atk_selection_select_all_selection;
+	
+	// atk.State
+	
+	AtkStateType function(gchar* name)atk_state_type_register;
+	gchar* function(AtkStateType type)atk_state_type_get_name;
+	AtkStateType function(gchar* name)atk_state_type_for_name;
+	
+	// atk.StateSet
+	
+	AtkStateSet* function()atk_state_set_new;
+	gboolean function(AtkStateSet* set)atk_state_set_is_empty;
+	gboolean function(AtkStateSet* set, AtkStateType type)atk_state_set_add_state;
+	void function(AtkStateSet* set, AtkStateType* types, gint nTypes)atk_state_set_add_states;
+	void function(AtkStateSet* set)atk_state_set_clear_states;
+	gboolean function(AtkStateSet* set, AtkStateType type)atk_state_set_contains_state;
+	gboolean function(AtkStateSet* set, AtkStateType* types, gint nTypes)atk_state_set_contains_states;
+	gboolean function(AtkStateSet* set, AtkStateType type)atk_state_set_remove_state;
+	AtkStateSet* function(AtkStateSet* set, AtkStateSet* compareSet)atk_state_set_and_sets;
+	AtkStateSet* function(AtkStateSet* set, AtkStateSet* compareSet)atk_state_set_or_sets;
+	AtkStateSet* function(AtkStateSet* set, AtkStateSet* compareSet)atk_state_set_xor_sets;
+	
+	// atk.StreamableContent
+	
+	gint function(AtkStreamableContent* streamable)atk_streamable_content_get_n_mime_types;
+	gchar* function(AtkStreamableContent* streamable, gint i)atk_streamable_content_get_mime_type;
+	GIOChannel* function(AtkStreamableContent* streamable, gchar* mimeType)atk_streamable_content_get_stream;
+	gchar* function(AtkStreamableContent* streamable, gchar* mimeType)atk_streamable_content_get_uri;
+	
+	// atk.Table
+	
+	AtkObject* function(AtkTable* table, gint row, gint column)atk_table_ref_at;
+	gint function(AtkTable* table, gint row, gint column)atk_table_get_index_at;
+	gint function(AtkTable* table, gint index)atk_table_get_column_at_index;
+	gint function(AtkTable* table, gint index)atk_table_get_row_at_index;
+	gint function(AtkTable* table)atk_table_get_n_columns;
+	gint function(AtkTable* table)atk_table_get_n_rows;
+	gint function(AtkTable* table, gint row, gint column)atk_table_get_column_extent_at;
+	gint function(AtkTable* table, gint row, gint column)atk_table_get_row_extent_at;
+	AtkObject* function(AtkTable* table)atk_table_get_caption;
+	gchar* function(AtkTable* table, gint column)atk_table_get_column_description;
+	gchar* function(AtkTable* table, gint row)atk_table_get_row_description;
+	AtkObject* function(AtkTable* table, gint column)atk_table_get_column_header;
+	AtkObject* function(AtkTable* table, gint row)atk_table_get_row_header;
+	AtkObject* function(AtkTable* table)atk_table_get_summary;
+	void function(AtkTable* table, AtkObject* caption)atk_table_set_caption;
+	void function(AtkTable* table, gint row, gchar* description)atk_table_set_row_description;
+	void function(AtkTable* table, gint column, gchar* description)atk_table_set_column_description;
+	void function(AtkTable* table, gint row, AtkObject* header)atk_table_set_row_header;
+	void function(AtkTable* table, gint column, AtkObject* header)atk_table_set_column_header;
+	void function(AtkTable* table, AtkObject* accessible)atk_table_set_summary;
+	gint function(AtkTable* table, gint** selected)atk_table_get_selected_columns;
+	gint function(AtkTable* table, gint** selected)atk_table_get_selected_rows;
+	gboolean function(AtkTable* table, gint column)atk_table_is_column_selected;
+	gboolean function(AtkTable* table, gint row)atk_table_is_row_selected;
+	gboolean function(AtkTable* table, gint row, gint column)atk_table_is_selected;
+	gboolean function(AtkTable* table, gint column)atk_table_add_column_selection;
+	gboolean function(AtkTable* table, gint row)atk_table_add_row_selection;
+	gboolean function(AtkTable* table, gint column)atk_table_remove_column_selection;
+	gboolean function(AtkTable* table, gint row)atk_table_remove_row_selection;
+	
+	// atk.Text
+	
+	gchar* function(AtkText* text, gint startOffset, gint endOffset)atk_text_get_text;
+	gunichar function(AtkText* text, gint offset)atk_text_get_character_at_offset;
+	gchar* function(AtkText* text, gint offset, AtkTextBoundary boundaryType, gint* startOffset, gint* endOffset)atk_text_get_text_after_offset;
+	gchar* function(AtkText* text, gint offset, AtkTextBoundary boundaryType, gint* startOffset, gint* endOffset)atk_text_get_text_at_offset;
+	gchar* function(AtkText* text, gint offset, AtkTextBoundary boundaryType, gint* startOffset, gint* endOffset)atk_text_get_text_before_offset;
+	gint function(AtkText* text)atk_text_get_caret_offset;
+	void function(AtkText* text, gint offset, gint* x, gint* y, gint* width, gint* height, AtkCoordType coords)atk_text_get_character_extents;
+	AtkAttributeSet* function(AtkText* text, gint offset, gint* startOffset, gint* endOffset)atk_text_get_run_attributes;
+	AtkAttributeSet* function(AtkText* text)atk_text_get_default_attributes;
+	gint function(AtkText* text)atk_text_get_character_count;
+	gint function(AtkText* text, gint x, gint y, AtkCoordType coords)atk_text_get_offset_at_point;
+	AtkTextRange** function(AtkText* text, AtkTextRectangle* rect, AtkCoordType coordType, AtkTextClipType xClipType, AtkTextClipType yClipType)atk_text_get_bounded_ranges;
+	void function(AtkText* text, gint startOffset, gint endOffset, AtkCoordType coordType, AtkTextRectangle* rect)atk_text_get_range_extents;
+	void function(AtkTextRange** ranges)atk_text_free_ranges;
+	gint function(AtkText* text)atk_text_get_n_selections;
+	gchar* function(AtkText* text, gint selectionNum, gint* startOffset, gint* endOffset)atk_text_get_selection;
+	gboolean function(AtkText* text, gint startOffset, gint endOffset)atk_text_add_selection;
+	gboolean function(AtkText* text, gint selectionNum)atk_text_remove_selection;
+	gboolean function(AtkText* text, gint selectionNum, gint startOffset, gint endOffset)atk_text_set_selection;
+	gboolean function(AtkText* text, gint offset)atk_text_set_caret_offset;
+	void function(AtkAttributeSet* attribSet)atk_attribute_set_free;
+	AtkTextAttribute function(gchar* name)atk_text_attribute_register;
+	gchar* function(AtkTextAttribute attr)atk_text_attribute_get_name;
+	AtkTextAttribute function(gchar* name)atk_text_attribute_for_name;
+	gchar* function(AtkTextAttribute attr, gint index)atk_text_attribute_get_value;
+	
+	// atk.Util
+	
+	guint function(AtkEventListener focusTracker)atk_add_focus_tracker;
+	void function(guint trackerId)atk_remove_focus_tracker;
+	void function(AtkEventListenerInit init)atk_focus_tracker_init;
+	void function(AtkObject* object)atk_focus_tracker_notify;
+	guint function(GSignalEmissionHook listener, gchar* eventType)atk_add_global_event_listener;
+	void function(guint listenerId)atk_remove_global_event_listener;
+	guint function(AtkKeySnoopFunc listener, gpointer data)atk_add_key_event_listener;
+	void function(guint listenerId)atk_remove_key_event_listener;
+	AtkObject* function()atk_get_root;
+	AtkObject* function()atk_get_focus_object;
+	gchar* function()atk_get_toolkit_name;
+	gchar* function()atk_get_toolkit_version;
+	
+	// atk.ValueAtk
+	
+	void function(AtkValue* obj, GValue* value)atk_value_get_current_value;
+	void function(AtkValue* obj, GValue* value)atk_value_get_maximum_value;
+	void function(AtkValue* obj, GValue* value)atk_value_get_minimum_value;
+	gboolean function(AtkValue* obj, GValue* value)atk_value_set_current_value;
+	void function(AtkValue* obj, GValue* value)atk_value_get_minimum_increment;
+}
+
+Symbol[] atkLinks = 
+[
+
+	{ "atk_action_do_action",  cast(void**)& atk_action_do_action},
+	{ "atk_action_get_n_actions",  cast(void**)& atk_action_get_n_actions},
+	{ "atk_action_get_description",  cast(void**)& atk_action_get_description},
+	{ "atk_action_get_name",  cast(void**)& atk_action_get_name},
+	{ "atk_action_get_localized_name",  cast(void**)& atk_action_get_localized_name},
+	{ "atk_action_get_keybinding",  cast(void**)& atk_action_get_keybinding},
+	{ "atk_action_set_description",  cast(void**)& atk_action_set_description},
+	{ "atk_component_add_focus_handler",  cast(void**)& atk_component_add_focus_handler},
+	{ "atk_component_contains",  cast(void**)& atk_component_contains},
+	{ "atk_component_get_extents",  cast(void**)& atk_component_get_extents},
+	{ "atk_component_get_layer",  cast(void**)& atk_component_get_layer},
+	{ "atk_component_get_mdi_zorder",  cast(void**)& atk_component_get_mdi_zorder},
+	{ "atk_component_get_position",  cast(void**)& atk_component_get_position},
+	{ "atk_component_get_size",  cast(void**)& atk_component_get_size},
+	{ "atk_component_grab_focus",  cast(void**)& atk_component_grab_focus},
+	{ "atk_component_ref_accessible_at_point",  cast(void**)& atk_component_ref_accessible_at_point},
+	{ "atk_component_remove_focus_handler",  cast(void**)& atk_component_remove_focus_handler},
+	{ "atk_component_set_extents",  cast(void**)& atk_component_set_extents},
+	{ "atk_component_set_position",  cast(void**)& atk_component_set_position},
+	{ "atk_component_set_size",  cast(void**)& atk_component_set_size},
+	{ "atk_component_get_alpha",  cast(void**)& atk_component_get_alpha},
+	{ "atk_document_get_document_type",  cast(void**)& atk_document_get_document_type},
+	{ "atk_document_get_document",  cast(void**)& atk_document_get_document},
+	{ "atk_document_get_attribute_value",  cast(void**)& atk_document_get_attribute_value},
+	{ "atk_document_set_attribute_value",  cast(void**)& atk_document_set_attribute_value},
+	{ "atk_document_get_attributes",  cast(void**)& atk_document_get_attributes},
+	{ "atk_document_get_locale",  cast(void**)& atk_document_get_locale},
+	{ "atk_editable_text_set_run_attributes",  cast(void**)& atk_editable_text_set_run_attributes},
+	{ "atk_editable_text_set_text_contents",  cast(void**)& atk_editable_text_set_text_contents},
+	{ "atk_editable_text_insert_text",  cast(void**)& atk_editable_text_insert_text},
+	{ "atk_editable_text_copy_text",  cast(void**)& atk_editable_text_copy_text},
+	{ "atk_editable_text_cut_text",  cast(void**)& atk_editable_text_cut_text},
+	{ "atk_editable_text_delete_text",  cast(void**)& atk_editable_text_delete_text},
+	{ "atk_editable_text_paste_text",  cast(void**)& atk_editable_text_paste_text},
+	{ "atk_gobject_accessible_for_object",  cast(void**)& atk_gobject_accessible_for_object},
+	{ "atk_gobject_accessible_get_object",  cast(void**)& atk_gobject_accessible_get_object},
+	{ "atk_hyperlink_get_uri",  cast(void**)& atk_hyperlink_get_uri},
+	{ "atk_hyperlink_get_object",  cast(void**)& atk_hyperlink_get_object},
+	{ "atk_hyperlink_get_end_index",  cast(void**)& atk_hyperlink_get_end_index},
+	{ "atk_hyperlink_get_start_index",  cast(void**)& atk_hyperlink_get_start_index},
+	{ "atk_hyperlink_is_valid",  cast(void**)& atk_hyperlink_is_valid},
+	{ "atk_hyperlink_is_inline",  cast(void**)& atk_hyperlink_is_inline},
+	{ "atk_hyperlink_get_n_anchors",  cast(void**)& atk_hyperlink_get_n_anchors},
+	{ "atk_hyperlink_is_selected_link",  cast(void**)& atk_hyperlink_is_selected_link},
+	{ "atk_hypertext_get_link",  cast(void**)& atk_hypertext_get_link},
+	{ "atk_hypertext_get_n_links",  cast(void**)& atk_hypertext_get_n_links},
+	{ "atk_hypertext_get_link_index",  cast(void**)& atk_hypertext_get_link_index},
+	{ "atk_image_get_image_position",  cast(void**)& atk_image_get_image_position},
+	{ "atk_image_get_image_description",  cast(void**)& atk_image_get_image_description},
+	{ "atk_image_set_image_description",  cast(void**)& atk_image_set_image_description},
+	{ "atk_image_get_image_size",  cast(void**)& atk_image_get_image_size},
+	{ "atk_image_get_image_locale",  cast(void**)& atk_image_get_image_locale},
+	{ "atk_no_op_object_new",  cast(void**)& atk_no_op_object_new},
+	{ "atk_no_op_object_factory_new",  cast(void**)& atk_no_op_object_factory_new},
+	{ "atk_role_register",  cast(void**)& atk_role_register},
+	{ "atk_implementor_ref_accessible",  cast(void**)& atk_implementor_ref_accessible},
+	{ "atk_object_get_name",  cast(void**)& atk_object_get_name},
+	{ "atk_object_get_description",  cast(void**)& atk_object_get_description},
+	{ "atk_object_get_parent",  cast(void**)& atk_object_get_parent},
+	{ "atk_object_get_n_accessible_children",  cast(void**)& atk_object_get_n_accessible_children},
+	{ "atk_object_ref_accessible_child",  cast(void**)& atk_object_ref_accessible_child},
+	{ "atk_object_ref_relation_set",  cast(void**)& atk_object_ref_relation_set},
+	{ "atk_object_get_layer",  cast(void**)& atk_object_get_layer},
+	{ "atk_object_get_mdi_zorder",  cast(void**)& atk_object_get_mdi_zorder},
+	{ "atk_object_get_role",  cast(void**)& atk_object_get_role},
+	{ "atk_object_ref_state_set",  cast(void**)& atk_object_ref_state_set},
+	{ "atk_object_get_index_in_parent",  cast(void**)& atk_object_get_index_in_parent},
+	{ "atk_object_set_name",  cast(void**)& atk_object_set_name},
+	{ "atk_object_set_description",  cast(void**)& atk_object_set_description},
+	{ "atk_object_set_parent",  cast(void**)& atk_object_set_parent},
+	{ "atk_object_set_role",  cast(void**)& atk_object_set_role},
+	{ "atk_object_connect_property_change_handler",  cast(void**)& atk_object_connect_property_change_handler},
+	{ "atk_object_remove_property_change_handler",  cast(void**)& atk_object_remove_property_change_handler},
+	{ "atk_object_notify_state_change",  cast(void**)& atk_object_notify_state_change},
+	{ "atk_object_initialize",  cast(void**)& atk_object_initialize},
+	{ "atk_object_add_relationship",  cast(void**)& atk_object_add_relationship},
+	{ "atk_object_remove_relationship",  cast(void**)& atk_object_remove_relationship},
+	{ "atk_object_get_attributes",  cast(void**)& atk_object_get_attributes},
+	{ "atk_role_get_name",  cast(void**)& atk_role_get_name},
+	{ "atk_role_get_localized_name",  cast(void**)& atk_role_get_localized_name},
+	{ "atk_role_for_name",  cast(void**)& atk_role_for_name},
+	{ "atk_object_factory_create_accessible",  cast(void**)& atk_object_factory_create_accessible},
+	{ "atk_object_factory_get_accessible_type",  cast(void**)& atk_object_factory_get_accessible_type},
+	{ "atk_object_factory_invalidate",  cast(void**)& atk_object_factory_invalidate},
+	{ "atk_registry_set_factory_type",  cast(void**)& atk_registry_set_factory_type},
+	{ "atk_registry_get_factory_type",  cast(void**)& atk_registry_get_factory_type},
+	{ "atk_registry_get_factory",  cast(void**)& atk_registry_get_factory},
+	{ "atk_get_default_registry",  cast(void**)& atk_get_default_registry},
+	{ "atk_relation_type_register",  cast(void**)& atk_relation_type_register},
+	{ "atk_relation_type_get_name",  cast(void**)& atk_relation_type_get_name},
+	{ "atk_relation_type_for_name",  cast(void**)& atk_relation_type_for_name},
+	{ "atk_relation_new",  cast(void**)& atk_relation_new},
+	{ "atk_relation_get_relation_type",  cast(void**)& atk_relation_get_relation_type},
+	{ "atk_relation_get_target",  cast(void**)& atk_relation_get_target},
+	{ "atk_relation_add_target",  cast(void**)& atk_relation_add_target},
+	{ "atk_relation_set_new",  cast(void**)& atk_relation_set_new},
+	{ "atk_relation_set_contains",  cast(void**)& atk_relation_set_contains},
+	{ "atk_relation_set_remove",  cast(void**)& atk_relation_set_remove},
+	{ "atk_relation_set_add",  cast(void**)& atk_relation_set_add},
+	{ "atk_relation_set_get_n_relations",  cast(void**)& atk_relation_set_get_n_relations},
+	{ "atk_relation_set_get_relation",  cast(void**)& atk_relation_set_get_relation},
+	{ "atk_relation_set_get_relation_by_type",  cast(void**)& atk_relation_set_get_relation_by_type},
+	{ "atk_relation_set_add_relation_by_type",  cast(void**)& atk_relation_set_add_relation_by_type},
+	{ "atk_selection_add_selection",  cast(void**)& atk_selection_add_selection},
+	{ "atk_selection_clear_selection",  cast(void**)& atk_selection_clear_selection},
+	{ "atk_selection_ref_selection",  cast(void**)& atk_selection_ref_selection},
+	{ "atk_selection_get_selection_count",  cast(void**)& atk_selection_get_selection_count},
+	{ "atk_selection_is_child_selected",  cast(void**)& atk_selection_is_child_selected},
+	{ "atk_selection_remove_selection",  cast(void**)& atk_selection_remove_selection},
+	{ "atk_selection_select_all_selection",  cast(void**)& atk_selection_select_all_selection},
+	{ "atk_state_type_register",  cast(void**)& atk_state_type_register},
+	{ "atk_state_type_get_name",  cast(void**)& atk_state_type_get_name},
+	{ "atk_state_type_for_name",  cast(void**)& atk_state_type_for_name},
+	{ "atk_state_set_new",  cast(void**)& atk_state_set_new},
+	{ "atk_state_set_is_empty",  cast(void**)& atk_state_set_is_empty},
+	{ "atk_state_set_add_state",  cast(void**)& atk_state_set_add_state},
+	{ "atk_state_set_add_states",  cast(void**)& atk_state_set_add_states},
+	{ "atk_state_set_clear_states",  cast(void**)& atk_state_set_clear_states},
+	{ "atk_state_set_contains_state",  cast(void**)& atk_state_set_contains_state},
+	{ "atk_state_set_contains_states",  cast(void**)& atk_state_set_contains_states},
+	{ "atk_state_set_remove_state",  cast(void**)& atk_state_set_remove_state},
+	{ "atk_state_set_and_sets",  cast(void**)& atk_state_set_and_sets},
+	{ "atk_state_set_or_sets",  cast(void**)& atk_state_set_or_sets},
+	{ "atk_state_set_xor_sets",  cast(void**)& atk_state_set_xor_sets},
+	{ "atk_streamable_content_get_n_mime_types",  cast(void**)& atk_streamable_content_get_n_mime_types},
+	{ "atk_streamable_content_get_mime_type",  cast(void**)& atk_streamable_content_get_mime_type},
+	{ "atk_streamable_content_get_stream",  cast(void**)& atk_streamable_content_get_stream},
+	{ "atk_streamable_content_get_uri",  cast(void**)& atk_streamable_content_get_uri},
+	{ "atk_table_ref_at",  cast(void**)& atk_table_ref_at},
+	{ "atk_table_get_index_at",  cast(void**)& atk_table_get_index_at},
+	{ "atk_table_get_column_at_index",  cast(void**)& atk_table_get_column_at_index},
+	{ "atk_table_get_row_at_index",  cast(void**)& atk_table_get_row_at_index},
+	{ "atk_table_get_n_columns",  cast(void**)& atk_table_get_n_columns},
+	{ "atk_table_get_n_rows",  cast(void**)& atk_table_get_n_rows},
+	{ "atk_table_get_column_extent_at",  cast(void**)& atk_table_get_column_extent_at},
+	{ "atk_table_get_row_extent_at",  cast(void**)& atk_table_get_row_extent_at},
+	{ "atk_table_get_caption",  cast(void**)& atk_table_get_caption},
+	{ "atk_table_get_column_description",  cast(void**)& atk_table_get_column_description},
+	{ "atk_table_get_row_description",  cast(void**)& atk_table_get_row_description},
+	{ "atk_table_get_column_header",  cast(void**)& atk_table_get_column_header},
+	{ "atk_table_get_row_header",  cast(void**)& atk_table_get_row_header},
+	{ "atk_table_get_summary",  cast(void**)& atk_table_get_summary},
+	{ "atk_table_set_caption",  cast(void**)& atk_table_set_caption},
+	{ "atk_table_set_row_description",  cast(void**)& atk_table_set_row_description},
+	{ "atk_table_set_column_description",  cast(void**)& atk_table_set_column_description},
+	{ "atk_table_set_row_header",  cast(void**)& atk_table_set_row_header},
+	{ "atk_table_set_column_header",  cast(void**)& atk_table_set_column_header},
+	{ "atk_table_set_summary",  cast(void**)& atk_table_set_summary},
+	{ "atk_table_get_selected_columns",  cast(void**)& atk_table_get_selected_columns},
+	{ "atk_table_get_selected_rows",  cast(void**)& atk_table_get_selected_rows},
+	{ "atk_table_is_column_selected",  cast(void**)& atk_table_is_column_selected},
+	{ "atk_table_is_row_selected",  cast(void**)& atk_table_is_row_selected},
+	{ "atk_table_is_selected",  cast(void**)& atk_table_is_selected},
+	{ "atk_table_add_column_selection",  cast(void**)& atk_table_add_column_selection},
+	{ "atk_table_add_row_selection",  cast(void**)& atk_table_add_row_selection},
+	{ "atk_table_remove_column_selection",  cast(void**)& atk_table_remove_column_selection},
+	{ "atk_table_remove_row_selection",  cast(void**)& atk_table_remove_row_selection},
+	{ "atk_text_get_text",  cast(void**)& atk_text_get_text},
+	{ "atk_text_get_character_at_offset",  cast(void**)& atk_text_get_character_at_offset},
+	{ "atk_text_get_text_after_offset",  cast(void**)& atk_text_get_text_after_offset},
+	{ "atk_text_get_text_at_offset",  cast(void**)& atk_text_get_text_at_offset},
+	{ "atk_text_get_text_before_offset",  cast(void**)& atk_text_get_text_before_offset},
+	{ "atk_text_get_caret_offset",  cast(void**)& atk_text_get_caret_offset},
+	{ "atk_text_get_character_extents",  cast(void**)& atk_text_get_character_extents},
+	{ "atk_text_get_run_attributes",  cast(void**)& atk_text_get_run_attributes},
+	{ "atk_text_get_default_attributes",  cast(void**)& atk_text_get_default_attributes},
+	{ "atk_text_get_character_count",  cast(void**)& atk_text_get_character_count},
+	{ "atk_text_get_offset_at_point",  cast(void**)& atk_text_get_offset_at_point},
+	{ "atk_text_get_bounded_ranges",  cast(void**)& atk_text_get_bounded_ranges},
+	{ "atk_text_get_range_extents",  cast(void**)& atk_text_get_range_extents},
+	{ "atk_text_free_ranges",  cast(void**)& atk_text_free_ranges},
+	{ "atk_text_get_n_selections",  cast(void**)& atk_text_get_n_selections},
+	{ "atk_text_get_selection",  cast(void**)& atk_text_get_selection},
+	{ "atk_text_add_selection",  cast(void**)& atk_text_add_selection},
+	{ "atk_text_remove_selection",  cast(void**)& atk_text_remove_selection},
+	{ "atk_text_set_selection",  cast(void**)& atk_text_set_selection},
+	{ "atk_text_set_caret_offset",  cast(void**)& atk_text_set_caret_offset},
+	{ "atk_attribute_set_free",  cast(void**)& atk_attribute_set_free},
+	{ "atk_text_attribute_register",  cast(void**)& atk_text_attribute_register},
+	{ "atk_text_attribute_get_name",  cast(void**)& atk_text_attribute_get_name},
+	{ "atk_text_attribute_for_name",  cast(void**)& atk_text_attribute_for_name},
+	{ "atk_text_attribute_get_value",  cast(void**)& atk_text_attribute_get_value},
+	{ "atk_add_focus_tracker",  cast(void**)& atk_add_focus_tracker},
+	{ "atk_remove_focus_tracker",  cast(void**)& atk_remove_focus_tracker},
+	{ "atk_focus_tracker_init",  cast(void**)& atk_focus_tracker_init},
+	{ "atk_focus_tracker_notify",  cast(void**)& atk_focus_tracker_notify},
+	{ "atk_add_global_event_listener",  cast(void**)& atk_add_global_event_listener},
+	{ "atk_remove_global_event_listener",  cast(void**)& atk_remove_global_event_listener},
+	{ "atk_add_key_event_listener",  cast(void**)& atk_add_key_event_listener},
+	{ "atk_remove_key_event_listener",  cast(void**)& atk_remove_key_event_listener},
+	{ "atk_get_root",  cast(void**)& atk_get_root},
+	{ "atk_get_focus_object",  cast(void**)& atk_get_focus_object},
+	{ "atk_get_toolkit_name",  cast(void**)& atk_get_toolkit_name},
+	{ "atk_get_toolkit_version",  cast(void**)& atk_get_toolkit_version},
+	{ "atk_value_get_current_value",  cast(void**)& atk_value_get_current_value},
+	{ "atk_value_get_maximum_value",  cast(void**)& atk_value_get_maximum_value},
+	{ "atk_value_get_minimum_value",  cast(void**)& atk_value_get_minimum_value},
+	{ "atk_value_set_current_value",  cast(void**)& atk_value_set_current_value},
+	{ "atk_value_get_minimum_increment",  cast(void**)& atk_value_get_minimum_increment},
+
+];
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/gtk/c/atktypes.d	Sat Jan 05 15:13:44 2008 -0800
@@ -0,0 +1,623 @@
+/******************************************************************************
+
+    This file is part of gtkD.
+
+    gtkD is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation; either version 2.1 of the License, or
+    (at your option) any later version.
+ 
+    gtkD is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with gtkD; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+******************************************************************************/
+
+module dwt.internal.gtk.c.atktypes;
+
+public import dwt.internal.gtk.c.glibtypes;
+public import dwt.internal.gtk.c.gobjecttypes;
+
+/******************************************************************************
+
+******************************************************************************/
+
+public alias void* AtkFocusHandler;
+public struct AtkStateSet;
+public struct AtkRectangle;
+
+
+/**
+ * typedef guint64 AtkState;
+ * The AtkState value should not be referenceed directly.
+ */
+public alias ulong AtkState;
+
+/**
+ * typedef GSList AtkAttributeSet;
+ * This is a singly-linked list (a GSList) of AtkAttribute. It is
+ * used by atk_text_get_run_attributes(), atk_text_get_default_attributes()
+ * and atk_editable_text_set_run_attributes()
+ */
+public alias GSList AtkAttributeSet;
+/**
+ * Describes the type of link
+ * ATK_HYPERLINK_IS_INLINE
+ */
+public enum AtkHyperlinkStateFlags
+{
+	IS_INLINE = 1 << 0
+}
+/**
+ * Describes the role of an object
+ * These are the built-in enumerated roles that UI components can have in
+ * ATK. Other roles may be added at runtime, so an AtkRole >=
+ * ATK_ROLE_LAST_DEFINED is not necessarily an error.
+ * ATK_ROLE_INVALID
+ */
+public enum AtkRole
+{
+	INVALID = 0,
+	ACCEL_LABEL,
+	ALERT,
+	ANIMATION,
+	ARROW,
+	CALENDAR,
+	CANVAS,
+	CHECK_BOX,
+	CHECK_MENU_ITEM,
+	COLOR_CHOOSER,
+	COLUMN_HEADER,
+	COMBO_BOX,
+	DATE_EDITOR,
+	DESKTOP_ICON,
+	DESKTOP_FRAME,
+	DIAL,
+	DIALOG,
+	DIRECTORY_PANE,
+	DRAWING_AREA,
+	FILE_CHOOSER,
+	FILLER,
+	FONT_CHOOSER,
+	FRAME,
+	GLASS_PANE,
+	HTML_CONTAINER,
+	ICON,
+	IMAGE,
+	INTERNAL_FRAME,
+	LABEL,
+	LAYERED_PANE,
+	LIST,
+	LIST_ITEM,
+	MENU,
+	MENU_BAR,
+	MENU_ITEM,
+	OPTION_PANE,
+	PAGE_TAB,
+	PAGE_TAB_LIST,
+	PANEL,
+	PASSWORD_TEXT,
+	POPUP_MENU,
+	PROGRESS_BAR,
+	PUSH_BUTTON,
+	RADIO_BUTTON,
+	RADIO_MENU_ITEM,
+	ROOT_PANE,
+	ROW_HEADER,
+	SCROLL_BAR,
+	SCROLL_PANE,
+	SEPARATOR,
+	SLIDER,
+	SPLIT_PANE,
+	SPIN_BUTTON,
+	STATUSBAR,
+	TABLE,
+	TABLE_CELL,
+	TABLE_COLUMN_HEADER,
+	TABLE_ROW_HEADER,
+	TEAR_OFF_MENU_ITEM,
+	TERMINAL,
+	TEXT,
+	TOGGLE_BUTTON,
+	TOOL_BAR,
+	TOOL_TIP,
+	TREE,
+	TREE_TABLE,
+	UNKNOWN,
+	VIEWPORT,
+	WINDOW,
+	HEADER,
+	FOOTER,
+	PARAGRAPH,
+	RULER,
+	APPLICATION,
+	AUTOCOMPLETE,
+	EDITBAR,
+	EMBEDDED,
+	ENTRY,
+	CHART,
+	CAPTION,
+	DOCUMENT_FRAME,
+	HEADING,
+	PAGE,
+	SECTION,
+	REDUNDANT_OBJECT,
+	FORM,
+	LINK,
+	INPUT_METHOD_WINDOW,
+	LAST_DEFINED
+}
+/**
+ * Describes the layer of a component
+ * These enumerated "layer values" are used when determining which UI
+ * rendering layer a component is drawn into, which can help in making
+ * determinations of when components occlude one another.
+ * ATK_LAYER_INVALID
+ */
+public enum AtkLayer
+{
+	INVALID,
+	BACKGROUND,
+	CANVAS,
+	WIDGET,
+	MDI,
+	POPUP,
+	OVERLAY,
+	WINDOW
+}
+/**
+ * Describes the type of the relation
+ * ATK_RELATION_NULL
+ */
+public enum AtkRelationType
+{
+	NULL = 0,
+	CONTROLLED_BY,
+	CONTROLLER_FOR,
+	LABEL_FOR,
+	LABELLED_BY,
+	MEMBER_OF,
+	NODE_CHILD_OF,
+	FLOWS_TO,
+	FLOWS_FROM,
+	SUBWINDOW_OF,
+	EMBEDS,
+	EMBEDDED_BY,
+	POPUP_FOR,
+	PARENT_WINDOW_OF,
+	DESCRIBED_BY,
+	DESCRIPTION_FOR,
+	LAST_DEFINED
+}
+/**
+ * The possible types of states of an object
+ * ATK_STATE_INVALID
+ */
+public enum AtkStateType
+{
+	INVALID,
+	ACTIVE,
+	ARMED,
+	BUSY,
+	CHECKED,
+	DEFUNCT,
+	EDITABLE,
+	ENABLED,
+	EXPANDABLE,
+	EXPANDED,
+	FOCUSABLE,
+	FOCUSED,
+	HORIZONTAL,
+	ICONIFIED,
+	MODAL,
+	MULTI_LINE,
+	MULTISELECTABLE,
+	OPAQUE,
+	PRESSED,
+	RESIZABLE,
+	SELECTABLE,
+	SELECTED,
+	SENSITIVE,
+	SHOWING,
+	SINGLE_LINE,
+	STALE,
+	TRANSIENT,
+	VERTICAL,
+	VISIBLE,
+	MANAGES_DESCENDANTS,
+	INDETERMINATE,
+	TRUNCATED,
+	REQUIRED,
+	INVALID_ENTRY,
+	SUPPORTS_AUTOCOMPLETION,
+	SELECTABLE_TEXT,
+	DEFAULT,
+	ANIMATED,
+	VISITED,
+	LAST_DEFINED
+}
+/**
+ * Text boundary types used for specifying boundaries for regions of text
+ * ATK_TEXT_BOUNDARY_CHAR
+ */
+public enum AtkTextBoundary
+{
+	CHAR,
+	WORD_START,
+	WORD_END,
+	SENTENCE_START,
+	SENTENCE_END,
+	LINE_START,
+	LINE_END
+}
+/**
+ * Describes the type of clipping required.
+ * ATK_TEXT_CLIP_NONE
+ */
+public enum AtkTextClipType
+{
+	NONE,
+	MIN,
+	MAX,
+	BOTH
+}
+/**
+ * Describes the text attributes supported
+ * ATK_TEXT_ATTR_INVALID
+ */
+public enum AtkTextAttribute
+{
+	INVALID = 0,
+	LEFT_MARGIN,
+	RIGHT_MARGIN,
+	INDENT,
+	INVISIBLE,
+	EDITABLE,
+	PIXELS_ABOVE_LINES,
+	PIXELS_BELOW_LINES,
+	PIXELS_INSIDE_WRAP,
+	BG_FULL_HEIGHT,
+	RISE,
+	UNDERLINE,
+	STRIKETHROUGH,
+	SIZE,
+	SCALE,
+	WEIGHT,
+	LANGUAGE,
+	FAMILY_NAME,
+	BG_COLOR,
+	FG_COLOR,
+	BG_STIPPLE,
+	FG_STIPPLE,
+	WRAP_MODE,
+	DIRECTION,
+	JUSTIFICATION,
+	STRETCH,
+	VARIANT,
+	STYLE,
+	LAST_DEFINED
+}
+/**
+ * Specifies how xy coordinates are to be interpreted. Used by functions such
+ * as atk_component_get_position() and atk_text_get_character_extents()
+ * ATK_XY_SCREEN
+ */
+public enum AtkCoordType
+{
+	XY_SCREEN,
+	XY_WINDOW
+}
+/**
+ * Specifies the type of a keyboard evemt.
+ * ATK_KEY_EVENT_PRESS
+ */
+public enum AtkKeyEventType
+{
+	PRESS,
+	RELEASE,
+	LAST_DEFINED
+}
+
+/**
+ * Main Gtk struct.
+ * The AtkAction structure does not contain any fields.
+ */
+public struct AtkAction{}
+
+
+/**
+ * Main Gtk struct.
+ * The AtkComponent structure does not contain any fields.
+ */
+public struct AtkComponent{}
+
+
+/**
+ * Main Gtk struct.
+ * The AtkDocument structure does not contain any fields.
+ */
+public struct AtkDocument{}
+
+
+/**
+ * Main Gtk struct.
+ * The AtkEditableText structure does not contain any fields.
+ */
+public struct AtkEditableText{}
+
+
+/**
+ * Main Gtk struct.
+ * The AtkGObjectAccessible structure should not be accessed directly.
+ */
+public struct AtkGObjectAccessible{}
+
+
+/**
+ * Main Gtk struct.
+ * The AtkHyperlink structure should not be accessed directly.
+ */
+public struct AtkHyperlink{}
+
+
+/**
+ * Main Gtk struct.
+ * The AtkHypertext structure does not contain any fields.
+ */
+public struct AtkHypertext{}
+
+
+/**
+ * Main Gtk struct.
+ * The AtkImage structure does not contain any fields.
+ */
+public struct AtkImage{}
+
+
+/**
+ * Main Gtk struct.
+ * The AtkNoOpObject structure should not be accessed directly.
+ */
+public struct AtkNoOpObject{}
+
+
+/**
+ * Main Gtk struct.
+ * The AtkNoOpObjectFactory structure should not be accessed directly.
+ */
+public struct AtkNoOpObjectFactory{}
+
+
+/**
+ * Main Gtk struct.
+ * The AtkObject structure should not be accessed directly.
+ */
+public struct AtkObject{}
+
+
+/**
+ * The AtkImplementor interface is implemented by objects for which AtkObject peers may be obtained via calls to iface->(ref_accessible)(implementor);
+ */
+public struct AtkImplementor{}
+
+
+/**
+ * note: For most properties the old_value field of AtkPropertyValues will
+ * not contain a valid value.
+ * Currently, the only property for which old_value is used is
+ * accessible-state; for instance if there is a focus state the
+ * property change handler will be called for the object which lost the focus
+ * with the old_value containing an AtkState value corresponding to focused
+ * and the property change handler will be called for the object which
+ * received the focus with the new_value containing an AtkState value
+ * corresponding to focused.
+ * The Atk PropertyValue structure is used when notifying a change in property.
+ * Currently, the only property for which old_value is used is
+ * accessible-state; for instance if there is a focus change the
+ * property change handler will be called for the object which lost the focus
+ * with the old_value containing the AtkState value corresponding to focused
+ * and the property change handler will be called for the object which
+ * received the focus with the new_value containing the AtkState value
+ * corresponding to focused.
+ * constgchar*property_name;
+ */
+public struct AtkPropertyValues{}
+// char *propertyName;
+// AtkObject.html
+// GValue oldValue;
+// AtkObject.html
+// GValue newValue;
+// AtkObject.html
+
+
+/**
+ * Main Gtk struct.
+ * The AtkObjectFactory structure should not be accessed directly.
+ */
+public struct AtkObjectFactory{}
+
+
+/**
+ * Main Gtk struct.
+ * The AtkRegistry structure should not be accessed directly.
+ */
+public struct AtkRegistry{}
+
+
+/**
+ * Main Gtk struct.
+ * The AtkRelation structure should not be accessed directly.
+ */
+public struct AtkRelation{}
+
+
+/**
+ * Main Gtk struct.
+ * The AtkRelationSet structure should not be accessed directly.
+ */
+public struct AtkRelationSet{}
+
+
+/**
+ * Main Gtk struct.
+ * The AtkAction structure does not contain any fields.
+ */
+public struct AtkSelection{}
+
+
+/**
+ * Main Gtk struct.
+ * The AtkStreamableContent structure does not contain any fields.
+ */
+public struct AtkStreamableContent{}
+
+
+/**
+ * Main Gtk struct.
+ * The AtkTable structure does not contain any fields.
+ */
+public struct AtkTable{}
+
+
+/**
+ * Main Gtk struct.
+ * The AtkText structure does not contain any fields.
+ */
+public struct AtkText{}
+
+
+/**
+ * A structure used to describe a text range.
+ * AtkTextRectanglebounds;
+ */
+public struct AtkTextRange{}
+// AtkTextRectangle bounds;
+// AtkText.html
+// int startOffset;
+// AtkText.html
+// int endOffset;
+// AtkText.html
+// char* content;
+// AtkText.html
+
+
+/**
+ * A structure used to store a rectangle used by AtkText.
+ * gintx;
+ */
+public struct AtkTextRectangle
+{
+	int x;
+	int y;
+	int width;
+	int height;
+}
+
+
+/**
+ * A string name/value pair representing a text attribute.
+ * gchar*name;
+ */
+public struct AtkAttribute
+{
+	char* name;
+	char* value;
+}
+
+
+/**
+ * The AtkUtil struct does not contain any fields.
+ */
+public struct AtkUtil{}
+
+
+/**
+ * Encapsulates information about a key event.
+ * ginttype;
+ */
+public struct AtkKeyEventStruct
+{
+	int type;
+	uint state;
+	uint keyval;
+	int length;
+	char *string;
+	ushort keycode;
+	uint timestamp;
+}
+
+
+/**
+ * Main Gtk struct.
+ * The AtkValue structure does not contain any fields.
+ */
+public struct AtkValue{}
+
+
+/*
+ * An AtkFunction is a function definition used for padding which has been added
+ * to class and interface structures to allow for expansion in the future.
+ * data:
+ * a gpointer to parameter data.
+ * Returns:
+ * Nothing useful, this is only a dummy prototype.
+ */
+// gboolean (*AtkFunction) (gpointer data);
+public typedef extern(C) int  function (void*) AtkFunction;
+
+/*
+ * An AtkPropertyChangeHandler is a function which is executed when an AtkObject's property changes value. It is specified in a call to
+ * atk_object_connect_property_change_handler().
+ * Param1:
+ *  an AtkObject
+ * Param2:
+ *  an AtkPropertyValues
+ */
+// void (*AtkPropertyChangeHandler) (AtkObject *,  AtkPropertyValues *);
+public typedef extern(C) void  function (AtkObject*, AtkPropertyValues*) AtkPropertyChangeHandler;
+
+/*
+ * A function which is called when an object emits a matching event,
+ * as used in atk_add_focus_tracker.
+ * Currently the only events for which object-specific handlers are
+ * supported are events of type "focus:". Most clients of ATK will prefer to
+ * attach signal handlers for the various ATK signals instead.
+ * see: atk_add_focus_tracker.
+ * obj:
+ *  An AtkObject instance for whom the callback will be called when
+ * the specified event (e.g. 'focus:') takes place.
+ */
+// void (*AtkEventListener) (AtkObject *obj);
+public typedef extern(C) void  function (AtkObject*) AtkEventListener;
+
+/*
+ * An AtkEventListenerInit function is a special function that is
+ * called in order to initialize the per-object event registration system
+ * used by AtkEventListener, if any preparation is required.
+ * see: atk_focus_tracker_init.
+ */
+// void (*AtkEventListenerInit) (void);
+public typedef extern(C) void  function () AtkEventListenerInit;
+
+/*
+ * An AtkKeySnoopFunc is a type of callback which is called whenever a key event occurs,
+ * if registered via atk_add_key_event_listener. It allows for pre-emptive
+ * interception of key events via the return code as described below.
+ * event:
+ *  an AtkKeyEventStruct containing information about the key event for which
+ * notification is being given.
+ * func_data:
+ *  a block of data which will be passed to the event listener, on notification.
+ * Returns:
+ *  TRUE (nonzero) if the event emission should be stopped and the event
+ * discarded without being passed to the normal GUI recipient; FALSE (zero) if the
+ * event dispatch to the client application should proceed as normal.
+ * see: atk_add_key_event_listener.
+ */
+// gint (*AtkKeySnoopFunc) (AtkKeyEventStruct *event,  gpointer func_data);
+public typedef extern(C) int  function (AtkKeyEventStruct*, void*) AtkKeySnoopFunc;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/gtk/c/cairo.d	Sat Jan 05 15:13:44 2008 -0800
@@ -0,0 +1,463 @@
+/******************************************************************************
+
+    This file is part of gtkD.
+
+    gtkD is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation; either version 2.1 of the License, or
+    (at your option) any later version.
+ 
+    gtkD is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with gtkD; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+******************************************************************************/
+
+module dwt.internal.gtk.c.cairo;
+
+private import dwt.internal.gtk.c.cairotypes;
+private import dwt.internal.gtk.runtime.Loader;
+
+/******************************************************************************
+
+******************************************************************************/
+
+private Linker cairoLinker;
+
+/******************************************************************************
+
+******************************************************************************/
+
+static this()
+{
+    cairoLinker = new Linker( getLibraryPath ~ importLibs[LIBRARY.CAIRO] );
+    cairoLinker.link( cairoLinks );
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+static ~this()
+{
+    delete cairoLinker;
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+extern(C) 
+{	
+	// cairo.Context
+	
+	cairo_t* function(cairo_surface_t* target)cairo_create;
+	cairo_t* function(cairo_t* cr)cairo_reference;
+	void function(cairo_t* cr)cairo_destroy;
+	cairo_status_t function(cairo_t* cr)cairo_status;
+	void function(cairo_t* cr)cairo_save;
+	void function(cairo_t* cr)cairo_restore;
+	cairo_surface_t* function(cairo_t* cr)cairo_get_target;
+	void function(cairo_t* cr)cairo_push_group;
+	void function(cairo_t* cr, cairo_content_t content)cairo_push_group_with_content;
+	cairo_pattern_t* function(cairo_t* cr)cairo_pop_group;
+	void function(cairo_t* cr)cairo_pop_group_to_source;
+	cairo_surface_t* function(cairo_t* cr)cairo_get_group_target;
+	void function(cairo_t* cr, double red, double green, double blue)cairo_set_source_rgb;
+	void function(cairo_t* cr, double red, double green, double blue, double alpha)cairo_set_source_rgba;
+	void function(cairo_t* cr, cairo_pattern_t* source)cairo_set_source;
+	void function(cairo_t* cr, cairo_surface_t* surface, double x, double y)cairo_set_source_surface;
+	cairo_pattern_t* function(cairo_t* cr)cairo_get_source;
+	void function(cairo_t* cr, cairo_antialias_t antialias)cairo_set_antialias;
+	cairo_antialias_t function(cairo_t* cr)cairo_get_antialias;
+	void function(cairo_t* cr, double* dashes, int numDashes, double offset)cairo_set_dash;
+	void function(cairo_t* cr, cairo_fill_rule_t fillRule)cairo_set_fill_rule;
+	cairo_fill_rule_t function(cairo_t* cr)cairo_get_fill_rule;
+	void function(cairo_t* cr, cairo_line_cap_t lineCap)cairo_set_line_cap;
+	cairo_line_cap_t function(cairo_t* cr)cairo_get_line_cap;
+	void function(cairo_t* cr, cairo_line_join_t lineJoin)cairo_set_line_join;
+	cairo_line_join_t function(cairo_t* cr)cairo_get_line_join;
+	void function(cairo_t* cr, double width)cairo_set_line_width;
+	double function(cairo_t* cr)cairo_get_line_width;
+	void function(cairo_t* cr, double limit)cairo_set_miter_limit;
+	double function(cairo_t* cr)cairo_get_miter_limit;
+	void function(cairo_t* cr, cairo_operator_t op)cairo_set_operator;
+	cairo_operator_t function(cairo_t* cr)cairo_get_operator;
+	void function(cairo_t* cr, double tolerance)cairo_set_tolerance;
+	double function(cairo_t* cr)cairo_get_tolerance;
+	void function(cairo_t* cr)cairo_clip;
+	void function(cairo_t* cr)cairo_clip_preserve;
+	void function(cairo_t* cr)cairo_reset_clip;
+	void function(cairo_t* cr)cairo_fill;
+	void function(cairo_t* cr)cairo_fill_preserve;
+	void function(cairo_t* cr, double* x1, double* y1, double* x2, double* y2)cairo_fill_extents;
+	cairo_bool_t function(cairo_t* cr, double x, double y)cairo_in_fill;
+	void function(cairo_t* cr, cairo_pattern_t* pattern)cairo_mask;
+	void function(cairo_t* cr, cairo_surface_t* surface, double surfaceX, double surfaceY)cairo_mask_surface;
+	void function(cairo_t* cr)cairo_paint;
+	void function(cairo_t* cr, double alpha)cairo_paint_with_alpha;
+	void function(cairo_t* cr)cairo_stroke;
+	void function(cairo_t* cr)cairo_stroke_preserve;
+	void function(cairo_t* cr, double* x1, double* y1, double* x2, double* y2)cairo_stroke_extents;
+	cairo_bool_t function(cairo_t* cr, double x, double y)cairo_in_stroke;
+	void function(cairo_t* cr)cairo_copy_page;
+	void function(cairo_t* cr)cairo_show_page;
+	cairo_path_t* function(cairo_t* cr)cairo_copy_path;
+	cairo_path_t* function(cairo_t* cr)cairo_copy_path_flat;
+	void function(cairo_path_t* path)cairo_path_destroy;
+	void function(cairo_t* cr, cairo_path_t* path)cairo_append_path;
+	void function(cairo_t* cr, double* x, double* y)cairo_get_current_point;
+	void function(cairo_t* cr)cairo_new_path;
+	void function(cairo_t* cr)cairo_new_sub_path;
+	void function(cairo_t* cr)cairo_close_path;
+	void function(cairo_t* cr, double xc, double yc, double radius, double angle1, double angle2)cairo_arc;
+	void function(cairo_t* cr, double xc, double yc, double radius, double angle1, double angle2)cairo_arc_negative;
+	void function(cairo_t* cr, double x1, double y1, double x2, double y2, double x3, double y3)cairo_curve_to;
+	void function(cairo_t* cr, double x, double y)cairo_line_to;
+	void function(cairo_t* cr, double x, double y)cairo_move_to;
+	void function(cairo_t* cr, double x, double y, double width, double height)cairo_rectangle;
+	void function(cairo_t* cr, cairo_glyph_t* glyphs, int numGlyphs)cairo_glyph_path;
+	void function(cairo_t* cr, char* utf8)cairo_text_path;
+	void function(cairo_t* cr, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3)cairo_rel_curve_to;
+	void function(cairo_t* cr, double dx, double dy)cairo_rel_line_to;
+	void function(cairo_t* cr, double dx, double dy)cairo_rel_move_to;
+	void function(cairo_t* cr, double tx, double ty)cairo_translate;
+	void function(cairo_t* cr, double sx, double sy)cairo_scale;
+	void function(cairo_t* cr, double angle)cairo_rotate;
+	void function(cairo_t* cr, cairo_matrix_t* matrix)cairo_transform;
+	void function(cairo_t* cr, cairo_matrix_t* matrix)cairo_set_matrix;
+	void function(cairo_t* cr, cairo_matrix_t* matrix)cairo_get_matrix;
+	void function(cairo_t* cr)cairo_identity_matrix;
+	void function(cairo_t* cr, double* x, double* y)cairo_user_to_device;
+	void function(cairo_t* cr, double* dx, double* dy)cairo_user_to_device_distance;
+	void function(cairo_t* cr, double* x, double* y)cairo_device_to_user;
+	void function(cairo_t* cr, double* dx, double* dy)cairo_device_to_user_distance;
+	void function(cairo_t* cr, char* family, cairo_font_slant_t slant, cairo_font_weight_t weight)cairo_select_font_face;
+	void function(cairo_t* cr, double size)cairo_set_font_size;
+	void function(cairo_t* cr, cairo_matrix_t* matrix)cairo_set_font_matrix;
+	void function(cairo_t* cr, cairo_matrix_t* matrix)cairo_get_font_matrix;
+	void function(cairo_t* cr, cairo_font_options_t* options)cairo_set_font_options;
+	void function(cairo_t* cr, cairo_font_options_t* options)cairo_get_font_options;
+	void function(cairo_t* cr, char* utf8)cairo_show_text;
+	void function(cairo_t* cr, cairo_glyph_t* glyphs, int numGlyphs)cairo_show_glyphs;
+	cairo_font_face_t* function(cairo_t* cr)cairo_get_font_face;
+	void function(cairo_t* cr, cairo_font_extents_t* extents)cairo_font_extents;
+	void function(cairo_t* cr, cairo_font_face_t* fontFace)cairo_set_font_face;
+	void function(cairo_t* cr, cairo_scaled_font_t* scaledFont)cairo_set_scaled_font;
+	void function(cairo_t* cr, char* utf8, cairo_text_extents_t* extents)cairo_text_extents;
+	void function(cairo_t* cr, cairo_glyph_t* glyphs, int numGlyphs, cairo_text_extents_t* extents)cairo_glyph_extents;
+	
+	// cairo.Pattern
+	
+	void function(cairo_pattern_t* pattern, double offset, double red, double green, double blue)cairo_pattern_add_color_stop_rgb;
+	void function(cairo_pattern_t* pattern, double offset, double red, double green, double blue, double alpha)cairo_pattern_add_color_stop_rgba;
+	cairo_pattern_t* function(double red, double green, double blue)cairo_pattern_create_rgb;
+	cairo_pattern_t* function(double red, double green, double blue, double alpha)cairo_pattern_create_rgba;
+	cairo_pattern_t* function(cairo_surface_t* surface)cairo_pattern_create_for_surface;
+	cairo_pattern_t* function(double x0, double y0, double x1, double y1)cairo_pattern_create_linear;
+	cairo_pattern_t* function(double cx0, double cy0, double radius0, double cx1, double cy1, double radius1)cairo_pattern_create_radial;
+	void function(cairo_pattern_t* pattern)cairo_pattern_destroy;
+	cairo_pattern_t* function(cairo_pattern_t* pattern)cairo_pattern_reference;
+	cairo_status_t function(cairo_pattern_t* pattern)cairo_pattern_status;
+	void function(cairo_pattern_t* pattern, cairo_extend_t extend)cairo_pattern_set_extend;
+	cairo_extend_t function(cairo_pattern_t* pattern)cairo_pattern_get_extend;
+	void function(cairo_pattern_t* pattern, cairo_filter_t filter)cairo_pattern_set_filter;
+	cairo_filter_t function(cairo_pattern_t* pattern)cairo_pattern_get_filter;
+	void function(cairo_pattern_t* pattern, cairo_matrix_t* matrix)cairo_pattern_set_matrix;
+	void function(cairo_pattern_t* pattern, cairo_matrix_t* matrix)cairo_pattern_get_matrix;
+	cairo_pattern_type_t function(cairo_pattern_t* pattern)cairo_pattern_get_type;
+	
+	// cairo.FontFace
+	
+	cairo_font_face_t* function(cairo_font_face_t* fontFace)cairo_font_face_reference;
+	void function(cairo_font_face_t* fontFace)cairo_font_face_destroy;
+	cairo_status_t function(cairo_font_face_t* fontFace)cairo_font_face_status;
+	void* function(cairo_font_face_t* fontFace, cairo_user_data_key_t* key)cairo_font_face_get_user_data;
+	cairo_status_t function(cairo_font_face_t* fontFace, cairo_user_data_key_t* key, void* userData, cairo_destroy_func_t destroy)cairo_font_face_set_user_data;
+	cairo_font_type_t function(cairo_font_face_t* fontFace)cairo_font_face_get_type;
+	
+	// cairo.ScaledFont
+	
+	cairo_scaled_font_t* function(cairo_font_face_t* fontFace, cairo_matrix_t* fontMatrix, cairo_matrix_t* ctm, cairo_font_options_t* options)cairo_scaled_font_create;
+	cairo_scaled_font_t* function(cairo_scaled_font_t* scaledFont)cairo_scaled_font_reference;
+	void function(cairo_scaled_font_t* scaledFont)cairo_scaled_font_destroy;
+	cairo_status_t function(cairo_scaled_font_t* scaledFont)cairo_scaled_font_status;
+	void function(cairo_scaled_font_t* scaledFont, cairo_font_extents_t* extents)cairo_scaled_font_extents;
+	void function(cairo_scaled_font_t* scaledFont, char* utf8, cairo_text_extents_t* extents)cairo_scaled_font_text_extents;
+	void function(cairo_scaled_font_t* scaledFont, cairo_glyph_t* glyphs, int numGlyphs, cairo_text_extents_t* extents)cairo_scaled_font_glyph_extents;
+	cairo_font_face_t* function(cairo_scaled_font_t* scaledFont)cairo_scaled_font_get_font_face;
+	void function(cairo_scaled_font_t* scaledFont, cairo_font_options_t* options)cairo_scaled_font_get_font_options;
+	void function(cairo_scaled_font_t* scaledFont, cairo_matrix_t* fontMatrix)cairo_scaled_font_get_font_matrix;
+	void function(cairo_scaled_font_t* scaledFont, cairo_matrix_t* ctm)cairo_scaled_font_get_ctm;
+	cairo_font_type_t function(cairo_scaled_font_t* scaledFont)cairo_scaled_font_get_type;
+	
+	// cairo.FontOption
+	
+	cairo_font_options_t* function()cairo_font_options_create;
+	cairo_font_options_t* function(cairo_font_options_t* original)cairo_font_options_copy;
+	void function(cairo_font_options_t* options)cairo_font_options_destroy;
+	cairo_status_t function(cairo_font_options_t* options)cairo_font_options_status;
+	void function(cairo_font_options_t* options, cairo_font_options_t* other)cairo_font_options_merge;
+	ulong function(cairo_font_options_t* options)cairo_font_options_hash;
+	cairo_bool_t function(cairo_font_options_t* options, cairo_font_options_t* other)cairo_font_options_equal;
+	void function(cairo_font_options_t* options, cairo_antialias_t antialias)cairo_font_options_set_antialias;
+	cairo_antialias_t function(cairo_font_options_t* options)cairo_font_options_get_antialias;
+	void function(cairo_font_options_t* options, cairo_subpixel_order_t subpixelOrder)cairo_font_options_set_subpixel_order;
+	cairo_subpixel_order_t function(cairo_font_options_t* options)cairo_font_options_get_subpixel_order;
+	void function(cairo_font_options_t* options, cairo_hint_style_t hintStyle)cairo_font_options_set_hint_style;
+	cairo_hint_style_t function(cairo_font_options_t* options)cairo_font_options_get_hint_style;
+	void function(cairo_font_options_t* options, cairo_hint_metrics_t hintMetrics)cairo_font_options_set_hint_metrics;
+	cairo_hint_metrics_t function(cairo_font_options_t* options)cairo_font_options_get_hint_metrics;
+	
+	// cairo.Surface
+	
+	cairo_surface_t* function(cairo_surface_t* other, cairo_content_t content, int width, int height)cairo_surface_create_similar;
+	void function(cairo_surface_t* surface)cairo_surface_destroy;
+	void function(cairo_surface_t* surface)cairo_surface_finish;
+	void function(cairo_surface_t* surface)cairo_surface_flush;
+	void function(cairo_surface_t* surface, cairo_font_options_t* options)cairo_surface_get_font_options;
+	cairo_content_t function(cairo_surface_t* surface)cairo_surface_get_content;
+	cairo_status_t function(cairo_surface_t* surface, cairo_user_data_key_t* key, void* userData, cairo_destroy_func_t destroy)cairo_surface_set_user_data;
+	void* function(cairo_surface_t* surface, cairo_user_data_key_t* key)cairo_surface_get_user_data;
+	void function(cairo_surface_t* surface)cairo_surface_mark_dirty;
+	void function(cairo_surface_t* surface, int x, int y, int width, int height)cairo_surface_mark_dirty_rectangle;
+	cairo_surface_t* function(cairo_surface_t* surface)cairo_surface_reference;
+	void function(cairo_surface_t* surface, double xOffset, double yOffset)cairo_surface_set_device_offset;
+	void function(cairo_surface_t* surface, double* xOffset, double* yOffset)cairo_surface_get_device_offset;
+	void function(cairo_surface_t* surface, double xPixelsPerInch, double yPixelsPerInch)cairo_surface_set_fallback_resolution;
+	cairo_status_t function(cairo_surface_t* surface)cairo_surface_status;
+	cairo_surface_type_t function(cairo_surface_t* surface)cairo_surface_get_type;
+	cairo_surface_t* function(cairo_format_t format, int width, int height)cairo_image_surface_create;
+	cairo_surface_t* function(uchar* data, cairo_format_t format, int width, int height, int stride)cairo_image_surface_create_for_data;
+	uchar* function(cairo_surface_t* surface)cairo_image_surface_get_data;
+	cairo_format_t function(cairo_surface_t* surface)cairo_image_surface_get_format;
+	int function(cairo_surface_t* surface)cairo_image_surface_get_width;
+	int function(cairo_surface_t* surface)cairo_image_surface_get_height;
+	int function(cairo_surface_t* surface)cairo_image_surface_get_stride;
+	
+	// cairo.Matrix
+	
+	void function(cairo_matrix_t* matrix, double xx, double yx, double xy, double yy, double x0, double y0)cairo_matrix_init;
+	void function(cairo_matrix_t* matrix)cairo_matrix_init_identity;
+	void function(cairo_matrix_t* matrix, double tx, double ty)cairo_matrix_init_translate;
+	void function(cairo_matrix_t* matrix, double sx, double sy)cairo_matrix_init_scale;
+	void function(cairo_matrix_t* matrix, double radians)cairo_matrix_init_rotate;
+	void function(cairo_matrix_t* matrix, double tx, double ty)cairo_matrix_translate;
+	void function(cairo_matrix_t* matrix, double sx, double sy)cairo_matrix_scale;
+	void function(cairo_matrix_t* matrix, double radians)cairo_matrix_rotate;
+	cairo_status_t function(cairo_matrix_t* matrix)cairo_matrix_invert;
+	void function(cairo_matrix_t* result, cairo_matrix_t* a, cairo_matrix_t* b)cairo_matrix_multiply;
+	void function(cairo_matrix_t* matrix, double* dx, double* dy)cairo_matrix_transform_distance;
+	void function(cairo_matrix_t* matrix, double* x, double* y)cairo_matrix_transform_point;
+	
+	// cairo.Status
+	
+	char* function(cairo_status_t status)cairo_status_to_string;
+	void function()cairo_debug_reset_static_data;
+	
+	// cairo.Version
+	
+	int function()cairo_version;
+	char* function()cairo_version_string;
+	
+	// cairo.
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+Symbol[] cairoLinks = 
+[
+
+	{ "cairo_create",  cast(void**)& cairo_create},
+	{ "cairo_reference",  cast(void**)& cairo_reference},
+	{ "cairo_destroy",  cast(void**)& cairo_destroy},
+	{ "cairo_status",  cast(void**)& cairo_status},
+	{ "cairo_save",  cast(void**)& cairo_save},
+	{ "cairo_restore",  cast(void**)& cairo_restore},
+	{ "cairo_get_target",  cast(void**)& cairo_get_target},
+	{ "cairo_push_group",  cast(void**)& cairo_push_group},
+	{ "cairo_push_group_with_content",  cast(void**)& cairo_push_group_with_content},
+	{ "cairo_pop_group",  cast(void**)& cairo_pop_group},
+	{ "cairo_pop_group_to_source",  cast(void**)& cairo_pop_group_to_source},
+	{ "cairo_get_group_target",  cast(void**)& cairo_get_group_target},
+	{ "cairo_set_source_rgb",  cast(void**)& cairo_set_source_rgb},
+	{ "cairo_set_source_rgba",  cast(void**)& cairo_set_source_rgba},
+	{ "cairo_set_source",  cast(void**)& cairo_set_source},
+	{ "cairo_set_source_surface",  cast(void**)& cairo_set_source_surface},
+	{ "cairo_get_source",  cast(void**)& cairo_get_source},
+	{ "cairo_set_antialias",  cast(void**)& cairo_set_antialias},
+	{ "cairo_get_antialias",  cast(void**)& cairo_get_antialias},
+	{ "cairo_set_dash",  cast(void**)& cairo_set_dash},
+	{ "cairo_set_fill_rule",  cast(void**)& cairo_set_fill_rule},
+	{ "cairo_get_fill_rule",  cast(void**)& cairo_get_fill_rule},
+	{ "cairo_set_line_cap",  cast(void**)& cairo_set_line_cap},
+	{ "cairo_get_line_cap",  cast(void**)& cairo_get_line_cap},
+	{ "cairo_set_line_join",  cast(void**)& cairo_set_line_join},
+	{ "cairo_get_line_join",  cast(void**)& cairo_get_line_join},
+	{ "cairo_set_line_width",  cast(void**)& cairo_set_line_width},
+	{ "cairo_get_line_width",  cast(void**)& cairo_get_line_width},
+	{ "cairo_set_miter_limit",  cast(void**)& cairo_set_miter_limit},
+	{ "cairo_get_miter_limit",  cast(void**)& cairo_get_miter_limit},
+	{ "cairo_set_operator",  cast(void**)& cairo_set_operator},
+	{ "cairo_get_operator",  cast(void**)& cairo_get_operator},
+	{ "cairo_set_tolerance",  cast(void**)& cairo_set_tolerance},
+	{ "cairo_get_tolerance",  cast(void**)& cairo_get_tolerance},
+	{ "cairo_clip",  cast(void**)& cairo_clip},
+	{ "cairo_clip_preserve",  cast(void**)& cairo_clip_preserve},
+	{ "cairo_reset_clip",  cast(void**)& cairo_reset_clip},
+	{ "cairo_fill",  cast(void**)& cairo_fill},
+	{ "cairo_fill_preserve",  cast(void**)& cairo_fill_preserve},
+	{ "cairo_fill_extents",  cast(void**)& cairo_fill_extents},
+	{ "cairo_in_fill",  cast(void**)& cairo_in_fill},
+	{ "cairo_mask",  cast(void**)& cairo_mask},
+	{ "cairo_mask_surface",  cast(void**)& cairo_mask_surface},
+	{ "cairo_paint",  cast(void**)& cairo_paint},
+	{ "cairo_paint_with_alpha",  cast(void**)& cairo_paint_with_alpha},
+	{ "cairo_stroke",  cast(void**)& cairo_stroke},
+	{ "cairo_stroke_preserve",  cast(void**)& cairo_stroke_preserve},
+	{ "cairo_stroke_extents",  cast(void**)& cairo_stroke_extents},
+	{ "cairo_in_stroke",  cast(void**)& cairo_in_stroke},
+	{ "cairo_copy_page",  cast(void**)& cairo_copy_page},
+	{ "cairo_show_page",  cast(void**)& cairo_show_page},
+	{ "cairo_copy_path",  cast(void**)& cairo_copy_path},
+	{ "cairo_copy_path_flat",  cast(void**)& cairo_copy_path_flat},
+	{ "cairo_path_destroy",  cast(void**)& cairo_path_destroy},
+	{ "cairo_append_path",  cast(void**)& cairo_append_path},
+	{ "cairo_get_current_point",  cast(void**)& cairo_get_current_point},
+	{ "cairo_new_path",  cast(void**)& cairo_new_path},
+	{ "cairo_new_sub_path",  cast(void**)& cairo_new_sub_path},
+	{ "cairo_close_path",  cast(void**)& cairo_close_path},
+	{ "cairo_arc",  cast(void**)& cairo_arc},
+	{ "cairo_arc_negative",  cast(void**)& cairo_arc_negative},
+	{ "cairo_curve_to",  cast(void**)& cairo_curve_to},
+	{ "cairo_line_to",  cast(void**)& cairo_line_to},
+	{ "cairo_move_to",  cast(void**)& cairo_move_to},
+	{ "cairo_rectangle",  cast(void**)& cairo_rectangle},
+	{ "cairo_glyph_path",  cast(void**)& cairo_glyph_path},
+	{ "cairo_text_path",  cast(void**)& cairo_text_path},
+	{ "cairo_rel_curve_to",  cast(void**)& cairo_rel_curve_to},
+	{ "cairo_rel_line_to",  cast(void**)& cairo_rel_line_to},
+	{ "cairo_rel_move_to",  cast(void**)& cairo_rel_move_to},
+	{ "cairo_translate",  cast(void**)& cairo_translate},
+	{ "cairo_scale",  cast(void**)& cairo_scale},
+	{ "cairo_rotate",  cast(void**)& cairo_rotate},
+	{ "cairo_transform",  cast(void**)& cairo_transform},
+	{ "cairo_set_matrix",  cast(void**)& cairo_set_matrix},
+	{ "cairo_get_matrix",  cast(void**)& cairo_get_matrix},
+	{ "cairo_identity_matrix",  cast(void**)& cairo_identity_matrix},
+	{ "cairo_user_to_device",  cast(void**)& cairo_user_to_device},
+	{ "cairo_user_to_device_distance",  cast(void**)& cairo_user_to_device_distance},
+	{ "cairo_device_to_user",  cast(void**)& cairo_device_to_user},
+	{ "cairo_device_to_user_distance",  cast(void**)& cairo_device_to_user_distance},
+	{ "cairo_select_font_face",  cast(void**)& cairo_select_font_face},
+	{ "cairo_set_font_size",  cast(void**)& cairo_set_font_size},
+	{ "cairo_set_font_matrix",  cast(void**)& cairo_set_font_matrix},
+	{ "cairo_get_font_matrix",  cast(void**)& cairo_get_font_matrix},
+	{ "cairo_set_font_options",  cast(void**)& cairo_set_font_options},
+	{ "cairo_get_font_options",  cast(void**)& cairo_get_font_options},
+	{ "cairo_show_text",  cast(void**)& cairo_show_text},
+	{ "cairo_show_glyphs",  cast(void**)& cairo_show_glyphs},
+	{ "cairo_get_font_face",  cast(void**)& cairo_get_font_face},
+	{ "cairo_font_extents",  cast(void**)& cairo_font_extents},
+	{ "cairo_set_font_face",  cast(void**)& cairo_set_font_face},
+	{ "cairo_set_scaled_font",  cast(void**)& cairo_set_scaled_font},
+	{ "cairo_text_extents",  cast(void**)& cairo_text_extents},
+	{ "cairo_glyph_extents",  cast(void**)& cairo_glyph_extents},
+	{ "cairo_pattern_add_color_stop_rgb",  cast(void**)& cairo_pattern_add_color_stop_rgb},
+	{ "cairo_pattern_add_color_stop_rgba",  cast(void**)& cairo_pattern_add_color_stop_rgba},
+	{ "cairo_pattern_create_rgb",  cast(void**)& cairo_pattern_create_rgb},
+	{ "cairo_pattern_create_rgba",  cast(void**)& cairo_pattern_create_rgba},
+	{ "cairo_pattern_create_for_surface",  cast(void**)& cairo_pattern_create_for_surface},
+	{ "cairo_pattern_create_linear",  cast(void**)& cairo_pattern_create_linear},
+	{ "cairo_pattern_create_radial",  cast(void**)& cairo_pattern_create_radial},
+	{ "cairo_pattern_destroy",  cast(void**)& cairo_pattern_destroy},
+	{ "cairo_pattern_reference",  cast(void**)& cairo_pattern_reference},
+	{ "cairo_pattern_status",  cast(void**)& cairo_pattern_status},
+	{ "cairo_pattern_set_extend",  cast(void**)& cairo_pattern_set_extend},
+	{ "cairo_pattern_get_extend",  cast(void**)& cairo_pattern_get_extend},
+	{ "cairo_pattern_set_filter",  cast(void**)& cairo_pattern_set_filter},
+	{ "cairo_pattern_get_filter",  cast(void**)& cairo_pattern_get_filter},
+	{ "cairo_pattern_set_matrix",  cast(void**)& cairo_pattern_set_matrix},
+	{ "cairo_pattern_get_matrix",  cast(void**)& cairo_pattern_get_matrix},
+	{ "cairo_pattern_get_type",  cast(void**)& cairo_pattern_get_type},
+	{ "cairo_font_face_reference",  cast(void**)& cairo_font_face_reference},
+	{ "cairo_font_face_destroy",  cast(void**)& cairo_font_face_destroy},
+	{ "cairo_font_face_status",  cast(void**)& cairo_font_face_status},
+	{ "cairo_font_face_get_user_data",  cast(void**)& cairo_font_face_get_user_data},
+	{ "cairo_font_face_set_user_data",  cast(void**)& cairo_font_face_set_user_data},
+	{ "cairo_font_face_get_type",  cast(void**)& cairo_font_face_get_type},
+	{ "cairo_scaled_font_create",  cast(void**)& cairo_scaled_font_create},
+	{ "cairo_scaled_font_reference",  cast(void**)& cairo_scaled_font_reference},
+	{ "cairo_scaled_font_destroy",  cast(void**)& cairo_scaled_font_destroy},
+	{ "cairo_scaled_font_status",  cast(void**)& cairo_scaled_font_status},
+	{ "cairo_scaled_font_extents",  cast(void**)& cairo_scaled_font_extents},
+	{ "cairo_scaled_font_text_extents",  cast(void**)& cairo_scaled_font_text_extents},
+	{ "cairo_scaled_font_glyph_extents",  cast(void**)& cairo_scaled_font_glyph_extents},
+	{ "cairo_scaled_font_get_font_face",  cast(void**)& cairo_scaled_font_get_font_face},
+	{ "cairo_scaled_font_get_font_options",  cast(void**)& cairo_scaled_font_get_font_options},
+	{ "cairo_scaled_font_get_font_matrix",  cast(void**)& cairo_scaled_font_get_font_matrix},
+	{ "cairo_scaled_font_get_ctm",  cast(void**)& cairo_scaled_font_get_ctm},
+	{ "cairo_scaled_font_get_type",  cast(void**)& cairo_scaled_font_get_type},
+	{ "cairo_font_options_create",  cast(void**)& cairo_font_options_create},
+	{ "cairo_font_options_copy",  cast(void**)& cairo_font_options_copy},
+	{ "cairo_font_options_destroy",  cast(void**)& cairo_font_options_destroy},
+	{ "cairo_font_options_status",  cast(void**)& cairo_font_options_status},
+	{ "cairo_font_options_merge",  cast(void**)& cairo_font_options_merge},
+	{ "cairo_font_options_hash",  cast(void**)& cairo_font_options_hash},
+	{ "cairo_font_options_equal",  cast(void**)& cairo_font_options_equal},
+	{ "cairo_font_options_set_antialias",  cast(void**)& cairo_font_options_set_antialias},
+	{ "cairo_font_options_get_antialias",  cast(void**)& cairo_font_options_get_antialias},
+	{ "cairo_font_options_set_subpixel_order",  cast(void**)& cairo_font_options_set_subpixel_order},
+	{ "cairo_font_options_get_subpixel_order",  cast(void**)& cairo_font_options_get_subpixel_order},
+	{ "cairo_font_options_set_hint_style",  cast(void**)& cairo_font_options_set_hint_style},
+	{ "cairo_font_options_get_hint_style",  cast(void**)& cairo_font_options_get_hint_style},
+	{ "cairo_font_options_set_hint_metrics",  cast(void**)& cairo_font_options_set_hint_metrics},
+	{ "cairo_font_options_get_hint_metrics",  cast(void**)& cairo_font_options_get_hint_metrics},
+	{ "cairo_surface_create_similar",  cast(void**)& cairo_surface_create_similar},
+	{ "cairo_surface_destroy",  cast(void**)& cairo_surface_destroy},
+	{ "cairo_surface_finish",  cast(void**)& cairo_surface_finish},
+	{ "cairo_surface_flush",  cast(void**)& cairo_surface_flush},
+	{ "cairo_surface_get_font_options",  cast(void**)& cairo_surface_get_font_options},
+	{ "cairo_surface_get_content",  cast(void**)& cairo_surface_get_content},
+	{ "cairo_surface_set_user_data",  cast(void**)& cairo_surface_set_user_data},
+	{ "cairo_surface_get_user_data",  cast(void**)& cairo_surface_get_user_data},
+	{ "cairo_surface_mark_dirty",  cast(void**)& cairo_surface_mark_dirty},
+	{ "cairo_surface_mark_dirty_rectangle",  cast(void**)& cairo_surface_mark_dirty_rectangle},
+	{ "cairo_surface_reference",  cast(void**)& cairo_surface_reference},
+	{ "cairo_surface_set_device_offset",  cast(void**)& cairo_surface_set_device_offset},
+	{ "cairo_surface_get_device_offset",  cast(void**)& cairo_surface_get_device_offset},
+	{ "cairo_surface_set_fallback_resolution",  cast(void**)& cairo_surface_set_fallback_resolution},
+	{ "cairo_surface_status",  cast(void**)& cairo_surface_status},
+	{ "cairo_surface_get_type",  cast(void**)& cairo_surface_get_type},
+	{ "cairo_image_surface_create",  cast(void**)& cairo_image_surface_create},
+	{ "cairo_image_surface_create_for_data",  cast(void**)& cairo_image_surface_create_for_data},
+	{ "cairo_image_surface_get_data",  cast(void**)& cairo_image_surface_get_data},
+	{ "cairo_image_surface_get_format",  cast(void**)& cairo_image_surface_get_format},
+	{ "cairo_image_surface_get_width",  cast(void**)& cairo_image_surface_get_width},
+	{ "cairo_image_surface_get_height",  cast(void**)& cairo_image_surface_get_height},
+	{ "cairo_image_surface_get_stride",  cast(void**)& cairo_image_surface_get_stride},
+	{ "cairo_matrix_init",  cast(void**)& cairo_matrix_init},
+	{ "cairo_matrix_init_identity",  cast(void**)& cairo_matrix_init_identity},
+	{ "cairo_matrix_init_translate",  cast(void**)& cairo_matrix_init_translate},
+	{ "cairo_matrix_init_scale",  cast(void**)& cairo_matrix_init_scale},
+	{ "cairo_matrix_init_rotate",  cast(void**)& cairo_matrix_init_rotate},
+	{ "cairo_matrix_translate",  cast(void**)& cairo_matrix_translate},
+	{ "cairo_matrix_scale",  cast(void**)& cairo_matrix_scale},
+	{ "cairo_matrix_rotate",  cast(void**)& cairo_matrix_rotate},
+	{ "cairo_matrix_invert",  cast(void**)& cairo_matrix_invert},
+	{ "cairo_matrix_multiply",  cast(void**)& cairo_matrix_multiply},
+	{ "cairo_matrix_transform_distance",  cast(void**)& cairo_matrix_transform_distance},
+	{ "cairo_matrix_transform_point",  cast(void**)& cairo_matrix_transform_point},
+	{ "cairo_status_to_string",  cast(void**)& cairo_status_to_string},
+	{ "cairo_debug_reset_static_data",  cast(void**)& cairo_debug_reset_static_data},
+	{ "cairo_version",  cast(void**)& cairo_version},
+	{ "cairo_version_string",  cast(void**)& cairo_version_string},
+
+];
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/gtk/c/cairotypes.d	Sat Jan 05 15:13:44 2008 -0800
@@ -0,0 +1,548 @@
+/******************************************************************************
+
+    This file is part of gtkD.
+
+    gtkD is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation; either version 2.1 of the License, or
+    (at your option) any later version.
+ 
+    gtkD is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with gtkD; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+******************************************************************************/
+
+module dwt.internal.gtk.c.cairotypes;
+
+public import dwt.internal.gtk.c.glibtypes;
+
+/******************************************************************************
+
+******************************************************************************/
+
+private alias void* HDC;
+
+//struct Display;	// to support XLib surfaces
+//struct Visual;	// to support XLib surfaces
+//struct Screen;	// to support XLib surfaces
+
+//private alias void* Drawable;
+//private alias void* Pixmap;
+//public alias bool cairo_bool_t;
+
+alias ubyte uchar;
+
+/**
+ * typedef int cairo_bool_t;
+ * cairo_bool_t is used for boolean values. Returns of type
+ * cairo_bool_t will always be either 0 or 1, but testing against
+ * these values explicitly is not encouraged; just use the
+ * value as a boolean condition.
+ */
+public alias int cairo_bool_t;
+/**
+ * Specifies the type of antialiasing to do when rendering text or shapes.
+ * CAIRO_ANTIALIAS_DEFAULT
+ */
+public enum cairo_antialias_t
+{
+	DEFAULT,
+	NONE,
+	GRAY,
+	SUBPIXEL
+}
+/**
+ * cairo_fill_rule_t is used to select how paths are filled. For both
+ * fill rules, whether or not a point is included in the fill is
+ * determined by taking a ray from that point to infinity and looking
+ * at intersections with the path. The ray can be in any direction,
+ * as long as it doesn't pass through the end point of a segment
+ * or have a tricky intersection such as intersecting tangent to the path.
+ * (Note that filling is not actually implemented in this way. This
+ * is just a description of the rule that is applied.)
+ * New entries may be added in future versions.
+ * CAIRO_FILL_RULE_WINDING
+ */
+public enum cairo_fill_rule_t
+{
+	WINDING,
+	EVEN_ODD
+}
+/**
+ * enumeration for style of line-endings
+ * CAIRO_LINE_CAP_BUTT
+ */
+public enum cairo_line_cap_t
+{
+	BUTT,
+	ROUND,
+	SQUARE
+}
+public enum cairo_line_join_t
+{
+	MITER,
+	ROUND,
+	BEVEL
+}
+public enum cairo_operator_t
+{
+	CLEAR,
+	SOURCE,
+	OVER,
+	IN,
+	OUT,
+	ATOP,
+	DEST,
+	DEST_OVER,
+	DEST_IN,
+	DEST_OUT,
+	DEST_ATOP,
+	XOR,
+	ADD,
+	SATURATE
+}
+public enum cairo_path_data_type_t
+{
+	MOVE_TO,
+	LINE_TO,
+	CURVE_TO,
+	CLOSE_PATH
+}
+public enum cairo_font_slant_t
+{
+	NORMAL,
+	ITALIC,
+	OBLIQUE
+}
+public enum cairo_font_weight_t
+{
+	NORMAL,
+	BOLD
+}
+/**
+ * cairo_extend_t is used to describe how the area outside
+ * of a pattern will be drawn.
+ * New entries may be added in future versions.
+ * CAIRO_EXTEND_NONE
+ */
+public enum cairo_extend_t
+{
+	NONE,
+	REPEAT,
+	REFLECT,
+	PAD
+}
+public enum cairo_filter_t
+{
+	FAST,
+	GOOD,
+	BEST,
+	NEAREST,
+	BILINEAR,
+	GAUSSIAN
+}
+/**
+ * cairo_pattern_type_t is used to describe the type of a given pattern.
+ * The type of a pattern is determined by the function used to create
+ * it. The cairo_pattern_create_rgb() and cairo_pattern_create_rgba()
+ * functions create SOLID patterns. The remaining
+ * cairo_pattern_create functions map to pattern types in obvious
+ * ways.
+ * The pattern type can be queried with cairo_pattern_get_type()
+ * Most cairo_pattern functions can be called with a pattern of any
+ * type, (though trying to change the extend or filter for a solid
+ * pattern will have no effect). A notable exception is
+ * cairo_pattern_add_color_stop_rgb() and
+ * cairo_pattern_add_color_stop_rgba() which must only be called with
+ * gradient patterns (either LINEAR or RADIAL). Otherwise the pattern
+ * will be shutdown and put into an error state.
+ * New entries may be added in future versions.
+ * CAIRO_PATTERN_TYPE_SOLID
+ */
+public enum cairo_pattern_type_t
+{
+	SOLID,
+	SURFACE,
+	LINEAR,
+	RADIAL
+}
+/**
+ * cairo_font_type_t is used to describe the type of a given font
+ * face or scaled font. The font types are also known as "font
+ * backends" within cairo.
+ * The type of a font face is determined by the function used to
+ * create it, which will generally be of the form
+ * cairo_type_font_face_create. The font face type can be queried
+ * with cairo_font_face_get_type()
+ * The various cairo_font_face functions can be used with a font face
+ * of any type.
+ * The type of a scaled font is determined by the type of the font
+ * face passed to cairo_scaled_font_create. The scaled font type can
+ * be queried with cairo_scaled_font_get_type()
+ * The various cairo_scaled_font functions can be used with scaled
+ * fonts of any type, but some font backends also provide
+ * type-specific functions that must only be called with a scaled font
+ * of the appropriate type. These functions have names that begin with
+ * cairo_type_scaled_font such as cairo_ft_scaled_font_lock_face.
+ * The behavior of calling a type-specific function with a scaled font
+ * of the wrong type is undefined.
+ * New entries may be added in future versions.
+ * CAIRO_FONT_TYPE_TOY
+ */
+public enum cairo_font_type_t
+{
+	TOY,
+	FT,
+	WIN32,
+	ATSUI
+}
+/**
+ * The subpixel order specifies the order of color elements within
+ * each pixel on the display device when rendering with an
+ * antialiasing mode of CAIRO_ANTIALIAS_SUBPIXEL.
+ * CAIRO_SUBPIXEL_ORDER_DEFAULT
+ */
+public enum cairo_subpixel_order_t
+{
+	DEFAULT,
+	RGB,
+	BGR,
+	VRGB,
+	VBGR
+}
+/**
+ * Specifies the type of hinting to do on font outlines. Hinting
+ * is the process of fitting outlines to the pixel grid in order
+ * to improve the appearance of the result. Since hinting outlines
+ * involves distorting them, it also reduces the faithfulness
+ * to the original outline shapes. Not all of the outline hinting
+ * styles are supported by all font backends.
+ * New entries may be added in future versions.
+ * CAIRO_HINT_STYLE_DEFAULT
+ */
+public enum cairo_hint_style_t
+{
+	DEFAULT,
+	NONE,
+	SLIGHT,
+	MEDIUM,
+	FULL
+}
+/**
+ * Specifies whether to hint font metrics; hinting font metrics
+ * means quantizing them so that they are integer values in
+ * device space. Doing this improves the consistency of
+ * letter and line spacing, however it also means that text
+ * will be laid out differently at different zoom factors.
+ * CAIRO_HINT_METRICS_DEFAULT
+ */
+public enum cairo_hint_metrics_t
+{
+	DEFAULT,
+	OFF,
+	ON
+}
+/**
+ * cairo_content_t is used to describe the content that a surface will
+ * contain, whether color information, alpha information (translucence
+ * vs. opacity), or both.
+ * Note: The large values here are designed to keep cairo_content_t
+ * values distinct from cairo_format_t values so that the
+ * implementation can detect the error if users confuse the two types.
+ * CAIRO_CONTENT_COLOR
+ */
+public enum cairo_content_t
+{
+	COLOR = 0x1000,
+	ALPHA = 0x2000,
+	COLOR_ALPHA = 0x3000
+}
+/**
+ * cairo_surface_type_t is used to describe the type of a given
+ * surface. The surface types are also known as "backends" or "surface
+ * backends" within cairo.
+ * The type of a surface is determined by the function used to create
+ * it, which will generally be of the form cairo_type_surface_create,
+ * (though see cairo_surface_create_similar as well).
+ * The surface type can be queried with cairo_surface_get_type()
+ * The various cairo_surface functions can be used with surfaces of
+ * any type, but some backends also provide type-specific functions
+ * that must only be called with a surface of the appropriate
+ * type. These functions have names that begin with
+ * cairo_type_surface such as cairo_image_surface_get_width().
+ * The behavior of calling a type-specific function with a surface of
+ * the wrong type is undefined.
+ * New entries may be added in future versions.
+ * CAIRO_SURFACE_TYPE_IMAGE
+ */
+public enum cairo_surface_type_t
+{
+	IMAGE,
+	PDF,
+	PS,
+	XLIB,
+	XCB,
+	GLITZ,
+	QUARTZ,
+	WIN32,
+	BEOS,
+	DIRECTFB,
+	SVG
+}
+/**
+ * cairo_format_t is used to identify the memory format of
+ * image data.
+ * New entries may be added in future versions.
+ * CAIRO_FORMAT_ARGB32
+ */
+public enum cairo_format_t
+{
+	ARGB32,
+	RGB24,
+	A8,
+	A1,
+	RGB16_565
+}
+/**
+ * cairo_status_t is used to indicate errors that can occur when
+ * using Cairo. In some cases it is returned directly by functions.
+ * but when using cairo_t, the last error, if any, is stored in
+ * the context and can be retrieved with cairo_status().
+ * New entries may be added in future versions. Use cairo_status_to_string()
+ * to get a human-readable representation of an error message.
+ * CAIRO_STATUS_SUCCESS
+ */
+public enum cairo_status_t
+{
+	SUCCESS = 0,
+	NO_MEMORY,
+	INVALID_RESTORE,
+	INVALID_POP_GROUP,
+	NO_CURRENT_POINT,
+	INVALID_MATRIX,
+	INVALID_STATUS,
+	NULL_POINTER,
+	INVALID_STRING,
+	INVALID_PATH_DATA,
+	READ_ERROR,
+	WRITE_ERROR,
+	SURFACE_FINISHED,
+	SURFACE_TYPE_MISMATCH,
+	PATTERN_TYPE_MISMATCH,
+	INVALID_CONTENT,
+	INVALID_FORMAT,
+	INVALID_VISUAL,
+	FILE_NOT_FOUND,
+	INVALID_DASH,
+	INVALID_DSC_COMMENT
+}
+
+/**
+ * Main Gtk struct.
+ * A cairo_t contains the current state of the rendering device,
+ * including coordinates of yet to be drawn shapes.
+ */
+public struct cairo_t{}
+
+
+/**
+ * A data structure for holding a path. This data structure serves as
+ * the return value for cairo_copy_path() and
+ * cairo_copy_path_flat() as well the input value for
+ * cairo_append_path().
+ * See cairo_path_data_t for hints on how to iterate over the
+ * actual data within the path.
+ * The num_data member gives the number of elements in the data
+ * array. This number is larger than the number of independent path
+ * portions (defined in cairo_path_data_type_t), since the data
+ * includes both headers and coordinates for each portion.
+ * cairo_status_tstatus;
+ */
+public struct cairo_path_t{}
+// cairo_status_t status;
+// cairo-Paths.html
+// cairo_path_data_t *data;
+// cairo-Paths.html
+// int numData;
+// cairo-Paths.html
+
+
+/**
+ * The cairo_glyph_t structure holds information about a single glyph
+ * when drawing or measuring text. A font is (in simple terms) a
+ * collection of shapes used to draw text. A glyph is one of these
+ * shapes. There can be multiple glyphs for a single character
+ * (alternates to be used in different contexts, for example), or a
+ * glyph can be a ligature of multiple
+ * characters. Cairo doesn't expose any way of converting input text
+ * into glyphs, so in order to use the Cairo interfaces that take
+ * arrays of glyphs, you must directly access the appropriate
+ * underlying font system.
+ * Note that the offsets given by x and y are not cumulative. When
+ * drawing or measuring text, each glyph is individually positioned
+ * with respect to the overall origin
+ * unsignedlongindex;
+ */
+public struct cairo_glyph_t{}
+// unsigned long index;
+// cairo-Text.html
+// double x;
+// cairo-Text.html
+// double y;
+// cairo-Text.html
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct cairo_pattern_t{}
+
+
+/**
+ * Main Gtk struct.
+ * A cairo_font_face_t specifies all aspects of a font other
+ * than the size or font matrix (a font matrix is used to distort
+ * a font by sheering it or scaling it unequally in the two
+ * directions) . A font face can be set on a cairo_t by using
+ * cairo_set_font_face(); the size and font matrix are set with
+ * cairo_set_font_size() and cairo_set_font_matrix().
+ */
+public struct cairo_font_face_t{}
+
+
+/**
+ * Main Gtk struct.
+ * A cairo_scaled_font_t is a font scaled to a particular size and device
+ * resolution. A cairo_scaled_font_t is most useful for low-level font
+ * usage where a library or application wants to cache a reference
+ * to a scaled font to speed up the computation of metrics.
+ */
+public struct cairo_scaled_font_t{}
+
+
+/**
+ * The cairo_font_extents_t structure stores metric information for
+ * a font. Values are given in the current user-space coordinate
+ * system.
+ * Because font metrics are in user-space coordinates, they are
+ * mostly, but not entirely, independent of the current transformation
+ * matrix. If you call cairo_scale(cr, 2.0, 2.0),
+ * text will be drawn twice as big, but the reported text extents will
+ * not be doubled. They will change slightly due to hinting (so you
+ * can't assume that metrics are independent of the transformation
+ * matrix), but otherwise will remain unchanged.
+ * doubleascent;
+ */
+public struct cairo_font_extents_t{}
+// double ascent;
+// cairo-Scaled-Fonts.html
+// double descent;
+// cairo-Scaled-Fonts.html
+// double height;
+// cairo-Scaled-Fonts.html
+// double maxXAdvance;
+// cairo-Scaled-Fonts.html
+// double maxYAdvance;
+// cairo-Scaled-Fonts.html
+
+
+/**
+ * The cairo_text_extents_t structure stores the extents of a single
+ * glyph or a string of glyphs in user-space coordinates. Because text
+ * extents are in user-space coordinates, they are mostly, but not
+ * entirely, independent of the current transformation matrix. If you call
+ * cairo_scale(cr, 2.0, 2.0), text will
+ * be drawn twice as big, but the reported text extents will not be
+ * doubled. They will change slightly due to hinting (so you can't
+ * assume that metrics are independent of the transformation matrix),
+ * but otherwise will remain unchanged.
+ * doublex_bearing;
+ */
+public struct cairo_text_extents_t{}
+// double xBearing;
+// cairo-Scaled-Fonts.html
+// double yBearing;
+// cairo-Scaled-Fonts.html
+// double width;
+// cairo-Scaled-Fonts.html
+// double height;
+// cairo-Scaled-Fonts.html
+// double xAdvance;
+// cairo-Scaled-Fonts.html
+// double yAdvance;
+// cairo-Scaled-Fonts.html
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct cairo_font_options_t{}
+
+
+/**
+ * Main Gtk struct.
+ * A cairo_surface_t represents an image, either as the destination
+ * of a drawing operation or as source when drawing onto another
+ * surface. There are different subtypes of cairo_surface_t for
+ * different drawing backends; for example, cairo_image_surface_create()
+ * creates a bitmap image in memory.
+ * Memory management of cairo_surface_t is done with
+ * cairo_surface_reference() and cairo_surface_destroy().
+ */
+public struct cairo_surface_t{}
+
+
+/**
+ * Main Gtk struct.
+ * A cairo_matrix_t holds an affine transformation, such as a scale,
+ * rotation, shear, or a combination of those. The transformation of
+ * a point (x, y) is given by:
+ */
+public struct cairo_matrix_t{}
+// double xx; double yx;
+// cairo-cairo-matrix-t.html
+// double xy; double yy;
+// cairo-cairo-matrix-t.html
+// double x0; double y0;
+// cairo-cairo-matrix-t.html
+
+
+/**
+ * cairo_user_data_key_t is used for attaching user data to cairo
+ * data structures. The actual contents of the struct is never used,
+ * and there is no need to initialize the object; only the unique
+ * address of a cairo_data_key_t object is used. Typically, you
+ * would just use the address of a static cairo_data_key_t object.
+ * intunused;
+ */
+public struct cairo_user_data_key_t{}
+// int unused;
+// cairo-Types.html
+
+
+/*
+ * major:
+ * minor:
+ * micro:
+ */
+// TODO
+// #define CAIRO_VERSION_ENCODE(major, minor, micro)
+
+/*
+ * cairo_destroy_func_t the type of function which is called when a
+ * data element is destroyed. It is passed the pointer to the data
+ * element and should free any memory and resources allocated for it.
+ * data:
+ *  The data element being destroyed.
+ */
+// void (*cairo_destroy_func_t) (void *data);
+public typedef extern(C) void  function (void*) cairo_destroy_func_t;
+
+// skipped union cairo_path_data_t
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/gtk/c/gdk.d	Sat Jan 05 15:13:44 2008 -0800
@@ -0,0 +1,1368 @@
+/******************************************************************************
+
+    This file is part of gtkD.
+
+    gtkD is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation; either version 2.1 of the License, or
+    (at your option) any later version.
+ 
+    gtkD is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with gtkD; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+******************************************************************************/
+
+module dwt.internal.gtk.c.gdk;
+
+private import dwt.internal.gtk.c.gdktypes;
+private import dwt.internal.gtk.c.cairotypes;
+private import dwt.internal.gtk.runtime.Loader;
+
+/******************************************************************************
+
+******************************************************************************/
+
+private Linker gdkLinker;
+
+/******************************************************************************
+
+******************************************************************************/
+
+static this()
+{
+    gdkLinker = new Linker( getLibraryPath ~ importLibs[LIBRARY.GDK], 
+                            getLibraryPath ~ importLibs[LIBRARY.GDKPIXBUF] );
+    gdkLinker.link( gdkLinks );
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+static ~this()
+{
+    delete gdkLinker;
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+extern(C) 
+{	
+	// gdk.Gdk
+	
+	void function(gint* argc, gchar*** argv)gdk_init;
+	gboolean function(gint* argc, gchar*** argv)gdk_init_check;
+	void function(gint* argc, gchar*** argv)gdk_parse_args;
+	gchar* function()gdk_get_display_arg_name;
+	gchar* function()gdk_set_locale;
+	void function(gchar* smClientId)gdk_set_sm_client_id;
+	void function(gint errorCode)gdk_exit;
+	void function()gdk_notify_startup_complete;
+	void function(gchar* startupId)gdk_notify_startup_complete_with_id;
+	char* function()gdk_get_program_class;
+	void function(char* programClass)gdk_set_program_class;
+	gchar* function()gdk_get_display;
+	void function()gdk_flush;
+	gint function()gdk_screen_width;
+	gint function()gdk_screen_height;
+	gint function()gdk_screen_width_mm;
+	gint function()gdk_screen_height_mm;
+	GdkGrabStatus function(GdkWindow* window, gboolean ownerEvents, GdkEventMask eventMask, GdkWindow* confineTo, GdkCursor* cursor, guint32 time)gdk_pointer_grab;
+	void function(guint32 time)gdk_pointer_ungrab;
+	gboolean function()gdk_pointer_is_grabbed;
+	void function(guint msec)gdk_set_double_click_time;
+	GdkGrabStatus function(GdkWindow* window, gboolean ownerEvents, guint32 time)gdk_keyboard_grab;
+	void function(guint32 time)gdk_keyboard_ungrab;
+	void function()gdk_beep;
+	gboolean function()gdk_get_use_xshm;
+	void function(gboolean useXshm)gdk_set_use_xshm;
+	void function()gdk_error_trap_push;
+	gint function()gdk_error_trap_pop;
+	
+	// gdk.Display
+	
+	GdkDisplay* function(gchar* displayName)gdk_display_open;
+	GdkDisplay* function()gdk_display_get_default;
+	gchar* function(GdkDisplay* display)gdk_display_get_name;
+	gint function(GdkDisplay* display)gdk_display_get_n_screens;
+	GdkScreen* function(GdkDisplay* display, gint screenNum)gdk_display_get_screen;
+	GdkScreen* function(GdkDisplay* display)gdk_display_get_default_screen;
+	void function(GdkDisplay* display, guint32 time)gdk_display_pointer_ungrab;
+	void function(GdkDisplay* display, guint32 time)gdk_display_keyboard_ungrab;
+	gboolean function(GdkDisplay* display)gdk_display_pointer_is_grabbed;
+	void function(GdkDisplay* display)gdk_display_beep;
+	void function(GdkDisplay* display)gdk_display_sync;
+	void function(GdkDisplay* display)gdk_display_flush;
+	void function(GdkDisplay* display)gdk_display_close;
+	GList* function(GdkDisplay* display)gdk_display_list_devices;
+	GdkEvent* function(GdkDisplay* display)gdk_display_get_event;
+	GdkEvent* function(GdkDisplay* display)gdk_display_peek_event;
+	void function(GdkDisplay* display, GdkEvent* event)gdk_display_put_event;
+	void function(GdkDisplay* display, GdkAtom messageType, GdkFilterFunc func, gpointer data)gdk_display_add_client_message_filter;
+	void function(GdkDisplay* display, guint msec)gdk_display_set_double_click_time;
+	void function(GdkDisplay* display, guint distance)gdk_display_set_double_click_distance;
+	void function(GdkDisplay* display, GdkScreen** screen, gint* x, gint* y, GdkModifierType* mask)gdk_display_get_pointer;
+	GdkWindow* function(GdkDisplay* display, gint* winX, gint* winY)gdk_display_get_window_at_pointer;
+	GdkDisplayPointerHooks* function(GdkDisplay* display, GdkDisplayPointerHooks* newHooks)gdk_display_set_pointer_hooks;
+	void function(GdkDisplay* display, GdkScreen* screen, gint x, gint y)gdk_display_warp_pointer;
+	gboolean function(GdkDisplay* display)gdk_display_supports_cursor_color;
+	gboolean function(GdkDisplay* display)gdk_display_supports_cursor_alpha;
+	guint function(GdkDisplay* display)gdk_display_get_default_cursor_size;
+	void function(GdkDisplay* display, guint* width, guint* height)gdk_display_get_maximal_cursor_size;
+	GdkWindow* function(GdkDisplay* display)gdk_display_get_default_group;
+	gboolean function(GdkDisplay* display)gdk_display_supports_selection_notification;
+	gboolean function(GdkDisplay* display, GdkAtom selection)gdk_display_request_selection_notification;
+	gboolean function(GdkDisplay* display)gdk_display_supports_clipboard_persistence;
+	void function(GdkDisplay* display, GdkWindow* clipboardWindow, guint32 time, GdkAtom* targets, gint nTargets)gdk_display_store_clipboard;
+	gboolean function(GdkDisplay* display)gdk_display_supports_shapes;
+	gboolean function(GdkDisplay* display)gdk_display_supports_input_shapes;
+	gboolean function(GdkDisplay* display)gdk_display_supports_composite;
+	
+	// gdk.DisplayManager
+	
+	GdkDisplayManager* function()gdk_display_manager_get;
+	GdkDisplay* function(GdkDisplayManager* displayManager)gdk_display_manager_get_default_display;
+	void function(GdkDisplayManager* displayManager, GdkDisplay* display)gdk_display_manager_set_default_display;
+	GSList* function(GdkDisplayManager* displayManager)gdk_display_manager_list_displays;
+	GdkDevice* function(GdkDisplay* display)gdk_display_get_core_pointer;
+	
+	// gdk.Screen
+	
+	GdkScreen* function()gdk_screen_get_default;
+	GdkColormap* function(GdkScreen* screen)gdk_screen_get_default_colormap;
+	void function(GdkScreen* screen, GdkColormap* colormap)gdk_screen_set_default_colormap;
+	GdkColormap* function(GdkScreen* screen)gdk_screen_get_system_colormap;
+	GdkVisual* function(GdkScreen* screen)gdk_screen_get_system_visual;
+	GdkColormap* function(GdkScreen* screen)gdk_screen_get_rgb_colormap;
+	GdkVisual* function(GdkScreen* screen)gdk_screen_get_rgb_visual;
+	GdkColormap* function(GdkScreen* screen)gdk_screen_get_rgba_colormap;
+	GdkVisual* function(GdkScreen* screen)gdk_screen_get_rgba_visual;
+	gboolean function(GdkScreen* screen)gdk_screen_is_composited;
+	GdkWindow* function(GdkScreen* screen)gdk_screen_get_root_window;
+	GdkDisplay* function(GdkScreen* screen)gdk_screen_get_display;
+	gint function(GdkScreen* screen)gdk_screen_get_number;
+	gint function(GdkScreen* screen)gdk_screen_get_width;
+	gint function(GdkScreen* screen)gdk_screen_get_height;
+	gint function(GdkScreen* screen)gdk_screen_get_width_mm;
+	gint function(GdkScreen* screen)gdk_screen_get_height_mm;
+	GList* function(GdkScreen* screen)gdk_screen_list_visuals;
+	GList* function(GdkScreen* screen)gdk_screen_get_toplevel_windows;
+	gchar* function(GdkScreen* screen)gdk_screen_make_display_name;
+	gint function(GdkScreen* screen)gdk_screen_get_n_monitors;
+	void function(GdkScreen* screen, gint monitorNum, GdkRectangle* dest)gdk_screen_get_monitor_geometry;
+	gint function(GdkScreen* screen, gint x, gint y)gdk_screen_get_monitor_at_point;
+	gint function(GdkScreen* screen, GdkWindow* window)gdk_screen_get_monitor_at_window;
+	void function(GdkScreen* screen, GdkEvent* event)gdk_screen_broadcast_client_message;
+	gboolean function(GdkScreen* screen, gchar* name, GValue* value)gdk_screen_get_setting;
+	cairo_font_options_t* function(GdkScreen* screen)gdk_screen_get_font_options;
+	void function(GdkScreen* screen, cairo_font_options_t* options)gdk_screen_set_font_options;
+	gdouble function(GdkScreen* screen)gdk_screen_get_resolution;
+	void function(GdkScreen* screen, gdouble dpi)gdk_screen_set_resolution;
+	GdkWindow* function(GdkScreen* screen)gdk_screen_get_active_window;
+	GList* function(GdkScreen* screen)gdk_screen_get_window_stack;
+	gboolean function(GdkScreen* screen, gchar* workingDirectory, gchar** argv, gchar** envp, GSpawnFlags flags, GSpawnChildSetupFunc childSetup, gpointer userData, gint* childPid, GError** error)gdk_spawn_on_screen;
+	gboolean function(GdkScreen* screen, gchar* workingDirectory, gchar** argv, gchar** envp, GSpawnFlags flags, GSpawnChildSetupFunc childSetup, gpointer userData, gint* childPid, gint* standardInput, gint* standardOutput, gint* standardError, GError** error)gdk_spawn_on_screen_with_pipes;
+	gboolean function(GdkScreen* screen, gchar* commandLine, GError** error)gdk_spawn_command_line_on_screen;
+	
+	// gdk.Rectangle
+	
+	gboolean function(GdkRectangle* src1, GdkRectangle* src2, GdkRectangle* dest)gdk_rectangle_intersect;
+	void function(GdkRectangle* src1, GdkRectangle* src2, GdkRectangle* dest)gdk_rectangle_union;
+	
+	// gdk.Region
+	
+	GdkRegion* function()gdk_region_new;
+	GdkRegion* function(GdkPoint* points, gint npoints, GdkFillRule fillRule)gdk_region_polygon;
+	GdkRegion* function(GdkRegion* region)gdk_region_copy;
+	GdkRegion* function(GdkRectangle* rectangle)gdk_region_rectangle;
+	void function(GdkRegion* region)gdk_region_destroy;
+	void function(GdkRegion* region, GdkRectangle* rectangle)gdk_region_get_clipbox;
+	void function(GdkRegion* region, GdkRectangle** rectangles, gint* nRectangles)gdk_region_get_rectangles;
+	gboolean function(GdkRegion* region)gdk_region_empty;
+	gboolean function(GdkRegion* region1, GdkRegion* region2)gdk_region_equal;
+	gboolean function(GdkRegion* region, int x, int y)gdk_region_point_in;
+	GdkOverlapType function(GdkRegion* region, GdkRectangle* rectangle)gdk_region_rect_in;
+	void function(GdkRegion* region, gint dx, gint dy)gdk_region_offset;
+	void function(GdkRegion* region, gint dx, gint dy)gdk_region_shrink;
+	void function(GdkRegion* region, GdkRectangle* rect)gdk_region_union_with_rect;
+	void function(GdkRegion* source1, GdkRegion* source2)gdk_region_intersect;
+	void function(GdkRegion* source1, GdkRegion* source2)gdk_region_union;
+	void function(GdkRegion* source1, GdkRegion* source2)gdk_region_subtract;
+	void function(GdkRegion* source1, GdkRegion* source2)gdk_region_xor;
+	void function(GdkRegion* region, GdkSpan* spans, int nSpans, gboolean sorted, GdkSpanFunc funct, gpointer data)gdk_region_spans_intersect_foreach;
+	
+	// gdk.GC
+	
+	GdkGC* function(GdkDrawable* drawable)gdk_gc_new;
+	GdkGC* function(GdkDrawable* drawable, GdkGCValues* values, GdkGCValuesMask valuesMask)gdk_gc_new_with_values;
+	GdkScreen* function(GdkGC* gc)gdk_gc_get_screen;
+	GdkGC* function(GdkGC* gc)gdk_gc_ref;
+	void function(GdkGC* gc)gdk_gc_unref;
+	void function(GdkGC* gc, GdkGCValues* values, GdkGCValuesMask valuesMask)gdk_gc_set_values;
+	void function(GdkGC* gc, GdkGCValues* values)gdk_gc_get_values;
+	void function(GdkGC* gc, GdkColor* color)gdk_gc_set_foreground;
+	void function(GdkGC* gc, GdkColor* color)gdk_gc_set_background;
+	void function(GdkGC* gc, GdkColor* color)gdk_gc_set_rgb_fg_color;
+	void function(GdkGC* gc, GdkColor* color)gdk_gc_set_rgb_bg_color;
+	void function(GdkGC* gc, GdkFont* font)gdk_gc_set_font;
+	void function(GdkGC* gc, GdkFunction funct)gdk_gc_set_function;
+	void function(GdkGC* gc, GdkFill fill)gdk_gc_set_fill;
+	void function(GdkGC* gc, GdkPixmap* tile)gdk_gc_set_tile;
+	void function(GdkGC* gc, GdkPixmap* stipple)gdk_gc_set_stipple;
+	void function(GdkGC* gc, gint x, gint y)gdk_gc_set_ts_origin;
+	void function(GdkGC* gc, gint x, gint y)gdk_gc_set_clip_origin;
+	void function(GdkGC* gc, GdkBitmap* mask)gdk_gc_set_clip_mask;
+	void function(GdkGC* gc, GdkRectangle* rectangle)gdk_gc_set_clip_rectangle;
+	void function(GdkGC* gc, GdkRegion* region)gdk_gc_set_clip_region;
+	void function(GdkGC* gc, GdkSubwindowMode mode)gdk_gc_set_subwindow;
+	void function(GdkGC* gc, gboolean exposures)gdk_gc_set_exposures;
+	void function(GdkGC* gc, gint lineWidth, GdkLineStyle lineStyle, GdkCapStyle capStyle, GdkJoinStyle joinStyle)gdk_gc_set_line_attributes;
+	void function(GdkGC* gc, gint dashOffset, gint8[] dashList, gint n)gdk_gc_set_dashes;
+	void function(GdkGC* dstGc, GdkGC* srcGc)gdk_gc_copy;
+	void function(GdkGC* gc, GdkColormap* colormap)gdk_gc_set_colormap;
+	GdkColormap* function(GdkGC* gc)gdk_gc_get_colormap;
+	void function(GdkGC* gc, gint xOffset, gint yOffset)gdk_gc_offset;
+	
+	// gdk.Drawable
+	
+	GdkDrawable* function(GdkDrawable* drawable)gdk_drawable_ref;
+	void function(GdkDrawable* drawable)gdk_drawable_unref;
+	void function(GdkDrawable* drawable, gchar* key, gpointer data, GDestroyNotify destroyFunc)gdk_drawable_set_data;
+	gpointer function(GdkDrawable* drawable, gchar* key)gdk_drawable_get_data;
+	GdkDisplay* function(GdkDrawable* drawable)gdk_drawable_get_display;
+	GdkScreen* function(GdkDrawable* drawable)gdk_drawable_get_screen;
+	GdkVisual* function(GdkDrawable* drawable)gdk_drawable_get_visual;
+	void function(GdkDrawable* drawable, GdkColormap* colormap)gdk_drawable_set_colormap;
+	GdkColormap* function(GdkDrawable* drawable)gdk_drawable_get_colormap;
+	gint function(GdkDrawable* drawable)gdk_drawable_get_depth;
+	void function(GdkDrawable* drawable, gint* width, gint* height)gdk_drawable_get_size;
+	GdkRegion* function(GdkDrawable* drawable)gdk_drawable_get_clip_region;
+	GdkRegion* function(GdkDrawable* drawable)gdk_drawable_get_visible_region;
+	void function(GdkDrawable* drawable, GdkGC* gc, gint x, gint y)gdk_draw_point;
+	void function(GdkDrawable* drawable, GdkGC* gc, GdkPoint* points, gint npoints)gdk_draw_points;
+	void function(GdkDrawable* drawable, GdkGC* gc, gint x1_, gint y1_, gint x2_, gint y2_)gdk_draw_line;
+	void function(GdkDrawable* drawable, GdkGC* gc, GdkPoint* points, gint npoints)gdk_draw_lines;
+	void function(GdkDrawable* drawable, GdkGC* gc, GdkPixbuf* pixbuf, gint srcX, gint srcY, gint destX, gint destY, gint width, gint height, GdkRgbDither dither, gint xDither, gint yDither)gdk_draw_pixbuf;
+	void function(GdkDrawable* drawable, GdkGC* gc, GdkSegment* segs, gint nsegs)gdk_draw_segments;
+	void function(GdkDrawable* drawable, GdkGC* gc, gboolean filled, gint x, gint y, gint width, gint height)gdk_draw_rectangle;
+	void function(GdkDrawable* drawable, GdkGC* gc, gboolean filled, gint x, gint y, gint width, gint height, gint angle1, gint angle2)gdk_draw_arc;
+	void function(GdkDrawable* drawable, GdkGC* gc, gboolean filled, GdkPoint* points, gint npoints)gdk_draw_polygon;
+	void function(GdkDrawable* drawable, GdkGC* gc, GdkTrapezoid* trapezoids, gint nTrapezoids)gdk_draw_trapezoids;
+	void function(GdkDrawable* drawable, GdkGC* gc, PangoFont* font, gint x, gint y, PangoGlyphString* glyphs)gdk_draw_glyphs;
+	void function(GdkDrawable* drawable, GdkGC* gc, PangoMatrix* matrix, PangoFont* font, gint x, gint y, PangoGlyphString* glyphs)gdk_draw_glyphs_transformed;
+	void function(GdkDrawable* drawable, GdkGC* gc, gint x, gint y, PangoLayoutLine* line)gdk_draw_layout_line;
+	void function(GdkDrawable* drawable, GdkGC* gc, gint x, gint y, PangoLayoutLine* line, GdkColor* foreground, GdkColor* background)gdk_draw_layout_line_with_colors;
+	void function(GdkDrawable* drawable, GdkGC* gc, gint x, gint y, PangoLayout* layout)gdk_draw_layout;
+	void function(GdkDrawable* drawable, GdkGC* gc, gint x, gint y, PangoLayout* layout, GdkColor* foreground, GdkColor* background)gdk_draw_layout_with_colors;
+	void function(GdkDrawable* drawable, GdkFont* font, GdkGC* gc, gint x, gint y, gchar* string)gdk_draw_string;
+	void function(GdkDrawable* drawable, GdkFont* font, GdkGC* gc, gint x, gint y, gchar* text, gint textLength)gdk_draw_text;
+	void function(GdkDrawable* drawable, GdkFont* font, GdkGC* gc, gint x, gint y, GdkWChar* text, gint textLength)gdk_draw_text_wc;
+	void function(GdkDrawable* drawable, GdkGC* gc, GdkDrawable* src, gint xsrc, gint ysrc, gint xdest, gint ydest, gint width, gint height)gdk_draw_drawable;
+	void function(GdkDrawable* drawable, GdkGC* gc, GdkImage* image, gint xsrc, gint ysrc, gint xdest, gint ydest, gint width, gint height)gdk_draw_image;
+	GdkImage* function(GdkDrawable* drawable, gint x, gint y, gint width, gint height)gdk_drawable_get_image;
+	GdkImage* function(GdkDrawable* drawable, GdkImage* image, gint srcX, gint srcY, gint destX, gint destY, gint width, gint height)gdk_drawable_copy_to_image;
+	
+	// gdk.Pixmap
+	
+	GdkPixmap* function(GdkDrawable* drawable, gint width, gint height, gint depth)gdk_pixmap_new;
+	GdkPixmap* function(GdkDrawable* drawable, gchar* data, gint width, gint height, gint depth, GdkColor* fg, GdkColor* bg)gdk_pixmap_create_from_data;
+	GdkPixmap* function(GdkDrawable* drawable, GdkBitmap** mask, GdkColor* transparentColor, gchar* filename)gdk_pixmap_create_from_xpm;
+	GdkPixmap* function(GdkDrawable* drawable, GdkColormap* colormap, GdkBitmap** mask, GdkColor* transparentColor, gchar* filename)gdk_pixmap_colormap_create_from_xpm;
+	GdkPixmap* function(GdkDrawable* drawable, GdkBitmap** mask, GdkColor* transparentColor, gchar** data)gdk_pixmap_create_from_xpm_d;
+	GdkPixmap* function(GdkDrawable* drawable, GdkColormap* colormap, GdkBitmap** mask, GdkColor* transparentColor, gchar** data)gdk_pixmap_colormap_create_from_xpm_d;
+	
+	// gdk.Bitmap
+	
+	GdkBitmap* function(GdkDrawable* drawable, gchar* data, gint width, gint height)gdk_bitmap_create_from_data;
+	
+	// gdk.RGB
+	
+	void function()gdk_rgb_init;
+	void function(GdkDrawable* drawable, GdkGC* gc, gint x, gint y, gint width, gint height, GdkRgbDither dith, guchar* rgbBuf, gint rowstride)gdk_draw_rgb_image;
+	void function(GdkDrawable* drawable, GdkGC* gc, gint x, gint y, gint width, gint height, GdkRgbDither dith, guchar* rgbBuf, gint rowstride, gint xdith, gint ydith)gdk_draw_rgb_image_dithalign;
+	void function(GdkDrawable* drawable, GdkGC* gc, gint x, gint y, gint width, gint height, GdkRgbDither dith, guchar* buf, gint rowstride, GdkRgbCmap* cmap)gdk_draw_indexed_image;
+	void function(GdkDrawable* drawable, GdkGC* gc, gint x, gint y, gint width, gint height, GdkRgbDither dith, guchar* buf, gint rowstride)gdk_draw_gray_image;
+	void function(GdkDrawable* drawable, GdkGC* gc, gint x, gint y, gint width, gint height, GdkRgbDither dith, guchar* buf, gint rowstride)gdk_draw_rgb_32_image;
+	void function(GdkDrawable* drawable, GdkGC* gc, gint x, gint y, gint width, gint height, GdkRgbDither dith, guchar* buf, gint rowstride, gint xdith, gint ydith)gdk_draw_rgb_32_image_dithalign;
+	GdkRgbCmap* function(guint32* colors, gint nColors)gdk_rgb_cmap_new;
+	void function(GdkRgbCmap* cmap)gdk_rgb_cmap_free;
+	void function(GdkGC* gc, guint32 rgb)gdk_rgb_gc_set_foreground;
+	void function(GdkGC* gc, guint32 rgb)gdk_rgb_gc_set_background;
+	gulong function(guint32 rgb)gdk_rgb_xpixel_from_rgb;
+	void function(GdkColormap* colormap, GdkColor* color)gdk_rgb_find_color;
+	void function(gboolean install)gdk_rgb_set_install;
+	void function(gint minColors)gdk_rgb_set_min_colors;
+	GdkVisual* function()gdk_rgb_get_visual;
+	GdkColormap* function()gdk_rgb_get_colormap;
+	gboolean function()gdk_rgb_ditherable;
+	gboolean function(GdkColormap* cmap)gdk_rgb_colormap_ditherable;
+	void function(gboolean verbose)gdk_rgb_set_verbose;
+	
+	// gdk.ImageGdk
+	
+	GdkImage* function(GdkImageType type, GdkVisual* visual, gint width, gint height)gdk_image_new;
+	GdkImage* function(GdkVisual* visual, gpointer data, gint width, gint height)gdk_image_new_bitmap;
+	GdkImage* function(GdkDrawable* drawable, gint x, gint y, gint width, gint height)gdk_image_get;
+	GdkImage* function(GdkImage* image)gdk_image_ref;
+	void function(GdkImage* image)gdk_image_unref;
+	GdkColormap* function(GdkImage* image)gdk_image_get_colormap;
+	void function(GdkImage* image, GdkColormap* colormap)gdk_image_set_colormap;
+	void function(GdkImage* image, gint x, gint y, guint32 pixel)gdk_image_put_pixel;
+	guint32 function(GdkImage* image, gint x, gint y)gdk_image_get_pixel;
+	
+	// gdk.Pixbuf
+	
+	void function(GdkPixbuf* pixbuf, GdkBitmap* bitmap, int srcX, int srcY, int destX, int destY, int width, int height, int alphaThreshold)gdk_pixbuf_render_threshold_alpha;
+	void function(GdkPixbuf* pixbuf, GdkDrawable* drawable, GdkGC* gc, int srcX, int srcY, int destX, int destY, int width, int height, GdkRgbDither dither, int xDither, int yDither)gdk_pixbuf_render_to_drawable;
+	void function(GdkPixbuf* pixbuf, GdkDrawable* drawable, int srcX, int srcY, int destX, int destY, int width, int height, GdkPixbufAlphaMode alphaMode, int alphaThreshold, GdkRgbDither dither, int xDither, int yDither)gdk_pixbuf_render_to_drawable_alpha;
+	void function(GdkPixbuf* pixbuf, GdkPixmap** pixmapReturn, GdkBitmap** maskReturn, int alphaThreshold)gdk_pixbuf_render_pixmap_and_mask;
+	void function(GdkPixbuf* pixbuf, GdkColormap* colormap, GdkPixmap** pixmapReturn, GdkBitmap** maskReturn, int alphaThreshold)gdk_pixbuf_render_pixmap_and_mask_for_colormap;
+	GdkPixbuf* function(GdkPixbuf* dest, GdkDrawable* src, GdkColormap* cmap, int srcX, int srcY, int destX, int destY, int width, int height)gdk_pixbuf_get_from_drawable;
+	GdkPixbuf* function(GdkPixbuf* dest, GdkImage* src, GdkColormap* cmap, int srcX, int srcY, int destX, int destY, int width, int height)gdk_pixbuf_get_from_image;
+	GType function()gdk_pixbuf_get_type;
+	GdkPixbuf* function(guchar* data, GdkColorspace colorspace, gboolean hasAlpha, int bitsPerSample, int width, int height, int rowstride, GdkPixbufDestroyNotify destroyFn, gpointer destroyFnData)gdk_pixbuf_new_from_data;
+	GdkPixbuf* function(char** data)gdk_pixbuf_new_from_xpm_data;
+	GdkPixbuf* function(gint dataLength, guint8* data, gboolean copyPixels, GError** error)gdk_pixbuf_new_from_inline;
+	GdkPixbuf* function(GdkPixbuf* srcPixbuf, int srcX, int srcY, int width, int height)gdk_pixbuf_new_subpixbuf;
+	GdkPixbuf* function(GdkPixbuf* pixbuf)gdk_pixbuf_copy;
+	GdkColorspace function(GdkPixbuf* pixbuf)gdk_pixbuf_get_colorspace;
+	int function(GdkPixbuf* pixbuf)gdk_pixbuf_get_n_channels;
+	gboolean function(GdkPixbuf* pixbuf)gdk_pixbuf_get_has_alpha;
+	int function(GdkPixbuf* pixbuf)gdk_pixbuf_get_bits_per_sample;
+	guchar* function(GdkPixbuf* pixbuf)gdk_pixbuf_get_pixels;
+	int function(GdkPixbuf* pixbuf)gdk_pixbuf_get_width;
+	int function(GdkPixbuf* pixbuf)gdk_pixbuf_get_height;
+	int function(GdkPixbuf* pixbuf)gdk_pixbuf_get_rowstride;
+	gchar* function(GdkPixbuf* pixbuf, gchar* key)gdk_pixbuf_get_option;
+	GdkPixbuf* function(char* filename, GError** error)gdk_pixbuf_new_from_file;
+	GdkPixbuf* function(char* filename, int width, int height, GError** error)gdk_pixbuf_new_from_file_at_size;
+	GdkPixbuf* function(char* filename, int width, int height, gboolean preserveAspectRatio, GError** error)gdk_pixbuf_new_from_file_at_scale;
+	gboolean function(GdkPixbuf* pixbuf, char* filename, char* type, char** optionKeys, char** optionValues, GError** error)gdk_pixbuf_savev;
+	gboolean function(GdkPixbuf* pixbuf, char* filename, char* type, GError** error, ... )gdk_pixbuf_save;
+	gboolean function(GdkPixbuf* pixbuf, GdkPixbufSaveFunc saveFunc, gpointer userData, char* type, GError** error, ... )gdk_pixbuf_save_to_callback;
+	gboolean function(GdkPixbuf* pixbuf, GdkPixbufSaveFunc saveFunc, gpointer userData, char* type, char** optionKeys, char** optionValues, GError** error)gdk_pixbuf_save_to_callbackv;
+	gboolean function(GdkPixbuf* pixbuf, gchar** buffer, gsize* bufferSize, char* type, GError** error, ... )gdk_pixbuf_save_to_buffer;
+	gboolean function(GdkPixbuf* pixbuf, gchar** buffer, gsize* bufferSize, char* type, char** optionKeys, char** optionValues, GError** error)gdk_pixbuf_save_to_bufferv;
+	GdkPixbuf* function(GdkPixbuf* src, int destWidth, int destHeight, GdkInterpType interpType)gdk_pixbuf_scale_simple;
+	void function(GdkPixbuf* src, GdkPixbuf* dest, int destX, int destY, int destWidth, int destHeight, double offsetX, double offsetY, double scaleX, double scaleY, GdkInterpType interpType)gdk_pixbuf_scale;
+	GdkPixbuf* function(GdkPixbuf* src, int destWidth, int destHeight, GdkInterpType interpType, int overallAlpha, int checkSize, guint32 color1, guint32 color2)gdk_pixbuf_composite_color_simple;
+	void function(GdkPixbuf* src, GdkPixbuf* dest, int destX, int destY, int destWidth, int destHeight, double offsetX, double offsetY, double scaleX, double scaleY, GdkInterpType interpType, int overallAlpha)gdk_pixbuf_composite;
+	void function(GdkPixbuf* src, GdkPixbuf* dest, int destX, int destY, int destWidth, int destHeight, double offsetX, double offsetY, double scaleX, double scaleY, GdkInterpType interpType, int overallAlpha, int checkX, int checkY, int checkSize, guint32 color1, guint32 color2)gdk_pixbuf_composite_color;
+	GdkPixbuf* function(GdkPixbuf* src, GdkPixbufRotation angle)gdk_pixbuf_rotate_simple;
+	GdkPixbuf* function(GdkPixbuf* src, gboolean horizontal)gdk_pixbuf_flip;
+	GdkPixbuf* function(GdkPixbuf* pixbuf, gboolean substituteColor, guchar r, guchar g, guchar b)gdk_pixbuf_add_alpha;
+	void function(GdkPixbuf* srcPixbuf, int srcX, int srcY, int width, int height, GdkPixbuf* destPixbuf, int destX, int destY)gdk_pixbuf_copy_area;
+	void function(GdkPixbuf* src, GdkPixbuf* dest, gfloat saturation, gboolean pixelate)gdk_pixbuf_saturate_and_pixelate;
+	GdkPixbuf* function(GdkPixbuf* src)gdk_pixbuf_apply_embedded_orientation;
+	void function(GdkPixbuf* pixbuf, guint32 pixel)gdk_pixbuf_fill;
+	
+	// gdk.Colormap
+	
+	GdkColormap* function(GdkVisual* visual, gboolean allocate)gdk_colormap_new;
+	GdkColormap* function(GdkColormap* cmap)gdk_colormap_ref;
+	void function(GdkColormap* cmap)gdk_colormap_unref;
+	GdkColormap* function()gdk_colormap_get_system;
+	gint function()gdk_colormap_get_system_size;
+	void function(GdkColormap* colormap, gint ncolors)gdk_colormap_change;
+	gint function(GdkColormap* colormap, GdkColor* colors, gint ncolors, gboolean writeable, gboolean bestMatch, gboolean* success)gdk_colormap_alloc_colors;
+	gboolean function(GdkColormap* colormap, GdkColor* color, gboolean writeable, gboolean bestMatch)gdk_colormap_alloc_color;
+	void function(GdkColormap* colormap, GdkColor* colors, gint ncolors)gdk_colormap_free_colors;
+	void function(GdkColormap* colormap, gulong pixel, GdkColor* result)gdk_colormap_query_color;
+	GdkVisual* function(GdkColormap* colormap)gdk_colormap_get_visual;
+	GdkScreen* function(GdkColormap* cmap)gdk_colormap_get_screen;
+	void function(GdkColormap* colormap, GdkColor* colors, gint ncolors)gdk_colors_store;
+	gint function(GdkColormap* colormap, gboolean contiguous, gulong* planes, gint nplanes, gulong* pixels, gint npixels)gdk_colors_alloc;
+	void function(GdkColormap* colormap, gulong* pixels, gint npixels, gulong planes)gdk_colors_free;
+	
+	// gdk.Color
+	
+	GdkColor* function(GdkColor* color)gdk_color_copy;
+	void function(GdkColor* color)gdk_color_free;
+	gint function(GdkColormap* colormap, GdkColor* color)gdk_color_white;
+	gint function(GdkColormap* colormap, GdkColor* color)gdk_color_black;
+	gboolean function(gchar* spec, GdkColor* color)gdk_color_parse;
+	gint function(GdkColormap* colormap, GdkColor* color)gdk_color_alloc;
+	gint function(GdkColormap* colormap, GdkColor* color)gdk_color_change;
+	gboolean function(GdkColor* colora, GdkColor* colorb)gdk_color_equal;
+	guint function(GdkColor* colora)gdk_color_hash;
+	gchar* function(GdkColor* color)gdk_color_to_string;
+	
+	// gdk.Visual
+	
+	void function(gint** depths, gint* count)gdk_query_depths;
+	void function(GdkVisualType** visualTypes, gint* count)gdk_query_visual_types;
+	GList* function()gdk_list_visuals;
+	gint function()gdk_visual_get_best_depth;
+	GdkVisualType function()gdk_visual_get_best_type;
+	GdkVisual* function()gdk_visual_get_system;
+	GdkVisual* function()gdk_visual_get_best;
+	GdkVisual* function(gint depth)gdk_visual_get_best_with_depth;
+	GdkVisual* function(GdkVisualType visualType)gdk_visual_get_best_with_type;
+	GdkVisual* function(gint depth, GdkVisualType visualType)gdk_visual_get_best_with_both;
+	GdkScreen* function(GdkVisual* visual)gdk_visual_get_screen;
+	
+	// gdk.Font
+	
+	GdkFont* function(gchar* fontName)gdk_font_load;
+	GdkFont* function(GdkDisplay* display, gchar* fontName)gdk_font_load_for_display;
+	GdkFont* function(gchar* fontsetName)gdk_fontset_load;
+	GdkFont* function(GdkDisplay* display, gchar* fontsetName)gdk_fontset_load_for_display;
+	GdkFont* function(PangoFontDescription* fontDesc)gdk_font_from_description;
+	GdkFont* function(GdkDisplay* display, PangoFontDescription* fontDesc)gdk_font_from_description_for_display;
+	GdkDisplay* function(GdkFont* font)gdk_font_get_display;
+	GdkFont* function(GdkFont* font)gdk_font_ref;
+	void function(GdkFont* font)gdk_font_unref;
+	gint function(GdkFont* font)gdk_font_id;
+	gboolean function(GdkFont* fonta, GdkFont* fontb)gdk_font_equal;
+	void function(GdkFont* font, gchar* string, gint* lbearing, gint* rbearing, gint* width, gint* ascent, gint* descent)gdk_string_extents;
+	void function(GdkFont* font, gchar* text, gint textLength, gint* lbearing, gint* rbearing, gint* width, gint* ascent, gint* descent)gdk_text_extents;
+	void function(GdkFont* font, GdkWChar* text, gint textLength, gint* lbearing, gint* rbearing, gint* width, gint* ascent, gint* descent)gdk_text_extents_wc;
+	gint function(GdkFont* font, gchar* string)gdk_string_width;
+	gint function(GdkFont* font, gchar* text, gint textLength)gdk_text_width;
+	gint function(GdkFont* font, GdkWChar* text, gint textLength)gdk_text_width_wc;
+	gint function(GdkFont* font, gchar character)gdk_char_width;
+	gint function(GdkFont* font, GdkWChar character)gdk_char_width_wc;
+	gint function(GdkFont* font, gchar* string)gdk_string_measure;
+	gint function(GdkFont* font, gchar* text, gint textLength)gdk_text_measure;
+	gint function(GdkFont* font, gchar character)gdk_char_measure;
+	gint function(GdkFont* font, gchar* string)gdk_string_height;
+	gint function(GdkFont* font, gchar* text, gint textLength)gdk_text_height;
+	gint function(GdkFont* font, gchar character)gdk_char_height;
+	gchar* function(GdkWChar* src)gdk_wcstombs;
+	gint function(GdkWChar* dest, gchar* src, gint destMax)gdk_mbstowcs;
+	
+	// gdk.Cursor
+	
+	GdkCursor* function(GdkCursorType cursorType)gdk_cursor_new;
+	GdkCursor* function(GdkPixmap* source, GdkPixmap* mask, GdkColor* fg, GdkColor* bg, gint x, gint y)gdk_cursor_new_from_pixmap;
+	GdkCursor* function(GdkDisplay* display, GdkPixbuf* pixbuf, gint x, gint y)gdk_cursor_new_from_pixbuf;
+	GdkCursor* function(GdkDisplay* display, gchar* name)gdk_cursor_new_from_name;
+	GdkCursor* function(GdkDisplay* display, GdkCursorType cursorType)gdk_cursor_new_for_display;
+	GdkDisplay* function(GdkCursor* cursor)gdk_cursor_get_display;
+	GdkPixbuf* function(GdkCursor* cursor)gdk_cursor_get_image;
+	GdkCursor* function(GdkCursor* cursor)gdk_cursor_ref;
+	void function(GdkCursor* cursor)gdk_cursor_unref;
+	
+	// gdk.Window
+	
+	GdkWindow* function(GdkWindow* parent, GdkWindowAttr* attributes, gint attributesMask)gdk_window_new;
+	void function(GdkWindow* window)gdk_window_destroy;
+	GdkWindowType function(GdkWindow* window)gdk_window_get_window_type;
+	GdkWindow* function(gint* winX, gint* winY)gdk_window_at_pointer;
+	void function(GdkWindow* window)gdk_window_show;
+	void function(GdkWindow* window)gdk_window_show_unraised;
+	void function(GdkWindow* window)gdk_window_hide;
+	gboolean function(GdkWindow* window)gdk_window_is_visible;
+	gboolean function(GdkWindow* window)gdk_window_is_viewable;
+	GdkWindowState function(GdkWindow* window)gdk_window_get_state;
+	void function(GdkWindow* window)gdk_window_withdraw;
+	void function(GdkWindow* window)gdk_window_iconify;
+	void function(GdkWindow* window)gdk_window_deiconify;
+	void function(GdkWindow* window)gdk_window_stick;
+	void function(GdkWindow* window)gdk_window_unstick;
+	void function(GdkWindow* window)gdk_window_maximize;
+	void function(GdkWindow* window)gdk_window_unmaximize;
+	void function(GdkWindow* window)gdk_window_fullscreen;
+	void function(GdkWindow* window)gdk_window_unfullscreen;
+	void function(GdkWindow* window, gboolean setting)gdk_window_set_keep_above;
+	void function(GdkWindow* window, gboolean setting)gdk_window_set_keep_below;
+	void function(GdkWindow* window, gdouble opacity)gdk_window_set_opacity;
+	void function(GdkWindow* window, gboolean composited)gdk_window_set_composited;
+	void function(GdkWindow* window, gint x, gint y)gdk_window_move;
+	void function(GdkWindow* window, gint width, gint height)gdk_window_resize;
+	void function(GdkWindow* window, gint x, gint y, gint width, gint height)gdk_window_move_resize;
+	void function(GdkWindow* window, gint dx, gint dy)gdk_window_scroll;
+	void function(GdkWindow* window, GdkRegion* region, gint dx, gint dy)gdk_window_move_region;
+	void function(GdkWindow* window, GdkWindow* newParent, gint x, gint y)gdk_window_reparent;
+	void function(GdkWindow* window)gdk_window_clear;
+	void function(GdkWindow* window, gint x, gint y, gint width, gint height)gdk_window_clear_area;
+	void function(GdkWindow* window, gint x, gint y, gint width, gint height)gdk_window_clear_area_e;
+	void function(GdkWindow* window)gdk_window_raise;
+	void function(GdkWindow* window)gdk_window_lower;
+	void function(GdkWindow* window, guint32 timestamp)gdk_window_focus;
+	void function(GdkWindow* window)gdk_window_register_dnd;
+	void function(GdkWindow* window, GdkWindowEdge edge, gint button, gint rootX, gint rootY, guint32 timestamp)gdk_window_begin_resize_drag;
+	void function(GdkWindow* window, gint button, gint rootX, gint rootY, guint32 timestamp)gdk_window_begin_move_drag;
+	void function(GdkGeometry* geometry, guint flags, gint width, gint height, gint* newWidth, gint* newHeight)gdk_window_constrain_size;
+	void function(GdkWindow* window)gdk_window_beep;
+	void function(GdkWindow* window, GdkRectangle* rectangle)gdk_window_begin_paint_rect;
+	void function(GdkWindow* window, GdkRegion* region)gdk_window_begin_paint_region;
+	void function(GdkWindow* window)gdk_window_end_paint;
+	void function(GdkWindow* window, GdkRectangle* rect, gboolean invalidateChildren)gdk_window_invalidate_rect;
+	void function(GdkWindow* window, GdkRegion* region, gboolean invalidateChildren)gdk_window_invalidate_region;
+	GdkRegion* function(GdkWindow* window)gdk_window_get_update_area;
+	void function(GdkWindow* window)gdk_window_freeze_updates;
+	void function(GdkWindow* window)gdk_window_thaw_updates;
+	void function()gdk_window_process_all_updates;
+	void function(GdkWindow* window, gboolean updateChildren)gdk_window_process_updates;
+	void function(gboolean setting)gdk_window_set_debug_updates;
+	void function(GdkWindow* window, GdkDrawable** realDrawable, gint* xOffset, gint* yOffset)gdk_window_get_internal_paint_info;
+	void function(GdkWindow* window)gdk_window_enable_synchronized_configure;
+	void function(GdkWindow* window)gdk_window_configure_finished;
+	void function(GdkWindow* window, gpointer userData)gdk_window_set_user_data;
+	void function(GdkWindow* window, gboolean overrideRedirect)gdk_window_set_override_redirect;
+	void function(GdkWindow* window, gboolean acceptFocus)gdk_window_set_accept_focus;
+	void function(GdkWindow* window, gboolean focusOnMap)gdk_window_set_focus_on_map;
+	void function(GdkWindow* window, GdkFilterFunc funct, gpointer data)gdk_window_add_filter;
+	void function(GdkWindow* window, GdkFilterFunc funct, gpointer data)gdk_window_remove_filter;
+	void function(GdkWindow* window, GdkBitmap* mask, gint x, gint y)gdk_window_shape_combine_mask;
+	void function(GdkWindow* window, GdkRegion* shapeRegion, gint offsetX, gint offsetY)gdk_window_shape_combine_region;
+	void function(GdkWindow* window)gdk_window_set_child_shapes;
+	void function(GdkWindow* window)gdk_window_merge_child_shapes;
+	void function(GdkWindow* window, GdkBitmap* mask, gint x, gint y)gdk_window_input_shape_combine_mask;
+	void function(GdkWindow* window, GdkRegion* shapeRegion, gint offsetX, gint offsetY)gdk_window_input_shape_combine_region;
+	void function(GdkWindow* window)gdk_window_set_child_input_shapes;
+	void function(GdkWindow* window)gdk_window_merge_child_input_shapes;
+	gboolean function(GdkWindow* window, gboolean useStatic)gdk_window_set_static_gravities;
+	void function(GdkWindow* window, gint x, gint y, gint minWidth, gint minHeight, gint maxWidth, gint maxHeight, gint flags)gdk_window_set_hints;
+	void function(GdkWindow* window, gchar* title)gdk_window_set_title;
+	void function(GdkWindow* window, GdkColor* color)gdk_window_set_background;
+	void function(GdkWindow* window, GdkPixmap* pixmap, gboolean parentRelative)gdk_window_set_back_pixmap;
+	void function(GdkWindow* window, GdkCursor* cursor)gdk_window_set_cursor;
+	void function(GdkWindow* window, gpointer* data)gdk_window_get_user_data;
+	void function(GdkWindow* window, gint* x, gint* y, gint* width, gint* height, gint* depth)gdk_window_get_geometry;
+	void function(GdkWindow* window, GdkGeometry* geometry, GdkWindowHints geomMask)gdk_window_set_geometry_hints;
+	void function(GdkWindow* window, GList* pixbufs)gdk_window_set_icon_list;
+	void function(GdkWindow* window, gboolean modal)gdk_window_set_modal_hint;
+	void function(GdkWindow* window, GdkWindowTypeHint hint)gdk_window_set_type_hint;
+	GdkWindowTypeHint function(GdkWindow* window)gdk_window_get_type_hint;
+	void function(GdkWindow* window, gboolean skipsTaskbar)gdk_window_set_skip_taskbar_hint;
+	void function(GdkWindow* window, gboolean skipsPager)gdk_window_set_skip_pager_hint;
+	void function(GdkWindow* window, gboolean urgent)gdk_window_set_urgency_hint;
+	void function(GdkWindow* window, gint* x, gint* y)gdk_window_get_position;
+	void function(GdkWindow* window, gint* x, gint* y)gdk_window_get_root_origin;
+	void function(GdkWindow* window, GdkRectangle* rect)gdk_window_get_frame_extents;
+	gint function(GdkWindow* window, gint* x, gint* y)gdk_window_get_origin;
+	gboolean function(GdkWindow* window, gint* x, gint* y)gdk_window_get_deskrelative_origin;
+	GdkWindow* function(GdkWindow* window, gint* x, gint* y, GdkModifierType* mask)gdk_window_get_pointer;
+	GdkWindow* function(GdkWindow* window)gdk_window_get_parent;
+	GdkWindow* function(GdkWindow* window)gdk_window_get_toplevel;
+	GList* function(GdkWindow* window)gdk_window_get_children;
+	GList* function(GdkWindow* window)gdk_window_peek_children;
+	GdkEventMask function(GdkWindow* window)gdk_window_get_events;
+	void function(GdkWindow* window, GdkEventMask eventMask)gdk_window_set_events;
+	void function(GdkWindow* window, GdkWindow* iconWindow, GdkPixmap* pixmap, GdkBitmap* mask)gdk_window_set_icon;
+	void function(GdkWindow* window, gchar* name)gdk_window_set_icon_name;
+	void function(GdkWindow* window, GdkWindow* parent)gdk_window_set_transient_for;
+	void function(GdkWindow* window, gchar* role)gdk_window_set_role;
+	void function(GdkWindow* window, gchar* startupId)gdk_window_set_startup_id;
+	void function(GdkWindow* window, GdkWindow* leader)gdk_window_set_group;
+	GdkWindow* function(GdkWindow* window)gdk_window_get_group;
+	void function(GdkWindow* window, GdkWMDecoration decorations)gdk_window_set_decorations;
+	gboolean function(GdkWindow* window, GdkWMDecoration* decorations)gdk_window_get_decorations;
+	void function(GdkWindow* window, GdkWMFunction functions)gdk_window_set_functions;
+	GList* function()gdk_window_get_toplevels;
+	GdkWindow* function()gdk_get_default_root_window;
+	GdkPointerHooks* function(GdkPointerHooks* newHooks)gdk_set_pointer_hooks;
+	
+	// gdk.Event
+	
+	gboolean function()gdk_events_pending;
+	GdkEvent* function()gdk_event_peek;
+	GdkEvent* function()gdk_event_get;
+	GdkEvent* function(GdkWindow* window)gdk_event_get_graphics_expose;
+	void function(GdkEvent* event)gdk_event_put;
+	GdkEvent* function(GdkEventType type)gdk_event_new;
+	GdkEvent* function(GdkEvent* event)gdk_event_copy;
+	void function(GdkEvent* event)gdk_event_free;
+	guint32 function(GdkEvent* event)gdk_event_get_time;
+	gboolean function(GdkEvent* event, GdkModifierType* state)gdk_event_get_state;
+	gboolean function(GdkEvent* event, GdkAxisUse axisUse, gdouble* value)gdk_event_get_axis;
+	gboolean function(GdkEvent* event, gdouble* xWin, gdouble* yWin)gdk_event_get_coords;
+	gboolean function(GdkEvent* event, gdouble* xRoot, gdouble* yRoot)gdk_event_get_root_coords;
+	void function(GdkEventMotion* event)gdk_event_request_motions;
+	void function(GdkEventFunc func, gpointer data, GDestroyNotify notify)gdk_event_handler_set;
+	gboolean function(GdkEvent* event, GdkNativeWindow winid)gdk_event_send_client_message;
+	gboolean function(GdkDisplay* display, GdkEvent* event, GdkNativeWindow winid)gdk_event_send_client_message_for_display;
+	void function(GdkEvent* event)gdk_event_send_clientmessage_toall;
+	void function(GdkAtom messageType, GdkFilterFunc func, gpointer data)gdk_add_client_message_filter;
+	gboolean function()gdk_get_show_events;
+	void function(gboolean showEvents)gdk_set_show_events;
+	void function(GdkEvent* event, GdkScreen* screen)gdk_event_set_screen;
+	GdkScreen* function(GdkEvent* event)gdk_event_get_screen;
+	gboolean function(gchar* name, GValue* value)gdk_setting_get;
+	
+	// gdk.
+	
+	
+	// gdk.Keymap
+	
+	GdkKeymap* function()gdk_keymap_get_default;
+	GdkKeymap* function(GdkDisplay* display)gdk_keymap_get_for_display;
+	guint function(GdkKeymap* keymap, GdkKeymapKey* key)gdk_keymap_lookup_key;
+	gboolean function(GdkKeymap* keymap, guint hardwareKeycode, GdkModifierType state, gint group, guint* keyval, gint* effectiveGroup, gint* level, GdkModifierType* consumedModifiers)gdk_keymap_translate_keyboard_state;
+	gboolean function(GdkKeymap* keymap, guint keyval, GdkKeymapKey** keys, gint* nKeys)gdk_keymap_get_entries_for_keyval;
+	gboolean function(GdkKeymap* keymap, guint hardwareKeycode, GdkKeymapKey** keys, guint** keyvals, gint* nEntries)gdk_keymap_get_entries_for_keycode;
+	PangoDirection function(GdkKeymap* keymap)gdk_keymap_get_direction;
+	gboolean function(GdkKeymap* keymap)gdk_keymap_have_bidi_layouts;
+	gchar* function(guint keyval)gdk_keyval_name;
+	guint function(gchar* keyvalName)gdk_keyval_from_name;
+	void function(guint symbol, guint* lower, guint* upper)gdk_keyval_convert_case;
+	guint function(guint keyval)gdk_keyval_to_upper;
+	guint function(guint keyval)gdk_keyval_to_lower;
+	gboolean function(guint keyval)gdk_keyval_is_upper;
+	gboolean function(guint keyval)gdk_keyval_is_lower;
+	guint32 function(guint keyval)gdk_keyval_to_unicode;
+	guint function(guint32 wc)gdk_unicode_to_keyval;
+	
+	// gdk.Selection
+	
+	gboolean function(GdkWindow* owner, GdkAtom selection, guint32 time, gboolean sendEvent)gdk_selection_owner_set;
+	gboolean function(GdkDisplay* display, GdkWindow* owner, GdkAtom selection, guint32 time, gboolean sendEvent)gdk_selection_owner_set_for_display;
+	GdkWindow* function(GdkAtom selection)gdk_selection_owner_get;
+	GdkWindow* function(GdkDisplay* display, GdkAtom selection)gdk_selection_owner_get_for_display;
+	void function(GdkWindow* requestor, GdkAtom selection, GdkAtom target, guint32 time)gdk_selection_convert;
+	gboolean function(GdkWindow* requestor, guchar** data, GdkAtom* propType, gint* propFormat)gdk_selection_property_get;
+	void function(guint32 requestor, GdkAtom selection, GdkAtom target, GdkAtom property, guint32 time)gdk_selection_send_notify;
+	void function(GdkDisplay* display, guint32 requestor, GdkAtom selection, GdkAtom target, GdkAtom property, guint32 time)gdk_selection_send_notify_for_display;
+	
+	// gdk.DragContext
+	
+	GdkAtom function(GdkDragContext* context)gdk_drag_get_selection;
+	void function(GdkDragContext* context, guint32 time)gdk_drag_abort;
+	void function(GdkDragContext* context, gboolean ok, guint32 time)gdk_drop_reply;
+	GdkDragContext* function()gdk_drag_context_new;
+	void function(GdkDragContext* context, guint32 time)gdk_drag_drop;
+	void function(GdkDragContext* context, GdkWindow* dragWindow, gint xRoot, gint yRoot, GdkWindow** destWindow, GdkDragProtocol* protocol)gdk_drag_find_window;
+	void function(GdkDragContext* context, GdkWindow* dragWindow, GdkScreen* screen, gint xRoot, gint yRoot, GdkWindow** destWindow, GdkDragProtocol* protocol)gdk_drag_find_window_for_screen;
+	void function(GdkDragContext* context)gdk_drag_context_ref;
+	GdkDragContext* function(GdkWindow* window, GList* targets)gdk_drag_begin;
+	gboolean function(GdkDragContext* context, GdkWindow* destWindow, GdkDragProtocol protocol, gint xRoot, gint yRoot, GdkDragAction suggestedAction, GdkDragAction possibleActions, guint32 time)gdk_drag_motion;
+	void function(GdkDragContext* context, gboolean success, guint32 time)gdk_drop_finish;
+	guint32 function(guint32 xid, GdkDragProtocol* protocol)gdk_drag_get_protocol;
+	guint32 function(GdkDisplay* display, guint32 xid, GdkDragProtocol* protocol)gdk_drag_get_protocol_for_display;
+	void function(GdkDragContext* context)gdk_drag_context_unref;
+	void function(GdkDragContext* context, GdkDragAction action, guint32 time)gdk_drag_status;
+	gboolean function(GdkDragContext* context)gdk_drag_drop_succeeded;
+	
+	// gdk.
+	
+	void function()gdk_threads_init;
+	void function()gdk_threads_enter;
+	void function()gdk_threads_leave;
+	void function(GCallback enterFn, GCallback leaveFn)gdk_threads_set_lock_functions;
+	guint function(GSourceFunc funct, gpointer data)gdk_threads_add_idle;
+	guint function(gint priority, GSourceFunc funct, gpointer data, GDestroyNotify notify)gdk_threads_add_idle_full;
+	guint function(guint interval, GSourceFunc funct, gpointer data)gdk_threads_add_timeout;
+	guint function(gint priority, guint interval, GSourceFunc funct, gpointer data, GDestroyNotify notify)gdk_threads_add_timeout_full;
+	
+	// gdk.Input
+	
+	gint function(gint source, GdkInputCondition condition, GdkInputFunction funct, gpointer data, GdkDestroyNotify destroy)gdk_input_add_full;
+	gint function(gint source, GdkInputCondition condition, GdkInputFunction funct, gpointer data)gdk_input_add;
+	void function(gint tag)gdk_input_remove;
+	
+	// gdk.Device
+	
+	GList* function()gdk_devices_list;
+	void function(GdkDevice* device, GdkInputSource source)gdk_device_set_source;
+	gboolean function(GdkDevice* device, GdkInputMode mode)gdk_device_set_mode;
+	void function(GdkDevice* device, guint index, guint keyval, GdkModifierType modifiers)gdk_device_set_key;
+	void function(GdkDevice* device, guint index, GdkAxisUse use)gdk_device_set_axis_use;
+	GdkDevice* function()gdk_device_get_core_pointer;
+	void function(GdkDevice* device, GdkWindow* window, gdouble* axes, GdkModifierType* mask)gdk_device_get_state;
+	gboolean function(GdkDevice* device, GdkWindow* window, guint32 start, guint32 stop, GdkTimeCoord*** events, gint* nEvents)gdk_device_get_history;
+	void function(GdkTimeCoord** events, gint nEvents)gdk_device_free_history;
+	gboolean function(GdkDevice* device, gdouble* axes, GdkAxisUse use, gdouble* value)gdk_device_get_axis;
+	void function(GdkWindow* window, gint mask, GdkExtensionMode mode)gdk_input_set_extension_events;
+	
+	// gdk.X11
+/+ Manually disabled. Won't compile, yet.
+	GdkVisual* function(VisualID xvisualid)gdkx_visual_get;
+	GdkColormap* function(Colormap xcolormap)gdkx_colormap_get;
+	GdkPixmap* function(GdkNativeWindow anid)gdk_pixmap_foreign_new;
+	GdkPixmap* function(GdkDisplay* display, GdkNativeWindow anid)gdk_pixmap_foreign_new_for_display;
+	GdkPixmap* function(GdkScreen* screen, GdkNativeWindow anid, gint width, gint height, gint depth)gdk_pixmap_foreign_new_for_screen;
+	GdkWindow* function(GdkNativeWindow anid)gdk_window_foreign_new;
+	GdkWindow* function(GdkDisplay* display, GdkNativeWindow anid)gdk_window_foreign_new_for_display;
+	gpointer function(XID xid)gdk_xid_table_lookup;
+	gpointer function(GdkDisplay* display, XID xid)gdk_xid_table_lookup_for_display;
+	GdkWindow* function(GdkNativeWindow anid)gdk_window_lookup;
+	GdkWindow* function(GdkDisplay* display, GdkNativeWindow anid)gdk_window_lookup_for_display;
+	GdkPixmap* function(GdkNativeWindow anid)gdk_pixmap_lookup;
+	GdkPixmap* function(GdkDisplay* display, GdkNativeWindow anid)gdk_pixmap_lookup_for_display;
+	GdkDisplay* function(Display* xdisplay)gdk_x11_lookup_xdisplay;
+	guint32 function(GdkWindow* window)gdk_x11_get_server_time;
+	gboolean function(GdkAtom property)gdk_net_wm_supports;
+	gboolean function(GdkScreen* screen, GdkAtom property)gdk_x11_screen_supports_net_wm_hint;
+	char* function(GdkScreen* screen)gdk_x11_screen_get_window_manager_name;
+	GdkVisual* function(GdkScreen* screen, VisualID xvisualid)gdk_x11_screen_lookup_visual;
+	void function(GdkWindow* window, guint32 timestamp)gdk_x11_window_set_user_time;
+	void function(GdkWindow* window)gdk_x11_window_move_to_current_desktop;
+	guint32 function(GdkDisplay* display)gdk_x11_display_get_user_time;
+	GdkColormap* function(GdkVisual* visual, Colormap xcolormap)gdk_x11_colormap_foreign_new;
+	Colormap function(GdkColormap* colormap)gdk_x11_colormap_get_xcolormap;
+	Display* function(GdkColormap* colormap)gdk_x11_colormap_get_xdisplay;
+	Cursor function(GdkCursor* cursor)gdk_x11_cursor_get_xcursor;
+	Display* function(GdkCursor* cursor)gdk_x11_cursor_get_xdisplay;
+	void function(GdkDisplay* display, char* messageType, ... )gdk_x11_display_broadcast_startup_message;
+	gchar* function(GdkDisplay* display)gdk_x11_display_get_startup_notification_id;
+	Display* function(GdkDisplay* display)gdk_x11_display_get_xdisplay;
+	void function(GdkDisplay* display)gdk_x11_display_grab;
+	void function(GdkDisplay* display)gdk_x11_display_ungrab;
+	void function(GdkDisplay* display, gchar* theme, gint size)gdk_x11_display_set_cursor_theme;
+	void function(GdkDisplay* display, gint eventBase, gint nEvents)gdk_x11_register_standard_event_type;
+	Display* function(GdkDrawable* drawable)gdk_x11_drawable_get_xdisplay;
+        +/
+	XID function(GdkDrawable* drawable)gdk_x11_drawable_get_xid;
+        /+
+	char* function(GdkFont* font)gdk_x11_font_get_name;
+	Display* function(GdkFont* font)gdk_x11_font_get_xdisplay;
+	gpointer function(GdkFont* font)gdk_x11_font_get_xfont;
+	Display* function(GdkGC* gc)gdk_x11_gc_get_xdisplay;
+	GC function(GdkGC* gc)gdk_x11_gc_get_xgc;
+	Window function()gdk_x11_get_default_root_xwindow;
+	gint function()gdk_x11_get_default_screen;
+	Display* function()gdk_x11_get_default_xdisplay;
+	void function()gdk_x11_grab_server;
+	Display* function(GdkImage* image)gdk_x11_image_get_xdisplay;
+	XImage* function(GdkImage* image)gdk_x11_image_get_ximage;
+	int function(GdkScreen* screen)gdk_x11_screen_get_screen_number;
+	Screen* function(GdkScreen* screen)gdk_x11_screen_get_xscreen;
+	void function()gdk_x11_ungrab_server;
+	Visual* function(GdkVisual* visual)gdk_x11_visual_get_xvisual;
+	Atom function(GdkAtom atom)gdk_x11_atom_to_xatom;
+	Atom function(GdkDisplay* display, GdkAtom atom)gdk_x11_atom_to_xatom_for_display;
+	GdkAtom function(Atom xatom)gdk_x11_xatom_to_atom;
+	GdkAtom function(GdkDisplay* display, Atom xatom)gdk_x11_xatom_to_atom_for_display;
+	Atom function(gchar* atomName)gdk_x11_get_xatom_by_name;
+	Atom function(GdkDisplay* display, gchar* atomName)gdk_x11_get_xatom_by_name_for_display;
+	gchar* function(Atom xatom)gdk_x11_get_xatom_name;
+	gchar* function(GdkDisplay* display, Atom xatom)gdk_x11_get_xatom_name_for_display;
+        +/
+	
+	// gdk.
+	
+	cairo_t* function(GdkDrawable* drawable)gdk_cairo_create;
+	void function(cairo_t* cr, GdkColor* color)gdk_cairo_set_source_color;
+	void function(cairo_t* cr, GdkPixbuf* pixbuf, double pixbufX, double pixbufY)gdk_cairo_set_source_pixbuf;
+	void function(cairo_t* cr, GdkPixmap* pixmap, double pixmapX, double pixmapY)gdk_cairo_set_source_pixmap;
+	void function(cairo_t* cr, GdkRectangle* rectangle)gdk_cairo_rectangle;
+	void function(cairo_t* cr, GdkRegion* region)gdk_cairo_region;
+
+
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+Symbol[] gdkLinks = 
+[
+
+	{ "gdk_init",  cast(void**)& gdk_init},
+	{ "gdk_init_check",  cast(void**)& gdk_init_check},
+	{ "gdk_parse_args",  cast(void**)& gdk_parse_args},
+	{ "gdk_get_display_arg_name",  cast(void**)& gdk_get_display_arg_name},
+	{ "gdk_set_locale",  cast(void**)& gdk_set_locale},
+	{ "gdk_set_sm_client_id",  cast(void**)& gdk_set_sm_client_id},
+	{ "gdk_exit",  cast(void**)& gdk_exit},
+	{ "gdk_notify_startup_complete",  cast(void**)& gdk_notify_startup_complete},
+	{ "gdk_notify_startup_complete_with_id",  cast(void**)& gdk_notify_startup_complete_with_id},
+	{ "gdk_get_program_class",  cast(void**)& gdk_get_program_class},
+	{ "gdk_set_program_class",  cast(void**)& gdk_set_program_class},
+	{ "gdk_get_display",  cast(void**)& gdk_get_display},
+	{ "gdk_flush",  cast(void**)& gdk_flush},
+	{ "gdk_screen_width",  cast(void**)& gdk_screen_width},
+	{ "gdk_screen_height",  cast(void**)& gdk_screen_height},
+	{ "gdk_screen_width_mm",  cast(void**)& gdk_screen_width_mm},
+	{ "gdk_screen_height_mm",  cast(void**)& gdk_screen_height_mm},
+	{ "gdk_pointer_grab",  cast(void**)& gdk_pointer_grab},
+	{ "gdk_pointer_ungrab",  cast(void**)& gdk_pointer_ungrab},
+	{ "gdk_pointer_is_grabbed",  cast(void**)& gdk_pointer_is_grabbed},
+	{ "gdk_set_double_click_time",  cast(void**)& gdk_set_double_click_time},
+	{ "gdk_keyboard_grab",  cast(void**)& gdk_keyboard_grab},
+	{ "gdk_keyboard_ungrab",  cast(void**)& gdk_keyboard_ungrab},
+	{ "gdk_beep",  cast(void**)& gdk_beep},
+	{ "gdk_get_use_xshm",  cast(void**)& gdk_get_use_xshm},
+	{ "gdk_set_use_xshm",  cast(void**)& gdk_set_use_xshm},
+	{ "gdk_error_trap_push",  cast(void**)& gdk_error_trap_push},
+	{ "gdk_error_trap_pop",  cast(void**)& gdk_error_trap_pop},
+	{ "gdk_display_open",  cast(void**)& gdk_display_open},
+	{ "gdk_display_get_default",  cast(void**)& gdk_display_get_default},
+	{ "gdk_display_get_name",  cast(void**)& gdk_display_get_name},
+	{ "gdk_display_get_n_screens",  cast(void**)& gdk_display_get_n_screens},
+	{ "gdk_display_get_screen",  cast(void**)& gdk_display_get_screen},
+	{ "gdk_display_get_default_screen",  cast(void**)& gdk_display_get_default_screen},
+	{ "gdk_display_pointer_ungrab",  cast(void**)& gdk_display_pointer_ungrab},
+	{ "gdk_display_keyboard_ungrab",  cast(void**)& gdk_display_keyboard_ungrab},
+	{ "gdk_display_pointer_is_grabbed",  cast(void**)& gdk_display_pointer_is_grabbed},
+	{ "gdk_display_beep",  cast(void**)& gdk_display_beep},
+	{ "gdk_display_sync",  cast(void**)& gdk_display_sync},
+	{ "gdk_display_flush",  cast(void**)& gdk_display_flush},
+	{ "gdk_display_close",  cast(void**)& gdk_display_close},
+	{ "gdk_display_list_devices",  cast(void**)& gdk_display_list_devices},
+	{ "gdk_display_get_event",  cast(void**)& gdk_display_get_event},
+	{ "gdk_display_peek_event",  cast(void**)& gdk_display_peek_event},
+	{ "gdk_display_put_event",  cast(void**)& gdk_display_put_event},
+	{ "gdk_display_add_client_message_filter",  cast(void**)& gdk_display_add_client_message_filter},
+	{ "gdk_display_set_double_click_time",  cast(void**)& gdk_display_set_double_click_time},
+	{ "gdk_display_set_double_click_distance",  cast(void**)& gdk_display_set_double_click_distance},
+	{ "gdk_display_get_pointer",  cast(void**)& gdk_display_get_pointer},
+	{ "gdk_display_get_window_at_pointer",  cast(void**)& gdk_display_get_window_at_pointer},
+	{ "gdk_display_set_pointer_hooks",  cast(void**)& gdk_display_set_pointer_hooks},
+	{ "gdk_display_warp_pointer",  cast(void**)& gdk_display_warp_pointer},
+	{ "gdk_display_supports_cursor_color",  cast(void**)& gdk_display_supports_cursor_color},
+	{ "gdk_display_supports_cursor_alpha",  cast(void**)& gdk_display_supports_cursor_alpha},
+	{ "gdk_display_get_default_cursor_size",  cast(void**)& gdk_display_get_default_cursor_size},
+	{ "gdk_display_get_maximal_cursor_size",  cast(void**)& gdk_display_get_maximal_cursor_size},
+	{ "gdk_display_get_default_group",  cast(void**)& gdk_display_get_default_group},
+	{ "gdk_display_supports_selection_notification",  cast(void**)& gdk_display_supports_selection_notification},
+	{ "gdk_display_request_selection_notification",  cast(void**)& gdk_display_request_selection_notification},
+	{ "gdk_display_supports_clipboard_persistence",  cast(void**)& gdk_display_supports_clipboard_persistence},
+	{ "gdk_display_store_clipboard",  cast(void**)& gdk_display_store_clipboard},
+	{ "gdk_display_supports_shapes",  cast(void**)& gdk_display_supports_shapes},
+	{ "gdk_display_supports_input_shapes",  cast(void**)& gdk_display_supports_input_shapes},
+	{ "gdk_display_supports_composite",  cast(void**)& gdk_display_supports_composite},
+	{ "gdk_display_manager_get",  cast(void**)& gdk_display_manager_get},
+	{ "gdk_display_manager_get_default_display",  cast(void**)& gdk_display_manager_get_default_display},
+	{ "gdk_display_manager_set_default_display",  cast(void**)& gdk_display_manager_set_default_display},
+	{ "gdk_display_manager_list_displays",  cast(void**)& gdk_display_manager_list_displays},
+	{ "gdk_display_get_core_pointer",  cast(void**)& gdk_display_get_core_pointer},
+	{ "gdk_screen_get_default",  cast(void**)& gdk_screen_get_default},
+	{ "gdk_screen_get_default_colormap",  cast(void**)& gdk_screen_get_default_colormap},
+	{ "gdk_screen_set_default_colormap",  cast(void**)& gdk_screen_set_default_colormap},
+	{ "gdk_screen_get_system_colormap",  cast(void**)& gdk_screen_get_system_colormap},
+	{ "gdk_screen_get_system_visual",  cast(void**)& gdk_screen_get_system_visual},
+	{ "gdk_screen_get_rgb_colormap",  cast(void**)& gdk_screen_get_rgb_colormap},
+	{ "gdk_screen_get_rgb_visual",  cast(void**)& gdk_screen_get_rgb_visual},
+	{ "gdk_screen_get_rgba_colormap",  cast(void**)& gdk_screen_get_rgba_colormap},
+	{ "gdk_screen_get_rgba_visual",  cast(void**)& gdk_screen_get_rgba_visual},
+	{ "gdk_screen_is_composited",  cast(void**)& gdk_screen_is_composited},
+	{ "gdk_screen_get_root_window",  cast(void**)& gdk_screen_get_root_window},
+	{ "gdk_screen_get_display",  cast(void**)& gdk_screen_get_display},
+	{ "gdk_screen_get_number",  cast(void**)& gdk_screen_get_number},
+	{ "gdk_screen_get_width",  cast(void**)& gdk_screen_get_width},
+	{ "gdk_screen_get_height",  cast(void**)& gdk_screen_get_height},
+	{ "gdk_screen_get_width_mm",  cast(void**)& gdk_screen_get_width_mm},
+	{ "gdk_screen_get_height_mm",  cast(void**)& gdk_screen_get_height_mm},
+	{ "gdk_screen_list_visuals",  cast(void**)& gdk_screen_list_visuals},
+	{ "gdk_screen_get_toplevel_windows",  cast(void**)& gdk_screen_get_toplevel_windows},
+	{ "gdk_screen_make_display_name",  cast(void**)& gdk_screen_make_display_name},
+	{ "gdk_screen_get_n_monitors",  cast(void**)& gdk_screen_get_n_monitors},
+	{ "gdk_screen_get_monitor_geometry",  cast(void**)& gdk_screen_get_monitor_geometry},
+	{ "gdk_screen_get_monitor_at_point",  cast(void**)& gdk_screen_get_monitor_at_point},
+	{ "gdk_screen_get_monitor_at_window",  cast(void**)& gdk_screen_get_monitor_at_window},
+	{ "gdk_screen_broadcast_client_message",  cast(void**)& gdk_screen_broadcast_client_message},
+	{ "gdk_screen_get_setting",  cast(void**)& gdk_screen_get_setting},
+	{ "gdk_screen_get_font_options",  cast(void**)& gdk_screen_get_font_options},
+	{ "gdk_screen_set_font_options",  cast(void**)& gdk_screen_set_font_options},
+	{ "gdk_screen_get_resolution",  cast(void**)& gdk_screen_get_resolution},
+	{ "gdk_screen_set_resolution",  cast(void**)& gdk_screen_set_resolution},
+	{ "gdk_screen_get_active_window",  cast(void**)& gdk_screen_get_active_window},
+	{ "gdk_screen_get_window_stack",  cast(void**)& gdk_screen_get_window_stack},
+	{ "gdk_spawn_on_screen",  cast(void**)& gdk_spawn_on_screen},
+	{ "gdk_spawn_on_screen_with_pipes",  cast(void**)& gdk_spawn_on_screen_with_pipes},
+	{ "gdk_spawn_command_line_on_screen",  cast(void**)& gdk_spawn_command_line_on_screen},
+	{ "gdk_rectangle_intersect",  cast(void**)& gdk_rectangle_intersect},
+	{ "gdk_rectangle_union",  cast(void**)& gdk_rectangle_union},
+	{ "gdk_region_new",  cast(void**)& gdk_region_new},
+	{ "gdk_region_polygon",  cast(void**)& gdk_region_polygon},
+	{ "gdk_region_copy",  cast(void**)& gdk_region_copy},
+	{ "gdk_region_rectangle",  cast(void**)& gdk_region_rectangle},
+	{ "gdk_region_destroy",  cast(void**)& gdk_region_destroy},
+	{ "gdk_region_get_clipbox",  cast(void**)& gdk_region_get_clipbox},
+	{ "gdk_region_get_rectangles",  cast(void**)& gdk_region_get_rectangles},
+	{ "gdk_region_empty",  cast(void**)& gdk_region_empty},
+	{ "gdk_region_equal",  cast(void**)& gdk_region_equal},
+	{ "gdk_region_point_in",  cast(void**)& gdk_region_point_in},
+	{ "gdk_region_rect_in",  cast(void**)& gdk_region_rect_in},
+	{ "gdk_region_offset",  cast(void**)& gdk_region_offset},
+	{ "gdk_region_shrink",  cast(void**)& gdk_region_shrink},
+	{ "gdk_region_union_with_rect",  cast(void**)& gdk_region_union_with_rect},
+	{ "gdk_region_intersect",  cast(void**)& gdk_region_intersect},
+	{ "gdk_region_union",  cast(void**)& gdk_region_union},
+	{ "gdk_region_subtract",  cast(void**)& gdk_region_subtract},
+	{ "gdk_region_xor",  cast(void**)& gdk_region_xor},
+	{ "gdk_region_spans_intersect_foreach",  cast(void**)& gdk_region_spans_intersect_foreach},
+	{ "gdk_gc_new",  cast(void**)& gdk_gc_new},
+	{ "gdk_gc_new_with_values",  cast(void**)& gdk_gc_new_with_values},
+	{ "gdk_gc_get_screen",  cast(void**)& gdk_gc_get_screen},
+	{ "gdk_gc_ref",  cast(void**)& gdk_gc_ref},
+	{ "gdk_gc_unref",  cast(void**)& gdk_gc_unref},
+	{ "gdk_gc_set_values",  cast(void**)& gdk_gc_set_values},
+	{ "gdk_gc_get_values",  cast(void**)& gdk_gc_get_values},
+	{ "gdk_gc_set_foreground",  cast(void**)& gdk_gc_set_foreground},
+	{ "gdk_gc_set_background",  cast(void**)& gdk_gc_set_background},
+	{ "gdk_gc_set_rgb_fg_color",  cast(void**)& gdk_gc_set_rgb_fg_color},
+	{ "gdk_gc_set_rgb_bg_color",  cast(void**)& gdk_gc_set_rgb_bg_color},
+	{ "gdk_gc_set_font",  cast(void**)& gdk_gc_set_font},
+	{ "gdk_gc_set_function",  cast(void**)& gdk_gc_set_function},
+	{ "gdk_gc_set_fill",  cast(void**)& gdk_gc_set_fill},
+	{ "gdk_gc_set_tile",  cast(void**)& gdk_gc_set_tile},
+	{ "gdk_gc_set_stipple",  cast(void**)& gdk_gc_set_stipple},
+	{ "gdk_gc_set_ts_origin",  cast(void**)& gdk_gc_set_ts_origin},
+	{ "gdk_gc_set_clip_origin",  cast(void**)& gdk_gc_set_clip_origin},
+	{ "gdk_gc_set_clip_mask",  cast(void**)& gdk_gc_set_clip_mask},
+	{ "gdk_gc_set_clip_rectangle",  cast(void**)& gdk_gc_set_clip_rectangle},
+	{ "gdk_gc_set_clip_region",  cast(void**)& gdk_gc_set_clip_region},
+	{ "gdk_gc_set_subwindow",  cast(void**)& gdk_gc_set_subwindow},
+	{ "gdk_gc_set_exposures",  cast(void**)& gdk_gc_set_exposures},
+	{ "gdk_gc_set_line_attributes",  cast(void**)& gdk_gc_set_line_attributes},
+	{ "gdk_gc_set_dashes",  cast(void**)& gdk_gc_set_dashes},
+	{ "gdk_gc_copy",  cast(void**)& gdk_gc_copy},
+	{ "gdk_gc_set_colormap",  cast(void**)& gdk_gc_set_colormap},
+	{ "gdk_gc_get_colormap",  cast(void**)& gdk_gc_get_colormap},
+	{ "gdk_gc_offset",  cast(void**)& gdk_gc_offset},
+	{ "gdk_drawable_ref",  cast(void**)& gdk_drawable_ref},
+	{ "gdk_drawable_unref",  cast(void**)& gdk_drawable_unref},
+	{ "gdk_drawable_set_data",  cast(void**)& gdk_drawable_set_data},
+	{ "gdk_drawable_get_data",  cast(void**)& gdk_drawable_get_data},
+	{ "gdk_drawable_get_display",  cast(void**)& gdk_drawable_get_display},
+	{ "gdk_drawable_get_screen",  cast(void**)& gdk_drawable_get_screen},
+	{ "gdk_drawable_get_visual",  cast(void**)& gdk_drawable_get_visual},
+	{ "gdk_drawable_set_colormap",  cast(void**)& gdk_drawable_set_colormap},
+	{ "gdk_drawable_get_colormap",  cast(void**)& gdk_drawable_get_colormap},
+	{ "gdk_drawable_get_depth",  cast(void**)& gdk_drawable_get_depth},
+	{ "gdk_drawable_get_size",  cast(void**)& gdk_drawable_get_size},
+	{ "gdk_drawable_get_clip_region",  cast(void**)& gdk_drawable_get_clip_region},
+	{ "gdk_drawable_get_visible_region",  cast(void**)& gdk_drawable_get_visible_region},
+	{ "gdk_draw_point",  cast(void**)& gdk_draw_point},
+	{ "gdk_draw_points",  cast(void**)& gdk_draw_points},
+	{ "gdk_draw_line",  cast(void**)& gdk_draw_line},
+	{ "gdk_draw_lines",  cast(void**)& gdk_draw_lines},
+	{ "gdk_draw_pixbuf",  cast(void**)& gdk_draw_pixbuf},
+	{ "gdk_draw_segments",  cast(void**)& gdk_draw_segments},
+	{ "gdk_draw_rectangle",  cast(void**)& gdk_draw_rectangle},
+	{ "gdk_draw_arc",  cast(void**)& gdk_draw_arc},
+	{ "gdk_draw_polygon",  cast(void**)& gdk_draw_polygon},
+	{ "gdk_draw_trapezoids",  cast(void**)& gdk_draw_trapezoids},
+	{ "gdk_draw_glyphs",  cast(void**)& gdk_draw_glyphs},
+	{ "gdk_draw_glyphs_transformed",  cast(void**)& gdk_draw_glyphs_transformed},
+	{ "gdk_draw_layout_line",  cast(void**)& gdk_draw_layout_line},
+	{ "gdk_draw_layout_line_with_colors",  cast(void**)& gdk_draw_layout_line_with_colors},
+	{ "gdk_draw_layout",  cast(void**)& gdk_draw_layout},
+	{ "gdk_draw_layout_with_colors",  cast(void**)& gdk_draw_layout_with_colors},
+	{ "gdk_draw_string",  cast(void**)& gdk_draw_string},
+	{ "gdk_draw_text",  cast(void**)& gdk_draw_text},
+	{ "gdk_draw_text_wc",  cast(void**)& gdk_draw_text_wc},
+	{ "gdk_draw_drawable",  cast(void**)& gdk_draw_drawable},
+	{ "gdk_draw_image",  cast(void**)& gdk_draw_image},
+	{ "gdk_drawable_get_image",  cast(void**)& gdk_drawable_get_image},
+	{ "gdk_drawable_copy_to_image",  cast(void**)& gdk_drawable_copy_to_image},
+	{ "gdk_pixmap_new",  cast(void**)& gdk_pixmap_new},
+	{ "gdk_pixmap_create_from_data",  cast(void**)& gdk_pixmap_create_from_data},
+	{ "gdk_pixmap_create_from_xpm",  cast(void**)& gdk_pixmap_create_from_xpm},
+	{ "gdk_pixmap_colormap_create_from_xpm",  cast(void**)& gdk_pixmap_colormap_create_from_xpm},
+	{ "gdk_pixmap_create_from_xpm_d",  cast(void**)& gdk_pixmap_create_from_xpm_d},
+	{ "gdk_pixmap_colormap_create_from_xpm_d",  cast(void**)& gdk_pixmap_colormap_create_from_xpm_d},
+	{ "gdk_bitmap_create_from_data",  cast(void**)& gdk_bitmap_create_from_data},
+	{ "gdk_rgb_init",  cast(void**)& gdk_rgb_init},
+	{ "gdk_draw_rgb_image",  cast(void**)& gdk_draw_rgb_image},
+	{ "gdk_draw_rgb_image_dithalign",  cast(void**)& gdk_draw_rgb_image_dithalign},
+	{ "gdk_draw_indexed_image",  cast(void**)& gdk_draw_indexed_image},
+	{ "gdk_draw_gray_image",  cast(void**)& gdk_draw_gray_image},
+	{ "gdk_draw_rgb_32_image",  cast(void**)& gdk_draw_rgb_32_image},
+	{ "gdk_draw_rgb_32_image_dithalign",  cast(void**)& gdk_draw_rgb_32_image_dithalign},
+	{ "gdk_rgb_cmap_new",  cast(void**)& gdk_rgb_cmap_new},
+	{ "gdk_rgb_cmap_free",  cast(void**)& gdk_rgb_cmap_free},
+	{ "gdk_rgb_gc_set_foreground",  cast(void**)& gdk_rgb_gc_set_foreground},
+	{ "gdk_rgb_gc_set_background",  cast(void**)& gdk_rgb_gc_set_background},
+	{ "gdk_rgb_xpixel_from_rgb",  cast(void**)& gdk_rgb_xpixel_from_rgb},
+	{ "gdk_rgb_find_color",  cast(void**)& gdk_rgb_find_color},
+	{ "gdk_rgb_set_install",  cast(void**)& gdk_rgb_set_install},
+	{ "gdk_rgb_set_min_colors",  cast(void**)& gdk_rgb_set_min_colors},
+	{ "gdk_rgb_get_visual",  cast(void**)& gdk_rgb_get_visual},
+	{ "gdk_rgb_get_colormap",  cast(void**)& gdk_rgb_get_colormap},
+	{ "gdk_rgb_ditherable",  cast(void**)& gdk_rgb_ditherable},
+	{ "gdk_rgb_colormap_ditherable",  cast(void**)& gdk_rgb_colormap_ditherable},
+	{ "gdk_rgb_set_verbose",  cast(void**)& gdk_rgb_set_verbose},
+	{ "gdk_image_new",  cast(void**)& gdk_image_new},
+	{ "gdk_image_new_bitmap",  cast(void**)& gdk_image_new_bitmap},
+	{ "gdk_image_get",  cast(void**)& gdk_image_get},
+	{ "gdk_image_ref",  cast(void**)& gdk_image_ref},
+	{ "gdk_image_unref",  cast(void**)& gdk_image_unref},
+	{ "gdk_image_get_colormap",  cast(void**)& gdk_image_get_colormap},
+	{ "gdk_image_set_colormap",  cast(void**)& gdk_image_set_colormap},
+	{ "gdk_image_put_pixel",  cast(void**)& gdk_image_put_pixel},
+	{ "gdk_image_get_pixel",  cast(void**)& gdk_image_get_pixel},
+	{ "gdk_pixbuf_render_threshold_alpha",  cast(void**)& gdk_pixbuf_render_threshold_alpha},
+	{ "gdk_pixbuf_render_to_drawable",  cast(void**)& gdk_pixbuf_render_to_drawable},
+	{ "gdk_pixbuf_render_to_drawable_alpha",  cast(void**)& gdk_pixbuf_render_to_drawable_alpha},
+	{ "gdk_pixbuf_render_pixmap_and_mask",  cast(void**)& gdk_pixbuf_render_pixmap_and_mask},
+	{ "gdk_pixbuf_render_pixmap_and_mask_for_colormap",  cast(void**)& gdk_pixbuf_render_pixmap_and_mask_for_colormap},
+	{ "gdk_pixbuf_get_from_drawable",  cast(void**)& gdk_pixbuf_get_from_drawable},
+	{ "gdk_pixbuf_get_from_image",  cast(void**)& gdk_pixbuf_get_from_image},
+	{ "gdk_pixbuf_get_type",  cast(void**)& gdk_pixbuf_get_type},
+	{ "gdk_pixbuf_new_from_data",  cast(void**)& gdk_pixbuf_new_from_data},
+	{ "gdk_pixbuf_new_from_xpm_data",  cast(void**)& gdk_pixbuf_new_from_xpm_data},
+	{ "gdk_pixbuf_new_from_inline",  cast(void**)& gdk_pixbuf_new_from_inline},
+	{ "gdk_pixbuf_new_subpixbuf",  cast(void**)& gdk_pixbuf_new_subpixbuf},
+	{ "gdk_pixbuf_copy",  cast(void**)& gdk_pixbuf_copy},
+	{ "gdk_pixbuf_get_colorspace",  cast(void**)& gdk_pixbuf_get_colorspace},
+	{ "gdk_pixbuf_get_n_channels",  cast(void**)& gdk_pixbuf_get_n_channels},
+	{ "gdk_pixbuf_get_has_alpha",  cast(void**)& gdk_pixbuf_get_has_alpha},
+	{ "gdk_pixbuf_get_bits_per_sample",  cast(void**)& gdk_pixbuf_get_bits_per_sample},
+	{ "gdk_pixbuf_get_pixels",  cast(void**)& gdk_pixbuf_get_pixels},
+	{ "gdk_pixbuf_get_width",  cast(void**)& gdk_pixbuf_get_width},
+	{ "gdk_pixbuf_get_height",  cast(void**)& gdk_pixbuf_get_height},
+	{ "gdk_pixbuf_get_rowstride",  cast(void**)& gdk_pixbuf_get_rowstride},
+	{ "gdk_pixbuf_get_option",  cast(void**)& gdk_pixbuf_get_option},
+	{ "gdk_pixbuf_new_from_file",  cast(void**)& gdk_pixbuf_new_from_file},
+	{ "gdk_pixbuf_new_from_file_at_size",  cast(void**)& gdk_pixbuf_new_from_file_at_size},
+	{ "gdk_pixbuf_new_from_file_at_scale",  cast(void**)& gdk_pixbuf_new_from_file_at_scale},
+	{ "gdk_pixbuf_savev",  cast(void**)& gdk_pixbuf_savev},
+	{ "gdk_pixbuf_save",  cast(void**)& gdk_pixbuf_save},
+	{ "gdk_pixbuf_save_to_callback",  cast(void**)& gdk_pixbuf_save_to_callback},
+	{ "gdk_pixbuf_save_to_callbackv",  cast(void**)& gdk_pixbuf_save_to_callbackv},
+	{ "gdk_pixbuf_save_to_buffer",  cast(void**)& gdk_pixbuf_save_to_buffer},
+	{ "gdk_pixbuf_save_to_bufferv",  cast(void**)& gdk_pixbuf_save_to_bufferv},
+	{ "gdk_pixbuf_scale_simple",  cast(void**)& gdk_pixbuf_scale_simple},
+	{ "gdk_pixbuf_scale",  cast(void**)& gdk_pixbuf_scale},
+	{ "gdk_pixbuf_composite_color_simple",  cast(void**)& gdk_pixbuf_composite_color_simple},
+	{ "gdk_pixbuf_composite",  cast(void**)& gdk_pixbuf_composite},
+	{ "gdk_pixbuf_composite_color",  cast(void**)& gdk_pixbuf_composite_color},
+	{ "gdk_pixbuf_rotate_simple",  cast(void**)& gdk_pixbuf_rotate_simple},
+	{ "gdk_pixbuf_flip",  cast(void**)& gdk_pixbuf_flip},
+	{ "gdk_pixbuf_add_alpha",  cast(void**)& gdk_pixbuf_add_alpha},
+	{ "gdk_pixbuf_copy_area",  cast(void**)& gdk_pixbuf_copy_area},
+	{ "gdk_pixbuf_saturate_and_pixelate",  cast(void**)& gdk_pixbuf_saturate_and_pixelate},
+	{ "gdk_pixbuf_apply_embedded_orientation",  cast(void**)& gdk_pixbuf_apply_embedded_orientation},
+	{ "gdk_pixbuf_fill",  cast(void**)& gdk_pixbuf_fill},
+	{ "gdk_colormap_new",  cast(void**)& gdk_colormap_new},
+	{ "gdk_colormap_ref",  cast(void**)& gdk_colormap_ref},
+	{ "gdk_colormap_unref",  cast(void**)& gdk_colormap_unref},
+	{ "gdk_colormap_get_system",  cast(void**)& gdk_colormap_get_system},
+	{ "gdk_colormap_get_system_size",  cast(void**)& gdk_colormap_get_system_size},
+	{ "gdk_colormap_change",  cast(void**)& gdk_colormap_change},
+	{ "gdk_colormap_alloc_colors",  cast(void**)& gdk_colormap_alloc_colors},
+	{ "gdk_colormap_alloc_color",  cast(void**)& gdk_colormap_alloc_color},
+	{ "gdk_colormap_free_colors",  cast(void**)& gdk_colormap_free_colors},
+	{ "gdk_colormap_query_color",  cast(void**)& gdk_colormap_query_color},
+	{ "gdk_colormap_get_visual",  cast(void**)& gdk_colormap_get_visual},
+	{ "gdk_colormap_get_screen",  cast(void**)& gdk_colormap_get_screen},
+	{ "gdk_colors_store",  cast(void**)& gdk_colors_store},
+	{ "gdk_colors_alloc",  cast(void**)& gdk_colors_alloc},
+	{ "gdk_colors_free",  cast(void**)& gdk_colors_free},
+	{ "gdk_color_copy",  cast(void**)& gdk_color_copy},
+	{ "gdk_color_free",  cast(void**)& gdk_color_free},
+	{ "gdk_color_white",  cast(void**)& gdk_color_white},
+	{ "gdk_color_black",  cast(void**)& gdk_color_black},
+	{ "gdk_color_parse",  cast(void**)& gdk_color_parse},
+	{ "gdk_color_alloc",  cast(void**)& gdk_color_alloc},
+	{ "gdk_color_change",  cast(void**)& gdk_color_change},
+	{ "gdk_color_equal",  cast(void**)& gdk_color_equal},
+	{ "gdk_color_hash",  cast(void**)& gdk_color_hash},
+	{ "gdk_color_to_string",  cast(void**)& gdk_color_to_string},
+	{ "gdk_query_depths",  cast(void**)& gdk_query_depths},
+	{ "gdk_query_visual_types",  cast(void**)& gdk_query_visual_types},
+	{ "gdk_list_visuals",  cast(void**)& gdk_list_visuals},
+	{ "gdk_visual_get_best_depth",  cast(void**)& gdk_visual_get_best_depth},
+	{ "gdk_visual_get_best_type",  cast(void**)& gdk_visual_get_best_type},
+	{ "gdk_visual_get_system",  cast(void**)& gdk_visual_get_system},
+	{ "gdk_visual_get_best",  cast(void**)& gdk_visual_get_best},
+	{ "gdk_visual_get_best_with_depth",  cast(void**)& gdk_visual_get_best_with_depth},
+	{ "gdk_visual_get_best_with_type",  cast(void**)& gdk_visual_get_best_with_type},
+	{ "gdk_visual_get_best_with_both",  cast(void**)& gdk_visual_get_best_with_both},
+	{ "gdk_visual_get_screen",  cast(void**)& gdk_visual_get_screen},
+	{ "gdk_font_load",  cast(void**)& gdk_font_load},
+	{ "gdk_font_load_for_display",  cast(void**)& gdk_font_load_for_display},
+	{ "gdk_fontset_load",  cast(void**)& gdk_fontset_load},
+	{ "gdk_fontset_load_for_display",  cast(void**)& gdk_fontset_load_for_display},
+	{ "gdk_font_from_description",  cast(void**)& gdk_font_from_description},
+	{ "gdk_font_from_description_for_display",  cast(void**)& gdk_font_from_description_for_display},
+	{ "gdk_font_get_display",  cast(void**)& gdk_font_get_display},
+	{ "gdk_font_ref",  cast(void**)& gdk_font_ref},
+	{ "gdk_font_unref",  cast(void**)& gdk_font_unref},
+	{ "gdk_font_id",  cast(void**)& gdk_font_id},
+	{ "gdk_font_equal",  cast(void**)& gdk_font_equal},
+	{ "gdk_string_extents",  cast(void**)& gdk_string_extents},
+	{ "gdk_text_extents",  cast(void**)& gdk_text_extents},
+	{ "gdk_text_extents_wc",  cast(void**)& gdk_text_extents_wc},
+	{ "gdk_string_width",  cast(void**)& gdk_string_width},
+	{ "gdk_text_width",  cast(void**)& gdk_text_width},
+	{ "gdk_text_width_wc",  cast(void**)& gdk_text_width_wc},
+	{ "gdk_char_width",  cast(void**)& gdk_char_width},
+	{ "gdk_char_width_wc",  cast(void**)& gdk_char_width_wc},
+	{ "gdk_string_measure",  cast(void**)& gdk_string_measure},
+	{ "gdk_text_measure",  cast(void**)& gdk_text_measure},
+	{ "gdk_char_measure",  cast(void**)& gdk_char_measure},
+	{ "gdk_string_height",  cast(void**)& gdk_string_height},
+	{ "gdk_text_height",  cast(void**)& gdk_text_height},
+	{ "gdk_char_height",  cast(void**)& gdk_char_height},
+	{ "gdk_wcstombs",  cast(void**)& gdk_wcstombs},
+	{ "gdk_mbstowcs",  cast(void**)& gdk_mbstowcs},
+	{ "gdk_cursor_new",  cast(void**)& gdk_cursor_new},
+	{ "gdk_cursor_new_from_pixmap",  cast(void**)& gdk_cursor_new_from_pixmap},
+	{ "gdk_cursor_new_from_pixbuf",  cast(void**)& gdk_cursor_new_from_pixbuf},
+	{ "gdk_cursor_new_from_name",  cast(void**)& gdk_cursor_new_from_name},
+	{ "gdk_cursor_new_for_display",  cast(void**)& gdk_cursor_new_for_display},
+	{ "gdk_cursor_get_display",  cast(void**)& gdk_cursor_get_display},
+	{ "gdk_cursor_get_image",  cast(void**)& gdk_cursor_get_image},
+	{ "gdk_cursor_ref",  cast(void**)& gdk_cursor_ref},
+	{ "gdk_cursor_unref",  cast(void**)& gdk_cursor_unref},
+	{ "gdk_window_new",  cast(void**)& gdk_window_new},
+	{ "gdk_window_destroy",  cast(void**)& gdk_window_destroy},
+	{ "gdk_window_get_window_type",  cast(void**)& gdk_window_get_window_type},
+	{ "gdk_window_at_pointer",  cast(void**)& gdk_window_at_pointer},
+	{ "gdk_window_show",  cast(void**)& gdk_window_show},
+	{ "gdk_window_show_unraised",  cast(void**)& gdk_window_show_unraised},
+	{ "gdk_window_hide",  cast(void**)& gdk_window_hide},
+	{ "gdk_window_is_visible",  cast(void**)& gdk_window_is_visible},
+	{ "gdk_window_is_viewable",  cast(void**)& gdk_window_is_viewable},
+	{ "gdk_window_get_state",  cast(void**)& gdk_window_get_state},
+	{ "gdk_window_withdraw",  cast(void**)& gdk_window_withdraw},
+	{ "gdk_window_iconify",  cast(void**)& gdk_window_iconify},
+	{ "gdk_window_deiconify",  cast(void**)& gdk_window_deiconify},
+	{ "gdk_window_stick",  cast(void**)& gdk_window_stick},
+	{ "gdk_window_unstick",  cast(void**)& gdk_window_unstick},
+	{ "gdk_window_maximize",  cast(void**)& gdk_window_maximize},
+	{ "gdk_window_unmaximize",  cast(void**)& gdk_window_unmaximize},
+	{ "gdk_window_fullscreen",  cast(void**)& gdk_window_fullscreen},
+	{ "gdk_window_unfullscreen",  cast(void**)& gdk_window_unfullscreen},
+	{ "gdk_window_set_keep_above",  cast(void**)& gdk_window_set_keep_above},
+	{ "gdk_window_set_keep_below",  cast(void**)& gdk_window_set_keep_below},
+	{ "gdk_window_set_opacity",  cast(void**)& gdk_window_set_opacity},
+	{ "gdk_window_set_composited",  cast(void**)& gdk_window_set_composited},
+	{ "gdk_window_move",  cast(void**)& gdk_window_move},
+	{ "gdk_window_resize",  cast(void**)& gdk_window_resize},
+	{ "gdk_window_move_resize",  cast(void**)& gdk_window_move_resize},
+	{ "gdk_window_scroll",  cast(void**)& gdk_window_scroll},
+	{ "gdk_window_move_region",  cast(void**)& gdk_window_move_region},
+	{ "gdk_window_reparent",  cast(void**)& gdk_window_reparent},
+	{ "gdk_window_clear",  cast(void**)& gdk_window_clear},
+	{ "gdk_window_clear_area",  cast(void**)& gdk_window_clear_area},
+	{ "gdk_window_clear_area_e",  cast(void**)& gdk_window_clear_area_e},
+	{ "gdk_window_raise",  cast(void**)& gdk_window_raise},
+	{ "gdk_window_lower",  cast(void**)& gdk_window_lower},
+	{ "gdk_window_focus",  cast(void**)& gdk_window_focus},
+	{ "gdk_window_register_dnd",  cast(void**)& gdk_window_register_dnd},
+	{ "gdk_window_begin_resize_drag",  cast(void**)& gdk_window_begin_resize_drag},
+	{ "gdk_window_begin_move_drag",  cast(void**)& gdk_window_begin_move_drag},
+	{ "gdk_window_constrain_size",  cast(void**)& gdk_window_constrain_size},
+	{ "gdk_window_beep",  cast(void**)& gdk_window_beep},
+	{ "gdk_window_begin_paint_rect",  cast(void**)& gdk_window_begin_paint_rect},
+	{ "gdk_window_begin_paint_region",  cast(void**)& gdk_window_begin_paint_region},
+	{ "gdk_window_end_paint",  cast(void**)& gdk_window_end_paint},
+	{ "gdk_window_invalidate_rect",  cast(void**)& gdk_window_invalidate_rect},
+	{ "gdk_window_invalidate_region",  cast(void**)& gdk_window_invalidate_region},
+	{ "gdk_window_get_update_area",  cast(void**)& gdk_window_get_update_area},
+	{ "gdk_window_freeze_updates",  cast(void**)& gdk_window_freeze_updates},
+	{ "gdk_window_thaw_updates",  cast(void**)& gdk_window_thaw_updates},
+	{ "gdk_window_process_all_updates",  cast(void**)& gdk_window_process_all_updates},
+	{ "gdk_window_process_updates",  cast(void**)& gdk_window_process_updates},
+	{ "gdk_window_set_debug_updates",  cast(void**)& gdk_window_set_debug_updates},
+	{ "gdk_window_get_internal_paint_info",  cast(void**)& gdk_window_get_internal_paint_info},
+	{ "gdk_window_enable_synchronized_configure",  cast(void**)& gdk_window_enable_synchronized_configure},
+	{ "gdk_window_configure_finished",  cast(void**)& gdk_window_configure_finished},
+	{ "gdk_window_set_user_data",  cast(void**)& gdk_window_set_user_data},
+	{ "gdk_window_set_override_redirect",  cast(void**)& gdk_window_set_override_redirect},
+	{ "gdk_window_set_accept_focus",  cast(void**)& gdk_window_set_accept_focus},
+	{ "gdk_window_set_focus_on_map",  cast(void**)& gdk_window_set_focus_on_map},
+	{ "gdk_window_add_filter",  cast(void**)& gdk_window_add_filter},
+	{ "gdk_window_remove_filter",  cast(void**)& gdk_window_remove_filter},
+	{ "gdk_window_shape_combine_mask",  cast(void**)& gdk_window_shape_combine_mask},
+	{ "gdk_window_shape_combine_region",  cast(void**)& gdk_window_shape_combine_region},
+	{ "gdk_window_set_child_shapes",  cast(void**)& gdk_window_set_child_shapes},
+	{ "gdk_window_merge_child_shapes",  cast(void**)& gdk_window_merge_child_shapes},
+	{ "gdk_window_input_shape_combine_mask",  cast(void**)& gdk_window_input_shape_combine_mask},
+	{ "gdk_window_input_shape_combine_region",  cast(void**)& gdk_window_input_shape_combine_region},
+	{ "gdk_window_set_child_input_shapes",  cast(void**)& gdk_window_set_child_input_shapes},
+	{ "gdk_window_merge_child_input_shapes",  cast(void**)& gdk_window_merge_child_input_shapes},
+	{ "gdk_window_set_static_gravities",  cast(void**)& gdk_window_set_static_gravities},
+	{ "gdk_window_set_hints",  cast(void**)& gdk_window_set_hints},
+	{ "gdk_window_set_title",  cast(void**)& gdk_window_set_title},
+	{ "gdk_window_set_background",  cast(void**)& gdk_window_set_background},
+	{ "gdk_window_set_back_pixmap",  cast(void**)& gdk_window_set_back_pixmap},
+	{ "gdk_window_set_cursor",  cast(void**)& gdk_window_set_cursor},
+	{ "gdk_window_get_user_data",  cast(void**)& gdk_window_get_user_data},
+	{ "gdk_window_get_geometry",  cast(void**)& gdk_window_get_geometry},
+	{ "gdk_window_set_geometry_hints",  cast(void**)& gdk_window_set_geometry_hints},
+	{ "gdk_window_set_icon_list",  cast(void**)& gdk_window_set_icon_list},
+	{ "gdk_window_set_modal_hint",  cast(void**)& gdk_window_set_modal_hint},
+	{ "gdk_window_set_type_hint",  cast(void**)& gdk_window_set_type_hint},
+	{ "gdk_window_get_type_hint",  cast(void**)& gdk_window_get_type_hint},
+	{ "gdk_window_set_skip_taskbar_hint",  cast(void**)& gdk_window_set_skip_taskbar_hint},
+	{ "gdk_window_set_skip_pager_hint",  cast(void**)& gdk_window_set_skip_pager_hint},
+	{ "gdk_window_set_urgency_hint",  cast(void**)& gdk_window_set_urgency_hint},
+	{ "gdk_window_get_position",  cast(void**)& gdk_window_get_position},
+	{ "gdk_window_get_root_origin",  cast(void**)& gdk_window_get_root_origin},
+	{ "gdk_window_get_frame_extents",  cast(void**)& gdk_window_get_frame_extents},
+	{ "gdk_window_get_origin",  cast(void**)& gdk_window_get_origin},
+	{ "gdk_window_get_deskrelative_origin",  cast(void**)& gdk_window_get_deskrelative_origin},
+	{ "gdk_window_get_pointer",  cast(void**)& gdk_window_get_pointer},
+	{ "gdk_window_get_parent",  cast(void**)& gdk_window_get_parent},
+	{ "gdk_window_get_toplevel",  cast(void**)& gdk_window_get_toplevel},
+	{ "gdk_window_get_children",  cast(void**)& gdk_window_get_children},
+	{ "gdk_window_peek_children",  cast(void**)& gdk_window_peek_children},
+	{ "gdk_window_get_events",  cast(void**)& gdk_window_get_events},
+	{ "gdk_window_set_events",  cast(void**)& gdk_window_set_events},
+	{ "gdk_window_set_icon",  cast(void**)& gdk_window_set_icon},
+	{ "gdk_window_set_icon_name",  cast(void**)& gdk_window_set_icon_name},
+	{ "gdk_window_set_transient_for",  cast(void**)& gdk_window_set_transient_for},
+	{ "gdk_window_set_role",  cast(void**)& gdk_window_set_role},
+	{ "gdk_window_set_startup_id",  cast(void**)& gdk_window_set_startup_id},
+	{ "gdk_window_set_group",  cast(void**)& gdk_window_set_group},
+	{ "gdk_window_get_group",  cast(void**)& gdk_window_get_group},
+	{ "gdk_window_set_decorations",  cast(void**)& gdk_window_set_decorations},
+	{ "gdk_window_get_decorations",  cast(void**)& gdk_window_get_decorations},
+	{ "gdk_window_set_functions",  cast(void**)& gdk_window_set_functions},
+	{ "gdk_window_get_toplevels",  cast(void**)& gdk_window_get_toplevels},
+	{ "gdk_get_default_root_window",  cast(void**)& gdk_get_default_root_window},
+	{ "gdk_set_pointer_hooks",  cast(void**)& gdk_set_pointer_hooks},
+	{ "gdk_events_pending",  cast(void**)& gdk_events_pending},
+	{ "gdk_event_peek",  cast(void**)& gdk_event_peek},
+	{ "gdk_event_get",  cast(void**)& gdk_event_get},
+	{ "gdk_event_get_graphics_expose",  cast(void**)& gdk_event_get_graphics_expose},
+	{ "gdk_event_put",  cast(void**)& gdk_event_put},
+	{ "gdk_event_new",  cast(void**)& gdk_event_new},
+	{ "gdk_event_copy",  cast(void**)& gdk_event_copy},
+	{ "gdk_event_free",  cast(void**)& gdk_event_free},
+	{ "gdk_event_get_time",  cast(void**)& gdk_event_get_time},
+	{ "gdk_event_get_state",  cast(void**)& gdk_event_get_state},
+	{ "gdk_event_get_axis",  cast(void**)& gdk_event_get_axis},
+	{ "gdk_event_get_coords",  cast(void**)& gdk_event_get_coords},
+	{ "gdk_event_get_root_coords",  cast(void**)& gdk_event_get_root_coords},
+	{ "gdk_event_request_motions",  cast(void**)& gdk_event_request_motions},
+	{ "gdk_event_handler_set",  cast(void**)& gdk_event_handler_set},
+	{ "gdk_event_send_client_message",  cast(void**)& gdk_event_send_client_message},
+	{ "gdk_event_send_client_message_for_display",  cast(void**)& gdk_event_send_client_message_for_display},
+	{ "gdk_event_send_clientmessage_toall",  cast(void**)& gdk_event_send_clientmessage_toall},
+	{ "gdk_add_client_message_filter",  cast(void**)& gdk_add_client_message_filter},
+	{ "gdk_get_show_events",  cast(void**)& gdk_get_show_events},
+	{ "gdk_set_show_events",  cast(void**)& gdk_set_show_events},
+	{ "gdk_event_set_screen",  cast(void**)& gdk_event_set_screen},
+	{ "gdk_event_get_screen",  cast(void**)& gdk_event_get_screen},
+	{ "gdk_setting_get",  cast(void**)& gdk_setting_get},
+	{ "gdk_keymap_get_default",  cast(void**)& gdk_keymap_get_default},
+	{ "gdk_keymap_get_for_display",  cast(void**)& gdk_keymap_get_for_display},
+	{ "gdk_keymap_lookup_key",  cast(void**)& gdk_keymap_lookup_key},
+	{ "gdk_keymap_translate_keyboard_state",  cast(void**)& gdk_keymap_translate_keyboard_state},
+	{ "gdk_keymap_get_entries_for_keyval",  cast(void**)& gdk_keymap_get_entries_for_keyval},
+	{ "gdk_keymap_get_entries_for_keycode",  cast(void**)& gdk_keymap_get_entries_for_keycode},
+	{ "gdk_keymap_get_direction",  cast(void**)& gdk_keymap_get_direction},
+	{ "gdk_keymap_have_bidi_layouts",  cast(void**)& gdk_keymap_have_bidi_layouts},
+	{ "gdk_keyval_name",  cast(void**)& gdk_keyval_name},
+	{ "gdk_keyval_from_name",  cast(void**)& gdk_keyval_from_name},
+	{ "gdk_keyval_convert_case",  cast(void**)& gdk_keyval_convert_case},
+	{ "gdk_keyval_to_upper",  cast(void**)& gdk_keyval_to_upper},
+	{ "gdk_keyval_to_lower",  cast(void**)& gdk_keyval_to_lower},
+	{ "gdk_keyval_is_upper",  cast(void**)& gdk_keyval_is_upper},
+	{ "gdk_keyval_is_lower",  cast(void**)& gdk_keyval_is_lower},
+	{ "gdk_keyval_to_unicode",  cast(void**)& gdk_keyval_to_unicode},
+	{ "gdk_unicode_to_keyval",  cast(void**)& gdk_unicode_to_keyval},
+	{ "gdk_selection_owner_set",  cast(void**)& gdk_selection_owner_set},
+	{ "gdk_selection_owner_set_for_display",  cast(void**)& gdk_selection_owner_set_for_display},
+	{ "gdk_selection_owner_get",  cast(void**)& gdk_selection_owner_get},
+	{ "gdk_selection_owner_get_for_display",  cast(void**)& gdk_selection_owner_get_for_display},
+	{ "gdk_selection_convert",  cast(void**)& gdk_selection_convert},
+	{ "gdk_selection_property_get",  cast(void**)& gdk_selection_property_get},
+	{ "gdk_selection_send_notify",  cast(void**)& gdk_selection_send_notify},
+	{ "gdk_selection_send_notify_for_display",  cast(void**)& gdk_selection_send_notify_for_display},
+	{ "gdk_drag_get_selection",  cast(void**)& gdk_drag_get_selection},
+	{ "gdk_drag_abort",  cast(void**)& gdk_drag_abort},
+	{ "gdk_drop_reply",  cast(void**)& gdk_drop_reply},
+	{ "gdk_drag_context_new",  cast(void**)& gdk_drag_context_new},
+	{ "gdk_drag_drop",  cast(void**)& gdk_drag_drop},
+	{ "gdk_drag_find_window",  cast(void**)& gdk_drag_find_window},
+	{ "gdk_drag_find_window_for_screen",  cast(void**)& gdk_drag_find_window_for_screen},
+	{ "gdk_drag_context_ref",  cast(void**)& gdk_drag_context_ref},
+	{ "gdk_drag_begin",  cast(void**)& gdk_drag_begin},
+	{ "gdk_drag_motion",  cast(void**)& gdk_drag_motion},
+	{ "gdk_drop_finish",  cast(void**)& gdk_drop_finish},
+	{ "gdk_drag_get_protocol",  cast(void**)& gdk_drag_get_protocol},
+	{ "gdk_drag_get_protocol_for_display",  cast(void**)& gdk_drag_get_protocol_for_display},
+	{ "gdk_drag_context_unref",  cast(void**)& gdk_drag_context_unref},
+	{ "gdk_drag_status",  cast(void**)& gdk_drag_status},
+	{ "gdk_drag_drop_succeeded",  cast(void**)& gdk_drag_drop_succeeded},
+	{ "gdk_threads_init",  cast(void**)& gdk_threads_init},
+	{ "gdk_threads_enter",  cast(void**)& gdk_threads_enter},
+	{ "gdk_threads_leave",  cast(void**)& gdk_threads_leave},
+	{ "gdk_threads_set_lock_functions",  cast(void**)& gdk_threads_set_lock_functions},
+	{ "gdk_threads_add_idle",  cast(void**)& gdk_threads_add_idle},
+	{ "gdk_threads_add_idle_full",  cast(void**)& gdk_threads_add_idle_full},
+	{ "gdk_threads_add_timeout",  cast(void**)& gdk_threads_add_timeout},
+	{ "gdk_threads_add_timeout_full",  cast(void**)& gdk_threads_add_timeout_full},
+	{ "gdk_input_add_full",  cast(void**)& gdk_input_add_full},
+	{ "gdk_input_add",  cast(void**)& gdk_input_add},
+	{ "gdk_input_remove",  cast(void**)& gdk_input_remove},
+	{ "gdk_devices_list",  cast(void**)& gdk_devices_list},
+	{ "gdk_device_set_source",  cast(void**)& gdk_device_set_source},
+	{ "gdk_device_set_mode",  cast(void**)& gdk_device_set_mode},
+	{ "gdk_device_set_key",  cast(void**)& gdk_device_set_key},
+	{ "gdk_device_set_axis_use",  cast(void**)& gdk_device_set_axis_use},
+	{ "gdk_device_get_core_pointer",  cast(void**)& gdk_device_get_core_pointer},
+	{ "gdk_device_get_state",  cast(void**)& gdk_device_get_state},
+	{ "gdk_device_get_history",  cast(void**)& gdk_device_get_history},
+	{ "gdk_device_free_history",  cast(void**)& gdk_device_free_history},
+	{ "gdk_device_get_axis",  cast(void**)& gdk_device_get_axis},
+	{ "gdk_input_set_extension_events",  cast(void**)& gdk_input_set_extension_events},
+        /+ Manually disabled. Won't compile, yet.
+	{ "gdkx_visual_get",  cast(void**)& gdkx_visual_get},
+	{ "gdkx_colormap_get",  cast(void**)& gdkx_colormap_get},
+	{ "gdk_pixmap_foreign_new",  cast(void**)& gdk_pixmap_foreign_new},
+	{ "gdk_pixmap_foreign_new_for_display",  cast(void**)& gdk_pixmap_foreign_new_for_display},
+	{ "gdk_pixmap_foreign_new_for_screen",  cast(void**)& gdk_pixmap_foreign_new_for_screen},
+	{ "gdk_window_foreign_new",  cast(void**)& gdk_window_foreign_new},
+	{ "gdk_window_foreign_new_for_display",  cast(void**)& gdk_window_foreign_new_for_display},
+	{ "gdk_xid_table_lookup",  cast(void**)& gdk_xid_table_lookup},
+	{ "gdk_xid_table_lookup_for_display",  cast(void**)& gdk_xid_table_lookup_for_display},
+	{ "gdk_window_lookup",  cast(void**)& gdk_window_lookup},
+	{ "gdk_window_lookup_for_display",  cast(void**)& gdk_window_lookup_for_display},
+	{ "gdk_pixmap_lookup",  cast(void**)& gdk_pixmap_lookup},
+	{ "gdk_pixmap_lookup_for_display",  cast(void**)& gdk_pixmap_lookup_for_display},
+	{ "gdk_x11_lookup_xdisplay",  cast(void**)& gdk_x11_lookup_xdisplay},
+	{ "gdk_x11_get_server_time",  cast(void**)& gdk_x11_get_server_time},
+	{ "gdk_net_wm_supports",  cast(void**)& gdk_net_wm_supports},
+	{ "gdk_x11_screen_supports_net_wm_hint",  cast(void**)& gdk_x11_screen_supports_net_wm_hint},
+	{ "gdk_x11_screen_get_window_manager_name",  cast(void**)& gdk_x11_screen_get_window_manager_name},
+	{ "gdk_x11_screen_lookup_visual",  cast(void**)& gdk_x11_screen_lookup_visual},
+	{ "gdk_x11_window_set_user_time",  cast(void**)& gdk_x11_window_set_user_time},
+	{ "gdk_x11_window_move_to_current_desktop",  cast(void**)& gdk_x11_window_move_to_current_desktop},
+	{ "gdk_x11_display_get_user_time",  cast(void**)& gdk_x11_display_get_user_time},
+	{ "gdk_x11_colormap_foreign_new",  cast(void**)& gdk_x11_colormap_foreign_new},
+	{ "gdk_x11_colormap_get_xcolormap",  cast(void**)& gdk_x11_colormap_get_xcolormap},
+	{ "gdk_x11_colormap_get_xdisplay",  cast(void**)& gdk_x11_colormap_get_xdisplay},
+	{ "gdk_x11_cursor_get_xcursor",  cast(void**)& gdk_x11_cursor_get_xcursor},
+	{ "gdk_x11_cursor_get_xdisplay",  cast(void**)& gdk_x11_cursor_get_xdisplay},
+	{ "gdk_x11_display_broadcast_startup_message",  cast(void**)& gdk_x11_display_broadcast_startup_message},
+	{ "gdk_x11_display_get_startup_notification_id",  cast(void**)& gdk_x11_display_get_startup_notification_id},
+	{ "gdk_x11_display_get_xdisplay",  cast(void**)& gdk_x11_display_get_xdisplay},
+	{ "gdk_x11_display_grab",  cast(void**)& gdk_x11_display_grab},
+	{ "gdk_x11_display_ungrab",  cast(void**)& gdk_x11_display_ungrab},
+	{ "gdk_x11_display_set_cursor_theme",  cast(void**)& gdk_x11_display_set_cursor_theme},
+	{ "gdk_x11_register_standard_event_type",  cast(void**)& gdk_x11_register_standard_event_type},
+	{ "gdk_x11_drawable_get_xdisplay",  cast(void**)& gdk_x11_drawable_get_xdisplay},
+        +/
+	{ "gdk_x11_drawable_get_xid",  cast(void**)& gdk_x11_drawable_get_xid},
+        /+
+	{ "gdk_x11_font_get_name",  cast(void**)& gdk_x11_font_get_name},
+	{ "gdk_x11_font_get_xdisplay",  cast(void**)& gdk_x11_font_get_xdisplay},
+	{ "gdk_x11_font_get_xfont",  cast(void**)& gdk_x11_font_get_xfont},
+	{ "gdk_x11_gc_get_xdisplay",  cast(void**)& gdk_x11_gc_get_xdisplay},
+	{ "gdk_x11_gc_get_xgc",  cast(void**)& gdk_x11_gc_get_xgc},
+	{ "gdk_x11_get_default_root_xwindow",  cast(void**)& gdk_x11_get_default_root_xwindow},
+	{ "gdk_x11_get_default_screen",  cast(void**)& gdk_x11_get_default_screen},
+	{ "gdk_x11_get_default_xdisplay",  cast(void**)& gdk_x11_get_default_xdisplay},
+	{ "gdk_x11_grab_server",  cast(void**)& gdk_x11_grab_server},
+	{ "gdk_x11_image_get_xdisplay",  cast(void**)& gdk_x11_image_get_xdisplay},
+	{ "gdk_x11_image_get_ximage",  cast(void**)& gdk_x11_image_get_ximage},
+	{ "gdk_x11_screen_get_screen_number",  cast(void**)& gdk_x11_screen_get_screen_number},
+	{ "gdk_x11_screen_get_xscreen",  cast(void**)& gdk_x11_screen_get_xscreen},
+	{ "gdk_x11_ungrab_server",  cast(void**)& gdk_x11_ungrab_server},
+	{ "gdk_x11_visual_get_xvisual",  cast(void**)& gdk_x11_visual_get_xvisual},
+	{ "gdk_x11_atom_to_xatom",  cast(void**)& gdk_x11_atom_to_xatom},
+	{ "gdk_x11_atom_to_xatom_for_display",  cast(void**)& gdk_x11_atom_to_xatom_for_display},
+	{ "gdk_x11_xatom_to_atom",  cast(void**)& gdk_x11_xatom_to_atom},
+	{ "gdk_x11_xatom_to_atom_for_display",  cast(void**)& gdk_x11_xatom_to_atom_for_display},
+	{ "gdk_x11_get_xatom_by_name",  cast(void**)& gdk_x11_get_xatom_by_name},
+	{ "gdk_x11_get_xatom_by_name_for_display",  cast(void**)& gdk_x11_get_xatom_by_name_for_display},
+	{ "gdk_x11_get_xatom_name",  cast(void**)& gdk_x11_get_xatom_name},
+	{ "gdk_x11_get_xatom_name_for_display",  cast(void**)& gdk_x11_get_xatom_name_for_display},
+        +/
+	{ "gdk_cairo_create",  cast(void**)& gdk_cairo_create},
+	{ "gdk_cairo_set_source_color",  cast(void**)& gdk_cairo_set_source_color},
+	{ "gdk_cairo_set_source_pixbuf",  cast(void**)& gdk_cairo_set_source_pixbuf},
+	{ "gdk_cairo_set_source_pixmap",  cast(void**)& gdk_cairo_set_source_pixmap},
+	{ "gdk_cairo_rectangle",  cast(void**)& gdk_cairo_rectangle},
+	{ "gdk_cairo_region",  cast(void**)& gdk_cairo_region},
+
+];
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/gtk/c/gdkpixbuf.d	Sat Jan 05 15:13:44 2008 -0800
@@ -0,0 +1,158 @@
+/******************************************************************************
+
+    This file is part of gtkD.
+
+    gtkD is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation; either version 2.1 of the License, or
+    (at your option) any later version.
+ 
+    gtkD is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with gtkD; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+******************************************************************************/
+
+module dwt.internal.gtk.c.gdkpixbuf;
+
+private import dwt.internal.gtk.c.gdkpixbuftypes;
+private import dwt.internal.gtk.runtime.Loader;
+
+/******************************************************************************
+
+******************************************************************************/
+
+private Linker gdkpixbufLinker;
+
+/******************************************************************************
+
+******************************************************************************/
+
+static this()
+{
+    gdkpixbufLinker = new Linker( getLibraryPath ~ importLibs[LIBRARY.GDKPIXBUF] );
+    gdkpixbufLinker.link( gdkpixbufLinks );
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+static ~this()
+{
+    delete gdkpixbufLinker;
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+extern(C) 
+{	
+	// gdkpixbuf.Pixdata
+	
+	gpointer function(GdkPixdata* pixdata, GdkPixbuf* pixbuf, gboolean useRle)gdk_pixdata_from_pixbuf;
+	GdkPixbuf* function(GdkPixdata* pixdata, gboolean copyPixels, GError** error)gdk_pixbuf_from_pixdata;
+	guint8* function(GdkPixdata* pixdata, guint* streamLengthP)gdk_pixdata_serialize;
+	gboolean function(GdkPixdata* pixdata, guint streamLength, guint8* stream, GError** error)gdk_pixdata_deserialize;
+	GString* function(GdkPixdata* pixdata, gchar* name, GdkPixdataDumpType dumpType)gdk_pixdata_to_csource;
+	
+	// gdkpixbuf.PixbufAnimation
+	
+	GdkPixbufAnimation* function(char* filename, GError** error)gdk_pixbuf_animation_new_from_file;
+	GdkPixbufAnimation* function(GdkPixbufAnimation* animation)gdk_pixbuf_animation_ref;
+	void function(GdkPixbufAnimation* animation)gdk_pixbuf_animation_unref;
+	int function(GdkPixbufAnimation* animation)gdk_pixbuf_animation_get_width;
+	int function(GdkPixbufAnimation* animation)gdk_pixbuf_animation_get_height;
+	GdkPixbufAnimationIter* function(GdkPixbufAnimation* animation, GTimeVal* startTime)gdk_pixbuf_animation_get_iter;
+	gboolean function(GdkPixbufAnimation* animation)gdk_pixbuf_animation_is_static_image;
+	GdkPixbuf* function(GdkPixbufAnimation* animation)gdk_pixbuf_animation_get_static_image;
+	gboolean function(GdkPixbufAnimationIter* iter, GTimeVal* currentTime)gdk_pixbuf_animation_iter_advance;
+	int function(GdkPixbufAnimationIter* iter)gdk_pixbuf_animation_iter_get_delay_time;
+	gboolean function(GdkPixbufAnimationIter* iter)gdk_pixbuf_animation_iter_on_currently_loading_frame;
+	GdkPixbuf* function(GdkPixbufAnimationIter* iter)gdk_pixbuf_animation_iter_get_pixbuf;
+	GdkPixbufSimpleAnim* function(gint width, gint height, gfloat rate)gdk_pixbuf_simple_anim_new;
+	void function(GdkPixbufSimpleAnim* animation, GdkPixbuf* pixbuf)gdk_pixbuf_simple_anim_add_frame;
+	
+	// gdkpixbuf.PixbufLoader
+	
+	GdkPixbufLoader* function()gdk_pixbuf_loader_new;
+	GdkPixbufLoader* function(char* imageType, GError** error)gdk_pixbuf_loader_new_with_type;
+	GdkPixbufLoader* function(char* mimeType, GError** error)gdk_pixbuf_loader_new_with_mime_type;
+	GdkPixbufFormat* function(GdkPixbufLoader* loader)gdk_pixbuf_loader_get_format;
+	gboolean function(GdkPixbufLoader* loader, guchar* buf, gsize count, GError** error)gdk_pixbuf_loader_write;
+	void function(GdkPixbufLoader* loader, int width, int height)gdk_pixbuf_loader_set_size;
+	GdkPixbuf* function(GdkPixbufLoader* loader)gdk_pixbuf_loader_get_pixbuf;
+	GdkPixbufAnimation* function(GdkPixbufLoader* loader)gdk_pixbuf_loader_get_animation;
+	gboolean function(GdkPixbufLoader* loader, GError** error)gdk_pixbuf_loader_close;
+	
+	// gdkpixbuf.PixbufFormat
+	
+	gboolean function(GdkPixbuf* pixbuf, gchar* key, gchar* value)gdk_pixbuf_set_option;
+	GSList* function()gdk_pixbuf_get_formats;
+	gchar* function(GdkPixbufFormat* format)gdk_pixbuf_format_get_name;
+	gchar* function(GdkPixbufFormat* format)gdk_pixbuf_format_get_description;
+	gchar** function(GdkPixbufFormat* format)gdk_pixbuf_format_get_mime_types;
+	gchar** function(GdkPixbufFormat* format)gdk_pixbuf_format_get_extensions;
+	gboolean function(GdkPixbufFormat* format)gdk_pixbuf_format_is_writable;
+	gboolean function(GdkPixbufFormat* format)gdk_pixbuf_format_is_scalable;
+	gboolean function(GdkPixbufFormat* format)gdk_pixbuf_format_is_disabled;
+	void function(GdkPixbufFormat* format, gboolean disabled)gdk_pixbuf_format_set_disabled;
+	gchar* function(GdkPixbufFormat* format)gdk_pixbuf_format_get_license;
+	GdkPixbufFormat* function(gchar* filename, gint* width, gint* height)gdk_pixbuf_get_file_info;
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+Symbol[] gdkpixbufLinks = 
+[
+
+	{ "gdk_pixdata_from_pixbuf",  cast(void**)& gdk_pixdata_from_pixbuf},
+	{ "gdk_pixbuf_from_pixdata",  cast(void**)& gdk_pixbuf_from_pixdata},
+	{ "gdk_pixdata_serialize",  cast(void**)& gdk_pixdata_serialize},
+	{ "gdk_pixdata_deserialize",  cast(void**)& gdk_pixdata_deserialize},
+	{ "gdk_pixdata_to_csource",  cast(void**)& gdk_pixdata_to_csource},
+	{ "gdk_pixbuf_animation_new_from_file",  cast(void**)& gdk_pixbuf_animation_new_from_file},
+	{ "gdk_pixbuf_animation_ref",  cast(void**)& gdk_pixbuf_animation_ref},
+	{ "gdk_pixbuf_animation_unref",  cast(void**)& gdk_pixbuf_animation_unref},
+	{ "gdk_pixbuf_animation_get_width",  cast(void**)& gdk_pixbuf_animation_get_width},
+	{ "gdk_pixbuf_animation_get_height",  cast(void**)& gdk_pixbuf_animation_get_height},
+	{ "gdk_pixbuf_animation_get_iter",  cast(void**)& gdk_pixbuf_animation_get_iter},
+	{ "gdk_pixbuf_animation_is_static_image",  cast(void**)& gdk_pixbuf_animation_is_static_image},
+	{ "gdk_pixbuf_animation_get_static_image",  cast(void**)& gdk_pixbuf_animation_get_static_image},
+	{ "gdk_pixbuf_animation_iter_advance",  cast(void**)& gdk_pixbuf_animation_iter_advance},
+	{ "gdk_pixbuf_animation_iter_get_delay_time",  cast(void**)& gdk_pixbuf_animation_iter_get_delay_time},
+	{ "gdk_pixbuf_animation_iter_on_currently_loading_frame",  cast(void**)& gdk_pixbuf_animation_iter_on_currently_loading_frame},
+	{ "gdk_pixbuf_animation_iter_get_pixbuf",  cast(void**)& gdk_pixbuf_animation_iter_get_pixbuf},
+	{ "gdk_pixbuf_simple_anim_new",  cast(void**)& gdk_pixbuf_simple_anim_new},
+	{ "gdk_pixbuf_simple_anim_add_frame",  cast(void**)& gdk_pixbuf_simple_anim_add_frame},
+	{ "gdk_pixbuf_loader_new",  cast(void**)& gdk_pixbuf_loader_new},
+	{ "gdk_pixbuf_loader_new_with_type",  cast(void**)& gdk_pixbuf_loader_new_with_type},
+	{ "gdk_pixbuf_loader_new_with_mime_type",  cast(void**)& gdk_pixbuf_loader_new_with_mime_type},
+	{ "gdk_pixbuf_loader_get_format",  cast(void**)& gdk_pixbuf_loader_get_format},
+	{ "gdk_pixbuf_loader_write",  cast(void**)& gdk_pixbuf_loader_write},
+	{ "gdk_pixbuf_loader_set_size",  cast(void**)& gdk_pixbuf_loader_set_size},
+	{ "gdk_pixbuf_loader_get_pixbuf",  cast(void**)& gdk_pixbuf_loader_get_pixbuf},
+	{ "gdk_pixbuf_loader_get_animation",  cast(void**)& gdk_pixbuf_loader_get_animation},
+	{ "gdk_pixbuf_loader_close",  cast(void**)& gdk_pixbuf_loader_close},
+	{ "gdk_pixbuf_set_option",  cast(void**)& gdk_pixbuf_set_option},
+	{ "gdk_pixbuf_get_formats",  cast(void**)& gdk_pixbuf_get_formats},
+	{ "gdk_pixbuf_format_get_name",  cast(void**)& gdk_pixbuf_format_get_name},
+	{ "gdk_pixbuf_format_get_description",  cast(void**)& gdk_pixbuf_format_get_description},
+	{ "gdk_pixbuf_format_get_mime_types",  cast(void**)& gdk_pixbuf_format_get_mime_types},
+	{ "gdk_pixbuf_format_get_extensions",  cast(void**)& gdk_pixbuf_format_get_extensions},
+	{ "gdk_pixbuf_format_is_writable",  cast(void**)& gdk_pixbuf_format_is_writable},
+	{ "gdk_pixbuf_format_is_scalable",  cast(void**)& gdk_pixbuf_format_is_scalable},
+	{ "gdk_pixbuf_format_is_disabled",  cast(void**)& gdk_pixbuf_format_is_disabled},
+	{ "gdk_pixbuf_format_set_disabled",  cast(void**)& gdk_pixbuf_format_set_disabled},
+	{ "gdk_pixbuf_format_get_license",  cast(void**)& gdk_pixbuf_format_get_license},
+	{ "gdk_pixbuf_get_file_info",  cast(void**)& gdk_pixbuf_get_file_info},
+
+];
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/gtk/c/gdkpixbuftypes.d	Sat Jan 05 15:13:44 2008 -0800
@@ -0,0 +1,443 @@
+/******************************************************************************
+
+    This file is part of gtkD.
+
+    gtkD is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation; either version 2.1 of the License, or
+    (at your option) any later version.
+ 
+    gtkD is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with gtkD; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+******************************************************************************/
+
+module dwt.internal.gtk.c.gdkpixbuftypes;
+
+public import dwt.internal.gtk.c.glibtypes;
+public import dwt.internal.gtk.c.gobjecttypes;
+public import dwt.internal.gtk.c.gdktypes;
+
+/******************************************************************************
+
+******************************************************************************/
+
+public alias void* AtkFocusHandler;
+public struct AtkStateSet;
+public struct AtkRectangle;
+
+/**
+ * An enumeration containing three sets of flags for a GdkPixdata struct:
+ * one for the used colorspace, one for the width of the samples and one
+ * for the encoding of the pixel data.
+ * GDK_PIXDATA_COLOR_TYPE_RGB
+ */
+public enum GdkPixdataType
+{
+	/+* colorspace + alpha +/
+	GDK_PIXDATA_COLOR_TYPE_RGB = 0x01,
+	GDK_PIXDATA_COLOR_TYPE_RGBA = 0x02,
+	GDK_PIXDATA_COLOR_TYPE_MASK = 0xff,
+	/+* width, support 8bits only currently +/
+	GDK_PIXDATA_SAMPLE_WIDTH_8 = 0x01 << 16,
+	GDK_PIXDATA_SAMPLE_WIDTH_MASK = 0x0f << 16,
+	/+* encoding +/
+	GDK_PIXDATA_ENCODING_RAW = 0x01 << 24,
+	GDK_PIXDATA_ENCODING_RLE = 0x02 << 24,
+	GDK_PIXDATA_ENCODING_MASK = 0x0f << 24
+}
+alias GdkPixdataType PixdataType;
+
+/**
+ * An enumeration which is used by gdk_pixdata_to_csource() to
+ * determine the form of C source to be generated. The three values
+ * GDK_PIXDATA_DUMP_PIXDATA_STREAM, GDK_PIXDATA_DUMP_PIXDATA_STRUCT
+ * and GDK_PIXDATA_DUMP_MACROS are mutually exclusive, as are
+ * GDK_PIXBUF_DUMP_GTYPES and GDK_PIXBUF_DUMP_CTYPES. The remaining
+ * elements are optional flags that can be freely added.
+ * GDK_PIXDATA_DUMP_PIXDATA_STREAM
+ */
+public enum GdkPixdataDumpType
+{
+	/+* type of source to save +/
+	GDK_PIXDATA_DUMP_PIXDATA_STREAM = 0,
+	GDK_PIXDATA_DUMP_PIXDATA_STRUCT = 1,
+	GDK_PIXDATA_DUMP_MACROS = 2,
+	/+* type of variables to use +/
+	GDK_PIXDATA_DUMP_GTYPES = 0,
+	GDK_PIXDATA_DUMP_CTYPES = 1 << 8,
+	GDK_PIXDATA_DUMP_STATIC = 1 << 9,
+	GDK_PIXDATA_DUMP_CONST = 1 << 10,
+	/+* save RLE decoder macro? +/
+	GDK_PIXDATA_DUMP_RLE_DECODER = 1 << 16
+}
+alias GdkPixdataDumpType PixdataDumpType;
+
+/**
+ * Flags which allow a module to specify further details about the supported
+ * operations.
+ * Since 2.2
+ */
+public enum GdkPixbufFormatFlags
+{
+	WRITABLE = 1 << 0,
+	SCALABLE = 1 << 1,
+	THREADSAFE = 1 << 2
+}
+alias GdkPixbufFormatFlags PixbufFormatFlags;
+
+
+/**
+ * Main Gtk struct.
+ * A GdkPixdata contains pixbuf information in a form suitable for
+ * serialization and streaming.
+ * guint32magic;
+ */
+public struct GdkPixdata{}
+// uint magic; /+* GDK_PIXBUF_MAGIC_NUMBER +/
+// gdk-pixbuf-inline.html
+// int length; /+* <1 to disable length checks, otherwise:
+// gdk-pixbuf-inline.html
+// * GDK_PIXDATA_HEADER_LENGTH + pixelData length
+// gdk-pixbuf-inline.html
+// +/
+// gdk-pixbuf-inline.html
+// uint pixdataType; /+* GdkPixdataType +/
+// gdk-pixbuf-inline.html
+// uint rowstride;
+// gdk-pixbuf-inline.html
+// uint width;
+// gdk-pixbuf-inline.html
+// uint height;
+// gdk-pixbuf-inline.html
+// byte *pixelData;
+// gdk-pixbuf-inline.html
+
+
+/**
+ * Main Gtk struct.
+ * And opaque struct representing an animation.
+ */
+public struct GdkPixbufAnimation{}
+
+
+/**
+ * And opaque struct representing an iterator which points to a
+ * certain position in an animation.
+ */
+public struct GdkPixbufAnimationIter{}
+
+
+/**
+ * An
+ */
+public struct GdkPixbufSimpleAnim{}
+
+
+/**
+ * Main Gtk struct.
+ * The GdkPixbufLoader struct contains only private
+ * fields.
+ */
+public struct GdkPixbufLoader{}
+
+
+/**
+ * Main Gtk struct.
+ * A GdkPixbufFormat contains information about the image format accepted by a
+ * module. Only modules should access the fields directly, applications should
+ * use the gdk_pixbuf_format_* functions.
+ * gchar*name;
+ * the name of the image format.
+ * GdkPixbufModulePattern*signature;
+ * the signature of the module.
+ * gchar*domain;
+ * the message domain for the description.
+ * gchar*description;
+ * a description of the image format.
+ * gchar**mime_types;
+ * a NULL-terminated array of MIME types for the image format.
+ * gchar**extensions;
+ * a NULL-terminated array of typical filename extensions for the
+ * image format.
+ * guint32flags;
+ * a combination of GdkPixbufFormatFlags.
+ * gbooleandisabled;
+ * a boolean determining whether the loader is disabled.
+ * gchar*license;
+ * a string containing license information, typically set to
+ */
+public struct GdkPixbufFormat{}
+// char *name;
+// gdk-pixbuf-Module-Interface.html
+// GdkPixbufModulePattern *signature;
+// gdk-pixbuf-Module-Interface.html
+// char *domain;
+// gdk-pixbuf-Module-Interface.html
+// char *description;
+// gdk-pixbuf-Module-Interface.html
+// char **mimeTypes;
+// gdk-pixbuf-Module-Interface.html
+// char **extensions;
+// gdk-pixbuf-Module-Interface.html
+// uint flags;
+// gdk-pixbuf-Module-Interface.html
+// int disabled;
+// gdk-pixbuf-Module-Interface.html
+// char *license;
+// gdk-pixbuf-Module-Interface.html
+
+
+/**
+ * The signature of a module is a set of prefixes. Prefixes are encoded as
+ * pairs of ordinary strings, where the second string, called the mask, if
+ * not NULL, must be of the same length as the first one and may contain
+ * ' ', '!', 'x', 'z', and 'n' to indicate bytes that must be matched,
+ * not matched, "don't-care"-bytes, zeros and non-zeros.
+ * Each prefix has an associated integer that describes the relevance of
+ * the prefix, with 0 meaning a mismatch and 100 a "perfect match".
+ * Starting with gdk-pixbuf 2.8, the first byte of the mask may be '*',
+ * indicating an unanchored pattern that matches not only at the beginning,
+ * but also in the middle. Versions prior to 2.8 will interpret the '*'
+ * like an 'x'.
+ * The signature of a module is stored as an array of
+ * GdkPixbufModulePatterns. The array is terminated by a pattern
+ * where the prefix is NULL.
+ * GdkPixbufModulePattern *signature[] = {
+	 */
+public struct GdkPixbufModulePattern{}
+// char *prefix;
+// gdk-pixbuf-Module-Interface.html
+// char *mask;
+// gdk-pixbuf-Module-Interface.html
+// int relevance;
+// gdk-pixbuf-Module-Interface.html
+
+
+/**
+ * A GdkPixbufModule contains the necessary functions to load and save
+ * images in a certain file format.
+ * A GdkPixbufModule can be loaded dynamically from a GModule.
+ * Each loadable module must contain a GdkPixbufModuleFillVtableFunc function
+ * named fill_vtable, which will get called when the module
+ * is loaded and must set the function pointers of the GdkPixbufModule.
+ * char*module_name;
+ * the name of the module, usually the same as the
+ */
+public struct GdkPixbufModule{}
+// char *moduleName;
+// gdk-pixbuf-Module-Interface.html
+// char *modulePath;
+// gdk-pixbuf-Module-Interface.html
+// GModule *modul;
+// gdk-pixbuf-Module-Interface.html
+// GdkPixbufFormat *info;
+// gdk-pixbuf-Module-Interface.html
+// GdkPixbuf *(* load) (FILE *f,
+// gdk-pixbuf-Module-Interface.html
+// GError **error);
+// gdk-pixbuf-Module-Interface.html
+// GdkPixbuf *(* loadXpmData) ( char **data);
+// gdk-pixbuf-Module-Interface.html
+// /+* Incremental loading +/
+// gdk-pixbuf-Module-Interface.html
+// void* (* beginLoad) (GdkPixbufModuleSizeFunc sizeFunc,
+// gdk-pixbuf-Module-Interface.html
+// GdkPixbufModulePreparedFunc prepareFunc,
+// gdk-pixbuf-Module-Interface.html
+// GdkPixbufModuleUpdatedFunc updateFunc,
+// gdk-pixbuf-Module-Interface.html
+// void* userData,
+// gdk-pixbuf-Module-Interface.html
+// GError **error);
+// gdk-pixbuf-Module-Interface.html
+// int (* stopLoad) (void* context,
+// gdk-pixbuf-Module-Interface.html
+// GError **error);
+// gdk-pixbuf-Module-Interface.html
+// int (* loadIncrement) (void* context,
+// gdk-pixbuf-Module-Interface.html
+// char *buf,
+// gdk-pixbuf-Module-Interface.html
+// uint size,
+// gdk-pixbuf-Module-Interface.html
+// GError **error);
+// gdk-pixbuf-Module-Interface.html
+// /+* Animation loading +/
+// gdk-pixbuf-Module-Interface.html
+// GdkPixbufAnimation *(* loadAnimation) (FILE *f,
+// gdk-pixbuf-Module-Interface.html
+// GError **error);
+// gdk-pixbuf-Module-Interface.html
+// /+* Saving +/
+// gdk-pixbuf-Module-Interface.html
+// int (* save) (FILE *f,
+// gdk-pixbuf-Module-Interface.html
+// GdkPixbuf *pixbuf,
+// gdk-pixbuf-Module-Interface.html
+// char **paramKeys,
+// gdk-pixbuf-Module-Interface.html
+// char **paramValues,
+// gdk-pixbuf-Module-Interface.html
+// GError **error);
+// gdk-pixbuf-Module-Interface.html
+// int (*saveToCallback) (GdkPixbufSaveFunc saveFunc,
+// gdk-pixbuf-Module-Interface.html
+// void* userData,
+// gdk-pixbuf-Module-Interface.html
+// GdkPixbuf *pixbuf,
+// gdk-pixbuf-Module-Interface.html
+// char **optionKeys,
+// gdk-pixbuf-Module-Interface.html
+// char **optionValues,
+// gdk-pixbuf-Module-Interface.html
+// GError **error);
+// gdk-pixbuf-Module-Interface.html
+
+
+/**
+ * Modules supporting animations must derive a type from
+ * GdkPixbufAnimation, providing suitable implementations of the
+ * virtual functions.
+ * GObjectClassparent_class;
+ * the parent class
+ * is_static_image()
+ * returns whether the given animation is just a static image.
+ * get_static_image()
+ * returns a static image representing the given animation.
+ * get_size()
+ * fills width and height with the frame size of the animation.
+ * get_iter()
+ * returns an iterator for the given animation.
+ */
+public struct GdkPixbufAnimationClass{}
+// GObjectClass parentClass;
+// gdk-pixbuf-Module-Interface.html
+// int (*isStaticImage) (GdkPixbufAnimation *anim);
+// gdk-pixbuf-Module-Interface.html
+// GdkPixbuf* (*getStaticImage) (GdkPixbufAnimation *anim);
+// gdk-pixbuf-Module-Interface.html
+// void (*getSize) (GdkPixbufAnimation *anim,
+// gdk-pixbuf-Module-Interface.html
+// int *width,
+// gdk-pixbuf-Module-Interface.html
+// int *height);
+// gdk-pixbuf-Module-Interface.html
+// GdkPixbufAnimationIter* (*getIter) (GdkPixbufAnimation *anim,
+// gdk-pixbuf-Module-Interface.html
+// GTimeVal *startTime);
+// gdk-pixbuf-Module-Interface.html
+
+
+/**
+ * Modules supporting animations must derive a type from
+ * GdkPixbufAnimationIter, providing suitable implementations of the
+ * virtual functions.
+ * GObjectClassparent_class;
+ * the parent class
+ * get_delay_time()
+ * returns the time in milliseconds that the current frame
+ */
+public struct GdkPixbufAnimationIterClass{}
+// GObjectClass parentClass;
+// gdk-pixbuf-Module-Interface.html
+// int (*getDelayTime) (GdkPixbufAnimationIter *iter);
+// gdk-pixbuf-Module-Interface.html
+// GdkPixbuf* (*getPixbuf) (GdkPixbufAnimationIter *iter);
+// gdk-pixbuf-Module-Interface.html
+// int (*onCurrentlyLoadingFrame) (GdkPixbufAnimationIter *iter);
+// gdk-pixbuf-Module-Interface.html
+// int (*advance) (GdkPixbufAnimationIter *iter,
+// gdk-pixbuf-Module-Interface.html
+// GTimeVal *currentTime);
+// gdk-pixbuf-Module-Interface.html
+
+
+/*
+ * Defines the type of the function used to set the vtable of a
+ * GdkPixbufModule when it is loaded.
+ * module:
+ * a GdkPixbufModule.
+ * Since 2.2
+ */
+// void (*GdkPixbufModuleFillVtableFunc) (GdkPixbufModule *module);
+public typedef extern(C) void  function (GdkPixbufModule*) GdkPixbufModuleFillVtableFunc;
+
+/*
+ * Defines the type of the function used to fill a
+ * GdkPixbufFormat structure with information about a module.
+ * info:
+ * a GdkPixbufFormat.
+ * Since 2.2
+ */
+// void (*GdkPixbufModuleFillInfoFunc) (GdkPixbufFormat *info);
+public typedef extern(C) void  function (GdkPixbufFormat*) GdkPixbufModuleFillInfoFunc;
+
+/*
+ * Defines the type of the function that gets called once the size
+ * of the loaded image is known.
+ * The function is expected to set width and height to the desired
+ * size to which the image should be scaled. If a module has no efficient
+ * way to achieve the desired scaling during the loading of the image, it may
+ * either ignore the size request, or only approximate it -- gdk-pixbuf will
+ * then perform the required scaling on the completely loaded image.
+ * If the function sets width or height to zero, the module should interpret
+ * this as a hint that it will be closed soon and shouldn't allocate further
+ * resources. This convention is used to implement gdk_pixbuf_get_file_info()
+ * efficiently.
+ * width:
+ * pointer to a location containing the current image width
+ * height:
+ * pointer to a location containing the current image height
+ * user_data:
+ * the loader.
+ * Since 2.2
+ */
+// void (*GdkPixbufModuleSizeFunc) (gint *width,  gint *height,  gpointer user_data);
+public typedef extern(C) void  function (gint*, gint*, void*) GdkPixbufModuleSizeFunc;
+
+/*
+ * Defines the type of the function that gets called once the initial
+ * setup of pixbuf is done.
+ * GdkPixbufLoader uses a function of this type to emit the
+ * "area_prepared"
+ * signal.
+ * pixbuf:
+ * the GdkPixbuf that is currently being loaded.
+ * anim:
+ * if an animation is being loaded, the GdkPixbufAnimation, else NULL.
+ * user_data:
+ * the loader.
+ * Since 2.2
+ */
+// void (*GdkPixbufModulePreparedFunc) (GdkPixbuf *pixbuf,  GdkPixbufAnimation *anim,  gpointer user_data);
+public typedef extern(C) void  function (GdkPixbuf*, GdkPixbufAnimation*, void*) GdkPixbufModulePreparedFunc;
+
+/*
+ * Defines the type of the function that gets called every time a region
+ * of pixbuf is updated.
+ * GdkPixbufLoader uses a function of this type to emit the
+ * "area_updated"
+ * signal.
+ * pixbuf:
+ * the GdkPixbuf that is currently being loaded.
+ * x:
+ * the X origin of the updated area.
+ * y:
+ * the Y origin of the updated area.
+ * width:
+ * the width of the updated area.
+ * height:
+ * the height of the updated area.
+ * user_data:
+ * the loader.
+ * Since 2.2
+ */
+// void (*GdkPixbufModuleUpdatedFunc) (GdkPixbuf *pixbuf,  int x,  int y,  int width,  int height,  gpointer user_data);
+public typedef extern(C) void  function (GdkPixbuf*, int, int, int, int, void*) GdkPixbufModuleUpdatedFunc;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/gtk/c/gdktypes.d	Sat Jan 05 15:13:44 2008 -0800
@@ -0,0 +1,3408 @@
+/******************************************************************************
+
+    This file is part of gtkD.
+
+    gtkD is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation; either version 2.1 of the License, or
+    (at your option) any later version.
+ 
+    gtkD is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with gtkD; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+******************************************************************************/
+
+module dwt.internal.gtk.c.gdktypes;
+
+/******************************************************************************
+
+******************************************************************************/
+
+public import dwt.internal.gtk.c.glibtypes;
+public import dwt.internal.gtk.c.gobjecttypes;
+public import dwt.internal.gtk.c.pangotypes;
+public import dwt.internal.gtk.c.gdkpixbuftypes;
+
+/******************************************************************************
+
+******************************************************************************/
+
+alias void* GdkAtom;
+alias void* GdkNativeWindow;
+
+/**
+ * typedef guint32			 GdkWChar;
+ * Specifies a wide character type, used to represent character codes.
+ * This is needed since some native languages have character sets which have
+ * more than 256 characters (Japanese and Chinese, for example).
+ * Wide character values between 0 and 127 are always identical in meaning to
+ * the ASCII character codes. The wide character value 0 is often used to
+ * terminate strings of wide characters in a similar way to normal strings
+ * using the char type.
+ * An alternative to wide characters is multi-byte characters, which extend
+ * normal char strings to cope with larger character sets. As the name suggests,
+ * multi-byte characters use a different number of bytes to store different
+ * character codes. For example codes 0-127 (i.e. the ASCII codes) often
+ * use just one byte of memory, while other codes may use 2, 3 or even 4 bytes.
+ * Multi-byte characters have the advantage that they can often be used in an
+ * application with little change, since strings are still represented as arrays
+ * of char values. However multi-byte strings are much easier to manipulate since
+ * the character are all of the same size.
+ * Applications typically use wide characters to represent character codes
+ * internally, and multi-byte strings when saving the characters to a file.
+ * The gdk_wcstombs() and gdk_mbstowcs() functions can be used to convert from
+ * one representation to the other.
+ * See the 'Extended Characters' section of the GNU C Library Reference Manual
+ * for more detailed information on wide and multi-byte characters.
+ */
+public alias uint GdkWChar;
+
+/**
+ * typedef void GdkXEvent;	 /+* Can be cast to window system specific
+ * Used to represent native events (XEvents for the X11
+ * backend, MSGs for Win32).
+ */
+public alias void GdkXEvent;
+
+/**
+ * typedef GdkAtom GdkSelection;
+ * Warning
+ * GdkSelection is deprecated and should not be used in newly-written code.
+ * The GdkSelection enumeration contains predefined
+ * atom values for several common selections.
+ */
+public alias GdkAtom GdkSelection;
+
+/**
+ * typedef GdkAtom GdkSelectionType;
+ * Warning
+ * GdkSelectionType is deprecated and should not be used in newly-written code.
+ * The GdkSelectionType enumeration contains predefined
+ * atom values used to represent the types of data transferred
+ * in response to a request for a target. See the
+ * ICCCM for details about what data should be transferred
+ * for each of these types. Other atoms can be used,
+ * and the recommended practice for GTK+ is to to use mime
+ * types for this purpose. However, supporting these types
+ * may be useful for compatibility with older programs.
+ */
+public alias GdkAtom GdkSelectionType;
+
+/**
+ * typedef GdkAtom GdkTarget;
+ * Warning
+ * GdkTarget is deprecated and should not be used in newly-written code.
+ * The GdkTarget enumeration contains predefined atom values which are
+ * used to describe possible targets for a selection. Other atoms can be
+ * used, and the recommended practice for GTK+ is to to use mime types
+ * for this purpose. However, supporting these types may be useful for
+ * compatibility with older programs.
+ */
+public alias GdkAtom GdkTarget;
+/**
+ * Returned by gdk_pointer_grab() and gdk_keyboard_grab() to indicate
+ * success or the reason for the failure of the grab attempt.
+ * GDK_GRAB_SUCCESS
+ * the resource was successfully grabbed.
+ * GDK_GRAB_ALREADY_GRABBED
+ * the resource is actively grabbed by another client.
+ * GDK_GRAB_INVALID_TIME
+ * the resource was grabbed more recently than the
+ */
+public enum GdkGrabStatus
+{
+	SUCCESS = 0,
+	ALREADY_GRABBED = 1,
+	INVALID_TIME = 2,
+	NOT_VIEWABLE = 3,
+	FROZEN = 4
+}
+alias GdkGrabStatus GrabStatus;
+
+/**
+ * The method for determining which pixels are included in a region, when
+ * creating a GdkRegion from a polygon.
+ * The fill rule is only relevant for polygons which overlap themselves.
+ * GDK_EVEN_ODD_RULE
+ * areas which are overlapped an odd number of times are
+ * included in the region, while areas overlapped an even number of times are not.
+ * GDK_WINDING_RULE
+ * overlapping areas are always included.
+ */
+public enum GdkFillRule
+{
+	EVEN_ODD_RULE,
+	WINDING_RULE
+}
+alias GdkFillRule FillRule;
+
+/**
+ * Specifies the possible values returned by gdk_region_rect_in().
+ * GDK_OVERLAP_RECTANGLE_IN
+ * if the rectangle is inside the GdkRegion.
+ * GDK_OVERLAP_RECTANGLE_OUT
+ * if the rectangle is outside the GdkRegion.
+ * GDK_OVERLAP_RECTANGLE_PART
+ * if the rectangle is partly inside the GdkRegion.
+ */
+public enum GdkOverlapType
+{
+	RECTANGLE_IN,
+	RECTANGLE_OUT,
+	RECTANGLE_PART
+}
+alias GdkOverlapType OverlapType;
+
+/**
+ * A set of bit flags used to indicate which fields
+ * GdkGCValues structure are set.
+ * GDK_GC_FOREGROUND
+ * the foreground is set.
+ * GDK_GC_BACKGROUND
+ * the background is set.
+ * GDK_GC_FONT
+ * the font is set.
+ * GDK_GC_FUNCTION
+ * the function is set.
+ * GDK_GC_FILL
+ * the fill is set.
+ * GDK_GC_TILE
+ * the tile is set.
+ * GDK_GC_STIPPLE
+ * the stipple is set.
+ * GDK_GC_CLIP_MASK
+ * the clip_mask is set.
+ * GDK_GC_SUBWINDOW
+ * the subwindow_mode is set.
+ * GDK_GC_TS_X_ORIGIN
+ * the ts_x_origin is set.
+ * GDK_GC_TS_Y_ORIGIN
+ * the ts_y_origin is set.
+ * GDK_GC_CLIP_X_ORIGIN
+ * the clip_x_origin is set.
+ * GDK_GC_CLIP_Y_ORIGIN
+ * the clip_y_origin is set.
+ * GDK_GC_EXPOSURES
+ * the graphics_exposures is set.
+ * GDK_GC_LINE_WIDTH
+ * the line_width is set.
+ * GDK_GC_LINE_STYLE
+ * the line_style is set.
+ * GDK_GC_CAP_STYLE
+ * the cap_style is set.
+ * GDK_GC_JOIN_STYLE
+ * the join_style is set.
+ */
+public enum GdkGCValuesMask
+{
+	FOREGROUND = 1 << 0,
+	BACKGROUND = 1 << 1,
+	FONT = 1 << 2,
+	FUNCTION = 1 << 3,
+	FILL = 1 << 4,
+	TILE = 1 << 5,
+	STIPPLE = 1 << 6,
+	CLIP_MASK = 1 << 7,
+	SUBWINDOW = 1 << 8,
+	TS_X_ORIGIN = 1 << 9,
+	TS_Y_ORIGIN = 1 << 10,
+	CLIP_X_ORIGIN = 1 << 11,
+	CLIP_Y_ORIGIN = 1 << 12,
+	EXPOSURES = 1 << 13,
+	LINE_WIDTH = 1 << 14,
+	LINE_STYLE = 1 << 15,
+	CAP_STYLE = 1 << 16,
+	JOIN_STYLE = 1 << 17
+}
+alias GdkGCValuesMask GCValuesMask;
+
+/**
+ * Determines how the bit values for the source pixels are combined with
+ * the bit values for destination pixels to produce the final result. The
+ * sixteen values here correspond to the 16 different possible 2x2 truth
+ * tables. Only a couple of these values are usually useful; for colored
+ * images, only GDK_COPY, GDK_XOR and GDK_INVERT are generally
+ * useful. For bitmaps, GDK_AND and GDK_OR are also useful.
+ * GDK_COPY
+ * dst = src
+ * GDK_INVERT
+ * dst = NOT dst
+ * GDK_XOR
+ * dst = src XOR dst
+ * GDK_CLEAR
+ * dst = 0
+ * GDK_AND
+ * dst = dst AND src
+ * GDK_AND_REVERSE
+ * dst = src AND (NOT dst)
+ * GDK_AND_INVERT
+ * dst = (NOT src) AND dst
+ * GDK_NOOP
+ * dst = dst
+ * GDK_OR
+ * dst = src OR dst
+ * GDK_EQUIV
+ * dst = (NOT src) XOR dst
+ * GDK_OR_REVERSE
+ * dst = src OR (NOT dst)
+ * GDK_COPY_INVERT
+ * dst = NOT src
+ * GDK_OR_INVERT
+ * dst = (NOT src) OR dst
+ * GDK_NAND
+ * dst = (NOT src) OR (NOT dst)
+ * GDK_NOR
+ * dst = (NOT src) AND (NOT dst)
+ * GDK_SET
+ * dst = 1
+ */
+public enum GdkFunction
+{
+	COPY,
+	INVERT,
+	XOR,
+	CLEAR,
+	AND,
+	AND_REVERSE,
+	AND_INVERT,
+	NOOP,
+	OR,
+	EQUIV,
+	OR_REVERSE,
+	COPY_INVERT,
+	OR_INVERT,
+	NAND,
+	NOR,
+	SET
+}
+alias GdkFunction Funct;
+
+/**
+ * Determines how primitives are drawn.
+ * GDK_SOLID
+ * draw with the foreground color.
+ * GDK_TILED
+ * draw with a tiled pixmap.
+ * GDK_STIPPLED
+ * draw using the stipple bitmap. Pixels corresponding
+ */
+public enum GdkFill
+{
+	SOLID,
+	TILED,
+	STIPPLED,
+	OPAQUE_STIPPLED
+}
+alias GdkFill Fill;
+
+/**
+ * Determines how drawing onto a window will affect child
+ * windows of that window.
+ * GDK_CLIP_BY_CHILDREN
+ * only draw onto the window itself.
+ * GDK_INCLUDE_INFERIORS
+ * draw onto the window and child windows.
+ */
+public enum GdkSubwindowMode
+{
+	CLIP_BY_CHILDREN = 0,
+	INCLUDE_INFERIORS = 1
+}
+alias GdkSubwindowMode SubwindowMode;
+
+/**
+ * Determines how lines are drawn.
+ * GDK_LINE_SOLID
+ * lines are drawn solid.
+ * GDK_LINE_ON_OFF_DASH
+ * even segments are drawn; odd segments are not drawn.
+ * GDK_LINE_DOUBLE_DASH
+ * even segments are normally. Odd segments are drawn
+ */
+public enum GdkLineStyle
+{
+	SOLID,
+	ON_OFF_DASH,
+	DOUBLE_DASH
+}
+alias GdkLineStyle LineStyle;
+
+/**
+ * Determines how the end of lines are drawn.
+ * GDK_CAP_NOT_LAST
+ * the same as GDK_CAP_BUTT for lines of non-zero width.
+ */
+public enum GdkCapStyle
+{
+	NOT_LAST,
+	BUTT,
+	ROUND,
+	PROJECTING
+}
+alias GdkCapStyle CapStyle;
+
+/**
+ * Determines how the joins between segments of a polygon are drawn.
+ * GDK_JOIN_MITER
+ * the sides of each line are extended to meet at an angle.
+ * GDK_JOIN_ROUND
+ * the sides of the two lines are joined by a circular arc.
+ * GDK_JOIN_BEVEL
+ * the sides of the two lines are joined by a straight line which
+ */
+public enum GdkJoinStyle
+{
+	MITER,
+	ROUND,
+	BEVEL
+}
+alias GdkJoinStyle JoinStyle;
+
+/**
+ * Selects whether or not GdkRGB applies dithering
+ * to the image on display.
+ * Since GdkRGB currently only handles images with 8 bits per component,
+ * dithering on 24 bit per pixel displays is a moot point.
+ * GDK_RGB_DITHER_NONE
+ * Never use dithering.
+ * GDK_RGB_DITHER_NORMAL
+ * Use dithering in 8 bits per pixel (and below)
+ * only.
+ * GDK_RGB_DITHER_MAX
+ * Use dithering in 16 bits per pixel and below.
+ */
+public enum GdkRgbDither
+{
+	NONE,
+	NORMAL,
+	MAX
+}
+alias GdkRgbDither RgbDither;
+
+/**
+ * Specifies the type of a GdkImage.
+ * GDK_IMAGE_NORMAL
+ * The original X image type, which is quite slow since the
+ * image has to be transferred from the client to the server to display it.
+ * GDK_IMAGE_SHARED
+ * A faster image type, which uses shared memory to transfer
+ * the image data between client and server. However this will only be available
+ * if client and server are on the same machine and the shared memory extension
+ * is supported by the server.
+ * GDK_IMAGE_FASTEST
+ * Specifies that GDK_IMAGE_SHARED should be tried first,
+ * and if that fails then GDK_IMAGE_NORMAL will be used.
+ */
+public enum GdkImageType
+{
+	NORMAL,
+	SHARED,
+	FASTEST
+}
+alias GdkImageType ImageType;
+
+/**
+ * An error code in the GDK_PIXBUF_ERROR domain. Many gdk-pixbuf
+ * operations can cause errors in this domain, or in the G_FILE_ERROR
+ * domain.
+ * GDK_PIXBUF_ERROR_CORRUPT_IMAGE
+ * An image file was broken somehow.
+ * GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY
+ * Not enough memory.
+ * GDK_PIXBUF_ERROR_BAD_OPTION
+ * A bad option was passed to a pixbuf save module.
+ * GDK_PIXBUF_ERROR_UNKNOWN_TYPE
+ * Unknown image type.
+ * GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATION
+ * Don't know how to perform the
+ * given operation on the type of image at hand.
+ * GDK_PIXBUF_ERROR_FAILED
+ * Generic failure code, something went wrong.
+ */
+public enum GdkPixbufError
+{
+	/+* image data hosed +/
+	GDK_PIXBUF_ERROR_CORRUPT_IMAGE,
+	/+* no mem to load image +/
+	GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY,
+	/+* bad option passed to save routine +/
+	GDK_PIXBUF_ERROR_BAD_OPTION,
+	/+* unsupported image type (sort of an ENOSYS) +/
+	GDK_PIXBUF_ERROR_UNKNOWN_TYPE,
+	/+* unsupported operation (load, save) for image type +/
+	GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATION,
+	GDK_PIXBUF_ERROR_FAILED
+}
+alias GdkPixbufError PixbufError;
+
+/**
+ */
+public enum GdkColorspace
+{
+	RGB
+}
+alias GdkColorspace Colorspace;
+
+/**
+ */
+public enum GdkPixbufAlphaMode
+{
+	BILEVEL,
+	FULL
+}
+alias GdkPixbufAlphaMode PixbufAlphaMode;
+
+/**
+ */
+public enum GdkInterpType
+{
+	NEAREST,
+	TILES,
+	BILINEAR,
+	HYPER
+}
+alias GdkInterpType InterpType;
+
+/**
+ * The possible rotations which can be passed to gdk_pixbuf_rotate_simple().
+ * To make them easier to use, their numerical values are the actual degrees.
+ * GDK_PIXBUF_ROTATE_NONE
+ * No rotation.
+ * GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE
+ * Rotate by 90 degrees.
+ * GDK_PIXBUF_ROTATE_UPSIDEDOWN
+ * Rotate by 180 degrees.
+ * GDK_PIXBUF_ROTATE_CLOCKWISE
+ * Rotate by 270 degrees.
+ */
+public enum GdkPixbufRotation
+{
+	ROTATE_NONE = 0,
+	ROTATE_COUNTERCLOCKWISE = 90,
+	ROTATE_UPSIDEDOWN = 180,
+	ROTATE_CLOCKWISE = 270
+}
+alias GdkPixbufRotation PixbufRotation;
+
+/**
+ * A set of values that describe the manner in which the
+ * pixel values for a visual are converted into RGB
+ * values for display.
+ * GDK_VISUAL_STATIC_GRAY
+ * Each pixel value indexes a grayscale value directly.
+ * GDK_VISUAL_GRAYSCALE
+ * Each pixel is an index into a color map that maps pixel
+ */
+public enum GdkVisualType
+{
+	STATIC_GRAY,
+	GRAYSCALE,
+	STATIC_COLOR,
+	PSEUDO_COLOR,
+	TRUE_COLOR,
+	DIRECT_COLOR
+}
+alias GdkVisualType VisualType;
+
+/**
+ * A set of values describing the possible byte-orders
+ * for storing pixel values in memory.
+ * GDK_LSB_FIRST
+ * The values are stored with the least-significant byte
+ */
+public enum GdkByteOrder
+{
+	LSB_FIRST,
+	MSB_FIRST
+}
+alias GdkByteOrder ByteOrder;
+
+/**
+ * Warning
+ * GdkFontType is deprecated and should not be used in newly-written code.
+ * Indicates the type of a font. The possible values
+ * are currently:
+ * GDK_FONT_FONT
+ * the font is a single font.
+ * GDK_FONT_FONTSET
+ * the font is a fontset.
+ */
+public enum GdkFontType
+{
+	FONT,
+	FONTSET
+}
+alias GdkFontType FontType;
+
+/**
+ * The standard cursors available.
+ * GDK_X_CURSOR
+ * GDK_ARROW
+ * GDK_BASED_ARROW_DOWN
+ * GDK_BASED_ARROW_UP
+ * GDK_BOAT
+ * GDK_BOGOSITY
+ * GDK_BOTTOM_LEFT_CORNER
+ * GDK_BOTTOM_RIGHT_CORNER
+ * GDK_BOTTOM_SIDE
+ * GDK_BOTTOM_TEE
+ * GDK_BOX_SPIRAL
+ * GDK_CENTER_PTR
+ * GDK_CIRCLE
+ * GDK_CLOCK
+ * GDK_COFFEE_MUG
+ * GDK_CROSS
+ * GDK_CROSS_REVERSE
+ * GDK_CROSSHAIR
+ * GDK_DIAMOND_CROSS
+ * GDK_DOT
+ * GDK_DOTBOX
+ * GDK_DOUBLE_ARROW
+ * GDK_DRAFT_LARGE
+ * GDK_DRAFT_SMALL
+ * GDK_DRAPED_BOX
+ * GDK_EXCHANGE
+ * GDK_FLEUR
+ * GDK_GOBBLER
+ * GDK_GUMBY
+ * GDK_HAND1
+ * GDK_HAND2
+ * GDK_HEART
+ * GDK_ICON
+ * GDK_IRON_CROSS
+ * GDK_LEFT_PTR
+ * GDK_LEFT_SIDE
+ * GDK_LEFT_TEE
+ * GDK_LEFTBUTTON
+ * GDK_LL_ANGLE
+ * GDK_LR_ANGLE
+ * GDK_MAN
+ * GDK_MIDDLEBUTTON
+ * GDK_MOUSE
+ * GDK_PENCIL
+ * GDK_PIRATE
+ * GDK_PLUS
+ * GDK_QUESTION_ARROW
+ * GDK_RIGHT_PTR
+ * GDK_RIGHT_SIDE
+ * GDK_RIGHT_TEE
+ * GDK_RIGHTBUTTON
+ * GDK_RTL_LOGO
+ * GDK_SAILBOAT
+ * GDK_SB_DOWN_ARROW
+ * GDK_SB_H_DOUBLE_ARROW
+ * GDK_SB_LEFT_ARROW
+ * GDK_SB_RIGHT_ARROW
+ * GDK_SB_UP_ARROW
+ * GDK_SB_V_DOUBLE_ARROW
+ * GDK_SHUTTLE
+ * GDK_SIZING
+ * GDK_SPIDER
+ * GDK_SPRAYCAN
+ * GDK_STAR
+ * GDK_TARGET
+ * GDK_TCROSS
+ * GDK_TOP_LEFT_ARROW
+ * GDK_TOP_LEFT_CORNER
+ * GDK_TOP_RIGHT_CORNER
+ * GDK_TOP_SIDE
+ * GDK_TOP_TEE
+ * GDK_TREK
+ * GDK_UL_ANGLE
+ * GDK_UMBRELLA
+ * GDK_UR_ANGLE
+ * GDK_WATCH
+ * GDK_XTERM
+ * GDK_LAST_CURSOR
+ * last cursor type
+ * GDK_CURSOR_IS_PIXMAP
+ * type of cursors constructed with
+ * gdk_cursor_new_from_pixmap() or gdk_cursor_new_from_pixbuf()
+ */
+public enum GdkCursorType
+{
+	X_CURSOR = 0,
+	ARROW = 2,
+	BASED_ARROW_DOWN = 4,
+	BASED_ARROW_UP = 6,
+	BOAT = 8,
+	BOGOSITY = 10,
+	BOTTOM_LEFT_CORNER = 12,
+	BOTTOM_RIGHT_CORNER = 14,
+	BOTTOM_SIDE = 16,
+	BOTTOM_TEE = 18,
+	BOX_SPIRAL = 20,
+	CENTER_PTR = 22,
+	CIRCLE = 24,
+	CLOCK = 26,
+	COFFEE_MUG = 28,
+	CROSS = 30,
+	CROSS_REVERSE = 32,
+	CROSSHAIR = 34,
+	DIAMOND_CROSS = 36,
+	DOT = 38,
+	DOTBOX = 40,
+	DOUBLE_ARROW = 42,
+	DRAFT_LARGE = 44,
+	DRAFT_SMALL = 46,
+	DRAPED_BOX = 48,
+	EXCHANGE = 50,
+	FLEUR = 52,
+	GOBBLER = 54,
+	GUMBY = 56,
+	HAND1 = 58,
+	HAND2 = 60,
+	HEART = 62,
+	ICON = 64,
+	IRON_CROSS = 66,
+	LEFT_PTR = 68,
+	LEFT_SIDE = 70,
+	LEFT_TEE = 72,
+	LEFTBUTTON = 74,
+	LL_ANGLE = 76,
+	LR_ANGLE = 78,
+	MAN = 80,
+	MIDDLEBUTTON = 82,
+	MOUSE = 84,
+	PENCIL = 86,
+	PIRATE = 88,
+	PLUS = 90,
+	QUESTION_ARROW = 92,
+	RIGHT_PTR = 94,
+	RIGHT_SIDE = 96,
+	RIGHT_TEE = 98,
+	RIGHTBUTTON = 100,
+	RTL_LOGO = 102,
+	SAILBOAT = 104,
+	SB_DOWN_ARROW = 106,
+	SB_H_DOUBLE_ARROW = 108,
+	SB_LEFT_ARROW = 110,
+	SB_RIGHT_ARROW = 112,
+	SB_UP_ARROW = 114,
+	SB_V_DOUBLE_ARROW = 116,
+	SHUTTLE = 118,
+	SIZING = 120,
+	SPIDER = 122,
+	SPRAYCAN = 124,
+	STAR = 126,
+	TARGET = 128,
+	TCROSS = 130,
+	TOP_LEFT_ARROW = 132,
+	TOP_LEFT_CORNER = 134,
+	TOP_RIGHT_CORNER = 136,
+	TOP_SIDE = 138,
+	TOP_TEE = 140,
+	TREK = 142,
+	UL_ANGLE = 144,
+	UMBRELLA = 146,
+	UR_ANGLE = 148,
+	WATCH = 150,
+	XTERM = 152,
+	LAST_CURSOR,
+	CURSOR_IS_PIXMAP = -1
+}
+alias GdkCursorType CursorType;
+
+/**
+ * Describes the kind of window.
+ * GDK_WINDOW_ROOT
+ * root window; this window has no parent, covers the entire screen, and is created by the window system
+ * GDK_WINDOW_TOPLEVEL
+ * toplevel window (used to implement GtkWindow)
+ * GDK_WINDOW_CHILD
+ * child window (used to implement e.g. GtkEntry)
+ * GDK_WINDOW_DIALOG
+ * useless/deprecated compatibility type
+ * GDK_WINDOW_TEMP
+ * override redirect temporary window (used to implement GtkMenu)
+ * GDK_WINDOW_FOREIGN
+ * foreign window (see gdk_window_foreign_new())
+ */
+public enum GdkWindowType
+{
+	ROOT,
+	TOPLEVEL,
+	CHILD,
+	DIALOG,
+	TEMP,
+	FOREIGN
+}
+alias GdkWindowType WindowType;
+
+/**
+ * GDK_INPUT_OUTPUT windows are the standard kind of window you might expect.
+ * GDK_INPUT_ONLY windows are invisible; they are used to trap events, but
+ * you can't draw on them.
+ * GDK_INPUT_OUTPUT
+ * window for graphics and events
+ * GDK_INPUT_ONLY
+ * window for events only
+ */
+public enum GdkWindowClass
+{
+	INPUT_OUTPUT,
+	INPUT_ONLY
+}
+alias GdkWindowClass WindowClass;
+
+/**
+ * Used to indicate which fields of a GdkGeometry struct should be paid attention
+ * to. Also, the presence/absence of GDK_HINT_POS, GDK_HINT_USER_POS, and
+ * GDK_HINT_USER_SIZE is significant, though they don't directly refer to
+ * GdkGeometry fields. GDK_HINT_USER_POS will be set automatically by GtkWindow
+ * if you call gtk_window_move(). GDK_HINT_USER_POS and GDK_HINT_USER_SIZE
+ * should be set if the user specified a size/position using a --geometry
+ * command-line argument; gtk_window_parse_geometry() automatically sets these
+ * flags.
+ * GDK_HINT_POS
+ * indicates that the program has positioned the window
+ * GDK_HINT_MIN_SIZE
+ * min size fields are set
+ * GDK_HINT_MAX_SIZE
+ * max size fields are set
+ * GDK_HINT_BASE_SIZE
+ * base size fields are set
+ * GDK_HINT_ASPECT
+ * aspect ratio fields are set
+ * GDK_HINT_RESIZE_INC
+ * resize increment fields are set
+ * GDK_HINT_WIN_GRAVITY
+ * window gravity field is set
+ * GDK_HINT_USER_POS
+ * indicates that the window's position was explicitly set by the user
+ * GDK_HINT_USER_SIZE
+ * indicates that the window's size was explicitly set by the user
+ */
+public enum GdkWindowHints
+{
+	HINT_POS = 1 << 0,
+	HINT_MIN_SIZE = 1 << 1,
+	HINT_MAX_SIZE = 1 << 2,
+	HINT_BASE_SIZE = 1 << 3,
+	HINT_ASPECT = 1 << 4,
+	HINT_RESIZE_INC = 1 << 5,
+	HINT_WIN_GRAVITY = 1 << 6,
+	HINT_USER_POS = 1 << 7,
+	HINT_USER_SIZE = 1 << 8
+}
+alias GdkWindowHints WindowHints;
+
+/**
+ * Defines the reference point of a window and the meaning of coordinates
+ * passed to gtk_window_move(). See gtk_window_move() and the "implementation
+ * notes" section of the
+ * Extended
+ * Window Manager Hints specification for more details.
+ * GDK_GRAVITY_NORTH_WEST
+ * the reference point is at the top left corner.
+ * GDK_GRAVITY_NORTH
+ * the reference point is in the middle of the top edge.
+ * GDK_GRAVITY_NORTH_EAST
+ * the reference point is at the top right corner.
+ * GDK_GRAVITY_WEST
+ * the reference point is at the middle of the left edge.
+ * GDK_GRAVITY_CENTER
+ * the reference point is at the center of the window.
+ * GDK_GRAVITY_EAST
+ * the reference point is at the middle of the right edge.
+ * GDK_GRAVITY_SOUTH_WEST
+ * the reference point is at the lower left corner.
+ * GDK_GRAVITY_SOUTH
+ * the reference point is at the middle of the lower edge.
+ * GDK_GRAVITY_SOUTH_EAST
+ * the reference point is at the lower right corner.
+ * GDK_GRAVITY_STATIC
+ * the reference point is at the top left corner of the
+ */
+public enum GdkGravity
+{
+	NORTH_WEST = 1,
+	NORTH,
+	NORTH_EAST,
+	WEST,
+	CENTER,
+	EAST,
+	SOUTH_WEST,
+	SOUTH,
+	SOUTH_EAST,
+	STATIC
+}
+alias GdkGravity Gravity;
+
+/**
+ * Determines a window edge or corner.
+ * GDK_WINDOW_EDGE_NORTH_WEST
+ * the top left corner.
+ * GDK_WINDOW_EDGE_NORTH
+ * the top edge.
+ * GDK_WINDOW_EDGE_NORTH_EAST
+ * the top right corner.
+ * GDK_WINDOW_EDGE_WEST
+ * the left edge.
+ * GDK_WINDOW_EDGE_EAST
+ * the right edge.
+ * GDK_WINDOW_EDGE_SOUTH_WEST
+ * the lower left corner.
+ * GDK_WINDOW_EDGE_SOUTH
+ * the lower edge.
+ * GDK_WINDOW_EDGE_SOUTH_EAST
+ * the lower right corner.
+ */
+public enum GdkWindowEdge
+{
+	NORTH_WEST,
+	NORTH,
+	NORTH_EAST,
+	WEST,
+	EAST,
+	SOUTH_WEST,
+	SOUTH,
+	SOUTH_EAST
+}
+alias GdkWindowEdge WindowEdge;
+
+/**
+ * These are hints for the window manager that indicate what type of function
+ * the window has. The window manager can use this when determining decoration
+ * and behaviour of the window. The hint must be set before mapping the window.
+ * See the
+ * Extended
+ * Window Manager Hints specification for more details about
+ * window types.
+ * GDK_WINDOW_TYPE_HINT_NORMAL
+ * Normal toplevel window.
+ * GDK_WINDOW_TYPE_HINT_DIALOG
+ * Dialog window.
+ * GDK_WINDOW_TYPE_HINT_MENU
+ * Window used to implement a menu; GTK+ uses
+ */
+public enum GdkWindowTypeHint
+{
+	NORMAL,
+	DIALOG,
+	MENU, /+* Torn off menu +/
+	TOOLBAR,
+	SPLASHSCREEN,
+	UTILITY,
+	DOCK,
+	DESKTOP,
+	DROPDOWN_MENU, /+* A drop down menu (from a menubar) +/
+	POPUP_MENU, /+* A popup menu (from right-click) +/
+	TOOLTIP,
+	NOTIFICATION,
+	COMBO,
+	DND
+}
+alias GdkWindowTypeHint WindowTypeHint;
+
+/**
+ * Used to indicate which fields in the GdkWindowAttr struct should be
+ * honored. For example, if you filled in the "cursor" and "x" fields of
+ * GdkWindowAttr, pass "GDK_WA_X | GDK_WA_CURSOR" to gdk_window_new(). Fields
+ * in GdkWindowAttr not covered by a bit in this enum are required; for example,
+ * the width/height, wclass, and window_type fields are required, they have no
+ * corresponding flag in GdkWindowAttributesType.
+ * GDK_WA_TITLE
+ * Honor the title field
+ * GDK_WA_X
+ * Honor the X coordinate field
+ * GDK_WA_Y
+ * Honor the Y coordinate field
+ * GDK_WA_CURSOR
+ * Honor the cursor field
+ * GDK_WA_COLORMAP
+ * Honor the colormap field
+ * GDK_WA_VISUAL
+ * Honor the visual field
+ * GDK_WA_WMCLASS
+ * Honor the wmclass_class and wmclass_name fields
+ * GDK_WA_NOREDIR
+ * Honor the override_redirect field
+ * GDK_WA_TYPE_HINT
+ * Honor the type_hint field
+ */
+public enum GdkWindowAttributesType
+{
+	WA_TITLE = 1 << 1,
+	WA_X = 1 << 2,
+	WA_Y = 1 << 3,
+	WA_CURSOR = 1 << 4,
+	WA_COLORMAP = 1 << 5,
+	WA_VISUAL = 1 << 6,
+	WA_WMCLASS = 1 << 7,
+	WA_NOREDIR = 1 << 8,
+	WA_TYPE_HINT = 1 << 9
+}
+alias GdkWindowAttributesType WindowAttributesType;
+
+/**
+ * Specifies the result of applying a GdkFilterFunc to a native event.
+ * GDK_FILTER_CONTINUE
+ * event not handled, continue processing.
+ * GDK_FILTER_TRANSLATE
+ * native event translated into a GDK event and stored
+ */
+public enum GdkFilterReturn
+{
+	CONTINUE, /+* Event not handled, continue processesing +/
+	TRANSLATE, /+* Native event translated into a GDK event and
+	stored inn the "event" structure that was
+	passed inn +/
+	REMOVE /+* Terminate processing, removing event +/
+}
+alias GdkFilterReturn FilterReturn;
+
+/**
+ * A set of bit-flags to indicate the state of modifier keys and mouse buttons
+ * in various event types. Typical modifier keys are Shift, Control, Meta, Super,
+ * Hyper, Alt, Compose, Apple, CapsLock or ShiftLock.
+ * Like the X Window System, GDK supports 8 modifier keys and 5 mouse buttons.
+ * Since 2.10, GDK recognizes which of the Meta, Super or Hyper keys are mapped
+ * to Mod2 - Mod5, and indicates this by setting GDK_SUPER_MASK, GDK_HYPER_MASK
+ * or GDK_META_MASK in the state field of key events.
+ * GDK_SHIFT_MASK
+ * the Shift key.
+ * GDK_LOCK_MASK
+ * a Lock key (depending on the modifier mapping of the
+ */
+public enum GdkModifierType
+{
+	SHIFT_MASK = 1 << 0,
+	LOCK_MASK = 1 << 1,
+	CONTROL_MASK = 1 << 2,
+	MOD1_MASK = 1 << 3,
+	MOD2_MASK = 1 << 4,
+	MOD3_MASK = 1 << 5,
+	MOD4_MASK = 1 << 6,
+	MOD5_MASK = 1 << 7,
+	BUTTON1_MASK = 1 << 8,
+	BUTTON2_MASK = 1 << 9,
+	BUTTON3_MASK = 1 << 10,
+	BUTTON4_MASK = 1 << 11,
+	BUTTON5_MASK = 1 << 12,
+	/+* The next few modifiers are used by XKB, so we skip to the end.
+	 * Bits 15 - 25 are currently unused. Bit 29 is used internally.
+	+/
+	SUPER_MASK = 1 << 26,
+	HYPER_MASK = 1 << 27,
+	META_MASK = 1 << 28,
+	RELEASE_MASK = 1 << 30,
+	MODIFIER_MASK = 0x5c001fff
+}
+alias GdkModifierType ModifierType;
+
+/**
+ * These are hints originally defined by the Motif toolkit.
+ * The window manager can use them when determining how to decorate
+ * the window. The hint must be set before mapping the window.
+ * GDK_DECOR_ALL
+ * all decorations should be applied.
+ * GDK_DECOR_BORDER
+ * a frame should be drawn around the window.
+ * GDK_DECOR_RESIZEH
+ * the frame should have resize handles.
+ * GDK_DECOR_TITLE
+ * a titlebar should be placed above the window.
+ * GDK_DECOR_MENU
+ * a button for opening a menu should be included.
+ * GDK_DECOR_MINIMIZE
+ * a minimize button should be included.
+ * GDK_DECOR_MAXIMIZE
+ * a maximize button should be included.
+ */
+public enum GdkWMDecoration
+{
+	DECOR_ALL = 1 << 0,
+	DECOR_BORDER = 1 << 1,
+	DECOR_RESIZEH = 1 << 2,
+	DECOR_TITLE = 1 << 3,
+	DECOR_MENU = 1 << 4,
+	DECOR_MINIMIZE = 1 << 5,
+	DECOR_MAXIMIZE = 1 << 6
+}
+alias GdkWMDecoration WMDecoration;
+
+/**
+ * These are hints originally defined by the Motif toolkit.
+ * The window manager can use them when determining the functions
+ * to offer for the window.
+ * The hint must be set before mapping the window.
+ * GDK_FUNC_ALL
+ * all functions should be offered.
+ * GDK_FUNC_RESIZE
+ * the window should be resizable.
+ * GDK_FUNC_MOVE
+ * the window should be movable.
+ * GDK_FUNC_MINIMIZE
+ * the window should be minimizable.
+ * GDK_FUNC_MAXIMIZE
+ * the window should be maximizable.
+ * GDK_FUNC_CLOSE
+ * the window should be closable.
+ */
+public enum GdkWMFunction
+{
+	FUNC_ALL = 1 << 0,
+	FUNC_RESIZE = 1 << 1,
+	FUNC_MOVE = 1 << 2,
+	FUNC_MINIMIZE = 1 << 3,
+	FUNC_MAXIMIZE = 1 << 4,
+	FUNC_CLOSE = 1 << 5
+}
+alias GdkWMFunction WMFunction;
+
+/**
+ * Specifies the type of the event.
+ * Do not confuse these events with the signals that GTK+ widgets emit.
+ * Although many of these events result in corresponding signals being emitted,
+ * the events are often transformed or filtered along the way.
+ * GDK_NOTHING
+ * a special code to indicate a null event.
+ * GDK_DELETE
+ * the window manager has requested that the toplevel window be
+ * hidden or destroyed, usually when the user clicks on a special icon in the
+ * title bar.
+ * GDK_DESTROY
+ * the window has been destroyed.
+ * GDK_EXPOSE
+ * all or part of the window has become visible and needs to be
+ * redrawn.
+ * GDK_MOTION_NOTIFY
+ * the pointer (usually a mouse) has moved.
+ * GDK_BUTTON_PRESS
+ * a mouse button has been pressed.
+ * GDK_2BUTTON_PRESS
+ * a mouse button has been double-clicked (clicked twice
+ * within a short period of time). Note that each click also generates a
+ * GDK_BUTTON_PRESS event.
+ * GDK_3BUTTON_PRESS
+ * a mouse button has been clicked 3 times in a short period
+ * of time. Note that each click also generates a GDK_BUTTON_PRESS event.
+ * GDK_BUTTON_RELEASE
+ * a mouse button has been released.
+ * GDK_KEY_PRESS
+ * a key has been pressed.
+ * GDK_KEY_RELEASE
+ * a key has been released.
+ * GDK_ENTER_NOTIFY
+ * the pointer has entered the window.
+ * GDK_LEAVE_NOTIFY
+ * the pointer has left the window.
+ * GDK_FOCUS_CHANGE
+ * the keyboard focus has entered or left the window.
+ * GDK_CONFIGURE
+ * the size, position or stacking order of the window has changed.
+ * Note that GTK+ discards these events for GDK_WINDOW_CHILD windows.
+ * GDK_MAP
+ * the window has been mapped.
+ * GDK_UNMAP
+ * the window has been unmapped.
+ * GDK_PROPERTY_NOTIFY
+ * a property on the window has been changed or deleted.
+ * GDK_SELECTION_CLEAR
+ * the application has lost ownership of a selection.
+ * GDK_SELECTION_REQUEST
+ * another application has requested a selection.
+ * GDK_SELECTION_NOTIFY
+ * a selection has been received.
+ * GDK_PROXIMITY_IN
+ * an input device has moved into contact with a sensing
+ * surface (e.g. a touchscreen or graphics tablet).
+ * GDK_PROXIMITY_OUT
+ * an input device has moved out of contact with a sensing
+ * surface.
+ * GDK_DRAG_ENTER
+ * the mouse has entered the window while a drag is in progress.
+ * GDK_DRAG_LEAVE
+ * the mouse has left the window while a drag is in progress.
+ * GDK_DRAG_MOTION
+ * the mouse has moved in the window while a drag is in
+ * progress.
+ * GDK_DRAG_STATUS
+ * the status of the drag operation initiated by the window
+ * has changed.
+ * GDK_DROP_START
+ * a drop operation onto the window has started.
+ * GDK_DROP_FINISHED
+ * the drop operation initiated by the window has completed.
+ * GDK_CLIENT_EVENT
+ * a message has been received from another application.
+ * GDK_VISIBILITY_NOTIFY
+ * the window visibility status has changed.
+ * GDK_NO_EXPOSE
+ * indicates that the source region was completely available
+ * when parts of a drawable were copied. This is not very useful.
+ * GDK_SCROLL
+ * the scroll wheel was turned
+ * GDK_WINDOW_STATE
+ * the state of a window has changed. See GdkWindowState
+ * for the possible window states
+ * GDK_SETTING
+ * a setting has been modified.
+ * GDK_OWNER_CHANGE
+ * the owner of a selection has changed. This event type
+ */
+public enum GdkEventType
+{
+	NOTHING = -1,
+	DELETE = 0,
+	DESTROY = 1,
+	EXPOSE = 2,
+	MOTION_NOTIFY = 3,
+	BUTTON_PRESS = 4,
+	DOUBLE_BUTTON_PRESS = 5,
+	TRIPPLE_BUTTON_PRESS = 6,
+	BUTTON_RELEASE = 7,
+	KEY_PRESS = 8,
+	KEY_RELEASE = 9,
+	ENTER_NOTIFY = 10,
+	LEAVE_NOTIFY = 11,
+	FOCUS_CHANGE = 12,
+	CONFIGURE = 13,
+	MAP = 14,
+	UNMAP = 15,
+	PROPERTY_NOTIFY = 16,
+	SELECTION_CLEAR = 17,
+	SELECTION_REQUEST = 18,
+	SELECTION_NOTIFY = 19,
+	PROXIMITY_IN = 20,
+	PROXIMITY_OUT = 21,
+	DRAG_ENTER = 22,
+	DRAG_LEAVE = 23,
+	DRAG_MOTION = 24,
+	DRAG_STATUS = 25,
+	DROP_START = 26,
+	DROP_FINISHED = 27,
+	CLIENT_EVENT = 28,
+	VISIBILITY_NOTIFY = 29,
+	NO_EXPOSE = 30,
+	SCROLL = 31,
+	WINDOW_STATE = 32,
+	SETTING = 33,
+	OWNER_CHANGE = 34,
+	GRAB_BROKEN = 35
+}
+alias GdkEventType EventType;
+
+/**
+ * A set of bit-flags to indicate which events a window is to receive.
+ * Most of these masks map onto one or more of the GdkEventType event types
+ * above.
+ * GDK_POINTER_MOTION_HINT_MASK is a special mask which is used to reduce the
+ * number of GDK_MOTION_NOTIFY events received. Normally a GDK_MOTION_NOTIFY
+ * event is received each time the mouse moves. However, if the application
+ * spends a lot of time processing the event (updating the display, for example),
+ * it can lag behind the position of the mouse. When using
+ * GDK_POINTER_MOTION_HINT_MASK, fewer GDK_MOTION_NOTIFY events will be sent,
+ * some of which are marked as a hint (the is_hint member is TRUE).
+ * To receive more motion events after a motion hint event, the application
+ * needs to asks for more, by calling gdk_event_request_motions().
+ * GDK_EXPOSURE_MASK
+ * receive expose events
+ * GDK_POINTER_MOTION_MASK
+ * receive all pointer motion events
+ * GDK_POINTER_MOTION_HINT_MASK
+ * see the explanation above
+ * GDK_BUTTON_MOTION_MASK
+ * receive pointer motion events while any button is pressed
+ * GDK_BUTTON1_MOTION_MASK
+ * receive pointer motion events while 1 button is pressed
+ * GDK_BUTTON2_MOTION_MASK
+ * receive pointer motion events while 2 button is pressed
+ * GDK_BUTTON3_MOTION_MASK
+ * receive pointer motion events while 3 button is pressed
+ * GDK_BUTTON_PRESS_MASK
+ * receive button press events
+ * GDK_BUTTON_RELEASE_MASK
+ * receive button release events
+ * GDK_KEY_PRESS_MASK
+ * receive key press events
+ * GDK_KEY_RELEASE_MASK
+ * receive key release events
+ * GDK_ENTER_NOTIFY_MASK
+ * receive window enter events
+ * GDK_LEAVE_NOTIFY_MASK
+ * receive window leave events
+ * GDK_FOCUS_CHANGE_MASK
+ * receive focus change events
+ * GDK_STRUCTURE_MASK
+ * receive events about window configuration change
+ * GDK_PROPERTY_CHANGE_MASK
+ * receive property change events
+ * GDK_VISIBILITY_NOTIFY_MASK
+ * receive visibility change events
+ * GDK_PROXIMITY_IN_MASK
+ * receive proximity in events
+ * GDK_PROXIMITY_OUT_MASK
+ * receive proximity out events
+ * GDK_SUBSTRUCTURE_MASK
+ * receive events about window configuration changes of
+ */
+public enum GdkEventMask
+{
+	EXPOSURE_MASK = 1 << 1,
+	POINTER_MOTION_MASK = 1 << 2,
+	POINTER_MOTION_HINT_MASK = 1 << 3,
+	BUTTON_MOTION_MASK = 1 << 4,
+	BUTTON1_MOTION_MASK = 1 << 5,
+	BUTTON2_MOTION_MASK = 1 << 6,
+	BUTTON3_MOTION_MASK = 1 << 7,
+	BUTTON_PRESS_MASK = 1 << 8,
+	BUTTON_RELEASE_MASK = 1 << 9,
+	KEY_PRESS_MASK = 1 << 10,
+	KEY_RELEASE_MASK = 1 << 11,
+	ENTER_NOTIFY_MASK = 1 << 12,
+	LEAVE_NOTIFY_MASK = 1 << 13,
+	FOCUS_CHANGE_MASK = 1 << 14,
+	STRUCTURE_MASK = 1 << 15,
+	PROPERTY_CHANGE_MASK = 1 << 16,
+	VISIBILITY_NOTIFY_MASK = 1 << 17,
+	PROXIMITY_IN_MASK = 1 << 18,
+	PROXIMITY_OUT_MASK = 1 << 19,
+	SUBSTRUCTURE_MASK = 1 << 20,
+	SCROLL_MASK = 1 << 21,
+	ALL_EVENTS_MASK = 0x3FFFFE
+}
+alias GdkEventMask EventMask;
+
+/**
+ * Specifies the direction for GdkEventScroll.
+ * GDK_SCROLL_UP
+ * the window is scrolled up.
+ * GDK_SCROLL_DOWN
+ * the window is scrolled down.
+ * GDK_SCROLL_LEFT
+ * the window is scrolled to the left.
+ * GDK_SCROLL_RIGHT
+ * the window is scrolled to the right.
+ */
+public enum GdkScrollDirection
+{
+	UP,
+	DOWN,
+	LEFT,
+	RIGHT
+}
+alias GdkScrollDirection ScrollDirection;
+
+/**
+ * Specifies the visiblity status of a window for a GdkEventVisibility.
+ * GDK_VISIBILITY_UNOBSCURED
+ * the window is completely visible.
+ * GDK_VISIBILITY_PARTIAL
+ * the window is partially visible.
+ * GDK_VISIBILITY_FULLY_OBSCURED
+ * the window is not visible at all.
+ */
+public enum GdkVisibilityState
+{
+	UNOBSCURED,
+	PARTIAL,
+	FULLY_OBSCURED
+}
+alias GdkVisibilityState VisibilityState;
+
+/**
+ * Specifies the crossing mode for GdkEventCrossing.
+ * GDK_CROSSING_NORMAL
+ * crossing because of pointer motion.
+ * GDK_CROSSING_GRAB
+ * crossing because a grab is activated.
+ * GDK_CROSSING_UNGRAB
+ * crossing because a grab is deactivated.
+ */
+public enum GdkCrossingMode
+{
+	NORMAL,
+	GRAB,
+	UNGRAB
+}
+alias GdkCrossingMode CrossingMode;
+
+/**
+ * Specifies the kind of crossing for GdkEventCrossing.
+ * See the X11 protocol specification of LeaveNotify for
+ * full details of crossing event generation.
+ * GDK_NOTIFY_ANCESTOR
+ * the window is entered from an ancestor or
+ */
+public enum GdkNotifyType
+{
+	ANCESTOR = 0,
+	VIRTUAL = 1,
+	INFERIOR = 2,
+	NONLINEAR = 3,
+	NONLINEAR_VIRTUAL = 4,
+	UNKNOWN = 5
+}
+alias GdkNotifyType NotifyType;
+
+/**
+ * Specifies the type of a property change for a GdkEventProperty.
+ * GDK_PROPERTY_NEW_VALUE
+ * the property value was changed.
+ * GDK_PROPERTY_DELETE
+ * the property was deleted.
+ */
+public enum GdkPropertyState
+{
+	NEW_VALUE,
+	DELETE
+}
+alias GdkPropertyState PropertyState;
+
+/**
+ * Specifies the state of a toplevel window.
+ * GDK_WINDOW_STATE_WITHDRAWN
+ * the window is not shown.
+ * GDK_WINDOW_STATE_ICONIFIED
+ * the window is minimized.
+ * GDK_WINDOW_STATE_MAXIMIZED
+ * the window is maximized.
+ * GDK_WINDOW_STATE_STICKY
+ * the window is sticky.
+ * GDK_WINDOW_STATE_FULLSCREEN
+ * the window is maximized without decorations.
+ * GDK_WINDOW_STATE_ABOVE
+ * the window is kept above other windows.
+ * GDK_WINDOW_STATE_BELOW
+ * the window is kept below other windows.
+ */
+public enum GdkWindowState
+{
+	WITHDRAWN = 1 << 0,
+	ICONIFIED = 1 << 1,
+	MAXIMIZED = 1 << 2,
+	STICKY = 1 << 3,
+	FULLSCREEN = 1 << 4,
+	ABOVE = 1 << 5,
+	BELOW = 1 << 6
+}
+alias GdkWindowState WindowState;
+
+/**
+ * Specifies the kind of modification applied to a setting in a GdkEventSetting.
+ * GDK_SETTING_ACTION_NEW
+ * a setting was added.
+ * GDK_SETTING_ACTION_CHANGED
+ * a setting was changed.
+ * GDK_SETTING_ACTION_DELETED
+ * a setting was deleted.
+ */
+public enum GdkSettingAction
+{
+	NEW,
+	CHANGED,
+	DELETED
+}
+alias GdkSettingAction SettingAction;
+
+/**
+ * Specifies why a selection ownership was changed.
+ * GDK_OWNER_CHANGE_NEW_OWNER
+ * some other app claimed the ownership
+ * GDK_OWNER_CHANGE_DESTROY
+ * the window was destroyed
+ * GDK_OWNER_CHANGE_CLOSE
+ * the client was closed
+ */
+public enum GdkOwnerChange
+{
+	NEW_OWNER,
+	DESTROY,
+	CLOSE
+}
+alias GdkOwnerChange OwnerChange;
+
+/**
+ * Used in GdkDragContext to indicate the protocol according to
+ * which DND is done.
+ * GDK_DRAG_PROTO_MOTIF
+ * The Motif DND protocol.
+ * GDK_DRAG_PROTO_XDND
+ * The Xdnd protocol.
+ * GDK_DRAG_PROTO_ROOTWIN
+ * An extension to the Xdnd protocol for
+ */
+public enum GdkDragProtocol
+{
+	MOTIF,
+	XDND,
+	ROOTWIN, /+* A root window with nobody claiming
+	 * drags +/
+	NONE, /+* Not a valid drag window +/
+	WIN32_DROPFILES, /+* The simple WM_DROPFILES dnd +/
+	OLE2, /+* The complex OLE2 dnd (not implemented) +/
+	LOCAL /+* Intra-app +/
+}
+alias GdkDragProtocol DragProtocol;
+
+/**
+ * Used in GdkDragContext to indicate what the destination
+ * should do with the dropped data.
+ * GDK_ACTION_DEFAULT
+ * Means nothing, and should not be used.
+ * GDK_ACTION_COPY
+ * Copy the data.
+ * GDK_ACTION_MOVE
+ * Move the data, i.e. first copy it, then delete
+ */
+public enum GdkDragAction
+{
+	ACTION_DEFAULT = 1 << 0,
+	ACTION_COPY = 1 << 1,
+	ACTION_MOVE = 1 << 2,
+	ACTION_LINK = 1 << 3,
+	ACTION_PRIVATE = 1 << 4,
+	ACTION_ASK = 1 << 5
+}
+alias GdkDragAction DragAction;
+
+/**
+ * A set of bit flags used to specify conditions for which
+ * an input callback will be triggered. The three members
+ * of this enumeration correspond to the readfds,
+ * writefds, and exceptfds arguments to the
+ * select system call.
+ * GDK_INPUT_READ
+ * the file descriptor has become available for reading.
+ * (Or, as is standard in Unix, a socket or pipe was closed
+ * at the other end; this is the case if a subsequent read
+ * on the file descriptor returns a count of zero.)
+ * GDK_INPUT_WRITE
+ * the file descriptor has become available for writing.
+ * GDK_INPUT_EXCEPTION
+ * an exception was raised on the file descriptor.
+ */
+public enum GdkInputCondition
+{
+	READ = 1 << 0,
+	WRITE = 1 << 1,
+	EXCEPTION = 1 << 2
+}
+alias GdkInputCondition InputCondition;
+
+/**
+ * An enumeration describing the type of an input device
+ * in general terms.
+ * GDK_SOURCE_MOUSE
+ * the device is a mouse. (This will be reported for the core
+ */
+public enum GdkInputSource
+{
+	SOURCE_MOUSE,
+	SOURCE_PEN,
+	SOURCE_ERASER,
+	SOURCE_CURSOR
+}
+alias GdkInputSource InputSource;
+
+/**
+ * An enumeration that describes the mode of an input device.
+ * GDK_MODE_DISABLED
+ * the device is disabled and will not report any events.
+ * GDK_MODE_SCREEN
+ * the device is enabled. The device's coordinate space
+ */
+public enum GdkInputMode
+{
+	MODE_DISABLED,
+	MODE_SCREEN,
+	MODE_WINDOW
+}
+alias GdkInputMode InputMode;
+
+/**
+ * An enumeration describing the way in which a device
+ * axis (valuator) maps onto the predefined valuator
+ * types that GTK+ understands.
+ * GDK_AXIS_IGNORE
+ * the axis is ignored.
+ * GDK_AXIS_X
+ * the axis is used as the x axis.
+ * GDK_AXIS_Y
+ * the axis is used as the y axis.
+ * GDK_AXIS_PRESSURE
+ * the axis is used for pressure information.
+ * GDK_AXIS_XTILT
+ * the axis is used for x tilt information.
+ * GDK_AXIS_YTILT
+ * the axis is used for x tilt information.
+ * GDK_AXIS_WHEEL
+ * the axis is used for wheel information.
+ * GDK_AXIS_LAST
+ * a constant equal to the numerically highest axis value.
+ */
+public enum GdkAxisUse
+{
+	IGNORE,
+	X,
+	Y,
+	PRESSURE,
+	XTILT,
+	YTILT,
+	WHEEL,
+	LAST
+}
+alias GdkAxisUse AxisUse;
+
+/**
+ * An enumeration used to specify which extension events
+ * are desired for a particular widget.
+ * GDK_EXTENSION_EVENTS_NONE
+ * no extension events are desired.
+ * GDK_EXTENSION_EVENTS_ALL
+ * all extension events are desired.
+ * GDK_EXTENSION_EVENTS_CURSOR
+ * extension events are desired only if a cursor
+ */
+public enum GdkExtensionMode
+{
+	EVENTS_NONE,
+	EVENTS_ALL,
+	EVENTS_CURSOR
+}
+alias GdkExtensionMode ExtensionMode;
+
+
+/**
+ * Main Gtk struct.
+ * The GdkDisplay struct is the GDK representation
+ * of an X display. All its fields are private and should not be accessed directly.
+ * Since 2.2
+ */
+public struct GdkDisplay{}
+
+
+/**
+ * A table of pointers to functions for getting quantities related to
+ * the current pointer position. Each GdkDisplay has a table of this type,
+ * which can be set using gdk_display_set_pointer_hooks().
+ * This is only useful for such low-level tools as an event recorder.
+ * Applications should never have any reason to use this facility
+ * get_pointer()
+ * Obtains the current pointer position and modifier state.
+ */
+public struct GdkDisplayPointerHooks{}
+// void (*getPointer) (GdkDisplay *display,
+// GdkDisplay.html
+// GdkScreen **screen,
+// GdkDisplay.html
+// int *x,
+// GdkDisplay.html
+// int *y,
+// GdkDisplay.html
+// GdkModifierType *mask);
+// GdkDisplay.html
+// GdkWindow* (*windowGetPointer) (GdkDisplay *display,
+// GdkDisplay.html
+// GdkWindow *window,
+// GdkDisplay.html
+// int *x,
+// GdkDisplay.html
+// int *y,
+// GdkDisplay.html
+// GdkModifierType *mask);
+// GdkDisplay.html
+// GdkWindow* (*windowAtPointer) (GdkDisplay *display,
+// GdkDisplay.html
+// int *winX,
+// GdkDisplay.html
+// int *winY);
+// GdkDisplay.html
+
+
+/**
+ * Main Gtk struct.
+ * The GdkDisplayManager struct has no interesting
+ * fields.
+ * Since 2.2
+ */
+public struct GdkDisplayManager{}
+
+
+/**
+ * Main Gtk struct.
+ * This is a currently just a placeholder typedef for the first argument of
+ * the window_at_pointer function in GdkPointerHooks. It will be used
+ * when GDK gets multihead support.
+ * Since 2.2
+ */
+public struct GdkScreen{}
+
+
+/**
+ * Defines the x and y coordinates of a point.
+ * gintx;
+ * the x coordinate of the point.
+ * ginty;
+ * the y coordinate of the point.
+ */
+public struct GdkPoint
+{
+	int x;
+	int y;
+}
+
+
+/**
+ * Main Gtk struct.
+ * Defines the position and size of a rectangle.
+ * gintx;
+ * the x coordinate of the left edge of the rectangle.
+ * ginty;
+ * the y coordinate of the top of the rectangle.
+ * gintwidth;
+ * the width of the rectangle.
+ * gintheight;
+ * the height of the rectangle.
+ */
+public struct GdkRectangle
+{
+	int x;
+	int y;
+	int width;
+	int height;
+}
+
+
+/**
+ * A GdkRegion represents a set of pixels on the screen.
+ */
+public struct GdkRegion{}
+
+
+/**
+ * A GdkSpan represents a horizontal line of pixels starting
+ * at the pixel with coordinates x, y and ending before x + width, y.
+ * gintx;
+ * x coordinate of the first pixel.
+ * ginty;
+ * y coordinate of the first pixel.
+ * gintwidth;
+ * number of pixels in the span.
+ */
+public struct GdkSpan
+{
+	int x;
+	int y;
+	int width;
+}
+
+
+/**
+ * Main Gtk struct.
+ * The GdkGC structure represents a graphics context.
+ * It is an opaque structure with no user-visible
+ * elements.
+ */
+public struct GdkGC{}
+
+
+/**
+ * The GdkGCValues structure holds a set of values used
+ * to create or modify a graphics context.
+ * GdkColorforeground;
+ * the foreground color. Note that gdk_gc_get_values()
+ */
+public struct GdkGCValues{}
+// GdkColor foreground;
+// gdk-Graphics-Contexts.html
+// GdkColor background;
+// gdk-Graphics-Contexts.html
+// GdkFont *font;
+// gdk-Graphics-Contexts.html
+// GdkFunction funct;
+// gdk-Graphics-Contexts.html
+// GdkFill fill;
+// gdk-Graphics-Contexts.html
+// GdkPixmap *tile;
+// gdk-Graphics-Contexts.html
+// GdkPixmap *stipple;
+// gdk-Graphics-Contexts.html
+// GdkPixmap *clipMask;
+// gdk-Graphics-Contexts.html
+// GdkSubwindowMode subwindowMode;
+// gdk-Graphics-Contexts.html
+// int tsXOrigin;
+// gdk-Graphics-Contexts.html
+// int tsYOrigin;
+// gdk-Graphics-Contexts.html
+// int clipXOrigin;
+// gdk-Graphics-Contexts.html
+// int clipYOrigin;
+// gdk-Graphics-Contexts.html
+// int graphicsExposures;
+// gdk-Graphics-Contexts.html
+// int lineWidth;
+// gdk-Graphics-Contexts.html
+// GdkLineStyle lineStyle;
+// gdk-Graphics-Contexts.html
+// GdkCapStyle capStyle;
+// gdk-Graphics-Contexts.html
+// GdkJoinStyle joinStyle;
+// gdk-Graphics-Contexts.html
+
+
+/**
+ * Main Gtk struct.
+ * An opaque structure representing an object that can be
+ * drawn onto. This can be a GdkPixmap, a GdkBitmap,
+ * or a GdkWindow.
+ */
+public struct GdkDrawable{}
+
+
+/**
+ * Specifies the start and end point of a line for use by the gdk_draw_segments()
+ * function.
+ * gintx1;
+ * the x coordinate of the start point.
+ * ginty1;
+ * the y coordinate of the start point.
+ * gintx2;
+ * the x coordinate of the end point.
+ * ginty2;
+ * the y coordinate of the end point.
+ */
+public struct GdkSegment
+{
+	int x1;
+	int y1;
+	int x2;
+	int y2;
+}
+
+
+/**
+ * Specifies a trapezpoid for use by the gdk_draw_trapezoids().
+ * The trapezoids used here have parallel, horizontal top and
+ * bottom edges.
+ * doubley1;
+ * the y coordinate of the start point.
+ * doublex11;
+ * the x coordinate of the top left corner
+ * doublex21;
+ * the x coordinate of the top right corner
+ * doubley2;
+ * the y coordinate of the end point.
+ * doublex12;
+ * the x coordinate of the bottom left corner
+ * doublex22;
+ * the x coordinate of the bottom right corner
+ */
+public struct GdkTrapezoid{}
+// double y1, x11, x21, y2, x12, x22;
+// gdk-Drawing-Primitives.html
+
+
+/**
+ * Main Gtk struct.
+ * An opaque structure representing an offscreen drawable.
+ * Pointers to structures of type GdkPixmap, GdkBitmap,
+ * and GdkWindow, can often be used interchangeably.
+ * The type GdkDrawable refers generically to any of
+ * these types.
+ */
+public struct GdkPixmap{}
+
+
+/**
+ * An opaque structure representing an offscreen drawable of depth
+ * 1. Pointers to structures of type GdkPixmap, GdkBitmap, and
+ * GdkWindow, can often be used interchangeably. The type GdkDrawable
+ * refers generically to any of these types.
+ */
+public struct GdkBitmap{}
+
+
+/**
+ * A private data structure which maps color indices to actual RGB
+ * colors. This is used only for gdk_draw_indexed_image().
+ * guint32colors[256];
+ * The colors, represented as 0xRRGGBB integer values.
+ * gintn_colors;
+ * The number of colors in the cmap.
+ */
+public struct GdkRgbCmap{}
+// uint colors[256];
+// gdk-GdkRGB.html
+// int nColors;
+// gdk-GdkRGB.html
+
+
+/**
+ * Main Gtk struct.
+ * The GdkImage struct contains information on the image and the pixel data.
+ * GObjectparent_instance;
+ * the parent instance
+ * GdkImageTypetype;
+ * the type of the image.
+ * GdkVisual*visual;
+ * the visual.
+ * GdkByteOrderbyte_order;
+ * the byte order.
+ * gintwidth;
+ * the width of the image in pixels.
+ * gintheight;
+ * the height of the image in pixels.
+ * guint16depth;
+ * the depth of the image, i.e. the number of bits per pixel.
+ * guint16bpp;
+ * the number of bytes per pixel.
+ * guint16bpl;
+ * the number of bytes per line of the image.
+ * guint16bits_per_pixel;
+ * the number of bits per pixel.
+ * gpointermem;
+ * the pixel data.
+ * GdkColormap*colormap;
+ * the GdkColormap associated with the image
+ */
+public struct GdkImage{}
+// GObject parentInstance;
+// gdk-Images.html
+// GdkImageType type; /+* read only. +/
+// gdk-Images.html
+// GdkVisual *visual; /+* read only. visual used to create the image +/
+// gdk-Images.html
+// GdkByteOrder byteOrder; /+* read only. +/
+// gdk-Images.html
+// int width; /+* read only. +/
+// gdk-Images.html
+// int height; /+* read only. +/
+// gdk-Images.html
+// ushort depth; /+* read only. +/
+// gdk-Images.html
+// ushort bpp; /+* read only. bytes per pixel +/
+// gdk-Images.html
+// ushort bpl; /+* read only. bytes per line +/
+// gdk-Images.html
+// ushort bitsPerPixel; /+* read only. bits per pixel +/
+// gdk-Images.html
+// void* mem;
+// gdk-Images.html
+// GdkColormap *colormap; /+* read only. +/
+// gdk-Images.html
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GdkPixbuf{}
+
+
+/**
+ * The GdkColor structure is used to describe an
+ * allocated or unallocated color.
+ * guint32pixel;
+ * For allocated colors, the value used to
+ */
+public struct GdkColor
+{
+	uint pixel;
+	ushort red;
+	ushort green;
+	ushort blue;
+}
+
+
+/**
+ * Main Gtk struct.
+ * The colormap structure contains the following public fields.
+ * gintsize;
+ * For pseudo-color colormaps, the number of colors
+ */
+public struct GdkColormap{}
+// int size;
+// gdk-Colormaps-and-Colors.html
+// GdkColor *colors;
+// gdk-Colormaps-and-Colors.html
+
+
+/**
+ * Main Gtk struct.
+ * The GdkVisual structure contains information about
+ * a particular visual.
+ * Example5.Constructing a pixel value from components
+ * guint
+ * pixel_from_rgb (GdkVisual *visual,
+ */
+public struct GdkVisual{}
+// GObject parentInstance;
+// gdk-Visuals.html
+// GdkVisualType type;
+// gdk-Visuals.html
+// int depth;
+// gdk-Visuals.html
+// GdkByteOrder byteOrder;
+// gdk-Visuals.html
+// int colormapSize;
+// gdk-Visuals.html
+// int bitsPerRgb;
+// gdk-Visuals.html
+// uint redMask;
+// gdk-Visuals.html
+// int redShift;
+// gdk-Visuals.html
+// int redPrec;
+// gdk-Visuals.html
+// uint greenMask;
+// gdk-Visuals.html
+// int greenShift;
+// gdk-Visuals.html
+// int greenPrec;
+// gdk-Visuals.html
+// uint blueMask;
+// gdk-Visuals.html
+// int blueShift;
+// gdk-Visuals.html
+// int bluePrec;
+// gdk-Visuals.html
+
+
+/**
+ * Main Gtk struct.
+ * Warning
+ * GdkFont is deprecated and should not be used in newly-written code.
+ * The GdkFont structure represents a font or fontset. It
+ * contains the following public fields. A new GdkFont
+ * structure is returned by gdk_font_load() or gdk_fontset_load(),
+ * and is reference counted with gdk_font_ref() and gdk_font_unref()
+ * GdkFontTypetype;
+ * a value of type GdkFontType which indicates
+ */
+public struct GdkFont{}
+// GdkFontType type;
+// gdk-Fonts.html
+// int ascent;
+// gdk-Fonts.html
+// int descent;
+// gdk-Fonts.html
+
+
+/**
+ * Main Gtk struct.
+ * A GdkCursor structure represents a cursor.
+ * GdkCursorTypetype;
+ * the GdkCursorType of the cursor
+ */
+public struct GdkCursor{}
+// GdkCursorType type;
+// gdk-Cursors.html
+
+
+/**
+ * Main Gtk struct.
+ * An opaque structure representing an onscreen drawable.
+ * Pointers to structures of type GdkPixmap, GdkBitmap,
+ * and GdkWindow, can often be used interchangeably.
+ * The type GdkDrawable refers generically to any of
+ * these types.
+ */
+public struct GdkWindow{}
+
+
+/**
+ * The GdkGeometry struct gives the window manager information about
+ * a window's geometry constraints. Normally you would set these on
+ * the GTK+ level using gtk_window_set_geometry_hints(). GtkWindow
+ * then sets the hints on the GdkWindow it creates.
+ * gdk_window_set_geometry_hints() expects the hints to be fully valid already and
+ * simply passes them to the window manager; in contrast,
+ * gtk_window_set_geometry_hints() performs some interpretation. For example,
+ * GtkWindow will apply the hints to the geometry widget instead of the toplevel
+ * window, if you set a geometry widget. Also, the
+ * min_width/min_height/max_width/max_height fields may be set to -1, and
+ * GtkWindow will substitute the size request of the window or geometry widget. If
+ * the minimum size hint is not provided, GtkWindow will use its requisition as
+ * the minimum size. If the minimum size is provided and a geometry widget is set,
+ * GtkWindow will take the minimum size as the minimum size of the geometry widget
+ * rather than the entire window. The base size is treated similarly.
+ * The canonical use-case for gtk_window_set_geometry_hints() is to get a terminal
+ * widget to resize properly. Here, the terminal text area should be the geometry
+ * widget; GtkWindow will then automatically set the base size to the size of
+ * other widgets in the terminal window, such as the menubar and scrollbar. Then,
+ * the width_inc and height_inc fields should be set to the size of one character
+ * in the terminal. Finally, the base size should be set to the size of one
+ * character. The net effect is that the minimum size of the terminal
+ * will have a 1x1 character terminal area, and only terminal sizes on
+ * the "character grid" will be allowed.
+ * Here's an example of how the terminal example would be implemented, assuming
+ * a terminal area widget called "terminal" and a toplevel window "toplevel":
+ */
+public struct GdkGeometry{}
+// int minWidth;
+// gdk-Windows.html
+// int minHeight;
+// gdk-Windows.html
+// int maxWidth;
+// gdk-Windows.html
+// int maxHeight;
+// gdk-Windows.html
+// int baseWidth;
+// gdk-Windows.html
+// int baseHeight;
+// gdk-Windows.html
+// int widthInc;
+// gdk-Windows.html
+// int heightInc;
+// gdk-Windows.html
+// double minAspect;
+// gdk-Windows.html
+// double maxAspect;
+// gdk-Windows.html
+// GdkGravity winGravity;
+// gdk-Windows.html
+
+
+/**
+ * Attributes to use for a newly-created window.
+ * gchar*title;
+ * title of the window (for toplevel windows)
+ * gintevent_mask;
+ * event mask (see gdk_window_set_events())
+ * gintx;
+ * X coordinate relative to parent window (see gdk_window_move())
+ * ginty;
+ * Y coordinate relative to parent window (see gdk_window_move())
+ * gintwidth;
+ * width of window
+ * gintheight;
+ * height of window
+ * GdkWindowClasswclass;
+ * GDK_INPUT_OUTPUT (normal window) or GDK_INPUT_ONLY (invisible window that receives events)
+ * GdkVisual*visual;
+ * GdkVisual for window
+ * GdkColormap*colormap;
+ * GdkColormap for window
+ * GdkWindowTypewindow_type;
+ * type of window
+ * GdkCursor*cursor;
+ * cursor for the window (see gdk_window_set_cursor())
+ * gchar*wmclass_name;
+ * don't use (see gtk_window_set_wmclass())
+ * gchar*wmclass_class;
+ * don't use (see gtk_window_set_wmclass())
+ * gbooleanoverride_redirect;
+ * TRUE to bypass the window manager
+ * GdkWindowTypeHinttype_hint;
+ * a hint of the function of the window
+ */
+public struct GdkWindowAttr{}
+// char *title;
+// gdk-Windows.html
+// int eventMask;
+// gdk-Windows.html
+// int x, y;
+// gdk-Windows.html
+// int width;
+// gdk-Windows.html
+// int height;
+// gdk-Windows.html
+// GdkWindowClass wclass;
+// gdk-Windows.html
+// GdkVisual *visual;
+// gdk-Windows.html
+// GdkColormap *colormap;
+// gdk-Windows.html
+// GdkWindowType windowType;
+// gdk-Windows.html
+// GdkCursor *cursor;
+// gdk-Windows.html
+// char *wmclassName;
+// gdk-Windows.html
+// char *wmclassClass;
+// gdk-Windows.html
+// int overrideRedirect;
+// gdk-Windows.html
+// GdkWindowTypeHint typeHint;
+// gdk-Windows.html
+
+
+/**
+ * A table of pointers to functions for getting quantities related to
+ * the current pointer position. GDK has one global table of this type,
+ * which can be set using gdk_set_pointer_hooks().
+ * This is only useful for such low-level tools as an event recorder.
+ * Applications should never have any reason to use this facility
+ * get_pointer()
+ * Obtains the current pointer position and modifier state.
+ */
+public struct GdkPointerHooks{}
+// GdkWindow* (*getPointer) (GdkWindow *window,
+// gdk-Windows.html
+// int *x,
+// gdk-Windows.html
+// int *y,
+// gdk-Windows.html
+// GdkModifierType *mask);
+// gdk-Windows.html
+// GdkWindow* (*windowAtPointer) (GdkScreen *screen, /+* unused +/
+// gdk-Windows.html
+// int *winX,
+// gdk-Windows.html
+// int *winY);
+// gdk-Windows.html
+
+
+/**
+ * Contains the fields which are common to all event structs.
+ * Any event pointer can safely be cast to a pointer to a GdkEventAny to access
+ * these fields.
+ * GdkEventTypetype;
+ * the type of the event.
+ * GdkWindow*window;
+ * the window which received the event.
+ * gint8send_event;
+ * TRUE if the event was sent explicitly (e.g. using
+ * XSendEvent).
+ */
+public struct GdkEventAny
+{
+	GdkEventType type;
+	GdkWindow *window;
+	byte sendEvent;
+}
+
+
+/**
+ * Describes a key press or key release event.
+ * GdkEventTypetype;
+ * the type of the event (GDK_KEY_PRESS or GDK_KEY_RELEASE).
+ * GdkWindow*window;
+ * the window which received the event.
+ * gint8send_event;
+ * TRUE if the event was sent explicitly (e.g. using
+ * XSendEvent).
+ * guint32time;
+ * the time of the event in milliseconds.
+ * guintstate;
+ * a bit-mask representing the state of the modifier keys (e.g. Control,
+ * Shift and Alt) and the pointer buttons. See GdkModifierType.
+ * guintkeyval;
+ * the key that was pressed or released. See the
+ * <gdk/gdkkeysyms.h>
+ * header file for a complete list of GDK key codes.
+ * gintlength;
+ * the length of string.
+ * gchar*string;
+ * a string containing the an approximation of the text that
+ * would result from this keypress. The only correct way to handle text
+ * input of text is using input methods (see GtkIMContext), so this
+ * field is deprecated and should never be used.
+ * (gdk_unicode_to_keyval() provides a non-deprecated way of getting
+ * an approximate translation for a key.) The string is encoded in the encoding
+ * of the current locale (Note: this for backwards compatibility:
+ * strings in GTK+ and GDK are typically in UTF-8.) and NUL-terminated.
+ * In some cases, the translation of the key code will be a single
+ * NUL byte, in which case looking at length is necessary to distinguish
+ * it from the an empty translation.
+ * guint16hardware_keycode;
+ * the raw code of the key that was pressed or released.
+ * guint8group;
+ * the keyboard group.
+ * guintis_modifier:1;
+ * a flag that indicates if hardware_keycode is mapped to a
+ */
+public struct GdkEventKey
+{
+	GdkEventType type;
+	GdkWindow *window;
+	byte sendEvent;
+	uint time;
+	uint state;
+	uint keyval;
+	int length;
+	char *string;
+	ushort hardwareKeycode;
+	byte group;
+	uint bitfield;
+	//uint isModifier : 1;
+}
+
+
+/**
+ * Used for button press and button release events. The
+ * type field will be one of GDK_BUTTON_PRESS,
+ * GDK_2BUTTON_PRESS, GDK_3BUTTON_PRESS, and GDK_BUTTON_RELEASE.
+ * Double and triple-clicks result in a sequence of events being received.
+ * For double-clicks the order of events will be:
+ * GDK_BUTTON_PRESS
+ * GDK_BUTTON_RELEASE
+ * GDK_BUTTON_PRESS
+ * GDK_2BUTTON_PRESS
+ * GDK_BUTTON_RELEASE
+ * Note that the first click is received just like a normal
+ * button press, while the second click results in a GDK_2BUTTON_PRESS being
+ * received just after the GDK_BUTTON_PRESS.
+ * Triple-clicks are very similar to double-clicks, except that GDK_3BUTTON_PRESS
+ * is inserted after the third click. The order of the events is:
+ * GDK_BUTTON_PRESS
+ * GDK_BUTTON_RELEASE
+ * GDK_BUTTON_PRESS
+ * GDK_2BUTTON_PRESS
+ * GDK_BUTTON_RELEASE
+ * GDK_BUTTON_PRESS
+ * GDK_3BUTTON_PRESS
+ * GDK_BUTTON_RELEASE
+ * For a double click to occur, the second button press must occur within 1/4 of
+ * a second of the first. For a triple click to occur, the third button press
+ * must also occur within 1/2 second of the first button press.
+ * GdkEventTypetype;
+ * the type of the event (GDK_BUTTON_PRESS, GDK_2BUTTON_PRESS,
+ * GDK_3BUTTON_PRESS or GDK_BUTTON_RELEASE).
+ * GdkWindow*window;
+ * the window which received the event.
+ * gint8send_event;
+ * TRUE if the event was sent explicitly (e.g. using
+ * XSendEvent).
+ * guint32time;
+ * the time of the event in milliseconds.
+ * gdoublex;
+ * the x coordinate of the pointer relative to the window.
+ * gdoubley;
+ * the y coordinate of the pointer relative to the window.
+ * gdouble*axes;
+ * x, y translated to the axes of device, or NULL if device is
+ */
+public struct GdkEventButton
+{
+	GdkEventType type;
+	GdkWindow *window;
+	byte sendEvent;
+	uint time;
+	double x;
+	double y;
+	double *axes;
+	uint state;
+	uint button;
+	GdkDevice *device;
+	double xRoot, yRoot;
+}
+
+
+/**
+ * Generated from button presses for the buttons 4 to 7. Wheel mice are
+ * usually configured to generate button press events for buttons 4 and 5
+ * when the wheel is turned.
+ * GdkEventTypetype;
+ * the type of the event (GDK_SCROLL).
+ * GdkWindow*window;
+ * the window which received the event.
+ * gint8send_event;
+ * TRUE if the event was sent explicitly (e.g. using
+ * XSendEvent).
+ * guint32time;
+ * the time of the event in milliseconds.
+ * gdoublex;
+ * the x coordinate of the pointer relative to the window.
+ * gdoubley;
+ * the y coordinate of the pointer relative to the window.
+ * guintstate;
+ * a bit-mask representing the state of the modifier keys (e.g. Control,
+ * Shift and Alt) and the pointer buttons. See GdkModifierType.
+ * GdkScrollDirectiondirection;
+ * the direction to scroll to (one of GDK_SCROLL_UP,
+ */
+public struct GdkEventScroll
+{
+	GdkEventType type;
+	GdkWindow *window;
+	byte sendEvent;
+	uint time;
+	double x;
+	double y;
+	uint state;
+	GdkScrollDirection direction;
+	GdkDevice *device;
+	double xRoot, yRoot;
+}
+
+
+/**
+ * Generated when the pointer moves.
+ * GdkEventTypetype;
+ * the type of the event.
+ * GdkWindow*window;
+ * the window which received the event.
+ * gint8send_event;
+ * TRUE if the event was sent explicitly (e.g. using
+ * XSendEvent).
+ * guint32time;
+ * the time of the event in milliseconds.
+ * gdoublex;
+ * the x coordinate of the pointer relative to the window.
+ * gdoubley;
+ * the y coordinate of the pointer relative to the window.
+ * gdouble*axes;
+ * x, y translated to the axes of device, or NULL if device is
+ */
+public struct GdkEventMotion
+{
+	GdkEventType type;
+	GdkWindow *window;
+	byte sendEvent;
+	uint time;
+	double x;
+	double y;
+	double *axes;
+	uint state;
+	short isHint;
+	GdkDevice *device;
+	double xRoot, yRoot;
+}
+
+
+/**
+ * Generated when all or part of a window becomes visible and needs to be
+ * redrawn.
+ * GdkEventTypetype;
+ * the type of the event (GDK_EXPOSE).
+ * GdkWindow*window;
+ * the window which received the event.
+ * gint8send_event;
+ * TRUE if the event was sent explicitly (e.g. using
+ * XSendEvent).
+ * GdkRectanglearea;
+ * bounding box of region.
+ * GdkRegion*region;
+ * the region that needs to be redrawn.
+ * gintcount;
+ * the number of contiguous GDK_EXPOSE events following this one.
+ * The only use for this is "exposure compression", i.e. handling all contiguous
+ * GDK_EXPOSE events in one go, though GDK performs some exposure compression
+ * so this is not normally needed.
+ */
+public struct GdkEventExpose
+{
+	GdkEventType type;
+	GdkWindow *window;
+	byte sendEvent;
+	GdkRectangle area;
+	GdkRegion *region;
+	int count; /+* If non-zero, how many more events follow. +/
+}
+
+
+/**
+ * Generated when the window visibility status has changed.
+ * GdkEventTypetype;
+ * the type of the event (GDK_VISIBILITY_NOTIFY).
+ * GdkWindow*window;
+ * the window which received the event.
+ * gint8send_event;
+ * TRUE if the event was sent explicitly (e.g. using
+ * XSendEvent).
+ * GdkVisibilityStatestate;
+ * the new visibility state (GDK_VISIBILITY_FULLY_OBSCURED,
+ * GDK_VISIBILITY_PARTIAL or GDK_VISIBILITY_UNOBSCURED).
+ */
+public struct GdkEventVisibility
+{
+	GdkEventType type;
+	GdkWindow *window;
+	byte sendEvent;
+	GdkVisibilityState state;
+}
+
+
+/**
+ * Generated when the pointer enters or leaves a window.
+ * GdkEventTypetype;
+ * the type of the event (GDK_ENTER_NOTIFY or GDK_LEAVE_NOTIFY).
+ * GdkWindow*window;
+ * the window which received the event.
+ * gint8send_event;
+ * TRUE if the event was sent explicitly (e.g. using
+ * XSendEvent).
+ * GdkWindow*subwindow;
+ * the window that was entered or left.
+ * guint32time;
+ * the time of the event in milliseconds.
+ * gdoublex;
+ * the x coordinate of the pointer relative to the window.
+ * gdoubley;
+ * the y coordinate of the pointer relative to the window.
+ * gdoublex_root;
+ * the x coordinate of the pointer relative to the root of the screen.
+ * gdoubley_root;
+ * the y coordinate of the pointer relative to the root of the screen.
+ * GdkCrossingModemode;
+ * the crossing mode (GDK_CROSSING_NORMAL, GDK_CROSSING_GRAB or
+ */
+public struct GdkEventCrossing
+{
+	GdkEventType type;
+	GdkWindow *window;
+	byte sendEvent;
+	GdkWindow *subwindow;
+	uint time;
+	double x;
+	double y;
+	double xRoot;
+	double yRoot;
+	GdkCrossingMode mode;
+	GdkNotifyType detail;
+	int focus;
+	uint state;
+}
+
+
+/**
+ * Describes a change of keyboard focus.
+ * GdkEventTypetype;
+ * the type of the event (GDK_FOCUS_CHANGE).
+ * GdkWindow*window;
+ * the window which received the event.
+ * gint8send_event;
+ * TRUE if the event was sent explicitly (e.g. using XSendEvent).
+ * gint16in;
+ * TRUE if the window has gained the keyboard focus, FALSE if it has lost
+ * the focus.
+ */
+public struct GdkEventFocus
+{
+	GdkEventType type;
+	GdkWindow *window;
+	byte sendEvent;
+	short inn;
+}
+
+
+/**
+ * Generated when a window size or position has changed.
+ * GdkEventTypetype;
+ * the type of the event (GDK_CONFIGURE).
+ * GdkWindow*window;
+ * the window which received the event.
+ * gint8send_event;
+ * TRUE if the event was sent explicitly (e.g. using XSendEvent).
+ * gintx;
+ * the new x coordinate of the window, relative to its parent.
+ * ginty;
+ * the new y coordinate of the window, relative to its parent.
+ * gintwidth;
+ * the new width of the window.
+ * gintheight;
+ * the new height of the window.
+ */
+public struct GdkEventConfigure
+{
+	GdkEventType type;
+	GdkWindow *window;
+	byte sendEvent;
+	int x, y;
+	int width;
+	int height;
+}
+
+
+/**
+ * Describes a property change on a window.
+ * GdkEventTypetype;
+ * the type of the event (GDK_PROPERTY_NOTIFY).
+ * GdkWindow*window;
+ * the window which received the event.
+ * gint8send_event;
+ * TRUE if the event was sent explicitly (e.g. using XSendEvent).
+ * GdkAtomatom;
+ * the property that was changed.
+ * guint32time;
+ * the time of the event in milliseconds.
+ * guintstate;
+ * whether the property was changed (GDK_PROPERTY_NEW_VALUE) or
+ * deleted (GDK_PROPERTY_DELETE).
+ */
+public struct GdkEventProperty
+{
+	GdkEventType type;
+	GdkWindow *window;
+	byte sendEvent;
+	GdkAtom atom;
+	uint time;
+	uint state;
+}
+
+
+/**
+ * Generated when a selection is requested or ownership of a selection
+ * is taken over by another client application.
+ * GdkEventTypetype;
+ * the type of the event (GDK_SELECTION_CLEAR, GDK_SELECTION_NOTIFY or
+ * GDK_SELECTION_REQUEST).
+ * GdkWindow*window;
+ * the window which received the event.
+ * gint8send_event;
+ * TRUE if the event was sent explicitly (e.g. using XSendEvent).
+ * GdkAtomselection;
+ * the selection.
+ * GdkAtomtarget;
+ * the target to which the selection should be converted.
+ * GdkAtomproperty;
+ * the property in which to place the result of the conversion.
+ * guint32time;
+ * the time of the event in milliseconds.
+ * GdkNativeWindowrequestor;
+ * the native window on which to place property.
+ */
+public struct GdkEventSelection
+{
+	GdkEventType type;
+	GdkWindow *window;
+	byte sendEvent;
+	GdkAtom selection;
+	GdkAtom target;
+	GdkAtom property;
+	uint time;
+	GdkNativeWindow requestor;
+}
+
+
+/**
+ * Generated during DND operations.
+ * GdkEventTypetype;
+ * the type of the event (GDK_DRAG_ENTER, GDK_DRAG_LEAVE,
+ */
+public struct GdkEventDND
+{
+	GdkEventType type;
+	GdkWindow *window;
+	byte sendEvent;
+	GdkDragContext *context;
+	uint time;
+	short xRoot, yRoot;
+}
+
+
+/**
+ * Proximity events are generated when using GDK's wrapper for the
+ * XInput extension. The XInput extension is an add-on for standard X
+ * that allows you to use nonstandard devices such as graphics tablets.
+ * A proximity event indicates that the stylus has moved in or out of
+ * contact with the tablet, or perhaps that the user's finger has moved
+ * in or out of contact with a touch screen.
+ * GdkEventTypetype;
+ * the type of the event (GDK_PROXIMITY_IN or GDK_PROXIMITY_OUT).
+ * GdkWindow*window;
+ * the window which received the event.
+ * gint8send_event;
+ * TRUE if the event was sent explicitly (e.g. using XSendEvent).
+ * guint32time;
+ * the time of the event in milliseconds.
+ * GdkDevice*device;
+ * the device where the event originated.
+ */
+public struct GdkEventProximity
+{
+	GdkEventType type;
+	GdkWindow *window;
+	byte sendEvent;
+	uint time;
+	GdkDevice *device;
+}
+
+
+/**
+ * An event sent by another client application.
+ * GdkEventTypetype;
+ * the type of the event (GDK_CLIENT_EVENT).
+ * GdkWindow*window;
+ * the window which received the event.
+ * gint8send_event;
+ * TRUE if the event was sent explicitly (e.g. using XSendEvent).
+ * GdkAtommessage_type;
+ * the type of the message, which can be defined by the
+ * application.
+ * gushortdata_format;
+ * the format of the data, given as the number of bits in each
+ * data element, i.e. 8, 16, or 32. 8-bit data uses the b array of the data
+ * union, 16-bit data uses the s array, and 32-bit data uses the l array.
+ */
+public struct GdkEventClient{}
+// GdkEventType type;
+// gdk-Event-Structures.html
+// GdkWindow *window;
+// gdk-Event-Structures.html
+// byte sendEvent;
+// gdk-Event-Structures.html
+// GdkAtom messageType;
+// gdk-Event-Structures.html
+// ushort dataFormat;
+// gdk-Event-Structures.html
+// unio {
+	// gdk-Event-Structures.html
+	// char b[20];
+	// gdk-Event-Structures.html
+	// short s[10];
+	// gdk-Event-Structures.html
+	// long l[5];
+	// gdk-Event-Structures.html
+// } data;
+// gdk-Event-Structures.html
+
+
+/**
+ * Generated when the area of a GdkDrawable being copied, with gdk_draw_drawable()
+ * or gdk_window_copy_area(), was completely available.
+ * FIXME: add more here.
+ * GdkEventTypetype;
+ * the type of the event (GDK_NO_EXPOSE).
+ * GdkWindow*window;
+ * the window which received the event.
+ * gint8send_event;
+ * TRUE if the event was sent explicitly (e.g. using XSendEvent).
+ */
+public struct GdkEventNoExpose
+{
+	GdkEventType type;
+	GdkWindow *window;
+	byte sendEvent;
+}
+
+
+/**
+ * Generated when the state of a toplevel window changes.
+ * GdkEventTypetype;
+ * the type of the event (GDK_WINDOW_STATE).
+ * GdkWindow*window;
+ * the window which received the event.
+ * gint8send_event;
+ * TRUE if the event was sent explicitly (e.g. using XSendEvent).
+ * GdkWindowStatechanged_mask;
+ * mask specifying what flags have changed.
+ * GdkWindowStatenew_window_state;
+ * the new window state, a combination of GdkWindowState bits.
+ */
+public struct GdkEventWindowState
+{
+	GdkEventType type;
+	GdkWindow *window;
+	byte sendEvent;
+	GdkWindowState changedMask;
+	GdkWindowState newWindowState;
+}
+
+
+/**
+ * Generated when a setting is modified.
+ * GdkEventTypetype;
+ * the type of the event (GDK_SETTING).
+ * GdkWindow*window;
+ * the window which received the event.
+ * gint8send_event;
+ * TRUE if the event was sent explicitly (e.g. using XSendEvent).
+ * GdkSettingActionaction;
+ * what happened to the setting (GDK_SETTING_ACTION_NEW,
+ */
+public struct GdkEventSetting
+{
+	GdkEventType type;
+	GdkWindow *window;
+	byte sendEvent;
+	GdkSettingAction action;
+	char *name;
+}
+
+
+/**
+ * Generated when the owner of a selection changes. On X11, this information is
+ * only available if the X server supports the XFIXES extension.
+ * GdkEventTypetype;
+ * the type of the event (GDK_OWNER_CHANGE).
+ * GdkWindow*window;
+ * the window which received the event
+ * gint8send_event;
+ * TRUE if the event was sent explicitly (e.g. using XSendEvent).
+ * GdkNativeWindowowner;
+ * the new owner of the selection
+ * GdkOwnerChangereason;
+ * the reason for the ownership change as a GdkOwnerChange value
+ * GdkAtomselection;
+ * the atom identifying the selection
+ * guint32time;
+ * the timestamp of the event
+ * guint32selection_time;
+ * the time at which the selection ownership was taken over
+ * Since 2.6
+ */
+public struct GdkEventOwnerChange
+{
+	GdkEventType type;
+	GdkWindow *window;
+	byte sendEvent;
+	GdkNativeWindow owner;
+	GdkOwnerChange reason;
+	GdkAtom selection;
+	uint time;
+	uint selectionTime;
+}
+
+
+/**
+ * Generated when a pointer or keyboard grab is broken. On X11, this happens
+ * when the grab window becomes unviewable (i.e. it or one of its ancestors
+ * is unmapped), or if the same application grabs the pointer or keyboard
+ * again. Note that implicit grabs (which are initiated by button presses)
+ * can also cause GdkEventGrabBroken events.
+ * GdkEventTypetype;
+ * the type of the event (GDK_GRAB_BROKEN)
+ * GdkWindow*window;
+ * the window which received the event, i.e. the window
+ */
+public struct GdkEventGrabBroken
+{
+	GdkEventType type;
+	GdkWindow *window;
+	byte sendEvent;
+	int keyboard;
+	int implicit;
+	GdkWindow *grabWindow;
+}
+
+
+/**
+ * Main Gtk struct.
+ * A GdkKeymap defines the translation from keyboard state
+ * (including a hardware key, a modifier mask, and active keyboard group)
+ * to a keyval. This translation has two phases. The first phase is
+ * to determine the effective keyboard group and level for the keyboard
+ * state; the second phase is to look up the keycode/group/level triplet
+ * in the keymap and see what keyval it corresponds to.
+ */
+public struct GdkKeymap{}
+
+
+/**
+ * A GdkKeymapKey is a hardware key that can
+ * be mapped to a keyval.
+ * guintkeycode;
+ * the hardware keycode. This is an identifying number for a
+ */
+public struct GdkKeymapKey
+{
+	uint keycode;
+	int group;
+	int level;
+}
+
+
+/**
+ * Main Gtk struct.
+ * A GdkDragContext holds information about a
+ * drag in progress. It is used on both source and destination sides.
+ * GObjectparent_instance;
+ * the parent instance
+ * GdkDragProtocolprotocol;
+ * the DND protocol which governs this drag.
+ * gbooleanis_source;
+ * TRUE if the context is used on the source side.
+ * GdkWindow*source_window;
+ * the source of this drag.
+ * GdkWindow*dest_window;
+ * the destination window of this drag.
+ * GList*targets;
+ * a list of targets offered by the source.
+ * GdkDragActionactions;
+ * a bitmask of actions proposed by the source when
+ */
+public struct GdkDragContext{}
+// GObject parentInstance;
+// gdk-Drag-and-Drop.html
+// GdkDragProtocol protocol;
+// gdk-Drag-and-Drop.html
+// int isSource;
+// gdk-Drag-and-Drop.html
+// GdkWindow *sourceWindow;
+// gdk-Drag-and-Drop.html
+// GdkWindow *destWindow;
+// gdk-Drag-and-Drop.html
+// GList *targets;
+// gdk-Drag-and-Drop.html
+// GdkDragAction actions;
+// gdk-Drag-and-Drop.html
+// GdkDragAction suggestedAction;
+// gdk-Drag-and-Drop.html
+// GdkDragAction action;
+// gdk-Drag-and-Drop.html
+// uint startTime;
+// gdk-Drag-and-Drop.html
+
+
+/**
+ * Main Gtk struct.
+ * A GdkDevice structure contains
+ * a detailed description of an extended input device. All
+ * fields are read-only; but you can use gdk_device_set_source(),
+ * gdk_device_set_mode(), gdk_device_set_key() and gdk_device_set_axis_use()
+ * to configure various aspects of the device.
+ * GObjectparent_instance;
+ * the parent instance
+ * gchar*name;
+ * the name of this device.
+ * GdkInputSourcesource;
+ * the type of this device.
+ * GdkInputModemode;
+ * the mode of this device
+ * gbooleanhas_cursor;
+ * TRUE if the pointer follows device motion.
+ * gintnum_axes;
+ * the length of the axes array.
+ * GdkDeviceAxis*axes;
+ * an array of GdkDeviceAxis, describing the axes of this device.
+ * gintnum_keys;
+ * the length of the keys array.
+ * GdkDeviceKey*keys;
+ * an array of GdkDeviceKey, describing the mapped macro buttons
+ */
+public struct GdkDevice{}
+// GObject parentInstance;
+// gdk-Input-Devices.html
+// /+* All fields are read-only +/
+// gdk-Input-Devices.html
+// char *name;
+// gdk-Input-Devices.html
+// GdkInputSource source;
+// gdk-Input-Devices.html
+// GdkInputMode mode;
+// gdk-Input-Devices.html
+// int hasCursor; /+* TRUE if the X pointer follows device motion +/
+// gdk-Input-Devices.html
+// int numAxes;
+// gdk-Input-Devices.html
+// GdkDeviceAxis *axes;
+// gdk-Input-Devices.html
+// int numKeys;
+// gdk-Input-Devices.html
+// GdkDeviceKey *keys;
+// gdk-Input-Devices.html
+
+
+/**
+ * The GdkDeviceKey structure contains information
+ * about the mapping of one device macro button onto a normal X key event.
+ * It has the following fields:
+ * guintkeyval;
+ * the keyval to generate when the macro button is pressed.
+ */
+public struct GdkDeviceKey{}
+// uint keyval;
+// gdk-Input-Devices.html
+// GdkModifierType modifiers;
+// gdk-Input-Devices.html
+
+
+/**
+ * The GdkDeviceAxis structure contains information
+ * about the range and mapping of a device axis.
+ * GdkAxisUseuse;
+ * specifies how the axis is used.
+ * gdoublemin;
+ * the minimal value that will be reported by this axis.
+ * gdoublemax;
+ * the maximal value that will be reported by this axis.
+ */
+public struct GdkDeviceAxis{}
+// GdkAxisUse use;
+// gdk-Input-Devices.html
+// double min;
+// gdk-Input-Devices.html
+// double max;
+// gdk-Input-Devices.html
+
+
+/**
+ * The GdkTimeCoord structure stores a single event in a
+ * motion history. It contains the following fields:
+ * guint32time;
+ * The timestamp for this event.
+ * gdoubleaxes[GDK_MAX_TIMECOORD_AXES];
+ * the values of the device's axes.
+ */
+public struct GdkTimeCoord{}
+// uint time;
+// gdk-Input-Devices.html
+// double axes[GDK_MAX_TIMECOORD_AXES];
+// gdk-Input-Devices.html
+
+
+/*
+ * Warning
+ * gdk_visual_ref is deprecated and should not be used in newly-written code.
+ * Deprecated equivalent of g_object_ref().
+ * v:
+ * a GdkVisual
+ * Returns:
+ * the same visual
+ */
+// TODO
+// #define gdk_visual_ref(v) g_object_ref(v)
+
+/*
+ * Warning
+ * gdk_visual_unref is deprecated and should not be used in newly-written code.
+ * Deprecated equivalent of g_object_unref().
+ * v:
+ * a GdkVisual
+ */
+// TODO
+// #define gdk_visual_unref(v) g_object_unref(v)
+
+/*
+ * Warning
+ * gdk_window_copy_area is deprecated and should not be used in newly-written code.
+ * Deprecated equivalent to gdk_draw_drawable(), see that function for docs
+ * drawable:
+ * a GdkDrawable
+ * gc:
+ * a GdkGC sharing the drawable's visual and colormap
+ * x:
+ * X position in drawable where the rectangle should be drawn
+ * y:
+ * Y position in drawable where the rectangle should be drawn
+ * source_drawable:
+ * the source GdkDrawable, which may be the same as drawable
+ * source_x:
+ * X position in src of rectangle to draw
+ * source_y:
+ * Y position in src of rectangle to draw
+ * width:
+ * width of rectangle to draw, or -1 for entire src width
+ * height:
+ * height of rectangle to draw, or -1 for entire src height
+ */
+// TODO
+// #define gdk_window_copy_area(drawable,gc,x,y,source_drawable,source_x,source_y,width,height)
+
+/*
+ * This macro marks the beginning of a critical section in which GDK and
+ * GTK+ functions can be called safely and without causing race
+ * conditions. Only one thread at a time can be in such a critial
+ * section. The macro expands to a no-op if G_THREADS_ENABLED has not
+ * been defined. Typically gdk_threads_enter() should be used instead of
+ * this macro.
+ */
+// TODO
+// #define GDK_THREADS_ENTER()
+
+/*
+ * This macro marks the end of a critical section
+ * begun with GDK_THREADS_ENTER.
+ */
+// TODO
+// #define GDK_THREADS_LEAVE()
+
+/*
+ * Obtains the Xlib window id of the root window of the current screen.
+ */
+// TODO
+// #define GDK_ROOT_WINDOW() (gdk_x11_get_default_root_xwindow ())
+
+/*
+ * Warning
+ * GDK_ROOT_PARENT is deprecated and should not be used in newly-written code.
+ * Obtains the Xlib window id of the root window of the default screen.
+ */
+// TODO
+// #define GDK_ROOT_PARENT() (gdk_get_default_root_window ())
+
+/*
+ * The current display.
+ * Returns:
+ * an Xlib Display*.
+ */
+// TODO
+// #define GDK_DISPLAY() gdk_display
+
+/*
+ * Returns the display of a GdkWindow.
+ * win:
+ * a GdkWindow.
+ * Returns:
+ * an Xlib Display*.
+ */
+// TODO
+// #define GDK_WINDOW_XDISPLAY(win)
+
+/*
+ * Returns the X window belonging to a GdkWindow.
+ * win:
+ * a GdkWindow.
+ * Returns:
+ * the Xlib Window of win.
+ */
+// TODO
+// #define GDK_WINDOW_XID(win)
+
+/*
+ * Returns the display of a GdkPixmap.
+ * pix:
+ * a GdkPixmap.
+ * Returns:
+ * an Xlib Display*.
+ */
+// TODO
+// #define GDK_PIXMAP_XDISPLAY(pix)
+
+/*
+ * Returns the X pixmap belonging to a GdkPixmap.
+ * pix:
+ * a GdkPixmap.
+ * Returns:
+ * the Xlib XPixmap of win.
+ */
+// TODO
+// #define GDK_PIXMAP_XID(pix)
+
+/*
+ * Returns the display of a GdkDisplay.
+ * display:
+ * a GdkDisplay.
+ */
+// TODO
+// #define GDK_DISPLAY_XDISPLAY(display)
+
+/*
+ * Returns the display of a GdkDrawable.
+ * win:
+ * a GdkDrawable.
+ * Returns:
+ * an Xlib Display*.
+ */
+// TODO
+// #define GDK_DRAWABLE_XDISPLAY(win)
+
+/*
+ * Returns the X resource (window or pixmap) belonging to a GdkDrawable.
+ * win:
+ * a GdkDrawable.
+ * Returns:
+ * the ID of win's X resource.
+ */
+// TODO
+// #define GDK_DRAWABLE_XID(win)
+
+/*
+ * Returns the display of a GdkImage.
+ * image:
+ * a GdkImage.
+ * Returns:
+ * an Xlib Display*.
+ */
+// TODO
+// #define GDK_IMAGE_XDISPLAY(image) (gdk_x11_image_get_xdisplay (image))
+
+/*
+ * Returns the X image belonging to a GdkImage.
+ * image:
+ * a GdkImage.
+ * Returns:
+ * an XImage*.
+ */
+// TODO
+// #define GDK_IMAGE_XIMAGE(image) (gdk_x11_image_get_ximage (image))
+
+/*
+ * Returns the display of a GdkGC.
+ * gc:
+ * a GdkGC.
+ * Returns:
+ * an Xlib Display*.
+ */
+// TODO
+// #define GDK_GC_XDISPLAY(gc)
+
+/*
+ * Returns the display of a GdkColormap.
+ * cmap:
+ * a GdkColormap.
+ * Returns:
+ * an Xlib Display*.
+ */
+// TODO
+// #define GDK_COLORMAP_XDISPLAY(cmap) (gdk_x11_colormap_get_xdisplay (cmap))
+
+/*
+ * Returns the X colormap belonging to a GdkColormap.
+ * cmap:
+ * a GdkColormap.
+ * Returns:
+ * an Xlib Colormap.
+ */
+// TODO
+// #define GDK_COLORMAP_XCOLORMAP(cmap) (gdk_x11_colormap_get_xcolormap (cmap))
+
+/*
+ * Returns the display of a GdkScreen.
+ * screen:
+ * a GdkScreen.
+ * Returns:
+ * an Xlib Display*.
+ */
+// TODO
+// #define GDK_SCREEN_XDISPLAY(screen)
+
+/*
+ * Returns the index of a GdkScreen.
+ * screen:
+ * a GdkScreen
+ * Returns:
+ * the position of screen among the screens of
+ *  its display.
+ */
+// TODO
+// #define GDK_SCREEN_XNUMBER(screen)
+
+/*
+ * Returns the screen of a GdkScreen.
+ * screen:
+ * a GdkScreen
+ * Returns:
+ * an Xlib Screen*.
+ */
+// TODO
+// #define GDK_SCREEN_XSCREEN(screen)
+
+/*
+ * Returns the X visual belonging to a GdkVisual.
+ * vis:
+ * a GdkVisual.
+ * Returns:
+ * an Xlib Visual*.
+ */
+// TODO
+// #define GDK_VISUAL_XVISUAL(vis)
+
+/*
+ * Warning
+ * GDK_FONT_XDISPLAY is deprecated and should not be used in newly-written code.
+ * Returns the display of a GdkFont.
+ * font:
+ * a GdkFont.
+ * Returns:
+ * an Xlib Display*.
+ */
+// TODO
+// #define GDK_FONT_XDISPLAY(font) (gdk_x11_font_get_xdisplay (font))
+
+/*
+ * Warning
+ * GDK_FONT_XFONT is deprecated and should not be used in newly-written code.
+ * Returns the X font belonging to a GdkFont.
+ * font:
+ * a GdkFont.
+ * Returns:
+ * an Xlib XFontStruct* or an XFontSet.
+ */
+// TODO
+// #define GDK_FONT_XFONT(font) (gdk_x11_font_get_xfont (font))
+
+/*
+ * Returns the X cursor belonging to a GdkCursor.
+ * cursor:
+ * a GdkCursor.
+ * Returns:
+ * an Xlib Cursor.
+ */
+// TODO
+// #define GDK_CURSOR_XCURSOR(cursor) (gdk_x11_cursor_get_xcursor (cursor))
+
+/*
+ * Returns the display of a GdkCursor.
+ * cursor:
+ * a GdkCursor.
+ * Returns:
+ * an Xlib Display*.
+ */
+// TODO
+// #define GDK_CURSOR_XDISPLAY(cursor) (gdk_x11_cursor_get_xdisplay (cursor))
+
+/*
+ * Returns the X GC of a GdkGC.
+ * gc:
+ * a GdkGC.
+ * Returns:
+ * an Xlib GC.
+ */
+// TODO
+// #define GDK_GC_XGC(gc)
+
+/*
+ * Returns the X GC of a GdkGC.
+ * gc:
+ * a GdkGC.
+ * Returns:
+ * an Xlib GC.
+ */
+// TODO
+// #define GDK_GC_GET_XGC(gc)	 (GDK_GC_X11(gc)->dirty_mask ? _gdk_x11_gc_flush (gc) : ((GdkGCX11 *)(gc))->xgc)
+
+/*
+ * Warning
+ * gdk_font_lookup is deprecated and should not be used in newly-written code.
+ * Obtains the GdkFont for the given Xlib font ID, or NULL if no GdkFont has
+ * been created for xid.
+ * xid:
+ * an Xlib font ID
+ */
+// TODO
+// #define gdk_font_lookup(xid)	 ((GdkFont*) gdk_xid_table_lookup (xid))
+
+/*
+ * Warning
+ * gdk_font_lookup_for_display is deprecated and should not be used in newly-written code.
+ * Obtains the GdkFont for the given Xlib font ID on display, or NULL if no
+ * GdkFont has been created for xid.
+ * display:
+ * a GdkDisplay
+ * xid:
+ * an Xlib font ID
+ * Since: 2.2
+ */
+// TODO
+// #define gdk_font_lookup_for_display(display, xid) ((GdkFont*) gdk_xid_table_lookup_for_display (display, ((xid)|XID_FONT_BIT)))
+
+/*
+ * This defines the type of the function passed to
+ * gdk_region_spans_intersect_foreach().
+ * span:
+ * a GdkSpan.
+ * data:
+ * the user data passed to gdk_region_spans_intersect_foreach().
+ */
+// void (*GdkSpanFunc) (GdkSpan *span,  gpointer data);
+public typedef extern(C) void  function (GdkSpan*, void*) GdkSpanFunc;
+
+/*
+ *  A function of this type is responsible for freeing the pixel array
+ *  of a pixbuf. The gdk_pixbuf_new_from_data() function lets you
+ *  pass in a pre-allocated pixel array so that a pixbuf can be
+ *  created from it; in this case you will need to pass in a function
+ *  of GdkPixbufDestroyNotify so that the pixel data can be freed
+ *  when the pixbuf is finalized.
+ * pixels:
+ * The pixel array of the pixbuf that is being finalized.
+ * data:
+ * User closure data.
+ * See Also
+ *  GdkPixbuf, gdk_pixbuf_new_from_data().
+ */
+// void (*GdkPixbufDestroyNotify) (guchar *pixels,  gpointer data);
+public typedef extern(C) void  function (guchar*, void*) GdkPixbufDestroyNotify;
+
+/*
+ * Specifies the type of the function passed to
+ * gdk_pixbuf_save_to_callback(). It is called once for each block of
+ * bytes that is "written" by gdk_pixbuf_save_to_callback(). If
+ * successful it should return TRUE. If an error occurs it should set
+ * error and return FALSE, in which case gdk_pixbuf_save_to_callback()
+ * will fail with the same error.
+ * buf:
+ * bytes to be written.
+ * count:
+ * number of bytes in buf.
+ * error:
+ * A location to return an error.
+ * data:
+ * user data passed to gdk_pixbuf_save_to_callback().
+ * Returns:
+ * TRUE if successful, FALSE (with error set) if failed.
+ * Since 2.4
+ */
+// gboolean (*GdkPixbufSaveFunc) (const gchar *buf,  gsize count,  GError **error,  gpointer data);
+public typedef extern(C) int  function (char[], uint, GError**, void*) GdkPixbufSaveFunc;
+
+/*
+ * Specifies the type of function used to filter native events before they are
+ * converted to GDK events.
+ * When a filter is called, event is unpopulated, except for
+ * event->window. The filter may translate the native
+ * event to a GDK event and store the result in event, or handle it without
+ * translation. If the filter translates the event and processing should
+ * continue, it should return GDK_FILTER_TRANSLATE.
+ * xevent:
+ * the native event to filter.
+ * event:
+ * the GDK event to which the X event will be translated.
+ * data:
+ * user data set when the filter was installed.
+ * Returns:
+ * a GdkFilterReturn value.
+ */
+// GdkFilterReturn (*GdkFilterFunc) (GdkXEvent *xevent,  GdkEvent *event,  gpointer data);
+public typedef extern(C) GdkFilterReturn  function (GdkXEvent*, GdkEvent*, void*) GdkFilterFunc;
+
+/*
+ * Specifies the type of function passed to gdk_event_handler_set() to handle
+ * all GDK events.
+ * event:
+ * the GdkEvent to process.
+ * data:
+ * user data set when the event handler was installed with
+ * gdk_event_handler_set().
+ */
+// void (*GdkEventFunc) (GdkEvent *event,  gpointer data);
+public typedef extern(C) void  function (GdkEvent*, void*) GdkEventFunc;
+
+/*
+ * A callback function that will be called when some condition
+ * occurs.
+ * data:
+ * the user data passed to gdk_input_add() or gdk_input_add_full().
+ * source:
+ * the source where the condition occurred.
+ * condition:
+ * the triggering condition.
+ */
+// void (*GdkInputFunction) (gpointer data,  gint source,  GdkInputCondition condition);
+public typedef extern(C) void  function (void*, int, GdkInputCondition) GdkInputFunction;
+
+/*
+ * A callback function called when a piece of user data is
+ * no longer being stored by GDK. Will typically free the
+ * structure or object that data points to.
+ * data:
+ * the user data.
+ */
+// void (*GdkDestroyNotify) (gpointer data);
+public typedef extern(C) void  function (void*) GdkDestroyNotify;
+/**
+ * The GdkEvent struct contains a union of all of the event structs,
+ * and allows access to the data fields in a number of ways.
+ * The event type is always the first field in all of the event structs, and
+ * can always be accessed with the following code, no matter what type of event
+ * it is:
+ */
+public struct GdkEvent
+{
+	union
+	{
+		GdkEventType type;
+		GdkEventAny any;
+		GdkEventExpose expose;
+		GdkEventNoExpose noExpose;
+		GdkEventVisibility visibility;
+		GdkEventMotion motion;
+		GdkEventButton button;
+		GdkEventScroll scroll;
+		GdkEventKey key;
+		GdkEventCrossing crossing;
+		GdkEventFocus focusChange;
+		GdkEventConfigure configure;
+		GdkEventProperty property;
+		GdkEventSelection selection;
+		GdkEventOwnerChange ownerChange;
+		GdkEventProximity proximity;
+		GdkEventClient client;
+		GdkEventDND dnd;
+		GdkEventWindowState windowState;
+		GdkEventSetting setting;
+		GdkEventGrabBroken grabBroken;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/gtk/c/glib.d	Sat Jan 05 15:13:44 2008 -0800
@@ -0,0 +1,2040 @@
+/******************************************************************************
+
+    This file is part of gtkD.
+
+    gtkD is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation; either version 2.1 of the License, or
+    (at your option) any later version.
+ 
+    gtkD is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with gtkD; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+******************************************************************************/
+
+module dwt.internal.gtk.c.glib;
+
+private import dwt.internal.gtk.c.glibtypes;
+private import dwt.internal.gtk.c.gthreadtypes;
+private import dwt.internal.gtk.runtime.Loader;
+
+private import tango.stdc.stdio;
+
+/******************************************************************************
+
+******************************************************************************/
+
+private Linker glibLinker;
+
+/******************************************************************************
+
+******************************************************************************/
+
+static this()
+{
+    glibLinker = new Linker( getLibraryPath ~ importLibs[LIBRARY.GLIB] );
+    glibLinker.link( glibLinks );
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+static ~this()
+{
+    delete glibLinker;
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+extern(C) 
+{	
+	// glib.Version
+	
+	gchar* function(guint requiredMajor, guint requiredMinor, guint requiredMicro)glib_check_version;
+	
+	// glib.Atomic
+	
+	gint function(gint* atomic)g_atomic_int_get;
+	void function(gint* atomic, gint newval)g_atomic_int_set;
+	void function(gint* atomic, gint val)g_atomic_int_add;
+	gint function(gint* atomic, gint val)g_atomic_int_exchange_and_add;
+	gboolean function(gint* atomic, gint oldval, gint newval)g_atomic_int_compare_and_exchange;
+	gpointer function(gpointer* atomic)g_atomic_pointer_get;
+	void function(gpointer* atomic, gpointer newval)g_atomic_pointer_set;
+	gboolean function(gpointer* atomic, gpointer oldval, gpointer newval)g_atomic_pointer_compare_and_exchange;
+	void function(gint* atomic)g_atomic_int_inc;
+	gboolean function(gint* atomic)g_atomic_int_dec_and_test;
+	
+	// glib.MainLoop
+	
+	GMainLoop* function(GMainContext* context, gboolean isRunning)g_main_loop_new;
+	GMainLoop* function(GMainLoop* loop)g_main_loop_ref;
+	void function(GMainLoop* loop)g_main_loop_unref;
+	void function(GMainLoop* loop)g_main_loop_run;
+	void function(GMainLoop* loop)g_main_loop_quit;
+	gboolean function(GMainLoop* loop)g_main_loop_is_running;
+	GMainContext* function(GMainLoop* loop)g_main_loop_get_context;
+	gint function()g_main_depth;
+	GSource* function()g_main_current_source;
+	GSource* function()g_idle_source_new;
+	guint function(GSourceFunc funct, gpointer data)g_idle_add;
+	guint function(gint priority, GSourceFunc funct, gpointer data, GDestroyNotify notify)g_idle_add_full;
+	gboolean function(gpointer data)g_idle_remove_by_data;
+	
+	// glib.MainContext
+	
+	GMainContext* function()g_main_context_new;
+	GMainContext* function(GMainContext* context)g_main_context_ref;
+	void function(GMainContext* context)g_main_context_unref;
+	GMainContext* function()g_main_context_default;
+	gboolean function(GMainContext* context, gboolean mayBlock)g_main_context_iteration;
+	gboolean function(GMainContext* context)g_main_context_pending;
+	GSource* function(GMainContext* context, guint sourceId)g_main_context_find_source_by_id;
+	GSource* function(GMainContext* context, gpointer userData)g_main_context_find_source_by_user_data;
+	GSource* function(GMainContext* context, GSourceFuncs* funcs, gpointer userData)g_main_context_find_source_by_funcs_user_data;
+	void function(GMainContext* context)g_main_context_wakeup;
+	gboolean function(GMainContext* context)g_main_context_acquire;
+	void function(GMainContext* context)g_main_context_release;
+	gboolean function(GMainContext* context)g_main_context_is_owner;
+	gboolean function(GMainContext* context, GCond* cond, GMutex* mutex)g_main_context_wait;
+	gboolean function(GMainContext* context, gint* priority)g_main_context_prepare;
+	gint function(GMainContext* context, gint maxPriority, gint* timeout, GPollFD* fds, gint nFds)g_main_context_query;
+	gint function(GMainContext* context, gint maxPriority, GPollFD* fds, gint nFds)g_main_context_check;
+	void function(GMainContext* context)g_main_context_dispatch;
+	void function(GMainContext* context, GPollFunc func)g_main_context_set_poll_func;
+	GPollFunc function(GMainContext* context)g_main_context_get_poll_func;
+	void function(GMainContext* context, GPollFD* fd, gint priority)g_main_context_add_poll;
+	void function(GMainContext* context, GPollFD* fd)g_main_context_remove_poll;
+	
+	// glib.Timeout
+	
+	GSource* function(guint interval)g_timeout_source_new;
+	GSource* function(guint interval)g_timeout_source_new_seconds;
+	guint function(guint interval, GSourceFunc funct, gpointer data)g_timeout_add;
+	guint function(gint priority, guint interval, GSourceFunc funct, gpointer data, GDestroyNotify notify)g_timeout_add_full;
+	guint function(guint interval, GSourceFunc funct, gpointer data)g_timeout_add_seconds;
+	guint function(gint priority, guint interval, GSourceFunc funct, gpointer data, GDestroyNotify notify)g_timeout_add_seconds_full;
+	
+	// glib.Child
+	
+	GSource* function(GPid pid)g_child_watch_source_new;
+	guint function(GPid pid, GChildWatchFunc funct, gpointer data)g_child_watch_add;
+	guint function(gint priority, GPid pid, GChildWatchFunc funct, gpointer data, GDestroyNotify notify)g_child_watch_add_full;
+	
+	// glib.Source
+	
+	GSource* function(GSourceFuncs* sourceFuncs, guint structSize)g_source_new;
+	GSource* function(GSource* source)g_source_ref;
+	void function(GSource* source)g_source_unref;
+	void function(GSource* source, GSourceFuncs* funcs)g_source_set_funcs;
+	guint function(GSource* source, GMainContext* context)g_source_attach;
+	void function(GSource* source)g_source_destroy;
+	gboolean function(GSource* source)g_source_is_destroyed;
+	void function(GSource* source, gint priority)g_source_set_priority;
+	gint function(GSource* source)g_source_get_priority;
+	void function(GSource* source, gboolean canRecurse)g_source_set_can_recurse;
+	gboolean function(GSource* source)g_source_get_can_recurse;
+	guint function(GSource* source)g_source_get_id;
+	GMainContext* function(GSource* source)g_source_get_context;
+	void function(GSource* source, GSourceFunc func, gpointer data, GDestroyNotify notify)g_source_set_callback;
+	void function(GSource* source, gpointer callbackData, GSourceCallbackFuncs* callbackFuncs)g_source_set_callback_indirect;
+	void function(GSource* source, GPollFD* fd)g_source_add_poll;
+	void function(GSource* source, GPollFD* fd)g_source_remove_poll;
+	void function(GSource* source, GTimeVal* timeval)g_source_get_current_time;
+	gboolean function(guint tag)g_source_remove;
+	gboolean function(GSourceFuncs* funcs, gpointer userData)g_source_remove_by_funcs_user_data;
+	gboolean function(gpointer userData)g_source_remove_by_user_data;
+	
+	// glib.ThreadPool
+	
+	GThreadPool* function(GFunc func, gpointer userData, gint maxThreads, gboolean exclusive, GError** error)g_thread_pool_new;
+	void function(GThreadPool* pool, gpointer data, GError** error)g_thread_pool_push;
+	void function(GThreadPool* pool, gint maxThreads, GError** error)g_thread_pool_set_max_threads;
+	gint function(GThreadPool* pool)g_thread_pool_get_max_threads;
+	guint function(GThreadPool* pool)g_thread_pool_get_num_threads;
+	guint function(GThreadPool* pool)g_thread_pool_unprocessed;
+	void function(GThreadPool* pool, gboolean immediate, gboolean wait)g_thread_pool_free;
+	void function(gint maxThreads)g_thread_pool_set_max_unused_threads;
+	gint function()g_thread_pool_get_max_unused_threads;
+	guint function()g_thread_pool_get_num_unused_threads;
+	void function()g_thread_pool_stop_unused_threads;
+	void function(GThreadPool* pool, GCompareDataFunc func, gpointer userData)g_thread_pool_set_sort_function;
+	void function(guint interval)g_thread_pool_set_max_idle_time;
+	guint function()g_thread_pool_get_max_idle_time;
+	
+	// glib.AsyncQueue
+	
+	GAsyncQueue* function()g_async_queue_new;
+	GAsyncQueue* function(GAsyncQueue* queue)g_async_queue_ref;
+	void function(GAsyncQueue* queue)g_async_queue_unref;
+	void function(GAsyncQueue* queue, gpointer data)g_async_queue_push;
+	void function(GAsyncQueue* queue, gpointer data, GCompareDataFunc func, gpointer userData)g_async_queue_push_sorted;
+	gpointer function(GAsyncQueue* queue)g_async_queue_pop;
+	gpointer function(GAsyncQueue* queue)g_async_queue_try_pop;
+	gpointer function(GAsyncQueue* queue, GTimeVal* endTime)g_async_queue_timed_pop;
+	gint function(GAsyncQueue* queue)g_async_queue_length;
+	void function(GAsyncQueue* queue, GCompareDataFunc func, gpointer userData)g_async_queue_sort;
+	void function(GAsyncQueue* queue)g_async_queue_lock;
+	void function(GAsyncQueue* queue)g_async_queue_unlock;
+	void function(GAsyncQueue* queue)g_async_queue_ref_unlocked;
+	void function(GAsyncQueue* queue)g_async_queue_unref_and_unlock;
+	void function(GAsyncQueue* queue, gpointer data)g_async_queue_push_unlocked;
+	void function(GAsyncQueue* queue, gpointer data, GCompareDataFunc func, gpointer userData)g_async_queue_push_sorted_unlocked;
+	gpointer function(GAsyncQueue* queue)g_async_queue_pop_unlocked;
+	gpointer function(GAsyncQueue* queue)g_async_queue_try_pop_unlocked;
+	gpointer function(GAsyncQueue* queue, GTimeVal* endTime)g_async_queue_timed_pop_unlocked;
+	gint function(GAsyncQueue* queue)g_async_queue_length_unlocked;
+	void function(GAsyncQueue* queue, GCompareDataFunc func, gpointer userData)g_async_queue_sort_unlocked;
+	
+	// glib.Module
+	
+	gboolean function()g_module_supported;
+	gchar* function(gchar* directory, gchar* moduleName)g_module_build_path;
+	GModule* function(gchar* fileName, GModuleFlags flags)g_module_open;
+	gboolean function(GModule* modul, gchar* symbolName, gpointer* symbol)g_module_symbol;
+	gchar* function(GModule* modul)g_module_name;
+	void function(GModule* modul)g_module_make_resident;
+	gboolean function(GModule* modul)g_module_close;
+	gchar* function()g_module_error;
+	
+	// glib.Memory
+	
+	gpointer function(gulong nBytes)g_malloc;
+	gpointer function(gulong nBytes)g_malloc0;
+	gpointer function(gpointer mem, gulong nBytes)g_realloc;
+	gpointer function(gulong nBytes)g_try_malloc;
+	gpointer function(gulong nBytes)g_try_malloc0;
+	gpointer function(gpointer mem, gulong nBytes)g_try_realloc;
+	void function(gpointer mem)g_free;
+	gpointer function(gconstpointer mem, guint byteSize)g_memdup;
+	void function(GMemVTable* vtable)g_mem_set_vtable;
+	gboolean function()g_mem_is_system_malloc;
+	void function()g_mem_profile;
+	
+	// glib.IOChannel
+	
+	GIOChannel* function(int fd)g_io_channel_unix_new;
+	gint function(GIOChannel* channel)g_io_channel_unix_get_fd;
+	GIOChannel* function(gint fd)g_io_channel_win32_new_fd;
+	GIOChannel* function(gint socket)g_io_channel_win32_new_socket;
+	GIOChannel* function(guint hwnd)g_io_channel_win32_new_messages;
+	void function(GIOChannel* channel)g_io_channel_init;
+	GIOChannel* function(gchar* filename, gchar* mode, GError** error)g_io_channel_new_file;
+	GIOStatus function(GIOChannel* channel, gchar* buf, gsize count, gsize* bytesRead, GError** error)g_io_channel_read_chars;
+	GIOStatus function(GIOChannel* channel, gunichar* thechar, GError** error)g_io_channel_read_unichar;
+	GIOStatus function(GIOChannel* channel, gchar** strReturn, gsize* length, gsize* terminatorPos, GError** error)g_io_channel_read_line;
+	GIOStatus function(GIOChannel* channel, GString* buffer, gsize* terminatorPos, GError** error)g_io_channel_read_line_string;
+	GIOStatus function(GIOChannel* channel, gchar** strReturn, gsize* length, GError** error)g_io_channel_read_to_end;
+	GIOStatus function(GIOChannel* channel, gchar* buf, gssize count, gsize* bytesWritten, GError** error)g_io_channel_write_chars;
+	GIOStatus function(GIOChannel* channel, gunichar thechar, GError** error)g_io_channel_write_unichar;
+	GIOStatus function(GIOChannel* channel, GError** error)g_io_channel_flush;
+	GIOStatus function(GIOChannel* channel, gint64 offset, GSeekType type, GError** error)g_io_channel_seek_position;
+	GIOStatus function(GIOChannel* channel, gboolean flush, GError** err)g_io_channel_shutdown;
+	GIOChannelError function(gint en)g_io_channel_error_from_errno;
+	GIOChannel* function(GIOChannel* channel)g_io_channel_ref;
+	void function(GIOChannel* channel)g_io_channel_unref;
+	GSource* function(GIOChannel* channel, GIOCondition condition)g_io_create_watch;
+	guint function(GIOChannel* channel, GIOCondition condition, GIOFunc func, gpointer userData)g_io_add_watch;
+	guint function(GIOChannel* channel, gint priority, GIOCondition condition, GIOFunc func, gpointer userData, GDestroyNotify notify)g_io_add_watch_full;
+	gsize function(GIOChannel* channel)g_io_channel_get_buffer_size;
+	void function(GIOChannel* channel, gsize size)g_io_channel_set_buffer_size;
+	GIOCondition function(GIOChannel* channel)g_io_channel_get_buffer_condition;
+	GIOFlags function(GIOChannel* channel)g_io_channel_get_flags;
+	GIOStatus function(GIOChannel* channel, GIOFlags flags, GError** error)g_io_channel_set_flags;
+	gchar* function(GIOChannel* channel, gint* length)g_io_channel_get_line_term;
+	void function(GIOChannel* channel, gchar* lineTerm, gint length)g_io_channel_set_line_term;
+	gboolean function(GIOChannel* channel)g_io_channel_get_buffered;
+	void function(GIOChannel* channel, gboolean buffered)g_io_channel_set_buffered;
+	gchar* function(GIOChannel* channel)g_io_channel_get_encoding;
+	GIOStatus function(GIOChannel* channel, gchar* encoding, GError** error)g_io_channel_set_encoding;
+	gboolean function(GIOChannel* channel)g_io_channel_get_close_on_unref;
+	void function(GIOChannel* channel, gboolean doClose)g_io_channel_set_close_on_unref;
+	GIOError function(GIOChannel* channel, gchar* buf, gsize count, gsize* bytesRead)g_io_channel_read;
+	GIOError function(GIOChannel* channel, gchar* buf, gsize count, gsize* bytesWritten)g_io_channel_write;
+	GIOError function(GIOChannel* channel, gint64 offset, GSeekType type)g_io_channel_seek;
+	void function(GIOChannel* channel)g_io_channel_close;
+	
+	// glib.ErrorG
+	
+	GError* function(GQuark domain, gint code, gchar* format, ... )g_error_new;
+	GError* function(GQuark domain, gint code, gchar* message)g_error_new_literal;
+	void function(GError* error)g_error_free;
+	GError* function(GError* error)g_error_copy;
+	gboolean function(GError* error, GQuark domain, gint code)g_error_matches;
+	void function(GError** err, GQuark domain, gint code, gchar* format, ... )g_set_error;
+	void function(GError** dest, GError* src)g_propagate_error;
+	void function(GError** err)g_clear_error;
+	
+	// glib.Messages
+	
+	void function(gchar* format, ... )g_print;
+	GPrintFunc function(GPrintFunc func)g_set_print_handler;
+	void function(gchar* format, ... )g_printerr;
+	GPrintFunc function(GPrintFunc func)g_set_printerr_handler;
+	void function(gchar* prgName)g_on_error_query;
+	void function(gchar* prgName)g_on_error_stack_trace;
+	
+	// glib.MessageLog
+	
+	void function(gchar* logDomain, GLogLevelFlags logLevel, gchar* format, ... )g_log;
+	void function(gchar* logDomain, GLogLevelFlags logLevel, gchar* format, va_list args)g_logv;
+	guint function(gchar* logDomain, GLogLevelFlags logLevels, GLogFunc logFunc, gpointer userData)g_log_set_handler;
+	void function(gchar* logDomain, guint handlerId)g_log_remove_handler;
+	GLogLevelFlags function(GLogLevelFlags fatalMask)g_log_set_always_fatal;
+	GLogLevelFlags function(gchar* logDomain, GLogLevelFlags fatalMask)g_log_set_fatal_mask;
+	void function(gchar* logDomain, GLogLevelFlags logLevel, gchar* message, gpointer unusedData)g_log_default_handler;
+	GLogFunc function(GLogFunc logFunc, gpointer userData)g_log_set_default_handler;
+	
+	// glib.Str
+	
+	gchar* function(gchar* str)g_strdup;
+	gchar* function(gchar* str, gsize n)g_strndup;
+	gchar** function(gchar** strArray)g_strdupv;
+	gchar* function(gsize length, gchar fillChar)g_strnfill;
+	gchar* function(gchar* dest, char* src)g_stpcpy;
+	gchar* function(gchar* haystack, gssize haystackLen, gchar* needle)g_strstr_len;
+	gchar* function(gchar* haystack, gchar* needle)g_strrstr;
+	gchar* function(gchar* haystack, gssize haystackLen, gchar* needle)g_strrstr_len;
+	gboolean function(gchar* str, gchar* prefix)g_str_has_prefix;
+	gboolean function(gchar* str, gchar* suffix)g_str_has_suffix;
+	gsize function(gchar* dest, gchar* src, gsize destSize)g_strlcpy;
+	gsize function(gchar* dest, gchar* src, gsize destSize)g_strlcat;
+	gchar* function(gchar* format, ... )g_strdup_printf;
+	gchar* function(gchar* format, va_list args)g_strdup_vprintf;
+	gint function(gchar* format, ... )g_printf;
+	gint function(gchar* format, va_list args)g_vprintf;
+	gint function(FILE* file, gchar* format, ... )g_fprintf;
+	gint function(FILE* file, gchar* format, va_list args)g_vfprintf;
+	gint function(gchar* string, gchar* format, ... )g_sprintf;
+	gint function(gchar* string, gchar* format, va_list args)g_vsprintf;
+	gint function(gchar* string, gulong n, gchar* format, ... )g_snprintf;
+	gint function(gchar* string, gulong n, gchar* format, va_list args)g_vsnprintf;
+	gint function(gchar** string, gchar* format, va_list args)g_vasprintf;
+	gsize function(gchar* format, va_list args)g_printf_string_upper_bound;
+	gboolean function(gchar c)g_ascii_isalnum;
+	gboolean function(gchar c)g_ascii_isalpha;
+	gboolean function(gchar c)g_ascii_iscntrl;
+	gboolean function(gchar c)g_ascii_isdigit;
+	gboolean function(gchar c)g_ascii_isgraph;
+	gboolean function(gchar c)g_ascii_islower;
+	gboolean function(gchar c)g_ascii_isprint;
+	gboolean function(gchar c)g_ascii_ispunct;
+	gboolean function(gchar c)g_ascii_isspace;
+	gboolean function(gchar c)g_ascii_isupper;
+	gboolean function(gchar c)g_ascii_isxdigit;
+	gint function(gchar c)g_ascii_digit_value;
+	gint function(gchar c)g_ascii_xdigit_value;
+	gint function(gchar* s1, gchar* s2)g_ascii_strcasecmp;
+	gint function(gchar* s1, gchar* s2, gsize n)g_ascii_strncasecmp;
+	gchar* function(gchar* str, gssize len)g_ascii_strup;
+	gchar* function(gchar* str, gssize len)g_ascii_strdown;
+	gchar function(gchar c)g_ascii_tolower;
+	gchar function(gchar c)g_ascii_toupper;
+	GString* function(GString* string)g_string_ascii_up;
+	GString* function(GString* string)g_string_ascii_down;
+	gchar* function(gchar* string)g_strup;
+	gchar* function(gchar* string)g_strdown;
+	gint function(gchar* s1, gchar* s2)g_strcasecmp;
+	gint function(gchar* s1, gchar* s2, guint n)g_strncasecmp;
+	gchar* function(gchar* string)g_strreverse;
+	gint64 function(gchar* nptr, gchar** endptr, guint base)g_ascii_strtoll;
+	guint64 function(gchar* nptr, gchar** endptr, guint base)g_ascii_strtoull;
+	gdouble function(gchar* nptr, gchar** endptr)g_ascii_strtod;
+	gchar* function(gchar* buffer, gint bufLen, gdouble d)g_ascii_dtostr;
+	gchar* function(gchar* buffer, gint bufLen, gchar* format, gdouble d)g_ascii_formatd;
+	gdouble function(gchar* nptr, gchar** endptr)g_strtod;
+	gchar* function(gchar* string)g_strchug;
+	gchar* function(gchar* string)g_strchomp;
+	gchar* function(gchar* string, gchar* delimiters, gchar newDelimiter)g_strdelimit;
+	gchar* function(gchar* source, gchar* exceptions)g_strescape;
+	gchar* function(gchar* source)g_strcompress;
+	gchar* function(gchar* string, gchar* validChars, gchar substitutor)g_strcanon;
+	gchar** function(gchar* string, gchar* delimiter, gint maxTokens)g_strsplit;
+	gchar** function(gchar* string, gchar* delimiters, gint maxTokens)g_strsplit_set;
+	void function(gchar** strArray)g_strfreev;
+	gchar* function(gchar* string1, ... )g_strconcat;
+	gchar* function(gchar* separator, ... )g_strjoin;
+	gchar* function(gchar* separator, gchar** strArray)g_strjoinv;
+	guint function(gchar** strArray)g_strv_length;
+	gchar* function(gint errnum)g_strerror;
+	gchar* function(gint signum)g_strsignal;
+	
+	// glib.CharacterSet
+	
+	gchar* function(gchar* str, gssize len, gchar* toCodeset, gchar* fromCodeset, gsize* bytesRead, gsize* bytesWritten, GError** error)g_convert;
+	gchar* function(gchar* str, gssize len, gchar* toCodeset, gchar* fromCodeset, gchar* fallback, gsize* bytesRead, gsize* bytesWritten, GError** error)g_convert_with_fallback;
+	gchar* function(gchar* opsysstring, gssize len, gsize* bytesRead, gsize* bytesWritten, GError** error)g_locale_to_utf8;
+	gchar* function(gchar* opsysstring, gssize len, gsize* bytesRead, gsize* bytesWritten, GError** error)g_filename_to_utf8;
+	gchar* function(gchar* utf8string, gssize len, gsize* bytesRead, gsize* bytesWritten, GError** error)g_filename_from_utf8;
+	gchar* function(gchar* uri, gchar** hostname, GError** error)g_filename_from_uri;
+	gchar* function(gchar* filename, gchar* hostname, GError** error)g_filename_to_uri;
+	gboolean function(gchar*** charsets)g_get_filename_charsets;
+	gchar* function(gchar* filename)g_filename_display_name;
+	gchar* function(gchar* filename)g_filename_display_basename;
+	gchar** function(gchar* uriList)g_uri_list_extract_uris;
+	gchar* function(gchar* utf8string, gssize len, gsize* bytesRead, gsize* bytesWritten, GError** error)g_locale_from_utf8;
+	gboolean function(char** charset)g_get_charset;
+	
+	// glib.Unicode
+	
+	gboolean function(gunichar ch)g_unichar_validate;
+	gboolean function(gunichar c)g_unichar_isalnum;
+	gboolean function(gunichar c)g_unichar_isalpha;
+	gboolean function(gunichar c)g_unichar_iscntrl;
+	gboolean function(gunichar c)g_unichar_isdefined;
+	gboolean function(gunichar c)g_unichar_isdigit;
+	gboolean function(gunichar c)g_unichar_isgraph;
+	gboolean function(gunichar c)g_unichar_islower;
+	gboolean function(gunichar c)g_unichar_ismark;
+	gboolean function(gunichar c)g_unichar_isprint;
+	gboolean function(gunichar c)g_unichar_ispunct;
+	gboolean function(gunichar c)g_unichar_isspace;
+	gboolean function(gunichar c)g_unichar_istitle;
+	gboolean function(gunichar c)g_unichar_isupper;
+	gboolean function(gunichar c)g_unichar_isxdigit;
+	gboolean function(gunichar c)g_unichar_iswide;
+	gboolean function(gunichar c)g_unichar_iswide_cjk;
+	gboolean function(gunichar c)g_unichar_iszerowidth;
+	gunichar function(gunichar c)g_unichar_toupper;
+	gunichar function(gunichar c)g_unichar_tolower;
+	gunichar function(gunichar c)g_unichar_totitle;
+	gint function(gunichar c)g_unichar_digit_value;
+	gint function(gunichar c)g_unichar_xdigit_value;
+	GUnicodeType function(gunichar c)g_unichar_type;
+	GUnicodeBreakType function(gunichar c)g_unichar_break_type;
+	gint function(gunichar uc)g_unichar_combining_class;
+	void function(gunichar* string, gsize len)g_unicode_canonical_ordering;
+	gunichar* function(gunichar ch, gsize* resultLen)g_unicode_canonical_decomposition;
+	gboolean function(gunichar ch, gunichar* mirroredCh)g_unichar_get_mirror_char;
+	GUnicodeScript function(gunichar ch)g_unichar_get_script;
+	gunichar function(gchar* p)g_utf8_get_char;
+	gunichar function(gchar* p, gssize maxLen)g_utf8_get_char_validated;
+	gchar* function(gchar* str, glong offset)g_utf8_offset_to_pointer;
+	glong function(gchar* str, gchar* pos)g_utf8_pointer_to_offset;
+	gchar* function(gchar* p)g_utf8_prev_char;
+	gchar* function(gchar* p, gchar* end)g_utf8_find_next_char;
+	gchar* function(gchar* str, gchar* p)g_utf8_find_prev_char;
+	glong function(gchar* p, gssize max)g_utf8_strlen;
+	gchar* function(gchar* dest, gchar* src, gsize n)g_utf8_strncpy;
+	gchar* function(gchar* p, gssize len, gunichar c)g_utf8_strchr;
+	gchar* function(gchar* p, gssize len, gunichar c)g_utf8_strrchr;
+	gchar* function(gchar* str, gssize len)g_utf8_strreverse;
+	gboolean function(gchar* str, gssize maxLen, gchar** end)g_utf8_validate;
+	gchar* function(gchar* str, gssize len)g_utf8_strup;
+	gchar* function(gchar* str, gssize len)g_utf8_strdown;
+	gchar* function(gchar* str, gssize len)g_utf8_casefold;
+	gchar* function(gchar* str, gssize len, GNormalizeMode mode)g_utf8_normalize;
+	gint function(gchar* str1, gchar* str2)g_utf8_collate;
+	gchar* function(gchar* str, gssize len)g_utf8_collate_key;
+	gchar* function(gchar* str, gssize len)g_utf8_collate_key_for_filename;
+	gunichar2* function(gchar* str, glong len, glong* itemsRead, glong* itemsWritten, GError** error)g_utf8_to_utf16;
+	gunichar* function(gchar* str, glong len, glong* itemsRead, glong* itemsWritten, GError** error)g_utf8_to_ucs4;
+	gunichar* function(gchar* str, glong len, glong* itemsWritten)g_utf8_to_ucs4_fast;
+	gunichar* function(gunichar2* str, glong len, glong* itemsRead, glong* itemsWritten, GError** error)g_utf16_to_ucs4;
+	gchar* function(gunichar2* str, glong len, glong* itemsRead, glong* itemsWritten, GError** error)g_utf16_to_utf8;
+	gunichar2* function(gunichar* str, glong len, glong* itemsRead, glong* itemsWritten, GError** error)g_ucs4_to_utf16;
+	gchar* function(gunichar* str, glong len, glong* itemsRead, glong* itemsWritten, GError** error)g_ucs4_to_utf8;
+	gint function(gunichar c, gchar* outbuf)g_unichar_to_utf8;
+	
+	// glib.Internationalization
+	
+	gchar* function(gchar* msgid, gchar* msgval)g_strip_context;
+	gchar** function()g_get_language_names;
+	
+	// glib.Date
+	
+	void function(GTimeVal* result)g_get_current_time;
+	void function(gulong microseconds)g_usleep;
+	void function(GTimeVal* time, glong microseconds)g_time_val_add;
+	gboolean function(gchar* isoDate, GTimeVal* time)g_time_val_from_iso8601;
+	gchar* function(GTimeVal* time)g_time_val_to_iso8601;
+	GDate* function()g_date_new;
+	GDate* function(GDateDay day, GDateMonth month, GDateYear year)g_date_new_dmy;
+	GDate* function(guint32 julianDay)g_date_new_julian;
+	void function(GDate* date, guint nDates)g_date_clear;
+	void function(GDate* date)g_date_free;
+	void function(GDate* date, GDateDay day)g_date_set_day;
+	void function(GDate* date, GDateMonth month)g_date_set_month;
+	void function(GDate* date, GDateYear year)g_date_set_year;
+	void function(GDate* date, GDateDay day, GDateMonth month, GDateYear y)g_date_set_dmy;
+	void function(GDate* date, guint32 julianDate)g_date_set_julian;
+	void function(GDate* date, GTime time)g_date_set_time;
+	void function(GDate* date, time_t timet)g_date_set_time_t;
+	void function(GDate* date, GTimeVal* timeval)g_date_set_time_val;
+	void function(GDate* date, gchar* str)g_date_set_parse;
+	void function(GDate* date, guint nDays)g_date_add_days;
+	void function(GDate* date, guint nDays)g_date_subtract_days;
+	void function(GDate* date, guint nMonths)g_date_add_months;
+	void function(GDate* date, guint nMonths)g_date_subtract_months;
+	void function(GDate* date, guint nYears)g_date_add_years;
+	void function(GDate* date, guint nYears)g_date_subtract_years;
+	gint function(GDate* date1, GDate* date2)g_date_days_between;
+	gint function(GDate* lhs, GDate* rhs)g_date_compare;
+	void function(GDate* date, GDate* minDate, GDate* maxDate)g_date_clamp;
+	void function(GDate* date1, GDate* date2)g_date_order;
+	GDateDay function(GDate* date)g_date_get_day;
+	GDateMonth function(GDate* date)g_date_get_month;
+	GDateYear function(GDate* date)g_date_get_year;
+	guint32 function(GDate* date)g_date_get_julian;
+	GDateWeekday function(GDate* date)g_date_get_weekday;
+	guint function(GDate* date)g_date_get_day_of_year;
+	guint8 function(GDateMonth month, GDateYear year)g_date_get_days_in_month;
+	gboolean function(GDate* date)g_date_is_first_of_month;
+	gboolean function(GDate* date)g_date_is_last_of_month;
+	gboolean function(GDateYear year)g_date_is_leap_year;
+	guint function(GDate* date)g_date_get_monday_week_of_year;
+	guint8 function(GDateYear year)g_date_get_monday_weeks_in_year;
+	guint function(GDate* date)g_date_get_sunday_week_of_year;
+	guint8 function(GDateYear year)g_date_get_sunday_weeks_in_year;
+	guint function(GDate* date)g_date_get_iso8601_week_of_year;
+	gsize function(gchar* s, gsize slen, gchar* format, GDate* date)g_date_strftime;
+	void function(GDate* date, void* tm)g_date_to_struct_tm;
+	gboolean function(GDate* date)g_date_valid;
+	gboolean function(GDateDay day)g_date_valid_day;
+	gboolean function(GDateMonth month)g_date_valid_month;
+	gboolean function(GDateYear year)g_date_valid_year;
+	gboolean function(GDateDay day, GDateMonth month, GDateYear year)g_date_valid_dmy;
+	gboolean function(guint32 julianDate)g_date_valid_julian;
+	gboolean function(GDateWeekday weekday)g_date_valid_weekday;
+	
+	// glib.RandG
+	
+	GRand* function(guint32 seed)g_rand_new_with_seed;
+	GRand* function(guint32* seed, guint seedLength)g_rand_new_with_seed_array;
+	GRand* function()g_rand_new;
+	GRand* function(GRand* rand)g_rand_copy;
+	void function(GRand* rand)g_rand_free;
+	void function(GRand* rand, guint32 seed)g_rand_set_seed;
+	void function(GRand* rand, guint32* seed, guint seedLength)g_rand_set_seed_array;
+	guint32 function(GRand* rand)g_rand_int;
+	gint32 function(GRand* rand, gint32 begin, gint32 end)g_rand_int_range;
+	gdouble function(GRand* rand)g_rand_double;
+	gdouble function(GRand* rand, gdouble begin, gdouble end)g_rand_double_range;
+	void function(guint32 seed)g_random_set_seed;
+	guint32 function()g_random_int;
+	gint32 function(gint32 begin, gint32 end)g_random_int_range;
+	gdouble function()g_random_double;
+	gdouble function(gdouble begin, gdouble end)g_random_double_range;
+	
+	// glib.Util
+	
+	gchar* function()g_get_application_name;
+	void function(gchar* applicationName)g_set_application_name;
+	gchar* function()g_get_prgname;
+	void function(gchar* prgname)g_set_prgname;
+	gchar* function(gchar* variable)g_getenv;
+	gboolean function(gchar* variable, gchar* value, gboolean overwrite)g_setenv;
+	void function(gchar* variable)g_unsetenv;
+	gchar** function()g_listenv;
+	gchar* function()g_get_user_name;
+	gchar* function()g_get_real_name;
+	gchar* function()g_get_user_cache_dir;
+	gchar* function()g_get_user_data_dir;
+	gchar* function()g_get_user_config_dir;
+	gchar* function(GUserDirectory directory)g_get_user_special_dir;
+	gchar** function()g_get_system_data_dirs;
+	gchar** function()g_get_system_config_dirs;
+	gchar* function()g_get_host_name;
+	gchar* function()g_get_home_dir;
+	gchar* function()g_get_tmp_dir;
+	gchar* function()g_get_current_dir;
+	gchar* function(gchar* fileName)g_basename;
+	gboolean function(gchar* fileName)g_path_is_absolute;
+	gchar* function(gchar* fileName)g_path_skip_root;
+	gchar* function(gchar* fileName)g_path_get_basename;
+	gchar* function(gchar* fileName)g_path_get_dirname;
+	gchar* function(gchar* firstElement, ... )g_build_filename;
+	gchar* function(gchar** args)g_build_filenamev;
+	gchar* function(gchar* separator, gchar* firstElement, ... )g_build_path;
+	gchar* function(gchar* separator, gchar** args)g_build_pathv;
+	gchar* function(gchar* program)g_find_program_in_path;
+	gint function(gulong mask, gint nthBit)g_bit_nth_lsf;
+	gint function(gulong mask, gint nthBit)g_bit_nth_msf;
+	guint function(gulong number)g_bit_storage;
+	guint function(guint num)g_spaced_primes_closest;
+	void function(GVoidFunc func)g_atexit;
+	guint function(gchar* string, GDebugKey* keys, guint nkeys)g_parse_debug_string;
+	void function(gconstpointer pbase, gint totalElems, gsize size, GCompareDataFunc compareFunc, gpointer userData)g_qsort_with_data;
+	void function(gpointer* nullifyLocation)g_nullify_pointer;
+	
+	// glib.ScannerG
+	
+	GScanner* function(GScannerConfig* configTempl)g_scanner_new;
+	void function(GScanner* scanner)g_scanner_destroy;
+	void function(GScanner* scanner, gint inputFd)g_scanner_input_file;
+	void function(GScanner* scanner)g_scanner_sync_file_offset;
+	void function(GScanner* scanner, gchar* text, guint textLen)g_scanner_input_text;
+	GTokenType function(GScanner* scanner)g_scanner_peek_next_token;
+	GTokenType function(GScanner* scanner)g_scanner_get_next_token;
+	gboolean function(GScanner* scanner)g_scanner_eof;
+	guint function(GScanner* scanner)g_scanner_cur_line;
+	guint function(GScanner* scanner)g_scanner_cur_position;
+	GTokenType function(GScanner* scanner)g_scanner_cur_token;
+	GTokenValue function(GScanner* scanner)g_scanner_cur_value;
+	guint function(GScanner* scanner, guint scopeId)g_scanner_set_scope;
+	void function(GScanner* scanner, guint scopeId, gchar* symbol, gpointer value)g_scanner_scope_add_symbol;
+	void function(GScanner* scanner, guint scopeId, GHFunc func, gpointer userData)g_scanner_scope_foreach_symbol;
+	gpointer function(GScanner* scanner, guint scopeId, gchar* symbol)g_scanner_scope_lookup_symbol;
+	void function(GScanner* scanner, guint scopeId, gchar* symbol)g_scanner_scope_remove_symbol;
+	gpointer function(GScanner* scanner, gchar* symbol)g_scanner_lookup_symbol;
+	void function(GScanner* scanner, gchar* format, ... )g_scanner_warn;
+	void function(GScanner* scanner, gchar* format, ... )g_scanner_error;
+	void function(GScanner* scanner, GTokenType expectedToken, gchar* identifierSpec, gchar* symbolSpec, gchar* symbolName, gchar* message, gint isError)g_scanner_unexp_token;
+	
+	// glib.StringCompletion
+	
+	GCompletion* function(GCompletionFunc func)g_completion_new;
+	void function(GCompletion* cmp, GList* items)g_completion_add_items;
+	void function(GCompletion* cmp, GList* items)g_completion_remove_items;
+	void function(GCompletion* cmp)g_completion_clear_items;
+	GList* function(GCompletion* cmp, gchar* prefix, gchar** newPrefix)g_completion_complete;
+	GList* function(GCompletion* cmp, gchar* prefix, gchar** newPrefix)g_completion_complete_utf8;
+	void function(GCompletion* cmp, GCompletionStrncmpFunc strncmpFunc)g_completion_set_compare;
+	void function(GCompletion* cmp)g_completion_free;
+	
+	// glib.Timer
+	
+	GTimer* function()g_timer_new;
+	void function(GTimer* timer)g_timer_start;
+	void function(GTimer* timer)g_timer_stop;
+	void function(GTimer* timer)g_timer_continue;
+	gdouble function(GTimer* timer, gulong* microseconds)g_timer_elapsed;
+	void function(GTimer* timer)g_timer_reset;
+	void function(GTimer* timer)g_timer_destroy;
+	
+	// glib.Spawn
+	
+	gboolean function(gchar* workingDirectory, gchar** argv, gchar** envp, GSpawnFlags flags, GSpawnChildSetupFunc childSetup, gpointer userData, GPid* childPid, gint* standardInput, gint* standardOutput, gint* standardError, GError** error)g_spawn_async_with_pipes;
+	gboolean function(gchar* workingDirectory, gchar** argv, gchar** envp, GSpawnFlags flags, GSpawnChildSetupFunc childSetup, gpointer userData, GPid* childPid, GError** error)g_spawn_async;
+	gboolean function(gchar* workingDirectory, gchar** argv, gchar** envp, GSpawnFlags flags, GSpawnChildSetupFunc childSetup, gpointer userData, gchar** standardOutput, gchar** standardError, gint* exitStatus, GError** error)g_spawn_sync;
+	gboolean function(gchar* commandLine, GError** error)g_spawn_command_line_async;
+	gboolean function(gchar* commandLine, gchar** standardOutput, gchar** standardError, gint* exitStatus, GError** error)g_spawn_command_line_sync;
+	void function(GPid pid)g_spawn_close_pid;
+	
+	// glib.FileUtils
+	
+	GFileError function(gint errNo)g_file_error_from_errno;
+	gboolean function(gchar* filename, gchar** contents, gsize* length, GError** error)g_file_get_contents;
+	gboolean function(gchar* filename, gchar* contents, gssize length, GError** error)g_file_set_contents;
+	gboolean function(gchar* filename, GFileTest test)g_file_test;
+	gint function(gchar* tmpl)g_mkstemp;
+	gint function(gchar* tmpl, gchar** nameUsed, GError** error)g_file_open_tmp;
+	gchar* function(gchar* filename, GError** error)g_file_read_link;
+	int function(gchar* pathname, int mode)g_mkdir_with_parents;
+	GDir* function(gchar* path, guint flags, GError** error)g_dir_open;
+	gchar* function(GDir* dir)g_dir_read_name;
+	void function(GDir* dir)g_dir_rewind;
+	void function(GDir* dir)g_dir_close;
+	GMappedFile* function(gchar* filename, gboolean writable, GError** error)g_mapped_file_new;
+	void function(GMappedFile* file)g_mapped_file_free;
+	gsize function(GMappedFile* file)g_mapped_file_get_length;
+	gchar* function(GMappedFile* file)g_mapped_file_get_contents;
+	int function(gchar* filename, int flags, int mode)g_open;
+	int function(gchar* oldfilename, gchar* newfilename)g_rename;
+	int function(gchar* filename, int mode)g_mkdir;
+	int function(gchar* filename, void* buf)g_stat;
+	int function(gchar* filename, void* buf)g_lstat;
+	int function(gchar* filename)g_unlink;
+	int function(gchar* filename)g_remove;
+	int function(gchar* filename)g_rmdir;
+	FILE* function(gchar* filename, gchar* mode)g_fopen;
+	FILE* function(gchar* filename, gchar* mode, FILE* stream)g_freopen;
+	int function(gchar* filename, int mode)g_chmod;
+	int function(gchar* filename, int mode)g_access;
+	int function(gchar* filename, int mode)g_creat;
+	int function(gchar* path)g_chdir;
+	
+	// glib.ShellUtils
+	
+	gboolean function(gchar* commandLine, gint* argcp, gchar*** argvp, GError** error)g_shell_parse_argv;
+	gchar* function(gchar* unquotedString)g_shell_quote;
+	gchar* function(gchar* quotedString, GError** error)g_shell_unquote;
+	
+	// glib.OptionContext
+	
+	GOptionContext* function(gchar* parameterString)g_option_context_new;
+	void function(GOptionContext* context, gchar* summary)g_option_context_set_summary;
+	gchar* function(GOptionContext* context)g_option_context_get_summary;
+	void function(GOptionContext* context, gchar* description)g_option_context_set_description;
+	gchar* function(GOptionContext* context)g_option_context_get_description;
+	void function(GOptionContext* context, GTranslateFunc func, gpointer data, GDestroyNotify destroyNotify)g_option_context_set_translate_func;
+	void function(GOptionContext* context, gchar* domain)g_option_context_set_translation_domain;
+	void function(GOptionContext* context)g_option_context_free;
+	gboolean function(GOptionContext* context, gint* argc, gchar*** argv, GError** error)g_option_context_parse;
+	void function(GOptionContext* context, gboolean helpEnabled)g_option_context_set_help_enabled;
+	gboolean function(GOptionContext* context)g_option_context_get_help_enabled;
+	void function(GOptionContext* context, gboolean ignoreUnknown)g_option_context_set_ignore_unknown_options;
+	gboolean function(GOptionContext* context)g_option_context_get_ignore_unknown_options;
+	gchar* function(GOptionContext* context, gboolean mainHelp, GOptionGroup* group)g_option_context_get_help;
+	void function(GOptionContext* context, GOptionEntry* entries, gchar* translationDomain)g_option_context_add_main_entries;
+	void function(GOptionContext* context, GOptionGroup* group)g_option_context_add_group;
+	void function(GOptionContext* context, GOptionGroup* group)g_option_context_set_main_group;
+	GOptionGroup* function(GOptionContext* context)g_option_context_get_main_group;
+	
+	// glib.OptionGroup
+	
+	GOptionGroup* function(gchar* name, gchar* description, gchar* helpDescription, gpointer userData, GDestroyNotify destroy)g_option_group_new;
+	void function(GOptionGroup* group)g_option_group_free;
+	void function(GOptionGroup* group, GOptionEntry* entries)g_option_group_add_entries;
+	void function(GOptionGroup* group, GOptionParseFunc preParseFunc, GOptionParseFunc postParseFunc)g_option_group_set_parse_hooks;
+	void function(GOptionGroup* group, GOptionErrorFunc errorFunc)g_option_group_set_error_hook;
+	void function(GOptionGroup* group, GTranslateFunc func, gpointer data, GDestroyNotify destroyNotify)g_option_group_set_translate_func;
+	void function(GOptionGroup* group, gchar* domain)g_option_group_set_translation_domain;
+	
+	// glib.Pattern
+	
+	GPatternSpec* function(gchar* pattern)g_pattern_spec_new;
+	void function(GPatternSpec* pspec)g_pattern_spec_free;
+	gboolean function(GPatternSpec* pspec1, GPatternSpec* pspec2)g_pattern_spec_equal;
+	gboolean function(GPatternSpec* pspec, guint stringLength, gchar* string, gchar* stringReversed)g_pattern_match;
+	gboolean function(GPatternSpec* pspec, gchar* string)g_pattern_match_string;
+	gboolean function(gchar* pattern, gchar* string)g_pattern_match_simple;
+	
+	// glib.SimpleXML
+	
+	gchar* function(gchar* text, gssize length)g_markup_escape_text;
+	gchar* function(char* format, ... )g_markup_printf_escaped;
+	gchar* function(char* format, va_list args)g_markup_vprintf_escaped;
+	gboolean function(GMarkupParseContext* context, GError** error)g_markup_parse_context_end_parse;
+	void function(GMarkupParseContext* context)g_markup_parse_context_free;
+	void function(GMarkupParseContext* context, gint* lineNumber, gint* charNumber)g_markup_parse_context_get_position;
+	gchar* function(GMarkupParseContext* context)g_markup_parse_context_get_element;
+	GMarkupParseContext* function(GMarkupParser* parser, GMarkupParseFlags flags, gpointer userData, GDestroyNotify userDataDnotify)g_markup_parse_context_new;
+	gboolean function(GMarkupParseContext* context, gchar* text, gssize textLen, GError** error)g_markup_parse_context_parse;
+	
+	// glib.KeyFile
+	
+	GKeyFile* function()g_key_file_new;
+	void function(GKeyFile* keyFile)g_key_file_free;
+	void function(GKeyFile* keyFile, gchar separator)g_key_file_set_list_separator;
+	gboolean function(GKeyFile* keyFile, gchar* file, GKeyFileFlags flags, GError** error)g_key_file_load_from_file;
+	gboolean function(GKeyFile* keyFile, gchar* data, gsize length, GKeyFileFlags flags, GError** error)g_key_file_load_from_data;
+	gboolean function(GKeyFile* keyFile, gchar* file, gchar** fullPath, GKeyFileFlags flags, GError** error)g_key_file_load_from_data_dirs;
+	gboolean function(GKeyFile* keyFile, gchar* file, gchar** searchDirs, gchar** fullPath, GKeyFileFlags flags, GError** error)g_key_file_load_from_dirs;
+	gchar* function(GKeyFile* keyFile, gsize* length, GError** error)g_key_file_to_data;
+	gchar* function(GKeyFile* keyFile)g_key_file_get_start_group;
+	gchar** function(GKeyFile* keyFile, gsize* length)g_key_file_get_groups;
+	gchar** function(GKeyFile* keyFile, gchar* groupName, gsize* length, GError** error)g_key_file_get_keys;
+	gboolean function(GKeyFile* keyFile, gchar* groupName)g_key_file_has_group;
+	gboolean function(GKeyFile* keyFile, gchar* groupName, gchar* key, GError** error)g_key_file_has_key;
+	gchar* function(GKeyFile* keyFile, gchar* groupName, gchar* key, GError** error)g_key_file_get_value;
+	gchar* function(GKeyFile* keyFile, gchar* groupName, gchar* key, GError** error)g_key_file_get_string;
+	gchar* function(GKeyFile* keyFile, gchar* groupName, gchar* key, gchar* locale, GError** error)g_key_file_get_locale_string;
+	gboolean function(GKeyFile* keyFile, gchar* groupName, gchar* key, GError** error)g_key_file_get_boolean;
+	gint function(GKeyFile* keyFile, gchar* groupName, gchar* key, GError** error)g_key_file_get_integer;
+	gdouble function(GKeyFile* keyFile, gchar* groupName, gchar* key, GError** error)g_key_file_get_double;
+	gchar** function(GKeyFile* keyFile, gchar* groupName, gchar* key, gsize* length, GError** error)g_key_file_get_string_list;
+	gchar** function(GKeyFile* keyFile, gchar* groupName, gchar* key, gchar* locale, gsize* length, GError** error)g_key_file_get_locale_string_list;
+	gboolean* function(GKeyFile* keyFile, gchar* groupName, gchar* key, gsize* length, GError** error)g_key_file_get_boolean_list;
+	gint* function(GKeyFile* keyFile, gchar* groupName, gchar* key, gsize* length, GError** error)g_key_file_get_integer_list;
+	gdouble* function(GKeyFile* keyFile, gchar* groupName, gchar* key, gsize* length, GError** error)g_key_file_get_double_list;
+	gchar* function(GKeyFile* keyFile, gchar* groupName, gchar* key, GError** error)g_key_file_get_comment;
+	void function(GKeyFile* keyFile, gchar* groupName, gchar* key, gchar* value)g_key_file_set_value;
+	void function(GKeyFile* keyFile, gchar* groupName, gchar* key, gchar* string)g_key_file_set_string;
+	void function(GKeyFile* keyFile, gchar* groupName, gchar* key, gchar* locale, gchar* string)g_key_file_set_locale_string;
+	void function(GKeyFile* keyFile, gchar* groupName, gchar* key, gboolean value)g_key_file_set_boolean;
+	void function(GKeyFile* keyFile, gchar* groupName, gchar* key, gint value)g_key_file_set_integer;
+	void function(GKeyFile* keyFile, gchar* groupName, gchar* key, gdouble value)g_key_file_set_double;
+	void function(GKeyFile* keyFile, gchar* groupName, gchar* key, gchar*[] list, gsize length)g_key_file_set_string_list;
+	void function(GKeyFile* keyFile, gchar* groupName, gchar* key, gchar* locale, gchar*[] list, gsize length)g_key_file_set_locale_string_list;
+	void function(GKeyFile* keyFile, gchar* groupName, gchar* key, gboolean[] list, gsize length)g_key_file_set_boolean_list;
+	void function(GKeyFile* keyFile, gchar* groupName, gchar* key, gint[] list, gsize length)g_key_file_set_integer_list;
+	void function(GKeyFile* keyFile, gchar* groupName, gchar* key, gdouble[] list, gsize length)g_key_file_set_double_list;
+	void function(GKeyFile* keyFile, gchar* groupName, gchar* key, gchar* comment, GError** error)g_key_file_set_comment;
+	void function(GKeyFile* keyFile, gchar* groupName, GError** error)g_key_file_remove_group;
+	void function(GKeyFile* keyFile, gchar* groupName, gchar* key, GError** error)g_key_file_remove_key;
+	void function(GKeyFile* keyFile, gchar* groupName, gchar* key, GError** error)g_key_file_remove_comment;
+	
+	// glib.WindowsUtils
+	
+	gchar* function(gint error)g_win32_error_message;
+	gchar* function()g_win32_getlocale;
+	gchar* function(gchar* p, gchar* dllName)g_win32_get_package_installation_directory;
+	gchar* function(gchar* p, gchar* dllName, gchar* subdir)g_win32_get_package_installation_subdirectory;
+	guint function()g_win32_get_windows_version;
+	gchar* function(gchar* utf8filename)g_win32_locale_filename_from_utf8;
+	
+	// glib.MemorySlice
+	
+	gpointer function(gsize blockSize)g_slice_alloc;
+	gpointer function(gsize blockSize)g_slice_alloc0;
+	gpointer function(gsize blockSize, gconstpointer memBlock)g_slice_copy;
+	void function(gsize blockSize, gpointer memBlock)g_slice_free1;
+	void function(gsize blockSize, gpointer memChain, gsize nextOffset)g_slice_free_chain_with_offset;
+	
+	// glib.MemoryChunk
+	
+	GMemChunk* function(gchar* name, gint atomSize, gulong areaSize, gint type)g_mem_chunk_new;
+	gpointer function(GMemChunk* memChunk)g_mem_chunk_alloc;
+	gpointer function(GMemChunk* memChunk)g_mem_chunk_alloc0;
+	void function(GMemChunk* memChunk, gpointer mem)g_mem_chunk_free;
+	void function(GMemChunk* memChunk)g_mem_chunk_destroy;
+	void function(GMemChunk* memChunk)g_mem_chunk_reset;
+	void function(GMemChunk* memChunk)g_mem_chunk_clean;
+	void function()g_blow_chunks;
+	void function()g_mem_chunk_info;
+	void function(GMemChunk* memChunk)g_mem_chunk_print;
+	
+	// glib.ListG
+	
+	GList* function(GList* list, gpointer data)g_list_append;
+	GList* function(GList* list, gpointer data)g_list_prepend;
+	GList* function(GList* list, gpointer data, gint position)g_list_insert;
+	GList* function(GList* list, GList* sibling, gpointer data)g_list_insert_before;
+	GList* function(GList* list, gpointer data, GCompareFunc func)g_list_insert_sorted;
+	GList* function(GList* list, gconstpointer data)g_list_remove;
+	GList* function(GList* list, GList* llink)g_list_remove_link;
+	GList* function(GList* list, GList* link)g_list_delete_link;
+	GList* function(GList* list, gconstpointer data)g_list_remove_all;
+	void function(GList* list)g_list_free;
+	GList* function()g_list_alloc;
+	void function(GList* list)g_list_free_1;
+	guint function(GList* list)g_list_length;
+	GList* function(GList* list)g_list_copy;
+	GList* function(GList* list)g_list_reverse;
+	GList* function(GList* list, GCompareFunc compareFunc)g_list_sort;
+	GList* function(GList* list, gpointer data, GCompareDataFunc func, gpointer userData)g_list_insert_sorted_with_data;
+	GList* function(GList* list, GCompareDataFunc compareFunc, gpointer userData)g_list_sort_with_data;
+	GList* function(GList* list1, GList* list2)g_list_concat;
+	void function(GList* list, GFunc func, gpointer userData)g_list_foreach;
+	GList* function(GList* list)g_list_first;
+	GList* function(GList* list)g_list_last;
+	GList* function(GList* list, guint n)g_list_nth;
+	gpointer function(GList* list, guint n)g_list_nth_data;
+	GList* function(GList* list, guint n)g_list_nth_prev;
+	GList* function(GList* list, gconstpointer data)g_list_find;
+	GList* function(GList* list, gconstpointer data, GCompareFunc func)g_list_find_custom;
+	gint function(GList* list, GList* llink)g_list_position;
+	gint function(GList* list, gconstpointer data)g_list_index;
+	void function(gpointer allocator)g_list_push_allocator;
+	void function()g_list_pop_allocator;
+	
+	// glib.ListSG
+	
+	GSList* function()g_slist_alloc;
+	GSList* function(GSList* list, gpointer data)g_slist_append;
+	GSList* function(GSList* list, gpointer data)g_slist_prepend;
+	GSList* function(GSList* list, gpointer data, gint position)g_slist_insert;
+	GSList* function(GSList* slist, GSList* sibling, gpointer data)g_slist_insert_before;
+	GSList* function(GSList* list, gpointer data, GCompareFunc func)g_slist_insert_sorted;
+	GSList* function(GSList* list, gconstpointer data)g_slist_remove;
+	GSList* function(GSList* list, GSList* link)g_slist_remove_link;
+	GSList* function(GSList* list, GSList* link)g_slist_delete_link;
+	GSList* function(GSList* list, gconstpointer data)g_slist_remove_all;
+	void function(GSList* list)g_slist_free;
+	void function(GSList* list)g_slist_free_1;
+	guint function(GSList* list)g_slist_length;
+	GSList* function(GSList* list)g_slist_copy;
+	GSList* function(GSList* list)g_slist_reverse;
+	GSList* function(GSList* list, gpointer data, GCompareDataFunc func, gpointer userData)g_slist_insert_sorted_with_data;
+	GSList* function(GSList* list, GCompareFunc compareFunc)g_slist_sort;
+	GSList* function(GSList* list, GCompareDataFunc compareFunc, gpointer userData)g_slist_sort_with_data;
+	GSList* function(GSList* list1, GSList* list2)g_slist_concat;
+	void function(GSList* list, GFunc func, gpointer userData)g_slist_foreach;
+	GSList* function(GSList* list)g_slist_last;
+	GSList* function(GSList* list, guint n)g_slist_nth;
+	gpointer function(GSList* list, guint n)g_slist_nth_data;
+	GSList* function(GSList* list, gconstpointer data)g_slist_find;
+	GSList* function(GSList* list, gconstpointer data, GCompareFunc func)g_slist_find_custom;
+	gint function(GSList* list, GSList* llink)g_slist_position;
+	gint function(GSList* list, gconstpointer data)g_slist_index;
+	void function(gpointer dummy)g_slist_push_allocator;
+	void function()g_slist_pop_allocator;
+	
+	// glib.QueueG
+	
+	GQueue* function()g_queue_new;
+	void function(GQueue* queue)g_queue_free;
+	void function(GQueue* queue)g_queue_init;
+	void function(GQueue* queue)g_queue_clear;
+	gboolean function(GQueue* queue)g_queue_is_empty;
+	guint function(GQueue* queue)g_queue_get_length;
+	void function(GQueue* queue)g_queue_reverse;
+	GQueue* function(GQueue* queue)g_queue_copy;
+	void function(GQueue* queue, GFunc func, gpointer userData)g_queue_foreach;
+	GList* function(GQueue* queue, gconstpointer data)g_queue_find;
+	GList* function(GQueue* queue, gconstpointer data, GCompareFunc func)g_queue_find_custom;
+	void function(GQueue* queue, GCompareDataFunc compareFunc, gpointer userData)g_queue_sort;
+	void function(GQueue* queue, gpointer data)g_queue_push_head;
+	void function(GQueue* queue, gpointer data)g_queue_push_tail;
+	void function(GQueue* queue, gpointer data, gint n)g_queue_push_nth;
+	gpointer function(GQueue* queue)g_queue_pop_head;
+	gpointer function(GQueue* queue)g_queue_pop_tail;
+	gpointer function(GQueue* queue, guint n)g_queue_pop_nth;
+	gpointer function(GQueue* queue)g_queue_peek_head;
+	gpointer function(GQueue* queue)g_queue_peek_tail;
+	gpointer function(GQueue* queue, guint n)g_queue_peek_nth;
+	gint function(GQueue* queue, gconstpointer data)g_queue_index;
+	void function(GQueue* queue, gconstpointer data)g_queue_remove;
+	void function(GQueue* queue, gconstpointer data)g_queue_remove_all;
+	void function(GQueue* queue, GList* sibling, gpointer data)g_queue_insert_before;
+	void function(GQueue* queue, GList* sibling, gpointer data)g_queue_insert_after;
+	void function(GQueue* queue, gpointer data, GCompareDataFunc func, gpointer userData)g_queue_insert_sorted;
+	void function(GQueue* queue, GList* link)g_queue_push_head_link;
+	void function(GQueue* queue, GList* link)g_queue_push_tail_link;
+	void function(GQueue* queue, gint n, GList* link)g_queue_push_nth_link;
+	GList* function(GQueue* queue)g_queue_pop_head_link;
+	GList* function(GQueue* queue)g_queue_pop_tail_link;
+	GList* function(GQueue* queue, guint n)g_queue_pop_nth_link;
+	GList* function(GQueue* queue)g_queue_peek_head_link;
+	GList* function(GQueue* queue)g_queue_peek_tail_link;
+	GList* function(GQueue* queue, guint n)g_queue_peek_nth_link;
+	gint function(GQueue* queue, GList* link)g_queue_link_index;
+	void function(GQueue* queue, GList* link)g_queue_unlink;
+	void function(GQueue* queue, GList* link)g_queue_delete_link;
+	
+	// glib.TrashStack
+	
+	void function(GTrashStack** stackP, gpointer dataP)g_trash_stack_push;
+	gpointer function(GTrashStack** stackP)g_trash_stack_pop;
+	gpointer function(GTrashStack** stackP)g_trash_stack_peek;
+	guint function(GTrashStack** stackP)g_trash_stack_height;
+	
+	// glib.HashTable
+	
+	GHashTable* function(GHashFunc hashFunc, GEqualFunc keyEqualFunc)g_hash_table_new;
+	GHashTable* function(GHashFunc hashFunc, GEqualFunc keyEqualFunc, GDestroyNotify keyDestroyFunc, GDestroyNotify valueDestroyFunc)g_hash_table_new_full;
+	void function(GHashTable* hashTable, gpointer key, gpointer value)g_hash_table_insert;
+	void function(GHashTable* hashTable, gpointer key, gpointer value)g_hash_table_replace;
+	guint function(GHashTable* hashTable)g_hash_table_size;
+	gpointer function(GHashTable* hashTable, gconstpointer key)g_hash_table_lookup;
+	gboolean function(GHashTable* hashTable, gconstpointer lookupKey, gpointer* origKey, gpointer* value)g_hash_table_lookup_extended;
+	void function(GHashTable* hashTable, GHFunc func, gpointer userData)g_hash_table_foreach;
+	gpointer function(GHashTable* hashTable, GHRFunc predicate, gpointer userData)g_hash_table_find;
+	gboolean function(GHashTable* hashTable, gconstpointer key)g_hash_table_remove;
+	gboolean function(GHashTable* hashTable, gconstpointer key)g_hash_table_steal;
+	guint function(GHashTable* hashTable, GHRFunc func, gpointer userData)g_hash_table_foreach_remove;
+	guint function(GHashTable* hashTable, GHRFunc func, gpointer userData)g_hash_table_foreach_steal;
+	void function(GHashTable* hashTable)g_hash_table_remove_all;
+	void function(GHashTable* hashTable)g_hash_table_steal_all;
+	GList* function(GHashTable* hashTable)g_hash_table_get_keys;
+	GList* function(GHashTable* hashTable)g_hash_table_get_values;
+	void function(GHashTable* hashTable)g_hash_table_destroy;
+	GHashTable* function(GHashTable* hashTable)g_hash_table_ref;
+	void function(GHashTable* hashTable)g_hash_table_unref;
+	gboolean function(gconstpointer v1, gconstpointer v2)g_direct_equal;
+	guint function(gconstpointer v)g_direct_hash;
+	gboolean function(gconstpointer v1, gconstpointer v2)g_int_equal;
+	guint function(gconstpointer v)g_int_hash;
+	gboolean function(gconstpointer v1, gconstpointer v2)g_str_equal;
+	guint function(gconstpointer v)g_str_hash;
+	
+	// glib.StringG
+	
+	GString* function(gchar* init)g_string_new;
+	GString* function(gchar* init, gssize len)g_string_new_len;
+	GString* function(gsize dflSize)g_string_sized_new;
+	GString* function(GString* string, gchar* rval)g_string_assign;
+	void function(GString* string, gchar* format, va_list args)g_string_vprintf;
+	void function(GString* string, gchar* format, va_list args)g_string_append_vprintf;
+	void function(GString* string, gchar* format, ... )g_string_printf;
+	void function(GString* string, gchar* format, ... )g_string_append_printf;
+	GString* function(GString* string, gchar* val)g_string_append;
+	GString* function(GString* string, gchar c)g_string_append_c;
+	GString* function(GString* string, gunichar wc)g_string_append_unichar;
+	GString* function(GString* string, gchar* val, gssize len)g_string_append_len;
+	GString* function(GString* string, gchar* val)g_string_prepend;
+	GString* function(GString* string, gchar c)g_string_prepend_c;
+	GString* function(GString* string, gunichar wc)g_string_prepend_unichar;
+	GString* function(GString* string, gchar* val, gssize len)g_string_prepend_len;
+	GString* function(GString* string, gssize pos, gchar* val)g_string_insert;
+	GString* function(GString* string, gssize pos, gchar c)g_string_insert_c;
+	GString* function(GString* string, gssize pos, gunichar wc)g_string_insert_unichar;
+	GString* function(GString* string, gssize pos, gchar* val, gssize len)g_string_insert_len;
+	GString* function(GString* string, gsize pos, gchar* val)g_string_overwrite;
+	GString* function(GString* string, gsize pos, gchar* val, gssize len)g_string_overwrite_len;
+	GString* function(GString* string, gssize pos, gssize len)g_string_erase;
+	GString* function(GString* string, gsize len)g_string_truncate;
+	GString* function(GString* string, gsize len)g_string_set_size;
+	gchar* function(GString* string, gboolean freeSegment)g_string_free;
+	GString* function(GString* string)g_string_up;
+	GString* function(GString* string)g_string_down;
+	guint function(GString* str)g_string_hash;
+	gboolean function(GString* v, GString* v2)g_string_equal;
+	
+	// glib.StringGChunk
+	
+	GStringChunk* function(gsize size)g_string_chunk_new;
+	gchar* function(GStringChunk* chunk, gchar* string)g_string_chunk_insert;
+	gchar* function(GStringChunk* chunk, gchar* string)g_string_chunk_insert_const;
+	gchar* function(GStringChunk* chunk, gchar* string, gssize len)g_string_chunk_insert_len;
+	void function(GStringChunk* chunk)g_string_chunk_clear;
+	void function(GStringChunk* chunk)g_string_chunk_free;
+	
+	// glib.ArrayG
+	
+	GArray* function(gboolean zeroTerminated, gboolean clear, guint elementSize)g_array_new;
+	GArray* function(gboolean zeroTerminated, gboolean clear, guint elementSize, guint reservedSize)g_array_sized_new;
+	GArray* function(GArray* array, gconstpointer data, guint len)g_array_append_vals;
+	GArray* function(GArray* array, gconstpointer data, guint len)g_array_prepend_vals;
+	GArray* function(GArray* array, guint index, gconstpointer data, guint len)g_array_insert_vals;
+	GArray* function(GArray* array, guint index)g_array_remove_index;
+	GArray* function(GArray* array, guint index)g_array_remove_index_fast;
+	GArray* function(GArray* array, guint index, guint length)g_array_remove_range;
+	void function(GArray* array, GCompareFunc compareFunc)g_array_sort;
+	void function(GArray* array, GCompareDataFunc compareFunc, gpointer userData)g_array_sort_with_data;
+	GArray* function(GArray* array, guint length)g_array_set_size;
+	gchar* function(GArray* array, gboolean freeSegment)g_array_free;
+	
+	// glib.PtrArray
+	
+	GPtrArray* function()g_ptr_array_new;
+	GPtrArray* function(guint reservedSize)g_ptr_array_sized_new;
+	void function(GPtrArray* array, gpointer data)g_ptr_array_add;
+	gboolean function(GPtrArray* array, gpointer data)g_ptr_array_remove;
+	gpointer function(GPtrArray* array, guint index)g_ptr_array_remove_index;
+	gboolean function(GPtrArray* array, gpointer data)g_ptr_array_remove_fast;
+	gpointer function(GPtrArray* array, guint index)g_ptr_array_remove_index_fast;
+	void function(GPtrArray* array, guint index, guint length)g_ptr_array_remove_range;
+	void function(GPtrArray* array, GCompareFunc compareFunc)g_ptr_array_sort;
+	void function(GPtrArray* array, GCompareDataFunc compareFunc, gpointer userData)g_ptr_array_sort_with_data;
+	void function(GPtrArray* array, gint length)g_ptr_array_set_size;
+	gpointer* function(GPtrArray* array, gboolean freeSeg)g_ptr_array_free;
+	void function(GPtrArray* array, GFunc func, gpointer userData)g_ptr_array_foreach;
+	
+	// glib.ByteArray
+	
+	GByteArray* function()g_byte_array_new;
+	GByteArray* function(guint reservedSize)g_byte_array_sized_new;
+	GByteArray* function(GByteArray* array, guint8* data, guint len)g_byte_array_append;
+	GByteArray* function(GByteArray* array, guint8* data, guint len)g_byte_array_prepend;
+	GByteArray* function(GByteArray* array, guint index)g_byte_array_remove_index;
+	GByteArray* function(GByteArray* array, guint index)g_byte_array_remove_index_fast;
+	GByteArray* function(GByteArray* array, guint index, guint length)g_byte_array_remove_range;
+	void function(GByteArray* array, GCompareFunc compareFunc)g_byte_array_sort;
+	void function(GByteArray* array, GCompareDataFunc compareFunc, gpointer userData)g_byte_array_sort_with_data;
+	GByteArray* function(GByteArray* array, guint length)g_byte_array_set_size;
+	guint8* function(GByteArray* array, gboolean freeSegment)g_byte_array_free;
+	
+	// glib.BBTree
+	
+	GTree* function(GCompareFunc keyCompareFunc)g_tree_new;
+	GTree* function(GCompareDataFunc keyCompareFunc, gpointer keyCompareData)g_tree_new_with_data;
+	GTree* function(GCompareDataFunc keyCompareFunc, gpointer keyCompareData, GDestroyNotify keyDestroyFunc, GDestroyNotify valueDestroyFunc)g_tree_new_full;
+	void function(GTree* tree, gpointer key, gpointer value)g_tree_insert;
+	void function(GTree* tree, gpointer key, gpointer value)g_tree_replace;
+	gint function(GTree* tree)g_tree_nnodes;
+	gint function(GTree* tree)g_tree_height;
+	gpointer function(GTree* tree, gconstpointer key)g_tree_lookup;
+	gboolean function(GTree* tree, gconstpointer lookupKey, gpointer* origKey, gpointer* value)g_tree_lookup_extended;
+	void function(GTree* tree, GTraverseFunc func, gpointer userData)g_tree_foreach;
+	void function(GTree* tree, GTraverseFunc traverseFunc, GTraverseType traverseType, gpointer userData)g_tree_traverse;
+	gpointer function(GTree* tree, GCompareFunc searchFunc, gconstpointer userData)g_tree_search;
+	gboolean function(GTree* tree, gconstpointer key)g_tree_remove;
+	gboolean function(GTree* tree, gconstpointer key)g_tree_steal;
+	void function(GTree* tree)g_tree_destroy;
+	
+	// glib.Node
+	
+	GNode* function(gpointer data)g_node_new;
+	GNode* function(GNode* node)g_node_copy;
+	GNode* function(GNode* node, GCopyFunc copyFunc, gpointer data)g_node_copy_deep;
+	GNode* function(GNode* parent, gint position, GNode* node)g_node_insert;
+	GNode* function(GNode* parent, GNode* sibling, GNode* node)g_node_insert_before;
+	GNode* function(GNode* parent, GNode* sibling, GNode* node)g_node_insert_after;
+	GNode* function(GNode* parent, GNode* node)g_node_prepend;
+	void function(GNode* node)g_node_reverse_children;
+	void function(GNode* root, GTraverseType order, GTraverseFlags flags, gint maxDepth, GNodeTraverseFunc func, gpointer data)g_node_traverse;
+	void function(GNode* node, GTraverseFlags flags, GNodeForeachFunc func, gpointer data)g_node_children_foreach;
+	GNode* function(GNode* node)g_node_get_root;
+	GNode* function(GNode* root, GTraverseType order, GTraverseFlags flags, gpointer data)g_node_find;
+	GNode* function(GNode* node, GTraverseFlags flags, gpointer data)g_node_find_child;
+	gint function(GNode* node, gpointer data)g_node_child_index;
+	gint function(GNode* node, GNode* child)g_node_child_position;
+	GNode* function(GNode* node)g_node_last_child;
+	GNode* function(GNode* node, guint n)g_node_nth_child;
+	GNode* function(GNode* node)g_node_first_sibling;
+	GNode* function(GNode* node)g_node_last_sibling;
+	guint function(GNode* node)g_node_depth;
+	guint function(GNode* root, GTraverseFlags flags)g_node_n_nodes;
+	guint function(GNode* node)g_node_n_children;
+	gboolean function(GNode* node, GNode* descendant)g_node_is_ancestor;
+	guint function(GNode* root)g_node_max_height;
+	void function(GNode* node)g_node_unlink;
+	void function(GNode* root)g_node_destroy;
+	void function(gpointer dummy)g_node_push_allocator;
+	void function()g_node_pop_allocator;
+	
+	// glib.Quark
+	
+	GQuark function(gchar* string)g_quark_from_string;
+	GQuark function(gchar* string)g_quark_from_static_string;
+	gchar* function(GQuark quark)g_quark_to_string;
+	GQuark function(gchar* string)g_quark_try_string;
+	gchar* function(gchar* string)g_intern_string;
+	gchar* function(gchar* string)g_intern_static_string;
+	
+	// glib.DataList
+	
+	void function(GData** datalist)g_datalist_init;
+	void function(GData** datalist, GQuark keyId, gpointer data, GDestroyNotify destroyFunc)g_datalist_id_set_data_full;
+	gpointer function(GData** datalist, GQuark keyId)g_datalist_id_get_data;
+	gpointer function(GData** datalist, GQuark keyId)g_datalist_id_remove_no_notify;
+	void function(GData** datalist, GDataForeachFunc func, gpointer userData)g_datalist_foreach;
+	void function(GData** datalist)g_datalist_clear;
+	void function(GData** datalist, guint flags)g_datalist_set_flags;
+	void function(GData** datalist, guint flags)g_datalist_unset_flags;
+	guint function(GData** datalist)g_datalist_get_flags;
+	
+	// glib.Dataset
+	
+	void function(gconstpointer datasetLocation, GQuark keyId, gpointer data, GDestroyNotify destroyFunc)g_dataset_id_set_data_full;
+	gpointer function(gconstpointer datasetLocation, GQuark keyId)g_dataset_id_get_data;
+	gpointer function(gconstpointer datasetLocation, GQuark keyId)g_dataset_id_remove_no_notify;
+	void function(gconstpointer datasetLocation, GDataForeachFunc func, gpointer userData)g_dataset_foreach;
+	void function(gconstpointer datasetLocation)g_dataset_destroy;
+	
+	// glib.Relation
+	
+	GRelation* function(gint fields)g_relation_new;
+	void function(GRelation* relation, gint field, GHashFunc hashFunc, GEqualFunc keyEqualFunc)g_relation_index;
+	void function(GRelation* relation, ... )g_relation_insert;
+	gboolean function(GRelation* relation, ... )g_relation_exists;
+	gint function(GRelation* relation, gconstpointer key, gint field)g_relation_count;
+	GTuples* function(GRelation* relation, gconstpointer key, gint field)g_relation_select;
+	gint function(GRelation* relation, gconstpointer key, gint field)g_relation_delete;
+	void function(GRelation* relation)g_relation_destroy;
+	void function(GRelation* relation)g_relation_print;
+	
+	// glib.Tuples
+	
+	void function(GTuples* tuples)g_tuples_destroy;
+	gpointer function(GTuples* tuples, gint index, gint field)g_tuples_index;
+	
+	// glib.Cache
+	
+	GCache* function(GCacheNewFunc valueNewFunc, GCacheDestroyFunc valueDestroyFunc, GCacheDupFunc keyDupFunc, GCacheDestroyFunc keyDestroyFunc, GHashFunc hashKeyFunc, GHashFunc hashValueFunc, GEqualFunc keyEqualFunc)g_cache_new;
+	gpointer function(GCache* cache, gpointer key)g_cache_insert;
+	void function(GCache* cache, gconstpointer value)g_cache_remove;
+	void function(GCache* cache)g_cache_destroy;
+	void function(GCache* cache, GHFunc func, gpointer userData)g_cache_key_foreach;
+	void function(GCache* cache, GHFunc func, gpointer userData)g_cache_value_foreach;
+	
+	// glib.Allocator
+	
+	GAllocator* function(gchar* name, guint nPreallocs)g_allocator_new;
+	void function(GAllocator* allocator)g_allocator_free;
+
+
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+Symbol[] glibLinks = 
+[
+
+	{ "glib_check_version",  cast(void**)& glib_check_version},
+	{ "g_atomic_int_get",  cast(void**)& g_atomic_int_get},
+	{ "g_atomic_int_set",  cast(void**)& g_atomic_int_set},
+	{ "g_atomic_int_add",  cast(void**)& g_atomic_int_add},
+	{ "g_atomic_int_exchange_and_add",  cast(void**)& g_atomic_int_exchange_and_add},
+	{ "g_atomic_int_compare_and_exchange",  cast(void**)& g_atomic_int_compare_and_exchange},
+	{ "g_atomic_pointer_get",  cast(void**)& g_atomic_pointer_get},
+	{ "g_atomic_pointer_set",  cast(void**)& g_atomic_pointer_set},
+	{ "g_atomic_pointer_compare_and_exchange",  cast(void**)& g_atomic_pointer_compare_and_exchange},
+	{ "g_atomic_int_inc",  cast(void**)& g_atomic_int_inc},
+	{ "g_atomic_int_dec_and_test",  cast(void**)& g_atomic_int_dec_and_test},
+	{ "g_main_loop_new",  cast(void**)& g_main_loop_new},
+	{ "g_main_loop_ref",  cast(void**)& g_main_loop_ref},
+	{ "g_main_loop_unref",  cast(void**)& g_main_loop_unref},
+	{ "g_main_loop_run",  cast(void**)& g_main_loop_run},
+	{ "g_main_loop_quit",  cast(void**)& g_main_loop_quit},
+	{ "g_main_loop_is_running",  cast(void**)& g_main_loop_is_running},
+	{ "g_main_loop_get_context",  cast(void**)& g_main_loop_get_context},
+	{ "g_main_depth",  cast(void**)& g_main_depth},
+	{ "g_main_current_source",  cast(void**)& g_main_current_source},
+	{ "g_idle_source_new",  cast(void**)& g_idle_source_new},
+	{ "g_idle_add",  cast(void**)& g_idle_add},
+	{ "g_idle_add_full",  cast(void**)& g_idle_add_full},
+	{ "g_idle_remove_by_data",  cast(void**)& g_idle_remove_by_data},
+	{ "g_main_context_new",  cast(void**)& g_main_context_new},
+	{ "g_main_context_ref",  cast(void**)& g_main_context_ref},
+	{ "g_main_context_unref",  cast(void**)& g_main_context_unref},
+	{ "g_main_context_default",  cast(void**)& g_main_context_default},
+	{ "g_main_context_iteration",  cast(void**)& g_main_context_iteration},
+	{ "g_main_context_pending",  cast(void**)& g_main_context_pending},
+	{ "g_main_context_find_source_by_id",  cast(void**)& g_main_context_find_source_by_id},
+	{ "g_main_context_find_source_by_user_data",  cast(void**)& g_main_context_find_source_by_user_data},
+	{ "g_main_context_find_source_by_funcs_user_data",  cast(void**)& g_main_context_find_source_by_funcs_user_data},
+	{ "g_main_context_wakeup",  cast(void**)& g_main_context_wakeup},
+	{ "g_main_context_acquire",  cast(void**)& g_main_context_acquire},
+	{ "g_main_context_release",  cast(void**)& g_main_context_release},
+	{ "g_main_context_is_owner",  cast(void**)& g_main_context_is_owner},
+	{ "g_main_context_wait",  cast(void**)& g_main_context_wait},
+	{ "g_main_context_prepare",  cast(void**)& g_main_context_prepare},
+	{ "g_main_context_query",  cast(void**)& g_main_context_query},
+	{ "g_main_context_check",  cast(void**)& g_main_context_check},
+	{ "g_main_context_dispatch",  cast(void**)& g_main_context_dispatch},
+	{ "g_main_context_set_poll_func",  cast(void**)& g_main_context_set_poll_func},
+	{ "g_main_context_get_poll_func",  cast(void**)& g_main_context_get_poll_func},
+	{ "g_main_context_add_poll",  cast(void**)& g_main_context_add_poll},
+	{ "g_main_context_remove_poll",  cast(void**)& g_main_context_remove_poll},
+	{ "g_timeout_source_new",  cast(void**)& g_timeout_source_new},
+	{ "g_timeout_source_new_seconds",  cast(void**)& g_timeout_source_new_seconds},
+	{ "g_timeout_add",  cast(void**)& g_timeout_add},
+	{ "g_timeout_add_full",  cast(void**)& g_timeout_add_full},
+	{ "g_timeout_add_seconds",  cast(void**)& g_timeout_add_seconds},
+	{ "g_timeout_add_seconds_full",  cast(void**)& g_timeout_add_seconds_full},
+	{ "g_child_watch_source_new",  cast(void**)& g_child_watch_source_new},
+	{ "g_child_watch_add",  cast(void**)& g_child_watch_add},
+	{ "g_child_watch_add_full",  cast(void**)& g_child_watch_add_full},
+	{ "g_source_new",  cast(void**)& g_source_new},
+	{ "g_source_ref",  cast(void**)& g_source_ref},
+	{ "g_source_unref",  cast(void**)& g_source_unref},
+	{ "g_source_set_funcs",  cast(void**)& g_source_set_funcs},
+	{ "g_source_attach",  cast(void**)& g_source_attach},
+	{ "g_source_destroy",  cast(void**)& g_source_destroy},
+	{ "g_source_is_destroyed",  cast(void**)& g_source_is_destroyed},
+	{ "g_source_set_priority",  cast(void**)& g_source_set_priority},
+	{ "g_source_get_priority",  cast(void**)& g_source_get_priority},
+	{ "g_source_set_can_recurse",  cast(void**)& g_source_set_can_recurse},
+	{ "g_source_get_can_recurse",  cast(void**)& g_source_get_can_recurse},
+	{ "g_source_get_id",  cast(void**)& g_source_get_id},
+	{ "g_source_get_context",  cast(void**)& g_source_get_context},
+	{ "g_source_set_callback",  cast(void**)& g_source_set_callback},
+	{ "g_source_set_callback_indirect",  cast(void**)& g_source_set_callback_indirect},
+	{ "g_source_add_poll",  cast(void**)& g_source_add_poll},
+	{ "g_source_remove_poll",  cast(void**)& g_source_remove_poll},
+	{ "g_source_get_current_time",  cast(void**)& g_source_get_current_time},
+	{ "g_source_remove",  cast(void**)& g_source_remove},
+	{ "g_source_remove_by_funcs_user_data",  cast(void**)& g_source_remove_by_funcs_user_data},
+	{ "g_source_remove_by_user_data",  cast(void**)& g_source_remove_by_user_data},
+	{ "g_thread_pool_new",  cast(void**)& g_thread_pool_new},
+	{ "g_thread_pool_push",  cast(void**)& g_thread_pool_push},
+	{ "g_thread_pool_set_max_threads",  cast(void**)& g_thread_pool_set_max_threads},
+	{ "g_thread_pool_get_max_threads",  cast(void**)& g_thread_pool_get_max_threads},
+	{ "g_thread_pool_get_num_threads",  cast(void**)& g_thread_pool_get_num_threads},
+	{ "g_thread_pool_unprocessed",  cast(void**)& g_thread_pool_unprocessed},
+	{ "g_thread_pool_free",  cast(void**)& g_thread_pool_free},
+	{ "g_thread_pool_set_max_unused_threads",  cast(void**)& g_thread_pool_set_max_unused_threads},
+	{ "g_thread_pool_get_max_unused_threads",  cast(void**)& g_thread_pool_get_max_unused_threads},
+	{ "g_thread_pool_get_num_unused_threads",  cast(void**)& g_thread_pool_get_num_unused_threads},
+	{ "g_thread_pool_stop_unused_threads",  cast(void**)& g_thread_pool_stop_unused_threads},
+	{ "g_thread_pool_set_sort_function",  cast(void**)& g_thread_pool_set_sort_function},
+	{ "g_thread_pool_set_max_idle_time",  cast(void**)& g_thread_pool_set_max_idle_time},
+	{ "g_thread_pool_get_max_idle_time",  cast(void**)& g_thread_pool_get_max_idle_time},
+	{ "g_async_queue_new",  cast(void**)& g_async_queue_new},
+	{ "g_async_queue_ref",  cast(void**)& g_async_queue_ref},
+	{ "g_async_queue_unref",  cast(void**)& g_async_queue_unref},
+	{ "g_async_queue_push",  cast(void**)& g_async_queue_push},
+	{ "g_async_queue_push_sorted",  cast(void**)& g_async_queue_push_sorted},
+	{ "g_async_queue_pop",  cast(void**)& g_async_queue_pop},
+	{ "g_async_queue_try_pop",  cast(void**)& g_async_queue_try_pop},
+	{ "g_async_queue_timed_pop",  cast(void**)& g_async_queue_timed_pop},
+	{ "g_async_queue_length",  cast(void**)& g_async_queue_length},
+	{ "g_async_queue_sort",  cast(void**)& g_async_queue_sort},
+	{ "g_async_queue_lock",  cast(void**)& g_async_queue_lock},
+	{ "g_async_queue_unlock",  cast(void**)& g_async_queue_unlock},
+	{ "g_async_queue_ref_unlocked",  cast(void**)& g_async_queue_ref_unlocked},
+	{ "g_async_queue_unref_and_unlock",  cast(void**)& g_async_queue_unref_and_unlock},
+	{ "g_async_queue_push_unlocked",  cast(void**)& g_async_queue_push_unlocked},
+	{ "g_async_queue_push_sorted_unlocked",  cast(void**)& g_async_queue_push_sorted_unlocked},
+	{ "g_async_queue_pop_unlocked",  cast(void**)& g_async_queue_pop_unlocked},
+	{ "g_async_queue_try_pop_unlocked",  cast(void**)& g_async_queue_try_pop_unlocked},
+	{ "g_async_queue_timed_pop_unlocked",  cast(void**)& g_async_queue_timed_pop_unlocked},
+	{ "g_async_queue_length_unlocked",  cast(void**)& g_async_queue_length_unlocked},
+	{ "g_async_queue_sort_unlocked",  cast(void**)& g_async_queue_sort_unlocked},
+	{ "g_module_supported",  cast(void**)& g_module_supported},
+	{ "g_module_build_path",  cast(void**)& g_module_build_path},
+	{ "g_module_open",  cast(void**)& g_module_open},
+	{ "g_module_symbol",  cast(void**)& g_module_symbol},
+	{ "g_module_name",  cast(void**)& g_module_name},
+	{ "g_module_make_resident",  cast(void**)& g_module_make_resident},
+	{ "g_module_close",  cast(void**)& g_module_close},
+	{ "g_module_error",  cast(void**)& g_module_error},
+	{ "g_malloc",  cast(void**)& g_malloc},
+	{ "g_malloc0",  cast(void**)& g_malloc0},
+	{ "g_realloc",  cast(void**)& g_realloc},
+	{ "g_try_malloc",  cast(void**)& g_try_malloc},
+	{ "g_try_malloc0",  cast(void**)& g_try_malloc0},
+	{ "g_try_realloc",  cast(void**)& g_try_realloc},
+	{ "g_free",  cast(void**)& g_free},
+	{ "g_memdup",  cast(void**)& g_memdup},
+	{ "g_mem_set_vtable",  cast(void**)& g_mem_set_vtable},
+	{ "g_mem_is_system_malloc",  cast(void**)& g_mem_is_system_malloc},
+	{ "g_mem_profile",  cast(void**)& g_mem_profile},
+	{ "g_io_channel_unix_new",  cast(void**)& g_io_channel_unix_new},
+	{ "g_io_channel_unix_get_fd",  cast(void**)& g_io_channel_unix_get_fd},
+	{ "g_io_channel_win32_new_fd",  cast(void**)& g_io_channel_win32_new_fd},
+	{ "g_io_channel_win32_new_socket",  cast(void**)& g_io_channel_win32_new_socket},
+	{ "g_io_channel_win32_new_messages",  cast(void**)& g_io_channel_win32_new_messages},
+	{ "g_io_channel_init",  cast(void**)& g_io_channel_init},
+	{ "g_io_channel_new_file",  cast(void**)& g_io_channel_new_file},
+	{ "g_io_channel_read_chars",  cast(void**)& g_io_channel_read_chars},
+	{ "g_io_channel_read_unichar",  cast(void**)& g_io_channel_read_unichar},
+	{ "g_io_channel_read_line",  cast(void**)& g_io_channel_read_line},
+	{ "g_io_channel_read_line_string",  cast(void**)& g_io_channel_read_line_string},
+	{ "g_io_channel_read_to_end",  cast(void**)& g_io_channel_read_to_end},
+	{ "g_io_channel_write_chars",  cast(void**)& g_io_channel_write_chars},
+	{ "g_io_channel_write_unichar",  cast(void**)& g_io_channel_write_unichar},
+	{ "g_io_channel_flush",  cast(void**)& g_io_channel_flush},
+	{ "g_io_channel_seek_position",  cast(void**)& g_io_channel_seek_position},
+	{ "g_io_channel_shutdown",  cast(void**)& g_io_channel_shutdown},
+	{ "g_io_channel_error_from_errno",  cast(void**)& g_io_channel_error_from_errno},
+	{ "g_io_channel_ref",  cast(void**)& g_io_channel_ref},
+	{ "g_io_channel_unref",  cast(void**)& g_io_channel_unref},
+	{ "g_io_create_watch",  cast(void**)& g_io_create_watch},
+	{ "g_io_add_watch",  cast(void**)& g_io_add_watch},
+	{ "g_io_add_watch_full",  cast(void**)& g_io_add_watch_full},
+	{ "g_io_channel_get_buffer_size",  cast(void**)& g_io_channel_get_buffer_size},
+	{ "g_io_channel_set_buffer_size",  cast(void**)& g_io_channel_set_buffer_size},
+	{ "g_io_channel_get_buffer_condition",  cast(void**)& g_io_channel_get_buffer_condition},
+	{ "g_io_channel_get_flags",  cast(void**)& g_io_channel_get_flags},
+	{ "g_io_channel_set_flags",  cast(void**)& g_io_channel_set_flags},
+	{ "g_io_channel_get_line_term",  cast(void**)& g_io_channel_get_line_term},
+	{ "g_io_channel_set_line_term",  cast(void**)& g_io_channel_set_line_term},
+	{ "g_io_channel_get_buffered",  cast(void**)& g_io_channel_get_buffered},
+	{ "g_io_channel_set_buffered",  cast(void**)& g_io_channel_set_buffered},
+	{ "g_io_channel_get_encoding",  cast(void**)& g_io_channel_get_encoding},
+	{ "g_io_channel_set_encoding",  cast(void**)& g_io_channel_set_encoding},
+	{ "g_io_channel_get_close_on_unref",  cast(void**)& g_io_channel_get_close_on_unref},
+	{ "g_io_channel_set_close_on_unref",  cast(void**)& g_io_channel_set_close_on_unref},
+	{ "g_io_channel_read",  cast(void**)& g_io_channel_read},
+	{ "g_io_channel_write",  cast(void**)& g_io_channel_write},
+	{ "g_io_channel_seek",  cast(void**)& g_io_channel_seek},
+	{ "g_io_channel_close",  cast(void**)& g_io_channel_close},
+	{ "g_error_new",  cast(void**)& g_error_new},
+	{ "g_error_new_literal",  cast(void**)& g_error_new_literal},
+	{ "g_error_free",  cast(void**)& g_error_free},
+	{ "g_error_copy",  cast(void**)& g_error_copy},
+	{ "g_error_matches",  cast(void**)& g_error_matches},
+	{ "g_set_error",  cast(void**)& g_set_error},
+	{ "g_propagate_error",  cast(void**)& g_propagate_error},
+	{ "g_clear_error",  cast(void**)& g_clear_error},
+	{ "g_print",  cast(void**)& g_print},
+	{ "g_set_print_handler",  cast(void**)& g_set_print_handler},
+	{ "g_printerr",  cast(void**)& g_printerr},
+	{ "g_set_printerr_handler",  cast(void**)& g_set_printerr_handler},
+	{ "g_on_error_query",  cast(void**)& g_on_error_query},
+	{ "g_on_error_stack_trace",  cast(void**)& g_on_error_stack_trace},
+	{ "g_log",  cast(void**)& g_log},
+	{ "g_logv",  cast(void**)& g_logv},
+	{ "g_log_set_handler",  cast(void**)& g_log_set_handler},
+	{ "g_log_remove_handler",  cast(void**)& g_log_remove_handler},
+	{ "g_log_set_always_fatal",  cast(void**)& g_log_set_always_fatal},
+	{ "g_log_set_fatal_mask",  cast(void**)& g_log_set_fatal_mask},
+	{ "g_log_default_handler",  cast(void**)& g_log_default_handler},
+	{ "g_log_set_default_handler",  cast(void**)& g_log_set_default_handler},
+	{ "g_strdup",  cast(void**)& g_strdup},
+	{ "g_strndup",  cast(void**)& g_strndup},
+	{ "g_strdupv",  cast(void**)& g_strdupv},
+	{ "g_strnfill",  cast(void**)& g_strnfill},
+	{ "g_stpcpy",  cast(void**)& g_stpcpy},
+	{ "g_strstr_len",  cast(void**)& g_strstr_len},
+	{ "g_strrstr",  cast(void**)& g_strrstr},
+	{ "g_strrstr_len",  cast(void**)& g_strrstr_len},
+	{ "g_str_has_prefix",  cast(void**)& g_str_has_prefix},
+	{ "g_str_has_suffix",  cast(void**)& g_str_has_suffix},
+	{ "g_strlcpy",  cast(void**)& g_strlcpy},
+	{ "g_strlcat",  cast(void**)& g_strlcat},
+	{ "g_strdup_printf",  cast(void**)& g_strdup_printf},
+	{ "g_strdup_vprintf",  cast(void**)& g_strdup_vprintf},
+	{ "g_printf",  cast(void**)& g_printf},
+	{ "g_vprintf",  cast(void**)& g_vprintf},
+	{ "g_fprintf",  cast(void**)& g_fprintf},
+	{ "g_vfprintf",  cast(void**)& g_vfprintf},
+	{ "g_sprintf",  cast(void**)& g_sprintf},
+	{ "g_vsprintf",  cast(void**)& g_vsprintf},
+	{ "g_snprintf",  cast(void**)& g_snprintf},
+	{ "g_vsnprintf",  cast(void**)& g_vsnprintf},
+	{ "g_vasprintf",  cast(void**)& g_vasprintf},
+	{ "g_printf_string_upper_bound",  cast(void**)& g_printf_string_upper_bound},
+	{ "g_ascii_isalnum",  cast(void**)& g_ascii_isalnum},
+	{ "g_ascii_isalpha",  cast(void**)& g_ascii_isalpha},
+	{ "g_ascii_iscntrl",  cast(void**)& g_ascii_iscntrl},
+	{ "g_ascii_isdigit",  cast(void**)& g_ascii_isdigit},
+	{ "g_ascii_isgraph",  cast(void**)& g_ascii_isgraph},
+	{ "g_ascii_islower",  cast(void**)& g_ascii_islower},
+	{ "g_ascii_isprint",  cast(void**)& g_ascii_isprint},
+	{ "g_ascii_ispunct",  cast(void**)& g_ascii_ispunct},
+	{ "g_ascii_isspace",  cast(void**)& g_ascii_isspace},
+	{ "g_ascii_isupper",  cast(void**)& g_ascii_isupper},
+	{ "g_ascii_isxdigit",  cast(void**)& g_ascii_isxdigit},
+	{ "g_ascii_digit_value",  cast(void**)& g_ascii_digit_value},
+	{ "g_ascii_xdigit_value",  cast(void**)& g_ascii_xdigit_value},
+	{ "g_ascii_strcasecmp",  cast(void**)& g_ascii_strcasecmp},
+	{ "g_ascii_strncasecmp",  cast(void**)& g_ascii_strncasecmp},
+	{ "g_ascii_strup",  cast(void**)& g_ascii_strup},
+	{ "g_ascii_strdown",  cast(void**)& g_ascii_strdown},
+	{ "g_ascii_tolower",  cast(void**)& g_ascii_tolower},
+	{ "g_ascii_toupper",  cast(void**)& g_ascii_toupper},
+	{ "g_string_ascii_up",  cast(void**)& g_string_ascii_up},
+	{ "g_string_ascii_down",  cast(void**)& g_string_ascii_down},
+	{ "g_strup",  cast(void**)& g_strup},
+	{ "g_strdown",  cast(void**)& g_strdown},
+	{ "g_strcasecmp",  cast(void**)& g_strcasecmp},
+	{ "g_strncasecmp",  cast(void**)& g_strncasecmp},
+	{ "g_strreverse",  cast(void**)& g_strreverse},
+	{ "g_ascii_strtoll",  cast(void**)& g_ascii_strtoll},
+	{ "g_ascii_strtoull",  cast(void**)& g_ascii_strtoull},
+	{ "g_ascii_strtod",  cast(void**)& g_ascii_strtod},
+	{ "g_ascii_dtostr",  cast(void**)& g_ascii_dtostr},
+	{ "g_ascii_formatd",  cast(void**)& g_ascii_formatd},
+	{ "g_strtod",  cast(void**)& g_strtod},
+	{ "g_strchug",  cast(void**)& g_strchug},
+	{ "g_strchomp",  cast(void**)& g_strchomp},
+	{ "g_strdelimit",  cast(void**)& g_strdelimit},
+	{ "g_strescape",  cast(void**)& g_strescape},
+	{ "g_strcompress",  cast(void**)& g_strcompress},
+	{ "g_strcanon",  cast(void**)& g_strcanon},
+	{ "g_strsplit",  cast(void**)& g_strsplit},
+	{ "g_strsplit_set",  cast(void**)& g_strsplit_set},
+	{ "g_strfreev",  cast(void**)& g_strfreev},
+	{ "g_strconcat",  cast(void**)& g_strconcat},
+	{ "g_strjoin",  cast(void**)& g_strjoin},
+	{ "g_strjoinv",  cast(void**)& g_strjoinv},
+	{ "g_strv_length",  cast(void**)& g_strv_length},
+	{ "g_strerror",  cast(void**)& g_strerror},
+	{ "g_strsignal",  cast(void**)& g_strsignal},
+	{ "g_convert",  cast(void**)& g_convert},
+	{ "g_convert_with_fallback",  cast(void**)& g_convert_with_fallback},
+	{ "g_locale_to_utf8",  cast(void**)& g_locale_to_utf8},
+	{ "g_filename_to_utf8",  cast(void**)& g_filename_to_utf8},
+	{ "g_filename_from_utf8",  cast(void**)& g_filename_from_utf8},
+	{ "g_filename_from_uri",  cast(void**)& g_filename_from_uri},
+	{ "g_filename_to_uri",  cast(void**)& g_filename_to_uri},
+	{ "g_get_filename_charsets",  cast(void**)& g_get_filename_charsets},
+	{ "g_filename_display_name",  cast(void**)& g_filename_display_name},
+	{ "g_filename_display_basename",  cast(void**)& g_filename_display_basename},
+	{ "g_uri_list_extract_uris",  cast(void**)& g_uri_list_extract_uris},
+	{ "g_locale_from_utf8",  cast(void**)& g_locale_from_utf8},
+	{ "g_get_charset",  cast(void**)& g_get_charset},
+	{ "g_unichar_validate",  cast(void**)& g_unichar_validate},
+	{ "g_unichar_isalnum",  cast(void**)& g_unichar_isalnum},
+	{ "g_unichar_isalpha",  cast(void**)& g_unichar_isalpha},
+	{ "g_unichar_iscntrl",  cast(void**)& g_unichar_iscntrl},
+	{ "g_unichar_isdefined",  cast(void**)& g_unichar_isdefined},
+	{ "g_unichar_isdigit",  cast(void**)& g_unichar_isdigit},
+	{ "g_unichar_isgraph",  cast(void**)& g_unichar_isgraph},
+	{ "g_unichar_islower",  cast(void**)& g_unichar_islower},
+	{ "g_unichar_ismark",  cast(void**)& g_unichar_ismark},
+	{ "g_unichar_isprint",  cast(void**)& g_unichar_isprint},
+	{ "g_unichar_ispunct",  cast(void**)& g_unichar_ispunct},
+	{ "g_unichar_isspace",  cast(void**)& g_unichar_isspace},
+	{ "g_unichar_istitle",  cast(void**)& g_unichar_istitle},
+	{ "g_unichar_isupper",  cast(void**)& g_unichar_isupper},
+	{ "g_unichar_isxdigit",  cast(void**)& g_unichar_isxdigit},
+	{ "g_unichar_iswide",  cast(void**)& g_unichar_iswide},
+	{ "g_unichar_iswide_cjk",  cast(void**)& g_unichar_iswide_cjk},
+	{ "g_unichar_iszerowidth",  cast(void**)& g_unichar_iszerowidth},
+	{ "g_unichar_toupper",  cast(void**)& g_unichar_toupper},
+	{ "g_unichar_tolower",  cast(void**)& g_unichar_tolower},
+	{ "g_unichar_totitle",  cast(void**)& g_unichar_totitle},
+	{ "g_unichar_digit_value",  cast(void**)& g_unichar_digit_value},
+	{ "g_unichar_xdigit_value",  cast(void**)& g_unichar_xdigit_value},
+	{ "g_unichar_type",  cast(void**)& g_unichar_type},
+	{ "g_unichar_break_type",  cast(void**)& g_unichar_break_type},
+	{ "g_unichar_combining_class",  cast(void**)& g_unichar_combining_class},
+	{ "g_unicode_canonical_ordering",  cast(void**)& g_unicode_canonical_ordering},
+	{ "g_unicode_canonical_decomposition",  cast(void**)& g_unicode_canonical_decomposition},
+	{ "g_unichar_get_mirror_char",  cast(void**)& g_unichar_get_mirror_char},
+	{ "g_unichar_get_script",  cast(void**)& g_unichar_get_script},
+	{ "g_utf8_get_char",  cast(void**)& g_utf8_get_char},
+	{ "g_utf8_get_char_validated",  cast(void**)& g_utf8_get_char_validated},
+	{ "g_utf8_offset_to_pointer",  cast(void**)& g_utf8_offset_to_pointer},
+	{ "g_utf8_pointer_to_offset",  cast(void**)& g_utf8_pointer_to_offset},
+	{ "g_utf8_prev_char",  cast(void**)& g_utf8_prev_char},
+	{ "g_utf8_find_next_char",  cast(void**)& g_utf8_find_next_char},
+	{ "g_utf8_find_prev_char",  cast(void**)& g_utf8_find_prev_char},
+	{ "g_utf8_strlen",  cast(void**)& g_utf8_strlen},
+	{ "g_utf8_strncpy",  cast(void**)& g_utf8_strncpy},
+	{ "g_utf8_strchr",  cast(void**)& g_utf8_strchr},
+	{ "g_utf8_strrchr",  cast(void**)& g_utf8_strrchr},
+	{ "g_utf8_strreverse",  cast(void**)& g_utf8_strreverse},
+	{ "g_utf8_validate",  cast(void**)& g_utf8_validate},
+	{ "g_utf8_strup",  cast(void**)& g_utf8_strup},
+	{ "g_utf8_strdown",  cast(void**)& g_utf8_strdown},
+	{ "g_utf8_casefold",  cast(void**)& g_utf8_casefold},
+	{ "g_utf8_normalize",  cast(void**)& g_utf8_normalize},
+	{ "g_utf8_collate",  cast(void**)& g_utf8_collate},
+	{ "g_utf8_collate_key",  cast(void**)& g_utf8_collate_key},
+	{ "g_utf8_collate_key_for_filename",  cast(void**)& g_utf8_collate_key_for_filename},
+	{ "g_utf8_to_utf16",  cast(void**)& g_utf8_to_utf16},
+	{ "g_utf8_to_ucs4",  cast(void**)& g_utf8_to_ucs4},
+	{ "g_utf8_to_ucs4_fast",  cast(void**)& g_utf8_to_ucs4_fast},
+	{ "g_utf16_to_ucs4",  cast(void**)& g_utf16_to_ucs4},
+	{ "g_utf16_to_utf8",  cast(void**)& g_utf16_to_utf8},
+	{ "g_ucs4_to_utf16",  cast(void**)& g_ucs4_to_utf16},
+	{ "g_ucs4_to_utf8",  cast(void**)& g_ucs4_to_utf8},
+	{ "g_unichar_to_utf8",  cast(void**)& g_unichar_to_utf8},
+	{ "g_strip_context",  cast(void**)& g_strip_context},
+	{ "g_get_language_names",  cast(void**)& g_get_language_names},
+	{ "g_get_current_time",  cast(void**)& g_get_current_time},
+	{ "g_usleep",  cast(void**)& g_usleep},
+	{ "g_time_val_add",  cast(void**)& g_time_val_add},
+	{ "g_time_val_from_iso8601",  cast(void**)& g_time_val_from_iso8601},
+	{ "g_time_val_to_iso8601",  cast(void**)& g_time_val_to_iso8601},
+	{ "g_date_new",  cast(void**)& g_date_new},
+	{ "g_date_new_dmy",  cast(void**)& g_date_new_dmy},
+	{ "g_date_new_julian",  cast(void**)& g_date_new_julian},
+	{ "g_date_clear",  cast(void**)& g_date_clear},
+	{ "g_date_free",  cast(void**)& g_date_free},
+	{ "g_date_set_day",  cast(void**)& g_date_set_day},
+	{ "g_date_set_month",  cast(void**)& g_date_set_month},
+	{ "g_date_set_year",  cast(void**)& g_date_set_year},
+	{ "g_date_set_dmy",  cast(void**)& g_date_set_dmy},
+	{ "g_date_set_julian",  cast(void**)& g_date_set_julian},
+	{ "g_date_set_time",  cast(void**)& g_date_set_time},
+	{ "g_date_set_time_t",  cast(void**)& g_date_set_time_t},
+	{ "g_date_set_time_val",  cast(void**)& g_date_set_time_val},
+	{ "g_date_set_parse",  cast(void**)& g_date_set_parse},
+	{ "g_date_add_days",  cast(void**)& g_date_add_days},
+	{ "g_date_subtract_days",  cast(void**)& g_date_subtract_days},
+	{ "g_date_add_months",  cast(void**)& g_date_add_months},
+	{ "g_date_subtract_months",  cast(void**)& g_date_subtract_months},
+	{ "g_date_add_years",  cast(void**)& g_date_add_years},
+	{ "g_date_subtract_years",  cast(void**)& g_date_subtract_years},
+	{ "g_date_days_between",  cast(void**)& g_date_days_between},
+	{ "g_date_compare",  cast(void**)& g_date_compare},
+	{ "g_date_clamp",  cast(void**)& g_date_clamp},
+	{ "g_date_order",  cast(void**)& g_date_order},
+	{ "g_date_get_day",  cast(void**)& g_date_get_day},
+	{ "g_date_get_month",  cast(void**)& g_date_get_month},
+	{ "g_date_get_year",  cast(void**)& g_date_get_year},
+	{ "g_date_get_julian",  cast(void**)& g_date_get_julian},
+	{ "g_date_get_weekday",  cast(void**)& g_date_get_weekday},
+	{ "g_date_get_day_of_year",  cast(void**)& g_date_get_day_of_year},
+	{ "g_date_get_days_in_month",  cast(void**)& g_date_get_days_in_month},
+	{ "g_date_is_first_of_month",  cast(void**)& g_date_is_first_of_month},
+	{ "g_date_is_last_of_month",  cast(void**)& g_date_is_last_of_month},
+	{ "g_date_is_leap_year",  cast(void**)& g_date_is_leap_year},
+	{ "g_date_get_monday_week_of_year",  cast(void**)& g_date_get_monday_week_of_year},
+	{ "g_date_get_monday_weeks_in_year",  cast(void**)& g_date_get_monday_weeks_in_year},
+	{ "g_date_get_sunday_week_of_year",  cast(void**)& g_date_get_sunday_week_of_year},
+	{ "g_date_get_sunday_weeks_in_year",  cast(void**)& g_date_get_sunday_weeks_in_year},
+	{ "g_date_get_iso8601_week_of_year",  cast(void**)& g_date_get_iso8601_week_of_year},
+	{ "g_date_strftime",  cast(void**)& g_date_strftime},
+	{ "g_date_to_struct_tm",  cast(void**)& g_date_to_struct_tm},
+	{ "g_date_valid",  cast(void**)& g_date_valid},
+	{ "g_date_valid_day",  cast(void**)& g_date_valid_day},
+	{ "g_date_valid_month",  cast(void**)& g_date_valid_month},
+	{ "g_date_valid_year",  cast(void**)& g_date_valid_year},
+	{ "g_date_valid_dmy",  cast(void**)& g_date_valid_dmy},
+	{ "g_date_valid_julian",  cast(void**)& g_date_valid_julian},
+	{ "g_date_valid_weekday",  cast(void**)& g_date_valid_weekday},
+	{ "g_rand_new_with_seed",  cast(void**)& g_rand_new_with_seed},
+	{ "g_rand_new_with_seed_array",  cast(void**)& g_rand_new_with_seed_array},
+	{ "g_rand_new",  cast(void**)& g_rand_new},
+	{ "g_rand_copy",  cast(void**)& g_rand_copy},
+	{ "g_rand_free",  cast(void**)& g_rand_free},
+	{ "g_rand_set_seed",  cast(void**)& g_rand_set_seed},
+	{ "g_rand_set_seed_array",  cast(void**)& g_rand_set_seed_array},
+	{ "g_rand_int",  cast(void**)& g_rand_int},
+	{ "g_rand_int_range",  cast(void**)& g_rand_int_range},
+	{ "g_rand_double",  cast(void**)& g_rand_double},
+	{ "g_rand_double_range",  cast(void**)& g_rand_double_range},
+	{ "g_random_set_seed",  cast(void**)& g_random_set_seed},
+	{ "g_random_int",  cast(void**)& g_random_int},
+	{ "g_random_int_range",  cast(void**)& g_random_int_range},
+	{ "g_random_double",  cast(void**)& g_random_double},
+	{ "g_random_double_range",  cast(void**)& g_random_double_range},
+	{ "g_get_application_name",  cast(void**)& g_get_application_name},
+	{ "g_set_application_name",  cast(void**)& g_set_application_name},
+	{ "g_get_prgname",  cast(void**)& g_get_prgname},
+	{ "g_set_prgname",  cast(void**)& g_set_prgname},
+	{ "g_getenv",  cast(void**)& g_getenv},
+	{ "g_setenv",  cast(void**)& g_setenv},
+	{ "g_unsetenv",  cast(void**)& g_unsetenv},
+	{ "g_listenv",  cast(void**)& g_listenv},
+	{ "g_get_user_name",  cast(void**)& g_get_user_name},
+	{ "g_get_real_name",  cast(void**)& g_get_real_name},
+	{ "g_get_user_cache_dir",  cast(void**)& g_get_user_cache_dir},
+	{ "g_get_user_data_dir",  cast(void**)& g_get_user_data_dir},
+	{ "g_get_user_config_dir",  cast(void**)& g_get_user_config_dir},
+	{ "g_get_user_special_dir",  cast(void**)& g_get_user_special_dir},
+	{ "g_get_system_data_dirs",  cast(void**)& g_get_system_data_dirs},
+	{ "g_get_system_config_dirs",  cast(void**)& g_get_system_config_dirs},
+	{ "g_get_host_name",  cast(void**)& g_get_host_name},
+	{ "g_get_home_dir",  cast(void**)& g_get_home_dir},
+	{ "g_get_tmp_dir",  cast(void**)& g_get_tmp_dir},
+	{ "g_get_current_dir",  cast(void**)& g_get_current_dir},
+	{ "g_basename",  cast(void**)& g_basename},
+	{ "g_path_is_absolute",  cast(void**)& g_path_is_absolute},
+	{ "g_path_skip_root",  cast(void**)& g_path_skip_root},
+	{ "g_path_get_basename",  cast(void**)& g_path_get_basename},
+	{ "g_path_get_dirname",  cast(void**)& g_path_get_dirname},
+	{ "g_build_filename",  cast(void**)& g_build_filename},
+	{ "g_build_filenamev",  cast(void**)& g_build_filenamev},
+	{ "g_build_path",  cast(void**)& g_build_path},
+	{ "g_build_pathv",  cast(void**)& g_build_pathv},
+	{ "g_find_program_in_path",  cast(void**)& g_find_program_in_path},
+	{ "g_bit_nth_lsf",  cast(void**)& g_bit_nth_lsf},
+	{ "g_bit_nth_msf",  cast(void**)& g_bit_nth_msf},
+	{ "g_bit_storage",  cast(void**)& g_bit_storage},
+	{ "g_spaced_primes_closest",  cast(void**)& g_spaced_primes_closest},
+	{ "g_atexit",  cast(void**)& g_atexit},
+	{ "g_parse_debug_string",  cast(void**)& g_parse_debug_string},
+	{ "g_qsort_with_data",  cast(void**)& g_qsort_with_data},
+	{ "g_nullify_pointer",  cast(void**)& g_nullify_pointer},
+	{ "g_scanner_new",  cast(void**)& g_scanner_new},
+	{ "g_scanner_destroy",  cast(void**)& g_scanner_destroy},
+	{ "g_scanner_input_file",  cast(void**)& g_scanner_input_file},
+	{ "g_scanner_sync_file_offset",  cast(void**)& g_scanner_sync_file_offset},
+	{ "g_scanner_input_text",  cast(void**)& g_scanner_input_text},
+	{ "g_scanner_peek_next_token",  cast(void**)& g_scanner_peek_next_token},
+	{ "g_scanner_get_next_token",  cast(void**)& g_scanner_get_next_token},
+	{ "g_scanner_eof",  cast(void**)& g_scanner_eof},
+	{ "g_scanner_cur_line",  cast(void**)& g_scanner_cur_line},
+	{ "g_scanner_cur_position",  cast(void**)& g_scanner_cur_position},
+	{ "g_scanner_cur_token",  cast(void**)& g_scanner_cur_token},
+	{ "g_scanner_cur_value",  cast(void**)& g_scanner_cur_value},
+	{ "g_scanner_set_scope",  cast(void**)& g_scanner_set_scope},
+	{ "g_scanner_scope_add_symbol",  cast(void**)& g_scanner_scope_add_symbol},
+	{ "g_scanner_scope_foreach_symbol",  cast(void**)& g_scanner_scope_foreach_symbol},
+	{ "g_scanner_scope_lookup_symbol",  cast(void**)& g_scanner_scope_lookup_symbol},
+	{ "g_scanner_scope_remove_symbol",  cast(void**)& g_scanner_scope_remove_symbol},
+	{ "g_scanner_lookup_symbol",  cast(void**)& g_scanner_lookup_symbol},
+	{ "g_scanner_warn",  cast(void**)& g_scanner_warn},
+	{ "g_scanner_error",  cast(void**)& g_scanner_error},
+	{ "g_scanner_unexp_token",  cast(void**)& g_scanner_unexp_token},
+	{ "g_completion_new",  cast(void**)& g_completion_new},
+	{ "g_completion_add_items",  cast(void**)& g_completion_add_items},
+	{ "g_completion_remove_items",  cast(void**)& g_completion_remove_items},
+	{ "g_completion_clear_items",  cast(void**)& g_completion_clear_items},
+	{ "g_completion_complete",  cast(void**)& g_completion_complete},
+	{ "g_completion_complete_utf8",  cast(void**)& g_completion_complete_utf8},
+	{ "g_completion_set_compare",  cast(void**)& g_completion_set_compare},
+	{ "g_completion_free",  cast(void**)& g_completion_free},
+	{ "g_timer_new",  cast(void**)& g_timer_new},
+	{ "g_timer_start",  cast(void**)& g_timer_start},
+	{ "g_timer_stop",  cast(void**)& g_timer_stop},
+	{ "g_timer_continue",  cast(void**)& g_timer_continue},
+	{ "g_timer_elapsed",  cast(void**)& g_timer_elapsed},
+	{ "g_timer_reset",  cast(void**)& g_timer_reset},
+	{ "g_timer_destroy",  cast(void**)& g_timer_destroy},
+	{ "g_spawn_async_with_pipes",  cast(void**)& g_spawn_async_with_pipes},
+	{ "g_spawn_async",  cast(void**)& g_spawn_async},
+	{ "g_spawn_sync",  cast(void**)& g_spawn_sync},
+	{ "g_spawn_command_line_async",  cast(void**)& g_spawn_command_line_async},
+	{ "g_spawn_command_line_sync",  cast(void**)& g_spawn_command_line_sync},
+	{ "g_spawn_close_pid",  cast(void**)& g_spawn_close_pid},
+	{ "g_file_error_from_errno",  cast(void**)& g_file_error_from_errno},
+	{ "g_file_get_contents",  cast(void**)& g_file_get_contents},
+	{ "g_file_set_contents",  cast(void**)& g_file_set_contents},
+	{ "g_file_test",  cast(void**)& g_file_test},
+	{ "g_mkstemp",  cast(void**)& g_mkstemp},
+	{ "g_file_open_tmp",  cast(void**)& g_file_open_tmp},
+	{ "g_file_read_link",  cast(void**)& g_file_read_link},
+	{ "g_mkdir_with_parents",  cast(void**)& g_mkdir_with_parents},
+	{ "g_dir_open",  cast(void**)& g_dir_open},
+	{ "g_dir_read_name",  cast(void**)& g_dir_read_name},
+	{ "g_dir_rewind",  cast(void**)& g_dir_rewind},
+	{ "g_dir_close",  cast(void**)& g_dir_close},
+	{ "g_mapped_file_new",  cast(void**)& g_mapped_file_new},
+	{ "g_mapped_file_free",  cast(void**)& g_mapped_file_free},
+	{ "g_mapped_file_get_length",  cast(void**)& g_mapped_file_get_length},
+	{ "g_mapped_file_get_contents",  cast(void**)& g_mapped_file_get_contents},
+	{ "g_open",  cast(void**)& g_open},
+	{ "g_rename",  cast(void**)& g_rename},
+	{ "g_mkdir",  cast(void**)& g_mkdir},
+	{ "g_stat",  cast(void**)& g_stat},
+	{ "g_lstat",  cast(void**)& g_lstat},
+	{ "g_unlink",  cast(void**)& g_unlink},
+	{ "g_remove",  cast(void**)& g_remove},
+	{ "g_rmdir",  cast(void**)& g_rmdir},
+	{ "g_fopen",  cast(void**)& g_fopen},
+	{ "g_freopen",  cast(void**)& g_freopen},
+	{ "g_chmod",  cast(void**)& g_chmod},
+	{ "g_access",  cast(void**)& g_access},
+	{ "g_creat",  cast(void**)& g_creat},
+	{ "g_chdir",  cast(void**)& g_chdir},
+	{ "g_shell_parse_argv",  cast(void**)& g_shell_parse_argv},
+	{ "g_shell_quote",  cast(void**)& g_shell_quote},
+	{ "g_shell_unquote",  cast(void**)& g_shell_unquote},
+	{ "g_option_context_new",  cast(void**)& g_option_context_new},
+	{ "g_option_context_set_summary",  cast(void**)& g_option_context_set_summary},
+	{ "g_option_context_get_summary",  cast(void**)& g_option_context_get_summary},
+	{ "g_option_context_set_description",  cast(void**)& g_option_context_set_description},
+	{ "g_option_context_get_description",  cast(void**)& g_option_context_get_description},
+	{ "g_option_context_set_translate_func",  cast(void**)& g_option_context_set_translate_func},
+	{ "g_option_context_set_translation_domain",  cast(void**)& g_option_context_set_translation_domain},
+	{ "g_option_context_free",  cast(void**)& g_option_context_free},
+	{ "g_option_context_parse",  cast(void**)& g_option_context_parse},
+	{ "g_option_context_set_help_enabled",  cast(void**)& g_option_context_set_help_enabled},
+	{ "g_option_context_get_help_enabled",  cast(void**)& g_option_context_get_help_enabled},
+	{ "g_option_context_set_ignore_unknown_options",  cast(void**)& g_option_context_set_ignore_unknown_options},
+	{ "g_option_context_get_ignore_unknown_options",  cast(void**)& g_option_context_get_ignore_unknown_options},
+	{ "g_option_context_get_help",  cast(void**)& g_option_context_get_help},
+	{ "g_option_context_add_main_entries",  cast(void**)& g_option_context_add_main_entries},
+	{ "g_option_context_add_group",  cast(void**)& g_option_context_add_group},
+	{ "g_option_context_set_main_group",  cast(void**)& g_option_context_set_main_group},
+	{ "g_option_context_get_main_group",  cast(void**)& g_option_context_get_main_group},
+	{ "g_option_group_new",  cast(void**)& g_option_group_new},
+	{ "g_option_group_free",  cast(void**)& g_option_group_free},
+	{ "g_option_group_add_entries",  cast(void**)& g_option_group_add_entries},
+	{ "g_option_group_set_parse_hooks",  cast(void**)& g_option_group_set_parse_hooks},
+	{ "g_option_group_set_error_hook",  cast(void**)& g_option_group_set_error_hook},
+	{ "g_option_group_set_translate_func",  cast(void**)& g_option_group_set_translate_func},
+	{ "g_option_group_set_translation_domain",  cast(void**)& g_option_group_set_translation_domain},
+	{ "g_pattern_spec_new",  cast(void**)& g_pattern_spec_new},
+	{ "g_pattern_spec_free",  cast(void**)& g_pattern_spec_free},
+	{ "g_pattern_spec_equal",  cast(void**)& g_pattern_spec_equal},
+	{ "g_pattern_match",  cast(void**)& g_pattern_match},
+	{ "g_pattern_match_string",  cast(void**)& g_pattern_match_string},
+	{ "g_pattern_match_simple",  cast(void**)& g_pattern_match_simple},
+	{ "g_markup_escape_text",  cast(void**)& g_markup_escape_text},
+	{ "g_markup_printf_escaped",  cast(void**)& g_markup_printf_escaped},
+	{ "g_markup_vprintf_escaped",  cast(void**)& g_markup_vprintf_escaped},
+	{ "g_markup_parse_context_end_parse",  cast(void**)& g_markup_parse_context_end_parse},
+	{ "g_markup_parse_context_free",  cast(void**)& g_markup_parse_context_free},
+	{ "g_markup_parse_context_get_position",  cast(void**)& g_markup_parse_context_get_position},
+	{ "g_markup_parse_context_get_element",  cast(void**)& g_markup_parse_context_get_element},
+	{ "g_markup_parse_context_new",  cast(void**)& g_markup_parse_context_new},
+	{ "g_markup_parse_context_parse",  cast(void**)& g_markup_parse_context_parse},
+	{ "g_key_file_new",  cast(void**)& g_key_file_new},
+	{ "g_key_file_free",  cast(void**)& g_key_file_free},
+	{ "g_key_file_set_list_separator",  cast(void**)& g_key_file_set_list_separator},
+	{ "g_key_file_load_from_file",  cast(void**)& g_key_file_load_from_file},
+	{ "g_key_file_load_from_data",  cast(void**)& g_key_file_load_from_data},
+	{ "g_key_file_load_from_data_dirs",  cast(void**)& g_key_file_load_from_data_dirs},
+	{ "g_key_file_load_from_dirs",  cast(void**)& g_key_file_load_from_dirs},
+	{ "g_key_file_to_data",  cast(void**)& g_key_file_to_data},
+	{ "g_key_file_get_start_group",  cast(void**)& g_key_file_get_start_group},
+	{ "g_key_file_get_groups",  cast(void**)& g_key_file_get_groups},
+	{ "g_key_file_get_keys",  cast(void**)& g_key_file_get_keys},
+	{ "g_key_file_has_group",  cast(void**)& g_key_file_has_group},
+	{ "g_key_file_has_key",  cast(void**)& g_key_file_has_key},
+	{ "g_key_file_get_value",  cast(void**)& g_key_file_get_value},
+	{ "g_key_file_get_string",  cast(void**)& g_key_file_get_string},
+	{ "g_key_file_get_locale_string",  cast(void**)& g_key_file_get_locale_string},
+	{ "g_key_file_get_boolean",  cast(void**)& g_key_file_get_boolean},
+	{ "g_key_file_get_integer",  cast(void**)& g_key_file_get_integer},
+	{ "g_key_file_get_double",  cast(void**)& g_key_file_get_double},
+	{ "g_key_file_get_string_list",  cast(void**)& g_key_file_get_string_list},
+	{ "g_key_file_get_locale_string_list",  cast(void**)& g_key_file_get_locale_string_list},
+	{ "g_key_file_get_boolean_list",  cast(void**)& g_key_file_get_boolean_list},
+	{ "g_key_file_get_integer_list",  cast(void**)& g_key_file_get_integer_list},
+	{ "g_key_file_get_double_list",  cast(void**)& g_key_file_get_double_list},
+	{ "g_key_file_get_comment",  cast(void**)& g_key_file_get_comment},
+	{ "g_key_file_set_value",  cast(void**)& g_key_file_set_value},
+	{ "g_key_file_set_string",  cast(void**)& g_key_file_set_string},
+	{ "g_key_file_set_locale_string",  cast(void**)& g_key_file_set_locale_string},
+	{ "g_key_file_set_boolean",  cast(void**)& g_key_file_set_boolean},
+	{ "g_key_file_set_integer",  cast(void**)& g_key_file_set_integer},
+	{ "g_key_file_set_double",  cast(void**)& g_key_file_set_double},
+	{ "g_key_file_set_string_list",  cast(void**)& g_key_file_set_string_list},
+	{ "g_key_file_set_locale_string_list",  cast(void**)& g_key_file_set_locale_string_list},
+	{ "g_key_file_set_boolean_list",  cast(void**)& g_key_file_set_boolean_list},
+	{ "g_key_file_set_integer_list",  cast(void**)& g_key_file_set_integer_list},
+	{ "g_key_file_set_double_list",  cast(void**)& g_key_file_set_double_list},
+	{ "g_key_file_set_comment",  cast(void**)& g_key_file_set_comment},
+	{ "g_key_file_remove_group",  cast(void**)& g_key_file_remove_group},
+	{ "g_key_file_remove_key",  cast(void**)& g_key_file_remove_key},
+	{ "g_key_file_remove_comment",  cast(void**)& g_key_file_remove_comment},
+	{ "g_win32_error_message",  cast(void**)& g_win32_error_message},
+	{ "g_win32_getlocale",  cast(void**)& g_win32_getlocale},
+	{ "g_win32_get_package_installation_directory",  cast(void**)& g_win32_get_package_installation_directory},
+	{ "g_win32_get_package_installation_subdirectory",  cast(void**)& g_win32_get_package_installation_subdirectory},
+	{ "g_win32_get_windows_version",  cast(void**)& g_win32_get_windows_version},
+	{ "g_win32_locale_filename_from_utf8",  cast(void**)& g_win32_locale_filename_from_utf8},
+	{ "g_slice_alloc",  cast(void**)& g_slice_alloc},
+	{ "g_slice_alloc0",  cast(void**)& g_slice_alloc0},
+	{ "g_slice_copy",  cast(void**)& g_slice_copy},
+	{ "g_slice_free1",  cast(void**)& g_slice_free1},
+	{ "g_slice_free_chain_with_offset",  cast(void**)& g_slice_free_chain_with_offset},
+	{ "g_mem_chunk_new",  cast(void**)& g_mem_chunk_new},
+	{ "g_mem_chunk_alloc",  cast(void**)& g_mem_chunk_alloc},
+	{ "g_mem_chunk_alloc0",  cast(void**)& g_mem_chunk_alloc0},
+	{ "g_mem_chunk_free",  cast(void**)& g_mem_chunk_free},
+	{ "g_mem_chunk_destroy",  cast(void**)& g_mem_chunk_destroy},
+	{ "g_mem_chunk_reset",  cast(void**)& g_mem_chunk_reset},
+	{ "g_mem_chunk_clean",  cast(void**)& g_mem_chunk_clean},
+	{ "g_blow_chunks",  cast(void**)& g_blow_chunks},
+	{ "g_mem_chunk_info",  cast(void**)& g_mem_chunk_info},
+	{ "g_mem_chunk_print",  cast(void**)& g_mem_chunk_print},
+	{ "g_list_append",  cast(void**)& g_list_append},
+	{ "g_list_prepend",  cast(void**)& g_list_prepend},
+	{ "g_list_insert",  cast(void**)& g_list_insert},
+	{ "g_list_insert_before",  cast(void**)& g_list_insert_before},
+	{ "g_list_insert_sorted",  cast(void**)& g_list_insert_sorted},
+	{ "g_list_remove",  cast(void**)& g_list_remove},
+	{ "g_list_remove_link",  cast(void**)& g_list_remove_link},
+	{ "g_list_delete_link",  cast(void**)& g_list_delete_link},
+	{ "g_list_remove_all",  cast(void**)& g_list_remove_all},
+	{ "g_list_free",  cast(void**)& g_list_free},
+	{ "g_list_alloc",  cast(void**)& g_list_alloc},
+	{ "g_list_free_1",  cast(void**)& g_list_free_1},
+	{ "g_list_length",  cast(void**)& g_list_length},
+	{ "g_list_copy",  cast(void**)& g_list_copy},
+	{ "g_list_reverse",  cast(void**)& g_list_reverse},
+	{ "g_list_sort",  cast(void**)& g_list_sort},
+	{ "g_list_insert_sorted_with_data",  cast(void**)& g_list_insert_sorted_with_data},
+	{ "g_list_sort_with_data",  cast(void**)& g_list_sort_with_data},
+	{ "g_list_concat",  cast(void**)& g_list_concat},
+	{ "g_list_foreach",  cast(void**)& g_list_foreach},
+	{ "g_list_first",  cast(void**)& g_list_first},
+	{ "g_list_last",  cast(void**)& g_list_last},
+	{ "g_list_nth",  cast(void**)& g_list_nth},
+	{ "g_list_nth_data",  cast(void**)& g_list_nth_data},
+	{ "g_list_nth_prev",  cast(void**)& g_list_nth_prev},
+	{ "g_list_find",  cast(void**)& g_list_find},
+	{ "g_list_find_custom",  cast(void**)& g_list_find_custom},
+	{ "g_list_position",  cast(void**)& g_list_position},
+	{ "g_list_index",  cast(void**)& g_list_index},
+	{ "g_list_push_allocator",  cast(void**)& g_list_push_allocator},
+	{ "g_list_pop_allocator",  cast(void**)& g_list_pop_allocator},
+	{ "g_slist_alloc",  cast(void**)& g_slist_alloc},
+	{ "g_slist_append",  cast(void**)& g_slist_append},
+	{ "g_slist_prepend",  cast(void**)& g_slist_prepend},
+	{ "g_slist_insert",  cast(void**)& g_slist_insert},
+	{ "g_slist_insert_before",  cast(void**)& g_slist_insert_before},
+	{ "g_slist_insert_sorted",  cast(void**)& g_slist_insert_sorted},
+	{ "g_slist_remove",  cast(void**)& g_slist_remove},
+	{ "g_slist_remove_link",  cast(void**)& g_slist_remove_link},
+	{ "g_slist_delete_link",  cast(void**)& g_slist_delete_link},
+	{ "g_slist_remove_all",  cast(void**)& g_slist_remove_all},
+	{ "g_slist_free",  cast(void**)& g_slist_free},
+	{ "g_slist_free_1",  cast(void**)& g_slist_free_1},
+	{ "g_slist_length",  cast(void**)& g_slist_length},
+	{ "g_slist_copy",  cast(void**)& g_slist_copy},
+	{ "g_slist_reverse",  cast(void**)& g_slist_reverse},
+	{ "g_slist_insert_sorted_with_data",  cast(void**)& g_slist_insert_sorted_with_data},
+	{ "g_slist_sort",  cast(void**)& g_slist_sort},
+	{ "g_slist_sort_with_data",  cast(void**)& g_slist_sort_with_data},
+	{ "g_slist_concat",  cast(void**)& g_slist_concat},
+	{ "g_slist_foreach",  cast(void**)& g_slist_foreach},
+	{ "g_slist_last",  cast(void**)& g_slist_last},
+	{ "g_slist_nth",  cast(void**)& g_slist_nth},
+	{ "g_slist_nth_data",  cast(void**)& g_slist_nth_data},
+	{ "g_slist_find",  cast(void**)& g_slist_find},
+	{ "g_slist_find_custom",  cast(void**)& g_slist_find_custom},
+	{ "g_slist_position",  cast(void**)& g_slist_position},
+	{ "g_slist_index",  cast(void**)& g_slist_index},
+	{ "g_slist_push_allocator",  cast(void**)& g_slist_push_allocator},
+	{ "g_slist_pop_allocator",  cast(void**)& g_slist_pop_allocator},
+	{ "g_queue_new",  cast(void**)& g_queue_new},
+	{ "g_queue_free",  cast(void**)& g_queue_free},
+	{ "g_queue_init",  cast(void**)& g_queue_init},
+	{ "g_queue_clear",  cast(void**)& g_queue_clear},
+	{ "g_queue_is_empty",  cast(void**)& g_queue_is_empty},
+	{ "g_queue_get_length",  cast(void**)& g_queue_get_length},
+	{ "g_queue_reverse",  cast(void**)& g_queue_reverse},
+	{ "g_queue_copy",  cast(void**)& g_queue_copy},
+	{ "g_queue_foreach",  cast(void**)& g_queue_foreach},
+	{ "g_queue_find",  cast(void**)& g_queue_find},
+	{ "g_queue_find_custom",  cast(void**)& g_queue_find_custom},
+	{ "g_queue_sort",  cast(void**)& g_queue_sort},
+	{ "g_queue_push_head",  cast(void**)& g_queue_push_head},
+	{ "g_queue_push_tail",  cast(void**)& g_queue_push_tail},
+	{ "g_queue_push_nth",  cast(void**)& g_queue_push_nth},
+	{ "g_queue_pop_head",  cast(void**)& g_queue_pop_head},
+	{ "g_queue_pop_tail",  cast(void**)& g_queue_pop_tail},
+	{ "g_queue_pop_nth",  cast(void**)& g_queue_pop_nth},
+	{ "g_queue_peek_head",  cast(void**)& g_queue_peek_head},
+	{ "g_queue_peek_tail",  cast(void**)& g_queue_peek_tail},
+	{ "g_queue_peek_nth",  cast(void**)& g_queue_peek_nth},
+	{ "g_queue_index",  cast(void**)& g_queue_index},
+	{ "g_queue_remove",  cast(void**)& g_queue_remove},
+	{ "g_queue_remove_all",  cast(void**)& g_queue_remove_all},
+	{ "g_queue_insert_before",  cast(void**)& g_queue_insert_before},
+	{ "g_queue_insert_after",  cast(void**)& g_queue_insert_after},
+	{ "g_queue_insert_sorted",  cast(void**)& g_queue_insert_sorted},
+	{ "g_queue_push_head_link",  cast(void**)& g_queue_push_head_link},
+	{ "g_queue_push_tail_link",  cast(void**)& g_queue_push_tail_link},
+	{ "g_queue_push_nth_link",  cast(void**)& g_queue_push_nth_link},
+	{ "g_queue_pop_head_link",  cast(void**)& g_queue_pop_head_link},
+	{ "g_queue_pop_tail_link",  cast(void**)& g_queue_pop_tail_link},
+	{ "g_queue_pop_nth_link",  cast(void**)& g_queue_pop_nth_link},
+	{ "g_queue_peek_head_link",  cast(void**)& g_queue_peek_head_link},
+	{ "g_queue_peek_tail_link",  cast(void**)& g_queue_peek_tail_link},
+	{ "g_queue_peek_nth_link",  cast(void**)& g_queue_peek_nth_link},
+	{ "g_queue_link_index",  cast(void**)& g_queue_link_index},
+	{ "g_queue_unlink",  cast(void**)& g_queue_unlink},
+	{ "g_queue_delete_link",  cast(void**)& g_queue_delete_link},
+	{ "g_trash_stack_push",  cast(void**)& g_trash_stack_push},
+	{ "g_trash_stack_pop",  cast(void**)& g_trash_stack_pop},
+	{ "g_trash_stack_peek",  cast(void**)& g_trash_stack_peek},
+	{ "g_trash_stack_height",  cast(void**)& g_trash_stack_height},
+	{ "g_hash_table_new",  cast(void**)& g_hash_table_new},
+	{ "g_hash_table_new_full",  cast(void**)& g_hash_table_new_full},
+	{ "g_hash_table_insert",  cast(void**)& g_hash_table_insert},
+	{ "g_hash_table_replace",  cast(void**)& g_hash_table_replace},
+	{ "g_hash_table_size",  cast(void**)& g_hash_table_size},
+	{ "g_hash_table_lookup",  cast(void**)& g_hash_table_lookup},
+	{ "g_hash_table_lookup_extended",  cast(void**)& g_hash_table_lookup_extended},
+	{ "g_hash_table_foreach",  cast(void**)& g_hash_table_foreach},
+	{ "g_hash_table_find",  cast(void**)& g_hash_table_find},
+	{ "g_hash_table_remove",  cast(void**)& g_hash_table_remove},
+	{ "g_hash_table_steal",  cast(void**)& g_hash_table_steal},
+	{ "g_hash_table_foreach_remove",  cast(void**)& g_hash_table_foreach_remove},
+	{ "g_hash_table_foreach_steal",  cast(void**)& g_hash_table_foreach_steal},
+	{ "g_hash_table_remove_all",  cast(void**)& g_hash_table_remove_all},
+	{ "g_hash_table_steal_all",  cast(void**)& g_hash_table_steal_all},
+	{ "g_hash_table_get_keys",  cast(void**)& g_hash_table_get_keys},
+	{ "g_hash_table_get_values",  cast(void**)& g_hash_table_get_values},
+	{ "g_hash_table_destroy",  cast(void**)& g_hash_table_destroy},
+	{ "g_hash_table_ref",  cast(void**)& g_hash_table_ref},
+	{ "g_hash_table_unref",  cast(void**)& g_hash_table_unref},
+	{ "g_direct_equal",  cast(void**)& g_direct_equal},
+	{ "g_direct_hash",  cast(void**)& g_direct_hash},
+	{ "g_int_equal",  cast(void**)& g_int_equal},
+	{ "g_int_hash",  cast(void**)& g_int_hash},
+	{ "g_str_equal",  cast(void**)& g_str_equal},
+	{ "g_str_hash",  cast(void**)& g_str_hash},
+	{ "g_string_new",  cast(void**)& g_string_new},
+	{ "g_string_new_len",  cast(void**)& g_string_new_len},
+	{ "g_string_sized_new",  cast(void**)& g_string_sized_new},
+	{ "g_string_assign",  cast(void**)& g_string_assign},
+	{ "g_string_vprintf",  cast(void**)& g_string_vprintf},
+	{ "g_string_append_vprintf",  cast(void**)& g_string_append_vprintf},
+	{ "g_string_printf",  cast(void**)& g_string_printf},
+	{ "g_string_append_printf",  cast(void**)& g_string_append_printf},
+	{ "g_string_append",  cast(void**)& g_string_append},
+	{ "g_string_append_c",  cast(void**)& g_string_append_c},
+	{ "g_string_append_unichar",  cast(void**)& g_string_append_unichar},
+	{ "g_string_append_len",  cast(void**)& g_string_append_len},
+	{ "g_string_prepend",  cast(void**)& g_string_prepend},
+	{ "g_string_prepend_c",  cast(void**)& g_string_prepend_c},
+	{ "g_string_prepend_unichar",  cast(void**)& g_string_prepend_unichar},
+	{ "g_string_prepend_len",  cast(void**)& g_string_prepend_len},
+	{ "g_string_insert",  cast(void**)& g_string_insert},
+	{ "g_string_insert_c",  cast(void**)& g_string_insert_c},
+	{ "g_string_insert_unichar",  cast(void**)& g_string_insert_unichar},
+	{ "g_string_insert_len",  cast(void**)& g_string_insert_len},
+	{ "g_string_overwrite",  cast(void**)& g_string_overwrite},
+	{ "g_string_overwrite_len",  cast(void**)& g_string_overwrite_len},
+	{ "g_string_erase",  cast(void**)& g_string_erase},
+	{ "g_string_truncate",  cast(void**)& g_string_truncate},
+	{ "g_string_set_size",  cast(void**)& g_string_set_size},
+	{ "g_string_free",  cast(void**)& g_string_free},
+	{ "g_string_up",  cast(void**)& g_string_up},
+	{ "g_string_down",  cast(void**)& g_string_down},
+	{ "g_string_hash",  cast(void**)& g_string_hash},
+	{ "g_string_equal",  cast(void**)& g_string_equal},
+	{ "g_string_chunk_new",  cast(void**)& g_string_chunk_new},
+	{ "g_string_chunk_insert",  cast(void**)& g_string_chunk_insert},
+	{ "g_string_chunk_insert_const",  cast(void**)& g_string_chunk_insert_const},
+	{ "g_string_chunk_insert_len",  cast(void**)& g_string_chunk_insert_len},
+	{ "g_string_chunk_clear",  cast(void**)& g_string_chunk_clear},
+	{ "g_string_chunk_free",  cast(void**)& g_string_chunk_free},
+	{ "g_array_new",  cast(void**)& g_array_new},
+	{ "g_array_sized_new",  cast(void**)& g_array_sized_new},
+	{ "g_array_append_vals",  cast(void**)& g_array_append_vals},
+	{ "g_array_prepend_vals",  cast(void**)& g_array_prepend_vals},
+	{ "g_array_insert_vals",  cast(void**)& g_array_insert_vals},
+	{ "g_array_remove_index",  cast(void**)& g_array_remove_index},
+	{ "g_array_remove_index_fast",  cast(void**)& g_array_remove_index_fast},
+	{ "g_array_remove_range",  cast(void**)& g_array_remove_range},
+	{ "g_array_sort",  cast(void**)& g_array_sort},
+	{ "g_array_sort_with_data",  cast(void**)& g_array_sort_with_data},
+	{ "g_array_set_size",  cast(void**)& g_array_set_size},
+	{ "g_array_free",  cast(void**)& g_array_free},
+	{ "g_ptr_array_new",  cast(void**)& g_ptr_array_new},
+	{ "g_ptr_array_sized_new",  cast(void**)& g_ptr_array_sized_new},
+	{ "g_ptr_array_add",  cast(void**)& g_ptr_array_add},
+	{ "g_ptr_array_remove",  cast(void**)& g_ptr_array_remove},
+	{ "g_ptr_array_remove_index",  cast(void**)& g_ptr_array_remove_index},
+	{ "g_ptr_array_remove_fast",  cast(void**)& g_ptr_array_remove_fast},
+	{ "g_ptr_array_remove_index_fast",  cast(void**)& g_ptr_array_remove_index_fast},
+	{ "g_ptr_array_remove_range",  cast(void**)& g_ptr_array_remove_range},
+	{ "g_ptr_array_sort",  cast(void**)& g_ptr_array_sort},
+	{ "g_ptr_array_sort_with_data",  cast(void**)& g_ptr_array_sort_with_data},
+	{ "g_ptr_array_set_size",  cast(void**)& g_ptr_array_set_size},
+	{ "g_ptr_array_free",  cast(void**)& g_ptr_array_free},
+	{ "g_ptr_array_foreach",  cast(void**)& g_ptr_array_foreach},
+	{ "g_byte_array_new",  cast(void**)& g_byte_array_new},
+	{ "g_byte_array_sized_new",  cast(void**)& g_byte_array_sized_new},
+	{ "g_byte_array_append",  cast(void**)& g_byte_array_append},
+	{ "g_byte_array_prepend",  cast(void**)& g_byte_array_prepend},
+	{ "g_byte_array_remove_index",  cast(void**)& g_byte_array_remove_index},
+	{ "g_byte_array_remove_index_fast",  cast(void**)& g_byte_array_remove_index_fast},
+	{ "g_byte_array_remove_range",  cast(void**)& g_byte_array_remove_range},
+	{ "g_byte_array_sort",  cast(void**)& g_byte_array_sort},
+	{ "g_byte_array_sort_with_data",  cast(void**)& g_byte_array_sort_with_data},
+	{ "g_byte_array_set_size",  cast(void**)& g_byte_array_set_size},
+	{ "g_byte_array_free",  cast(void**)& g_byte_array_free},
+	{ "g_tree_new",  cast(void**)& g_tree_new},
+	{ "g_tree_new_with_data",  cast(void**)& g_tree_new_with_data},
+	{ "g_tree_new_full",  cast(void**)& g_tree_new_full},
+	{ "g_tree_insert",  cast(void**)& g_tree_insert},
+	{ "g_tree_replace",  cast(void**)& g_tree_replace},
+	{ "g_tree_nnodes",  cast(void**)& g_tree_nnodes},
+	{ "g_tree_height",  cast(void**)& g_tree_height},
+	{ "g_tree_lookup",  cast(void**)& g_tree_lookup},
+	{ "g_tree_lookup_extended",  cast(void**)& g_tree_lookup_extended},
+	{ "g_tree_foreach",  cast(void**)& g_tree_foreach},
+	{ "g_tree_traverse",  cast(void**)& g_tree_traverse},
+	{ "g_tree_search",  cast(void**)& g_tree_search},
+	{ "g_tree_remove",  cast(void**)& g_tree_remove},
+	{ "g_tree_steal",  cast(void**)& g_tree_steal},
+	{ "g_tree_destroy",  cast(void**)& g_tree_destroy},
+	{ "g_node_new",  cast(void**)& g_node_new},
+	{ "g_node_copy",  cast(void**)& g_node_copy},
+	{ "g_node_copy_deep",  cast(void**)& g_node_copy_deep},
+	{ "g_node_insert",  cast(void**)& g_node_insert},
+	{ "g_node_insert_before",  cast(void**)& g_node_insert_before},
+	{ "g_node_insert_after",  cast(void**)& g_node_insert_after},
+	{ "g_node_prepend",  cast(void**)& g_node_prepend},
+	{ "g_node_reverse_children",  cast(void**)& g_node_reverse_children},
+	{ "g_node_traverse",  cast(void**)& g_node_traverse},
+	{ "g_node_children_foreach",  cast(void**)& g_node_children_foreach},
+	{ "g_node_get_root",  cast(void**)& g_node_get_root},
+	{ "g_node_find",  cast(void**)& g_node_find},
+	{ "g_node_find_child",  cast(void**)& g_node_find_child},
+	{ "g_node_child_index",  cast(void**)& g_node_child_index},
+	{ "g_node_child_position",  cast(void**)& g_node_child_position},
+	{ "g_node_last_child",  cast(void**)& g_node_last_child},
+	{ "g_node_nth_child",  cast(void**)& g_node_nth_child},
+	{ "g_node_first_sibling",  cast(void**)& g_node_first_sibling},
+	{ "g_node_last_sibling",  cast(void**)& g_node_last_sibling},
+	{ "g_node_depth",  cast(void**)& g_node_depth},
+	{ "g_node_n_nodes",  cast(void**)& g_node_n_nodes},
+	{ "g_node_n_children",  cast(void**)& g_node_n_children},
+	{ "g_node_is_ancestor",  cast(void**)& g_node_is_ancestor},
+	{ "g_node_max_height",  cast(void**)& g_node_max_height},
+	{ "g_node_unlink",  cast(void**)& g_node_unlink},
+	{ "g_node_destroy",  cast(void**)& g_node_destroy},
+	{ "g_node_push_allocator",  cast(void**)& g_node_push_allocator},
+	{ "g_node_pop_allocator",  cast(void**)& g_node_pop_allocator},
+	{ "g_quark_from_string",  cast(void**)& g_quark_from_string},
+	{ "g_quark_from_static_string",  cast(void**)& g_quark_from_static_string},
+	{ "g_quark_to_string",  cast(void**)& g_quark_to_string},
+	{ "g_quark_try_string",  cast(void**)& g_quark_try_string},
+	{ "g_intern_string",  cast(void**)& g_intern_string},
+	{ "g_intern_static_string",  cast(void**)& g_intern_static_string},
+	{ "g_datalist_init",  cast(void**)& g_datalist_init},
+	{ "g_datalist_id_set_data_full",  cast(void**)& g_datalist_id_set_data_full},
+	{ "g_datalist_id_get_data",  cast(void**)& g_datalist_id_get_data},
+	{ "g_datalist_id_remove_no_notify",  cast(void**)& g_datalist_id_remove_no_notify},
+	{ "g_datalist_foreach",  cast(void**)& g_datalist_foreach},
+	{ "g_datalist_clear",  cast(void**)& g_datalist_clear},
+	{ "g_datalist_set_flags",  cast(void**)& g_datalist_set_flags},
+	{ "g_datalist_unset_flags",  cast(void**)& g_datalist_unset_flags},
+	{ "g_datalist_get_flags",  cast(void**)& g_datalist_get_flags},
+	{ "g_dataset_id_set_data_full",  cast(void**)& g_dataset_id_set_data_full},
+	{ "g_dataset_id_get_data",  cast(void**)& g_dataset_id_get_data},
+	{ "g_dataset_id_remove_no_notify",  cast(void**)& g_dataset_id_remove_no_notify},
+	{ "g_dataset_foreach",  cast(void**)& g_dataset_foreach},
+	{ "g_dataset_destroy",  cast(void**)& g_dataset_destroy},
+	{ "g_relation_new",  cast(void**)& g_relation_new},
+	{ "g_relation_index",  cast(void**)& g_relation_index},
+	{ "g_relation_insert",  cast(void**)& g_relation_insert},
+	{ "g_relation_exists",  cast(void**)& g_relation_exists},
+	{ "g_relation_count",  cast(void**)& g_relation_count},
+	{ "g_relation_select",  cast(void**)& g_relation_select},
+	{ "g_relation_delete",  cast(void**)& g_relation_delete},
+	{ "g_relation_destroy",  cast(void**)& g_relation_destroy},
+	{ "g_relation_print",  cast(void**)& g_relation_print},
+	{ "g_tuples_destroy",  cast(void**)& g_tuples_destroy},
+	{ "g_tuples_index",  cast(void**)& g_tuples_index},
+	{ "g_cache_new",  cast(void**)& g_cache_new},
+	{ "g_cache_insert",  cast(void**)& g_cache_insert},
+	{ "g_cache_remove",  cast(void**)& g_cache_remove},
+	{ "g_cache_destroy",  cast(void**)& g_cache_destroy},
+	{ "g_cache_key_foreach",  cast(void**)& g_cache_key_foreach},
+	{ "g_cache_value_foreach",  cast(void**)& g_cache_value_foreach},
+	{ "g_allocator_new",  cast(void**)& g_allocator_new},
+	{ "g_allocator_free",  cast(void**)& g_allocator_free},
+
+];
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/gtk/c/glibtypes.d	Sat Jan 05 15:13:44 2008 -0800
@@ -0,0 +1,3851 @@
+/******************************************************************************
+
+    This file is part of gtkD.
+
+    gtkD is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation; either version 2.1 of the License, or
+    (at your option) any later version.
+ 
+    gtkD is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with gtkD; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+******************************************************************************/
+
+module dwt.internal.gtk.c.glibtypes;
+
+/* The GLib Basic Types */
+public alias int gint;
+public alias uint guint;
+public alias int gboolean;
+public alias void* gpointer;
+public alias void* gconstpointer;
+public alias char gchar;
+public alias char guchar;
+public alias short gshort;
+public alias ushort gushort;
+public alias int glong;
+public alias uint gulong;
+public alias byte gint8;
+public alias byte guint8;
+public alias short gint16;
+public alias ushort guint16;
+public alias int gint32;
+public alias long gint64;
+public alias uint guint32;
+public alias ulong guint64;
+public alias float gfloat;
+public alias double gdouble;
+public alias uint gsize;
+public alias int gssize;
+public alias void* va_list;
+public alias dchar unichar;
+public alias wchar unichar2;
+//public alias dchar gunichar;
+//public alias wchar gunichar2;
+public alias int time_t;
+public alias uint XID;
+
+
+const uint G_MAXUINT = 4294967295;
+
+
+/**
+ * typedef int GPid;
+ * A type which is used to hold a process identification.
+ * On Unix, processes are identified by a process id (an
+ * integer), while Windows uses process handles (which are
+ * pointers).
+ */
+public alias int GPid;
+
+/**
+ * typedef guint32 gunichar;
+ * A type which can hold any UCS-4 character code.
+ */
+public alias uint gunichar;
+
+/**
+ * typedef guint16 gunichar2;
+ * A type which can hold any UTF-16 code
+ * point[3].
+ */
+public alias ushort gunichar2;
+
+/**
+ * typedef gint32 GTime;
+ * Simply a replacement for time_t. It has been deprected
+ * since it is not equivalent to time_t
+ * on 64-bit platforms with a 64-bit time_t.
+ * Unrelated to GTimer.
+ * Note that GTime is defined to always be a 32bit integer,
+ * unlike time_t which may be 64bit on some systems.
+ * Therefore, GTime will overflow in the year 2038, and
+ * you cannot use the address of a GTime variable as argument
+ * to the UNIX time() function. Instead, do the following:
+ * time_t ttime;
+ * GTime gtime;
+ * time (ttime);
+ * gtime = (GTime)ttime;
+ */
+public alias int GTime;
+
+/**
+ * typedef guint8 GDateDay; /+* day of the month +/
+ * Integer representing a day of the month; between 1 and
+ * 31. G_DATE_BAD_DAY represents an invalid day of the month.
+ */
+public alias byte GDateDay;
+
+/**
+ * typedef guint16 GDateYear;
+ * Integer representing a year; G_DATE_BAD_YEAR is the invalid
+ * value. The year must be 1 or higher; negative (BC) years are not
+ * allowed. The year is represented with four digits.
+ */
+public alias ushort GDateYear;
+
+/**
+ * typedef guint32 GQuark;
+ * A GQuark is a non-zero integer which uniquely identifies a particular string.
+ * A GQuark value of zero is associated to NULL.
+ */
+public alias uint GQuark;
+/**
+ * Flags passed to g_module_open(). Note that these flags are
+ * not supported on all platforms.
+ * G_MODULE_BIND_LAZY
+ * specifies that symbols are only resolved when needed.
+ */
+public enum GModuleFlags
+{
+	BIND_LAZY = 1 << 0,
+	BIND_LOCAL = 1 << 1,
+	BIND_MASK = 0x03
+}
+alias GModuleFlags ModuleFlags;
+
+/**
+ * An enumeration specifying the base position for a g_io_channel_seek_position()
+ * operation.
+ * G_SEEK_CUR
+ * the current position in the file.
+ * G_SEEK_SET
+ * the start of the file.
+ * G_SEEK_END
+ * the end of the file.
+ */
+public enum GSeekType
+{
+	CUR,
+	SET,
+	END
+}
+alias GSeekType SeekType;
+
+/**
+ * Stati returned by most of the GIOFuncs functions.
+ * G_IO_STATUS_ERROR
+ * An error occurred.
+ * G_IO_STATUS_NORMAL
+ * Success.
+ * G_IO_STATUS_EOF
+ * End of file.
+ * G_IO_STATUS_AGAIN
+ * Resource temporarily unavailable.
+ */
+public enum GIOStatus
+{
+	ERROR,
+	NORMAL,
+	EOF,
+	AGAIN
+}
+alias GIOStatus IOStatus;
+
+/**
+ * Error codes returned by GIOChannel operations.
+ * G_IO_CHANNEL_ERROR_FBIG
+ * File too large.
+ * G_IO_CHANNEL_ERROR_INVAL
+ * Invalid argument.
+ * G_IO_CHANNEL_ERROR_IO
+ * IO error.
+ * G_IO_CHANNEL_ERROR_ISDIR
+ * File is a directory.
+ * G_IO_CHANNEL_ERROR_NOSPC
+ * No space left on device.
+ * G_IO_CHANNEL_ERROR_NXIO
+ * No such device or address.
+ * G_IO_CHANNEL_ERROR_OVERFLOW
+ * Value too large for defined datatype.
+ * G_IO_CHANNEL_ERROR_PIPE
+ * Broken pipe.
+ * G_IO_CHANNEL_ERROR_FAILED
+ * Some other error.
+ */
+public enum GIOChannelError
+{
+	/+* Derived from errno +/
+	G_IO_CHANNEL_ERROR_FBIG,
+	G_IO_CHANNEL_ERROR_INVAL,
+	G_IO_CHANNEL_ERROR_IO,
+	G_IO_CHANNEL_ERROR_ISDIR,
+	G_IO_CHANNEL_ERROR_NOSPC,
+	G_IO_CHANNEL_ERROR_NXIO,
+	G_IO_CHANNEL_ERROR_OVERFLOW,
+	G_IO_CHANNEL_ERROR_PIPE,
+	/+* Other +/
+	G_IO_CHANNEL_ERROR_FAILED
+}
+alias GIOChannelError IOChannelError;
+
+/**
+ * A bitwise combination representing a condition to watch for on
+ * an event source.
+ * G_IO_IN
+ * There is data to read.
+ * G_IO_OUT
+ * Data can be written (without blocking).
+ * G_IO_PRI
+ * There is urgent data to read.
+ * G_IO_ERR
+ * Error condition.
+ * G_IO_HUP
+ * Hung up (the connection has been broken, usually for pipes
+ */
+public enum GIOCondition
+{
+	IN =1,
+	OUT =4,
+	PRI =2,
+	ERR =8,
+	HUP =16,
+	NVAL =32
+}
+alias GIOCondition IOCondition;
+
+/**
+ * Specifies properties of a GIOChannel. Some of the flags can only
+ * be read with g_io_channel_get_flags(), but not changed with
+ * g_io_channel_set_flags().
+ * G_IO_FLAG_APPEND
+ * turns on append mode, corresponds to O_APPEND
+ */
+public enum GIOFlags
+{
+	APPEND = 1 << 0,
+	NONBLOCK = 1 << 1,
+	IS_READABLE = 1 << 2, /+* Read only flag +/
+	IS_WRITEABLE = 1 << 3, /+* Read only flag +/
+	IS_SEEKABLE = 1 << 4, /+* Read only flag +/
+	MASK = (1 << 5) - 1,
+	GET_MASK = MASK,
+	SET_MASK = APPEND | NONBLOCK
+}
+alias GIOFlags IOFlags;
+
+/**
+ * GIOError is only used by the deprecated functions g_io_channel_read(),
+ * g_io_channel_write(), and g_io_channel_seek().
+ * G_IO_ERROR_NONE
+ * no error
+ * G_IO_ERROR_AGAIN
+ * an EAGAIN error occurred
+ * G_IO_ERROR_INVAL
+ * an EINVAL error occurred
+ * G_IO_ERROR_UNKNOWN
+ * another error occurred
+ */
+public enum GIOError
+{
+	NONE,
+	AGAIN,
+	INVAL,
+	UNKNOWN
+}
+alias GIOError IOError;
+
+/**
+ * Flags specifying the level of log messages. It is possible to change
+ * how GLib treats messages of the various levels using g_log_set_handler()
+ * and g_log_set_fatal_mask().
+ * G_LOG_FLAG_RECURSION
+ * internal flag
+ * G_LOG_FLAG_FATAL
+ * internal flag
+ * G_LOG_LEVEL_ERROR
+ * log level for errors, see g_error().
+ */
+public enum GLogLevelFlags
+{
+	/+* log flags +/
+	G_LOG_FLAG_RECURSION = 1 << 0,
+	G_LOG_FLAG_FATAL = 1 << 1,
+	/+* GLib log levels +/
+	G_LOG_LEVEL_ERROR = 1 << 2, /+* always fatal +/
+	G_LOG_LEVEL_CRITICAL = 1 << 3,
+	G_LOG_LEVEL_WARNING = 1 << 4,
+	G_LOG_LEVEL_MESSAGE = 1 << 5,
+	G_LOG_LEVEL_INFO = 1 << 6,
+	G_LOG_LEVEL_DEBUG = 1 << 7,
+	G_LOG_LEVEL_MASK = ~(G_LOG_FLAG_RECURSION | G_LOG_FLAG_FATAL)
+}
+alias GLogLevelFlags LogLevelFlags;
+
+/**
+ * Error codes returned by character set conversion routines.
+ * G_CONVERT_ERROR_NO_CONVERSION
+ * Conversion between the requested character sets
+ * is not supported.
+ * G_CONVERT_ERROR_ILLEGAL_SEQUENCE
+ * Invalid byte sequence in conversion input.
+ * G_CONVERT_ERROR_FAILED
+ * Conversion failed for some reason.
+ * G_CONVERT_ERROR_PARTIAL_INPUT
+ * Partial character sequence at end of input.
+ * G_CONVERT_ERROR_BAD_URI
+ * URI is invalid.
+ * G_CONVERT_ERROR_NOT_ABSOLUTE_PATH
+ * Pathname is not an absolute path.
+ */
+public enum GConvertError
+{
+	NO_CONVERSION,
+	ILLEGAL_SEQUENCE,
+	FAILED,
+	PARTIAL_INPUT,
+	BAD_URI,
+	NOT_ABSOLUTE_PATH
+}
+alias GConvertError ConvertError;
+
+/**
+ * These are the possible character classifications from the
+ * Unicode specification.
+ * See http://www.unicode.org/Public/UNIDATA/UnicodeData.html.
+ * G_UNICODE_CONTROL
+ * General category "Other, Control" (Cc)
+ * G_UNICODE_FORMAT
+ * General category "Other, Format" (Cf)
+ * G_UNICODE_UNASSIGNED
+ * General category "Other, Not Assigned" (Cn)
+ * G_UNICODE_PRIVATE_USE
+ * General category "Other, Private Use" (Co)
+ * G_UNICODE_SURROGATE
+ * General category "Other, Surrogate" (Cs)
+ * G_UNICODE_LOWERCASE_LETTER
+ * General category "Letter, Lowercase" (Ll)
+ * G_UNICODE_MODIFIER_LETTER
+ * General category "Letter, Modifier" (Lm)
+ * G_UNICODE_OTHER_LETTER
+ * General category "Letter, Other" (Lo)
+ * G_UNICODE_TITLECASE_LETTER
+ * General category "Letter, Titlecase" (Lt)
+ * G_UNICODE_UPPERCASE_LETTER
+ * General category "Letter, Uppercase" (Lu)
+ * G_UNICODE_COMBINING_MARK
+ * General category "Mark, Spacing Combining" (Mc)
+ * G_UNICODE_ENCLOSING_MARK
+ * General category "Mark, Enclosing" (Me)
+ * G_UNICODE_NON_SPACING_MARK
+ * General category "Mark, Nonspacing" (Mn)
+ * G_UNICODE_DECIMAL_NUMBER
+ * General category "Number, Decimal Digit" (Nd)
+ * G_UNICODE_LETTER_NUMBER
+ * General category "Number, Letter" (Nl)
+ * G_UNICODE_OTHER_NUMBER
+ * General category "Number, Other" (No)
+ * G_UNICODE_CONNECT_PUNCTUATION
+ * General category "Punctuation, Connector" (Pc)
+ * G_UNICODE_DASH_PUNCTUATION
+ * General category "Punctuation, Dash" (Pd)
+ * G_UNICODE_CLOSE_PUNCTUATION
+ * General category "Punctuation, Close" (Pe)
+ * G_UNICODE_FINAL_PUNCTUATION
+ * General category "Punctuation, Final quote" (Pf)
+ * G_UNICODE_INITIAL_PUNCTUATION
+ * General category "Punctuation, Initial quote" (Pi)
+ * G_UNICODE_OTHER_PUNCTUATION
+ * General category "Punctuation, Other" (Po)
+ * G_UNICODE_OPEN_PUNCTUATION
+ * General category "Punctuation, Open" (Ps)
+ * G_UNICODE_CURRENCY_SYMBOL
+ * General category "Symbol, Currency" (Sc)
+ * G_UNICODE_MODIFIER_SYMBOL
+ * General category "Symbol, Modifier" (Sk)
+ * G_UNICODE_MATH_SYMBOL
+ * General category "Symbol, Math" (Sm)
+ * G_UNICODE_OTHER_SYMBOL
+ * General category "Symbol, Other" (So)
+ * G_UNICODE_LINE_SEPARATOR
+ * General category "Separator, Line" (Zl)
+ * G_UNICODE_PARAGRAPH_SEPARATOR
+ * General category "Separator, Paragraph" (Zp)
+ * G_UNICODE_SPACE_SEPARATOR
+ * General category "Separator, Space" (Zs)
+ */
+public enum GUnicodeType
+{
+	CONTROL,
+	FORMAT,
+	UNASSIGNED,
+	PRIVATE_USE,
+	SURROGATE,
+	LOWERCASE_LETTER,
+	MODIFIER_LETTER,
+	OTHER_LETTER,
+	TITLECASE_LETTER,
+	UPPERCASE_LETTER,
+	COMBINING_MARK,
+	ENCLOSING_MARK,
+	NON_SPACING_MARK,
+	DECIMAL_NUMBER,
+	LETTER_NUMBER,
+	OTHER_NUMBER,
+	CONNECT_PUNCTUATION,
+	DASH_PUNCTUATION,
+	CLOSE_PUNCTUATION,
+	FINAL_PUNCTUATION,
+	INITIAL_PUNCTUATION,
+	OTHER_PUNCTUATION,
+	OPEN_PUNCTUATION,
+	CURRENCY_SYMBOL,
+	MODIFIER_SYMBOL,
+	MATH_SYMBOL,
+	OTHER_SYMBOL,
+	LINE_SEPARATOR,
+	PARAGRAPH_SEPARATOR,
+	SPACE_SEPARATOR
+}
+alias GUnicodeType UnicodeType;
+
+/**
+ * These are the possible line break classifications.
+ * The five Hangul types were added in Unicode 4.1, so, has been
+ * introduced in GLib 2.10. Note that new types may be added in the future.
+ * Applications should be ready to handle unknown values.
+ * They may be regarded as G_UNICODE_BREAK_UNKNOWN.
+ * See http://www.unicode.org/unicode/reports/tr14/.
+ */
+public enum GUnicodeBreakType
+{
+	MANDATORY,
+	CARRIAGE_RETURN,
+	LINE_FEED,
+	COMBINING_MARK,
+	SURROGATE,
+	ZERO_WIDTH_SPACE,
+	INSEPARABLE,
+	NON_BREAKING_GLUE,
+	CONTINGENT,
+	SPACE,
+	AFTER,
+	BEFORE,
+	BEFORE_AND_AFTER,
+	HYPHEN,
+	NON_STARTER,
+	OPEN_PUNCTUATION,
+	CLOSE_PUNCTUATION,
+	QUOTATION,
+	EXCLAMATION,
+	IDEOGRAPHIC,
+	NUMERIC,
+	INFIX_SEPARATOR,
+	SYMBOL,
+	ALPHABETIC,
+	PREFIX,
+	POSTFIX,
+	COMPLEX_CONTEXT,
+	AMBIGUOUS,
+	UNKNOWN,
+	NEXT_LINE,
+	WORD_JOINER,
+	HANGUL_L_JAMO,
+	HANGUL_V_JAMO,
+	HANGUL_T_JAMO,
+	HANGUL_LV_SYLLABLE,
+	HANGUL_LVT_SYLLABLE
+}
+alias GUnicodeBreakType UnicodeBreakType;
+
+/**
+ * The GUnicodeScript enumeration identifies different writing
+ * systems. The values correspond to the names as defined in the
+ * Unicode standard. The enumeration has been added in GLib 2.14,
+ * and is interchangeable with PangoScript.
+ * Note that new types may be added in the future. Applications
+ * should be ready to handle unknown values.
+ * See Unicode Standard Annex
+ * "" Script names.
+ * G_UNICODE_SCRIPT_INVALID_CODE
+ * a value never returned from g_unichar_get_script()
+ * G_UNICODE_SCRIPT_COMMON
+ */
+public enum GUnicodeScript
+{
+	INVALID_CODE = -1,
+	COMMON = 0, /+* Zyyy +/
+	INHERITED, /+* Qaai +/
+	ARABIC, /+* Arab +/
+	ARMENIAN, /+* Armn +/
+	BENGALI, /+* Beng +/
+	BOPOMOFO, /+* Bopo +/
+	CHEROKEE, /+* Cher +/
+	COPTIC, /+* Qaac +/
+	CYRILLIC, /+* Cyrl (Cyrs) +/
+	DESERET, /+* Dsrt +/
+	DEVANAGARI, /+* Deva +/
+	ETHIOPIC, /+* Ethi +/
+	GEORGIAN, /+* Geor (Geon, Geoa) +/
+	GOTHIC, /+* Goth +/
+	GREEK, /+* Grek +/
+	GUJARATI, /+* Gujr +/
+	GURMUKHI, /+* Guru +/
+	HAN, /+* Hani +/
+	HANGUL, /+* Hang +/
+	HEBREW, /+* Hebr +/
+	HIRAGANA, /+* Hira +/
+	KANNADA, /+* Knda +/
+	KATAKANA, /+* Kana +/
+	KHMER, /+* Khmr +/
+	LAO, /+* Laoo +/
+	LATIN, /+* Latn (Latf, Latg) +/
+	MALAYALAM, /+* Mlym +/
+	MONGOLIAN, /+* Mong +/
+	MYANMAR, /+* Mymr +/
+	OGHAM, /+* Ogam +/
+	OLD_ITALIC, /+* Ital +/
+	ORIYA, /+* Orya +/
+	RUNIC, /+* Runr +/
+	SINHALA, /+* Sinh +/
+	SYRIAC, /+* Syrc (Syrj, Syrn, Syre) +/
+	TAMIL, /+* Taml +/
+	TELUGU, /+* Telu +/
+	THAANA, /+* Thaa +/
+	THAI, /+* Thai +/
+	TIBETAN, /+* Tibt +/
+	CANADIAN_ABORIGINAL, /+* Cans +/
+	YI, /+* Yiii +/
+	TAGALOG, /+* Tglg +/
+	HANUNOO, /+* Hano +/
+	BUHID, /+* Buhd +/
+	TAGBANWA, /+* Tagb +/
+	/+* Unicode-4.0 additions +/
+	BRAILLE, /+* Brai +/
+	CYPRIOT, /+* Cprt +/
+	LIMBU, /+* Limb +/
+	OSMANYA, /+* Osma +/
+	SHAVIAN, /+* Shaw +/
+	LINEAR_B, /+* Linb +/
+	TAI_LE, /+* Tale +/
+	UGARITIC, /+* Ugar +/
+	/+* Unicode-4.1 additions +/
+	NEW_TAI_LUE, /+* Talu +/
+	BUGINESE, /+* Bugi +/
+	GLAGOLITIC, /+* Glag +/
+	TIFINAGH, /+* Tfng +/
+	SYLOTI_NAGRI, /+* Sylo +/
+	OLD_PERSIAN, /+* Xpeo +/
+	KHAROSHTHI, /+* Khar +/
+	/+* Unicode-5.0 additions +/
+	UNKNOWN, /+* Zzzz +/
+	BALINESE, /+* Bali +/
+	CUNEIFORM, /+* Xsux +/
+	PHOENICIAN, /+* Phnx +/
+	PHAGS_PA, /+* Phag +/
+	NKO /+* Nkoo +/
+}
+alias GUnicodeScript UnicodeScript;
+
+/**
+ * Defines how a Unicode string is transformed in a canonical
+ * form, standardizing such issues as whether a character with an accent is
+ * represented as a base character and combining accent or as a single precomposed
+ * character. Unicode strings should generally be normalized before comparing them.
+ * G_NORMALIZE_DEFAULT
+ * standardize differences that do not affect the
+ */
+public enum GNormalizeMode
+{
+	DEFAULT,
+	NFD = DEFAULT,
+	DEFAULT_COMPOSE,
+	NFC = DEFAULT_COMPOSE,
+	ALL,
+	NFKD = ALL,
+	ALL_COMPOSE,
+	NFKC = ALL_COMPOSE
+}
+alias GNormalizeMode NormalizeMode;
+
+/**
+ * This enumeration isn't used in the API, but may be useful if you need
+ * to mark a number as a day, month, or year.
+ * G_DATE_DAY
+ * a day
+ * G_DATE_MONTH
+ * a month
+ * G_DATE_YEAR
+ * a year
+ */
+public enum GDateDMY
+{
+	DAY = 0,
+	MONTH = 1,
+	YEAR = 2
+}
+alias GDateDMY DateDMY;
+
+/**
+ * Enumeration representing a month; values are G_DATE_JANUARY,
+ * G_DATE_FEBRUARY, etc. G_DATE_BAD_MONTH is the invalid value.
+ * G_DATE_BAD_MONTH
+ * invalid value.
+ * G_DATE_JANUARY
+ * January.
+ * G_DATE_FEBRUARY
+ * February.
+ * G_DATE_MARCH
+ * March.
+ * G_DATE_APRIL
+ * April.
+ * G_DATE_MAY
+ * May.
+ * G_DATE_JUNE
+ * June.
+ * G_DATE_JULY
+ * July.
+ * G_DATE_AUGUST
+ * August.
+ * G_DATE_SEPTEMBER
+ * September.
+ * G_DATE_OCTOBER
+ * October.
+ * G_DATE_NOVEMBER
+ * November.
+ * G_DATE_DECEMBER
+ * December.
+ */
+public enum GDateMonth
+{
+	BAD_MONTH = 0,
+	JANUARY = 1,
+	FEBRUARY = 2,
+	MARCH = 3,
+	APRIL = 4,
+	MAY = 5,
+	JUNE = 6,
+	JULY = 7,
+	AUGUST = 8,
+	SEPTEMBER = 9,
+	OCTOBER = 10,
+	NOVEMBER = 11,
+	DECEMBER = 12
+}
+alias GDateMonth DateMonth;
+
+/**
+ * Enumeration representing a day of the week; G_DATE_MONDAY,
+ * G_DATE_TUESDAY, etc. G_DATE_BAD_WEEKDAY is an invalid weekday.
+ * G_DATE_BAD_WEEKDAY
+ * invalid value.
+ * G_DATE_MONDAY
+ * Monday.
+ * G_DATE_TUESDAY
+ * Tuesday.
+ * G_DATE_WEDNESDAY
+ * Wednesday.
+ * G_DATE_THURSDAY
+ * Thursday.
+ * G_DATE_FRIDAY
+ * Friday.
+ * G_DATE_SATURDAY
+ * Saturday.
+ * G_DATE_SUNDAY
+ * Sunday.
+ */
+public enum GDateWeekday
+{
+	BAD_WEEKDAY = 0,
+	MONDAY = 1,
+	TUESDAY = 2,
+	WEDNESDAY = 3,
+	THURSDAY = 4,
+	FRIDAY = 5,
+	SATURDAY = 6,
+	SUNDAY = 7
+}
+alias GDateWeekday DateWeekday;
+
+/**
+ * These are logical ids for special directories which are defined
+ * depending on the platform used. You should use g_get_user_special_dir()
+ * to retrieve the full path associated to the logical id.
+ * The GUserDirectory enumeration can be extended at later date. Not
+ * every platform has a directory for every logical id in this
+ * enumeration.
+ * G_USER_DIRECTORY_DESKTOP
+ */
+public enum GUserDirectory
+{
+	DESKTOP,
+	DOCUMENTS,
+	DOWNLOAD,
+	MUSIC,
+	PICTURES,
+	PUBLIC_SHARE,
+	TEMPLATES,
+	VIDEOS,
+	G_USER_N_DIRECTORIES
+}
+alias GUserDirectory UserDirectory;
+
+/**
+ * The possible types of token returned from each g_scanner_get_next_token() call.
+ * G_TOKEN_EOF
+ * the end of the file.
+ * G_TOKEN_LEFT_PAREN
+ * a '(' character.
+ * G_TOKEN_LEFT_CURLY
+ * a '{' character.
+ * G_TOKEN_RIGHT_CURLY
+ * a '}' character.
+ */
+public enum GTokenType
+{
+	EOF = 0,
+	LEFT_PAREN = '(',
+	RIGHT_PAREN = ')',
+	LEFT_CURLY = '{',
+	RIGHT_CURLY = '}',
+	LEFT_BRACE = '[',
+	RIGHT_BRACE = ']',
+	EQUAL_SIGN = '=',
+	COMMA = ',',
+	NONE = 256,
+	ERROR,
+	CHAR,
+	BINARY,
+	OCTAL,
+	INT,
+	HEX,
+	FLOAT,
+	STRING,
+	SYMBOL,
+	IDENTIFIER,
+	IDENTIFIER_NULL,
+	COMMENT_SINGLE,
+	COMMENT_MULTI,
+	LAST
+}
+alias GTokenType TokenType;
+
+/**
+ * The possible errors, used in the v_error field
+ * of GTokenValue, when the token is a G_TOKEN_ERROR.
+ * G_ERR_UNKNOWN
+ * unknown error.
+ * G_ERR_UNEXP_EOF
+ * unexpected end of file.
+ * G_ERR_UNEXP_EOF_IN_STRING
+ * unterminated string constant.
+ * G_ERR_UNEXP_EOF_IN_COMMENT
+ * unterminated comment.
+ * G_ERR_NON_DIGIT_IN_CONST
+ * non-digit character in a number.
+ * G_ERR_DIGIT_RADIX
+ * digit beyond radix in a number.
+ * G_ERR_FLOAT_RADIX
+ * non-decimal floating point number.
+ * G_ERR_FLOAT_MALFORMED
+ * malformed floating point number.
+ */
+public enum GErrorType
+{
+	UNKNOWN,
+	UNEXP_EOF,
+	UNEXP_EOF_IN_STRING,
+	UNEXP_EOF_IN_COMMENT,
+	NON_DIGIT_IN_CONST,
+	DIGIT_RADIX,
+	FLOAT_RADIX,
+	FLOAT_MALFORMED
+}
+alias GErrorType ErrorType;
+
+/**
+ * Error codes returned by spawning processes.
+ * G_SPAWN_ERROR_FORK
+ * Fork failed due to lack of memory.
+ * G_SPAWN_ERROR_READ
+ * Read or select on pipes failed.
+ * G_SPAWN_ERROR_CHDIR
+ * Changing to working directory failed.
+ * G_SPAWN_ERROR_ACCES
+ * execv() returned EACCES.
+ * G_SPAWN_ERROR_PERM
+ * execv() returned EPERM.
+ * G_SPAWN_ERROR_2BIG
+ * execv() returned E2BIG.
+ * G_SPAWN_ERROR_NOEXEC
+ * execv() returned ENOEXEC.
+ * G_SPAWN_ERROR_NAMETOOLONG
+ * execv() returned ENAMETOOLONG.
+ * G_SPAWN_ERROR_NOENT
+ * execv() returned ENOENT.
+ * G_SPAWN_ERROR_NOMEM
+ * execv() returned ENOMEM.
+ * G_SPAWN_ERROR_NOTDIR
+ * execv() returned ENOTDIR.
+ * G_SPAWN_ERROR_LOOP
+ * execv() returned ELOOP.
+ * G_SPAWN_ERROR_TXTBUSY
+ * execv() returned ETXTBUSY.
+ * G_SPAWN_ERROR_IO
+ * execv() returned EIO.
+ * G_SPAWN_ERROR_NFILE
+ * execv() returned ENFILE.
+ * G_SPAWN_ERROR_MFILE
+ * execv() returned EMFILE.
+ * G_SPAWN_ERROR_INVAL
+ * execv() returned EINVAL.
+ * G_SPAWN_ERROR_ISDIR
+ * execv() returned EISDIR.
+ * G_SPAWN_ERROR_LIBBAD
+ * execv() returned ELIBBAD.
+ * G_SPAWN_ERROR_FAILED
+ * Some other fatal failure, error->message should explain.
+ */
+public enum GSpawnError
+{
+	FORK, /+* fork failed due to lack of memory +/
+	READ, /+* read or select on pipes failed +/
+	CHDIR, /+* changing to working dir failed +/
+	ACCES, /+* execv() returned EACCES +/
+	PERM, /+* execv() returned EPERM +/
+	TOO_BIG, /+* execv() returned E2BIG +/
+	NOEXEC, /+* execv() returned ENOEXEC +/
+	NAMETOOLONG, /+* "" "" ENAMETOOLONG +/
+	NOENT, /+* "" "" ENOENT +/
+	NOMEM, /+* "" "" ENOMEM +/
+	NOTDIR, /+* "" "" ENOTDIR +/
+	LOOP, /+* "" "" ELOOP +/
+	TXTBUSY, /+* "" "" ETXTBUSY +/
+	IO, /+* "" "" EIO +/
+	NFILE, /+* "" "" ENFILE +/
+	MFILE, /+* "" "" EMFLE +/
+	INVAL, /+* "" "" EINVAL +/
+	ISDIR, /+* "" "" EISDIR +/
+	LIBBAD, /+* "" "" ELIBBAD +/
+	FAILED /+* other fatal failure, error->message
+	 * should explain
+	+/
+}
+alias GSpawnError SpawnError;
+
+/**
+ * Flags passed to g_spawn_sync(), g_spawn_async() and g_spawn_async_with_pipes().
+ * G_SPAWN_LEAVE_DESCRIPTORS_OPEN
+ * the parent's open file descriptors will be
+ */
+public enum GSpawnFlags
+{
+	LEAVE_DESCRIPTORS_OPEN = 1 << 0,
+	DO_NOT_REAP_CHILD = 1 << 1,
+	/+* look for argv[0] inn the path i.e. use execvp() +/
+	SEARCH_PATH = 1 << 2,
+	/+* Dump output to /dev/null +/
+	STDOUT_TO_DEV_NULL = 1 << 3,
+	STDERR_TO_DEV_NULL = 1 << 4,
+	CHILD_INHERITS_STDIN = 1 << 5,
+	FILE_AND_ARGV_ZERO = 1 << 6
+}
+alias GSpawnFlags SpawnFlags;
+
+/**
+ * Values corresponding to errno codes returned from file operations
+ * on UNIX. Unlike errno codes, GFileError values are available on
+ * all systems, even Windows. The exact meaning of each code depends on what
+ * sort of file operation you were performing; the UNIX documentation
+ * gives more details. The following error code descriptions come
+ * from the GNU C Library manual, and are under the copyright
+ * of that manual.
+ * It's not very portable to make detailed assumptions about exactly
+ * which errors will be returned from a given operation. Some errors
+ * don't occur on some systems, etc., sometimes there are subtle
+ * differences in when a system will report a given error, etc.
+ * G_FILE_ERROR_EXIST
+ * Operation not permitted; only the owner of the
+ */
+public enum GFileError
+{
+	EXIST,
+	ISDIR,
+	ACCES,
+	NAMETOOLONG,
+	NOENT,
+	NOTDIR,
+	NXIO,
+	NODEV,
+	ROFS,
+	TXTBSY,
+	FAULT,
+	LOOP,
+	NOSPC,
+	NOMEM,
+	MFILE,
+	NFILE,
+	BADF,
+	INVAL,
+	PIPE,
+	AGAIN,
+	INTR,
+	IO,
+	PERM,
+	NOSYS,
+	FAILED
+}
+alias GFileError FileError;
+
+/**
+ * A test to perform on a file using g_file_test().
+ * G_FILE_TEST_IS_REGULAR
+ * TRUE if the file is a regular file (not a directory).
+ */
+public enum GFileTest
+{
+	IS_REGULAR = 1 << 0,
+	IS_SYMLINK = 1 << 1,
+	IS_DIR = 1 << 2,
+	IS_EXECUTABLE = 1 << 3,
+	EXISTS = 1 << 4
+}
+alias GFileTest FileTest;
+
+/**
+ * Error codes returned by shell functions.
+ * G_SHELL_ERROR_BAD_QUOTING
+ * Mismatched or otherwise mangled quoting.
+ * G_SHELL_ERROR_EMPTY_STRING
+ * String to be parsed was empty.
+ * G_SHELL_ERROR_FAILED
+ * Some other error.
+ */
+public enum GShellError
+{
+	/+* mismatched or otherwise mangled quoting +/
+	G_SHELL_ERROR_BAD_QUOTING,
+	/+* string to be parsed was empty +/
+	G_SHELL_ERROR_EMPTY_STRING,
+	G_SHELL_ERROR_FAILED
+}
+alias GShellError ShellError;
+
+/**
+ * Error codes returned by option parsing.
+ * G_OPTION_ERROR_UNKNOWN_OPTION
+ * An option was not known to the parser.
+ */
+public enum GOptionError
+{
+	UNKNOWN_OPTION,
+	BAD_VALUE,
+	FAILED
+}
+alias GOptionError OptionError;
+
+/**
+ * The GOptionArg enum values determine which type of extra argument the
+ * options expect to find. If an option expects an extra argument, it
+ * can be specified in several ways; with a short option:
+ * -x arg, with a long option: --name arg
+ * or combined in a single argument: --name=arg.
+ * G_OPTION_ARG_NONE
+ * No extra argument. This is useful for simple flags.
+ * G_OPTION_ARG_STRING
+ * The option takes a string argument.
+ * G_OPTION_ARG_INT
+ * The option takes an integer argument.
+ * G_OPTION_ARG_CALLBACK
+ * The option provides a callback to parse the
+ */
+public enum GOptionArg
+{
+	NONE,
+	STRING,
+	INT,
+	CALLBACK,
+	FILENAME,
+	STRING_ARRAY,
+	FILENAME_ARRAY,
+	DOUBLE,
+	INT64
+}
+alias GOptionArg OptionArg;
+
+/**
+ * Flags which modify individual options.
+ * G_OPTION_FLAG_HIDDEN
+ * The option doesn't appear in --help
+ */
+public enum GOptionFlags
+{
+	HIDDEN = 1 << 0,
+	IN_MAIN = 1 << 1,
+	REVERSE = 1 << 2,
+	NO_ARG = 1 << 3,
+	FILENAME = 1 << 4,
+	OPTIONAL_ARG = 1 << 5,
+	NOALIAS = 1 << 6
+}
+alias GOptionFlags OptionFlags;
+
+/**
+ * Error codes returned by markup parsing.
+ * G_MARKUP_ERROR_BAD_UTF8
+ * text being parsed was not valid UTF-8
+ * G_MARKUP_ERROR_EMPTY
+ * document contained nothing, or only whitespace
+ * G_MARKUP_ERROR_PARSE
+ * document was ill-formed
+ * G_MARKUP_ERROR_UNKNOWN_ELEMENT
+ * error should be set by GMarkupParser functions; element wasn't known
+ * G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE
+ * error should be set by GMarkupParser functions; attribute wasn't known
+ * G_MARKUP_ERROR_INVALID_CONTENT
+ * error should be set by GMarkupParser functions; something was wrong with contents of the document, e.g. invalid attribute value
+ */
+public enum GMarkupError
+{
+	BAD_UTF8,
+	EMPTY,
+	PARSE,
+	/+* These three are primarily intended for specific GMarkupParser
+	 * implementations to set.
+	+/
+	UNKNOWN_ELEMENT,
+	UNKNOWN_ATTRIBUTE,
+	INVALID_CONTENT
+}
+alias GMarkupError MarkupError;
+
+/**
+ * Flags that affect the behaviour of the parser.
+ * G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG
+ * flag you should not use.
+ * G_MARKUP_TREAT_CDATA_AS_TEXT
+ * When this flag is set, CDATA marked
+ */
+public enum GMarkupParseFlags
+{
+	DO_NOT_USE_THIS_UNSUPPORTED_FLAG = 1 << 0,
+	TREAT_CDATA_AS_TEXT = 1 << 1
+}
+alias GMarkupParseFlags MarkupParseFlags;
+
+/**
+ * Error codes returned by key file parsing.
+ * G_KEY_FILE_ERROR_UNKNOWN_ENCODING
+ * the text being parsed was in an unknown encoding
+ * G_KEY_FILE_ERROR_PARSE
+ * document was ill-formed
+ * G_KEY_FILE_ERROR_NOT_FOUND
+ * the file was not found
+ * G_KEY_FILE_ERROR_KEY_NOT_FOUND
+ * a requested key was not found
+ * G_KEY_FILE_ERROR_GROUP_NOT_FOUND
+ * a requested group was not found
+ * G_KEY_FILE_ERROR_INVALID_VALUE
+ * a value could not be parsed
+ */
+public enum GKeyFileError
+{
+	UNKNOWN_ENCODING,
+	PARSE,
+	NOT_FOUND,
+	KEY_NOT_FOUND,
+	GROUP_NOT_FOUND,
+	INVALID_VALUE
+}
+alias GKeyFileError KeyFileError;
+
+/**
+ * Flags which influence the parsing.
+ * G_KEY_FILE_NONE
+ * No flags, default behaviour
+ * G_KEY_FILE_KEEP_COMMENTS
+ * Use this flag if you plan to write the (possibly modified)
+ */
+public enum GKeyFileFlags
+{
+	NONE = 0,
+	KEEP_COMMENTS = 1 << 0,
+	KEEP_TRANSLATIONS = 1 << 1
+}
+alias GKeyFileFlags KeyFileFlags;
+
+/**
+ * Specifies the type of traveral performed by g_tree_traverse(),
+ * g_node_traverse() and g_node_find().
+ * G_IN_ORDER
+ * vists a node's left child first, then the node itself, then its
+ */
+public enum GTraverseType
+{
+	IN_ORDER,
+	PRE_ORDER,
+	POST_ORDER,
+	LEVEL_ORDER
+}
+alias GTraverseType TraverseType;
+
+/**
+ * Specifies which nodes are visited during several of the tree functions,
+ * including g_node_traverse() and g_node_find().
+ * G_TRAVERSE_LEAVES
+ * only leaf nodes should be visited. This name has been
+ */
+public enum GTraverseFlags
+{
+	LEAVES = 1 << 0,
+	NON_LEAVES = 1 << 1,
+	ALL = LEAVES | NON_LEAVES,
+	MASK = 0x03,
+	LEAFS = LEAVES,
+	NON_LEAFS = NON_LEAVES
+}
+alias GTraverseFlags TraverseFlags;
+
+
+/**
+ * Main Gtk struct.
+ * The GMainLoop struct is an opaque data type
+ * representing the main event loop of a GLib or GTK+ application.
+ */
+public struct GMainLoop{}
+
+
+/**
+ * The GMainContext struct is an opaque data type
+ * representing a set of sources to be handled in a main loop.
+ */
+public struct GMainContext{}
+
+
+/**
+ * gint fd;
+ * the file descriptor to poll (or a HANDLE on Win32 platforms).
+ * gushort events;
+ * a bitwise combination of flags from GIOCondition, specifying which
+ * events should be polled for. Typically for reading from a file descriptor
+ * you would use G_IO_IN | G_IO_HUP | G_IO_ERR, and for writing you would use
+ * G_IO_OUT | G_IO_ERR.
+ * gushort revents;
+ * a bitwise combination of flags from GIOCondition, returned from the
+ * poll() function to indicate which events occurred.
+ */
+public struct GPollFD{}
+// #if defined (G_OS_WIN32) GLIB_SIZEOF_VOID_P == 8
+// glib-The-Main-Event-Loop.html
+// long fd;
+// glib-The-Main-Event-Loop.html
+// #else
+// glib-The-Main-Event-Loop.html
+// int fd;
+// glib-The-Main-Event-Loop.html
+// #endif
+// glib-The-Main-Event-Loop.html
+// ushort events;
+// glib-The-Main-Event-Loop.html
+// ushort revents;
+// glib-The-Main-Event-Loop.html
+
+
+/**
+ * The GSource struct is an opaque data type representing
+ * an event source.
+ */
+public struct GSource{}
+
+
+/**
+ * The GSourceFuncs struct contains a table of functions used to handle
+ * event sources in a generic manner.
+ * prepare
+ * Called before all the file descriptors are polled.
+ * If the source can determine that it is ready here (without waiting for the
+ * results of the poll() call) it should return TRUE.
+ * It can also return a timeout_ value which should be the maximum timeout
+ * (in milliseconds) which should be passed to the poll() call.
+ * The actual timeout used will be -1 if all sources returned -1, or it will
+ * be the minimum of all the timeout_ values returned which were >= 0.
+ * check
+ * Called after all the file descriptors are polled.
+ * The source should return TRUE if it is ready to be dispatched.
+ * Note that some time may have passed since the previous prepare function was
+ * called, so the source should be checked again here.
+ * dispatch
+ * Called to dispatch the event source, after it has returned TRUE in
+ * either its prepare or its check function. The dispatch function is
+ * passed in a callback function and data. The callback function may be
+ * NULL if the source was never connected to a callback using
+ * g_source_set_callback(). The dispatch function should call the
+ * callback function with user_data and whatever additional parameters are
+ * needed for this type of event source.
+ * finalize
+ * Called when the source is finalized.
+ * For idle sources, the prepare and check functions always return TRUE to
+ * indicate that the source is always ready to be processed.
+ * The prepare function also returns a timeout value of 0 to ensure that the
+ * poll() call doesn't block (since that would be time
+ * wasted which could have been spent running the idle function).
+ * For timeout sources, the prepare and check functions both return TRUE if the
+ * timeout interval has expired. The prepare function also returns a timeout
+ * value to ensure that the poll() call doesn't block too
+ * long and miss the next timeout.
+ * For file descriptor sources, the prepare function typically returns FALSE,
+ * since it must wait until poll() has been called before
+ * it knows whether any events need to be processed. It sets the returned
+ * timeout to -1 to indicate that it doesn't mind how long the
+ * poll() call blocks.
+ * In the check function, it tests the results of the poll()
+ * call to see if the required condition has been met, and returns TRUE if so.
+ */
+public struct GSourceFuncs{}
+// int (*prepare) (GSource *source,
+// glib-The-Main-Event-Loop.html
+// int *timeout);
+// glib-The-Main-Event-Loop.html
+// int (*check) (GSource *source);
+// glib-The-Main-Event-Loop.html
+// int (*dispatch) (GSource *source,
+// glib-The-Main-Event-Loop.html
+// GSourceFunc callback,
+// glib-The-Main-Event-Loop.html
+// void* userData);
+// glib-The-Main-Event-Loop.html
+// void (*finalize) (GSource *source); /+* Can be NULL +/
+// glib-The-Main-Event-Loop.html
+// /+* For use by gSourceSetClosure +/
+// glib-The-Main-Event-Loop.html
+// GSourceFunc closureCallback;
+// glib-The-Main-Event-Loop.html
+// GSourceDummyMarshal closureMarshal; /+* Really is of type GClosureMarshal +/
+// glib-The-Main-Event-Loop.html
+
+
+/**
+ * The GSourceCallbackFuncs struct contains
+ * functions for managing callback objects.
+ * ref()
+ * Called when a reference is added to the callback object.
+ * unref()
+ * Called when a reference to the callback object is dropped.
+ * get()
+ * Called to extract the callback function and data from the callback object.
+ */
+public struct GSourceCallbackFuncs{}
+// void (*doref) (void* cbData);
+// glib-The-Main-Event-Loop.html
+// void (*unref) (void* cbData);
+// glib-The-Main-Event-Loop.html
+// void (*get) (void* cbData,
+// glib-The-Main-Event-Loop.html
+// GSource *source,
+// glib-The-Main-Event-Loop.html
+// GSourceFunc *func,
+// glib-The-Main-Event-Loop.html
+// void* *data);
+// glib-The-Main-Event-Loop.html
+
+
+/**
+ * Main Gtk struct.
+ * The GThreadPool struct represents a thread pool. It has six public
+ * read-only members, but the underlying struct is bigger, so you must not copy
+ * this struct.
+ * GFuncfunc;
+ * the function to execute in the threads of this pool
+ * gpointeruser_data;
+ * the user data for the threads of this pool
+ * gbooleanexclusive;
+ * are all threads exclusive to this pool
+ */
+public struct GThreadPool{}
+// GFunc func;
+// glib-Thread-Pools.html
+// void* userData;
+// glib-Thread-Pools.html
+// int exclusive;
+// glib-Thread-Pools.html
+
+
+/**
+ * Main Gtk struct.
+ * The GAsyncQueue struct is an opaque data structure, which represents
+ * an asynchronous queue. It should only be accessed through the
+ * g_async_queue_* functions.
+ */
+public struct GAsyncQueue{}
+
+
+/**
+ * Main Gtk struct.
+ * The GModule struct is an opaque data structure to represent a
+ * Dynamically-Loaded Module.
+ * It should only be accessed via the following functions.
+ */
+public struct GModule{}
+
+
+/**
+ * A set of functions used to perform memory allocation. The same GMemVTable must
+ * be used for all allocations in the same program; a call to g_mem_set_vtable(),
+ * if it exists, should be prior to any use of GLib.
+ * malloc()
+ * function to use for allocating memory.
+ * realloc()
+ * function to use for reallocating memory.
+ * free()
+ * function to use to free memory.
+ * calloc()
+ * function to use for allocating zero-filled memory.
+ * try_malloc()
+ * function to use for allocating memory without a default error handler.
+ * try_realloc()
+ * function to use for reallocating memory without a default error handler.
+ */
+public struct GMemVTable{}
+// void* (*malloc) (uint nBytes);
+// glib-Memory-Allocation.html
+// void* (*realloc) (void* mem,
+// glib-Memory-Allocation.html
+// uint nBytes);
+// glib-Memory-Allocation.html
+// void (*free) (void* mem);
+// glib-Memory-Allocation.html
+// /+* optional; set to NULL if not used ! +/
+// glib-Memory-Allocation.html
+// void* (*calloc) (uint nBlocks,
+// glib-Memory-Allocation.html
+// uint nBlockBytes);
+// glib-Memory-Allocation.html
+// void* (*tryMalloc) (uint nBytes);
+// glib-Memory-Allocation.html
+// void* (*tryRealloc) (void* mem,
+// glib-Memory-Allocation.html
+// uint nBytes);
+// glib-Memory-Allocation.html
+
+
+/**
+ * Main Gtk struct.
+ * A data structure representing an IO Channel. The fields should be considered
+ * private and should only be accessed with the following functions.
+ */
+public struct GIOChannel{}
+
+
+/**
+ * A table of functions used to handle different types of GIOChannel
+ * in a generic way.
+ */
+public struct GIOFuncs{}
+// GIOStatus (*ioRead) (GIOChannel *channel,
+// glib-IO-Channels.html
+// char *buf,
+// glib-IO-Channels.html
+// uint count,
+// glib-IO-Channels.html
+// uint *bytesRead,
+// glib-IO-Channels.html
+// GError **err);
+// glib-IO-Channels.html
+// GIOStatus (*ioWrite) (GIOChannel *channel,
+// glib-IO-Channels.html
+// char *buf,
+// glib-IO-Channels.html
+// uint count,
+// glib-IO-Channels.html
+// uint *bytesWritten,
+// glib-IO-Channels.html
+// GError **err);
+// glib-IO-Channels.html
+// GIOStatus (*ioSeek) (GIOChannel *channel,
+// glib-IO-Channels.html
+// long offset,
+// glib-IO-Channels.html
+// GSeekType type,
+// glib-IO-Channels.html
+// GError **err);
+// glib-IO-Channels.html
+// GIOStatus (*ioClose) (GIOChannel *channel,
+// glib-IO-Channels.html
+// GError **err);
+// glib-IO-Channels.html
+// GSource* (*ioCreateWatch) (GIOChannel *channel,
+// glib-IO-Channels.html
+// GIOCondition condition);
+// glib-IO-Channels.html
+// void (*ioFree) (GIOChannel *channel);
+// glib-IO-Channels.html
+// GIOStatus (*ioSetFlags) (GIOChannel *channel,
+// glib-IO-Channels.html
+// GIOFlags flags,
+// glib-IO-Channels.html
+// GError **err);
+// glib-IO-Channels.html
+// GIOFlags (*ioGetFlags) (GIOChannel *channel);
+// glib-IO-Channels.html
+
+
+/**
+ * Main Gtk struct.
+ * The GError structure contains
+ * information about an error that has occurred.
+ * GQuarkdomain;
+ * error domain, e.g. G_FILE_ERROR.
+ * gintcode;
+ * error code, e.g. G_FILE_ERROR_NOENT.
+ * gchar*message;
+ * human-readable informative error message.
+ */
+public struct GError
+{
+	GQuark domain;
+	int code;
+	char *message;
+}
+
+
+/**
+ * The GIConv struct wraps an
+ * iconv() conversion descriptor. It contains private data
+ * and should only be accessed using the following functions.
+ */
+public struct GIConv{}
+
+
+/**
+ * Represents a precise time, with seconds and microseconds.
+ * Similar to the struct timeval returned by
+ * the gettimeofday() UNIX call.
+ * glongtv_sec;
+ * seconds.
+ * glongtv_usec;
+ * microseconds.
+ */
+public struct GTimeVal
+{
+	int tvSec;
+	int tvUsec;
+}
+
+
+/**
+ * Main Gtk struct.
+ * Represents a day between January 1, Year 1 and a few thousand years in
+ * the future. None of its members should be accessed directly. If the
+ * GDate is obtained from g_date_new(), it will
+ * be safe to mutate but invalid and thus not safe for calendrical computations.
+ * If it's declared on the stack, it will contain garbage so must be
+ * initialized with g_date_clear(). g_date_clear() makes the date invalid
+ * but sane. An invalid date doesn't represent a day, it's "empty." A
+ * date becomes valid after you set it to a Julian day or you set a day,
+ * month, and year.
+ * guintjulian_days:32;
+ * the Julian representation of the date
+ * guintjulian:1;
+ * this bit is set if julian_days is valid
+ * guintdmy:1;
+ * this is set if day, month and year are valid
+ * guintday:6;
+ * the day of the day-month-year representation of the date, as
+ */
+public struct GDate{}
+// uint julianDays : 32; /+* julian days representation - we use a
+// glib-Date-and-Time-Functions.html
+// * bitfield hoping that 64 bit platforms
+// glib-Date-and-Time-Functions.html
+// * will pack this whole struct inn one big
+// glib-Date-and-Time-Functions.html
+// * int
+// glib-Date-and-Time-Functions.html
+// +/
+// glib-Date-and-Time-Functions.html
+// uint julian : 1; /+* julian is valid +/
+// glib-Date-and-Time-Functions.html
+// uint dmy : 1; /+* dmy is valid +/
+// glib-Date-and-Time-Functions.html
+// /+* DMY representation +/
+// glib-Date-and-Time-Functions.html
+// uint day : 6;
+// glib-Date-and-Time-Functions.html
+// uint month : 4;
+// glib-Date-and-Time-Functions.html
+// uint year : 16;
+// glib-Date-and-Time-Functions.html
+
+
+/**
+ * Main Gtk struct.
+ * The GRand struct is an opaque data structure. It should only be
+ * accessed through the g_rand_* functions.
+ */
+public struct GRand{}
+
+
+/**
+ * Associates a string with a bit flag.
+ * Used in g_parse_debug_string().
+ * gchar*key;
+ * the string
+ * guintvalue;
+ * the flag
+ */
+public struct GDebugKey
+{
+	char *key;
+	uint value;
+}
+
+
+/**
+ * Main Gtk struct.
+ * The data structure representing a lexical scanner.
+ * You should set input_name after creating
+ * the scanner, since it is used by the default message handler when
+ * displaying warnings and errors. If you are scanning a file, the file
+ * name would be a good choice.
+ * The user_data and
+ * max_parse_errors fields are not used.
+ * If you need to associate extra data with the scanner you can place them here.
+ * If you want to use your own message handler you can set the
+ * msg_handler field. The type of the message
+ * handler function is declared by GScannerMsgFunc.
+ * gpointeruser_data;
+ * guintmax_parse_errors;
+ * guintparse_errors;
+ * constgchar*input_name;
+ * GData*qdata;
+ * GScannerConfig*config;
+ * GTokenTypetoken;
+ */
+public struct GScanner{}
+// /+* unused fields +/
+// glib-Lexical-Scanner.html
+// void* userData;
+// glib-Lexical-Scanner.html
+// uint maxParseErrors;
+// glib-Lexical-Scanner.html
+// /+* _Error() increments this field +/
+// glib-Lexical-Scanner.html
+// uint parseErrors;
+// glib-Lexical-Scanner.html
+// /+* name of input stream, featured by the defaulx message handler +/
+// glib-Lexical-Scanner.html
+// char *inputName;
+// glib-Lexical-Scanner.html
+// /+* quarked data +/
+// glib-Lexical-Scanner.html
+// GData *qdata;
+// glib-Lexical-Scanner.html
+// /+* link into the scanner configuration +/
+// glib-Lexical-Scanner.html
+// GScannerConfig *config;
+// glib-Lexical-Scanner.html
+// /+* fields filled inn after _GetNextToken() +/
+// glib-Lexical-Scanner.html
+// GTokenType token;
+// glib-Lexical-Scanner.html
+// GTokenValue value;
+// glib-Lexical-Scanner.html
+// uint line;
+// glib-Lexical-Scanner.html
+// uint position;
+// glib-Lexical-Scanner.html
+// /+* fields filled inn after _PeekNextToken() +/
+// glib-Lexical-Scanner.html
+// GTokenType nextToken;
+// glib-Lexical-Scanner.html
+// GTokenValue nextValue;
+// glib-Lexical-Scanner.html
+// uint nextLine;
+// glib-Lexical-Scanner.html
+// uint nextPosition;
+// glib-Lexical-Scanner.html
+// /+* to be considered private +/
+// glib-Lexical-Scanner.html
+// GHashTable *symbolTable;
+// glib-Lexical-Scanner.html
+// int inputFd;
+// glib-Lexical-Scanner.html
+// char *text;
+// glib-Lexical-Scanner.html
+// char *textEnd;
+// glib-Lexical-Scanner.html
+// char *buffer;
+// glib-Lexical-Scanner.html
+// uint scopeId;
+// glib-Lexical-Scanner.html
+// /+* handler funct for _Warn and _Error +/
+// glib-Lexical-Scanner.html
+// GScannerMsgFunc msgHandler;
+// glib-Lexical-Scanner.html
+
+
+/**
+ * Specifies the GScanner parser configuration. Most settings can be changed during
+ * the parsing phase and will affect the lexical parsing of the next unpeeked token.
+ * cset_skip_characters specifies which characters
+ * should be skipped by the scanner (the default is the whitespace characters:
+ * space, tab, carriage-return and line-feed).
+ * cset_identifier_first specifies the characters
+ * which can start identifiers (the default is G_CSET_a_2_z, "_", and
+ * G_CSET_A_2_Z).
+ * cset_identifier_nth specifies the characters
+ * which can be used in identifiers, after the first character (the default
+ * is G_CSET_a_2_z, "_0123456789", G_CSET_A_2_Z, G_CSET_LATINS,
+ * G_CSET_LATINC).
+ * cpair_comment_single specifies the characters
+ * at the start and end of single-line comments. The default is "#\n" which
+ * means that single-line comments start with a '#' and continue until a '\n'
+ * (end of line).
+ * case_sensitive specifies if symbols are
+ * case sensitive (the default is FALSE).
+ * skip_comment_multi specifies if multi-line
+ * comments are skipped and not returned as tokens (the default is TRUE).
+ * skip_comment_single specifies if single-line
+ * comments are skipped and not returned as tokens (the default is TRUE).
+ * scan_comment_multi specifies if multi-line
+ * comments are recognized (the default is TRUE).
+ * scan_identifier specifies if identifiers
+ * are recognized (the default is TRUE).
+ * scan_identifier_1char specifies if single-character
+ * identifiers are recognized (the default is FALSE).
+ * scan_identifier_NULL specifies if
+ * NULL is reported as G_TOKEN_IDENTIFIER_NULL.
+ * (the default is FALSE).
+ * scan_symbols specifies if symbols are
+ * recognized (the default is TRUE).
+ * scan_binary specifies if binary numbers
+ * are recognized (the default is FALSE).
+ * scan_octal specifies if octal numbers
+ * are recognized (the default is TRUE).
+ * scan_float specifies if floating point numbers
+ * are recognized (the default is TRUE).
+ * scan_hex specifies if hexadecimal numbers
+ * are recognized (the default is TRUE).
+ * scan_hex_dollar specifies if '$' is recognized
+ * as a prefix for hexadecimal numbers (the default is FALSE).
+ * scan_string_sq specifies if strings can be
+ * enclosed in single quotes (the default is TRUE).
+ * scan_string_dq specifies if strings can be
+ * enclosed in double quotes (the default is TRUE).
+ * numbers_2_int specifies if binary, octal and
+ * hexadecimal numbers are reported as G_TOKEN_INT (the default is TRUE).
+ * int_2_float specifies if all numbers are
+ * reported as G_TOKEN_FLOAT (the default is FALSE).
+ * identifier_2_string specifies if identifiers
+ * are reported as strings (the default is FALSE).
+ * char_2_token specifies if characters
+ * are reported by setting token = ch or as G_TOKEN_CHAR
+ * (the default is TRUE).
+ * symbol_2_token specifies if symbols
+ * are reported by setting token = v_symbol or as
+ * G_TOKEN_SYMBOL (the default is FALSE).
+ * scope_0_fallback specifies if a symbol
+ * is searched for in the default scope in addition to the current scope
+ * (the default is FALSE).
+ */
+public struct GScannerConfig{}
+// /+* Character sets
+// glib-Lexical-Scanner.html
+// +/
+// glib-Lexical-Scanner.html
+// char *csetSkipCharacters; /+* default: " \t\n" +/
+// glib-Lexical-Scanner.html
+// char *csetIdentifierFirst;
+// glib-Lexical-Scanner.html
+// char *csetIdentifierNth;
+// glib-Lexical-Scanner.html
+// char *cpairCommentSingle; /+* default: "#\n" +/
+// glib-Lexical-Scanner.html
+// /+* Should symbol lookup work case sensitive?
+// glib-Lexical-Scanner.html
+// +/
+// glib-Lexical-Scanner.html
+// uint caseSensitive : 1;
+// glib-Lexical-Scanner.html
+// /+* Boolean values to be adjusted "on the fly"
+// glib-Lexical-Scanner.html
+// * to configure scanning behaviour.
+// glib-Lexical-Scanner.html
+// +/
+// glib-Lexical-Scanner.html
+// uint skipCommentMulti : 1; /+* C like comment +/
+// glib-Lexical-Scanner.html
+// uint skipCommentSingle : 1; /+* single line comment +/
+// glib-Lexical-Scanner.html
+// uint scanCommentMulti : 1; /+* scan multi line comments? +/
+// glib-Lexical-Scanner.html
+// uint scanIdentifier : 1;
+// glib-Lexical-Scanner.html
+// uint scanIdentifier1char : 1;
+// glib-Lexical-Scanner.html
+// uint scanIdentifierNULL : 1;
+// glib-Lexical-Scanner.html
+// uint scanSymbols : 1;
+// glib-Lexical-Scanner.html
+// uint scanBinary : 1;
+// glib-Lexical-Scanner.html
+// uint scanOctal : 1;
+// glib-Lexical-Scanner.html
+// uint scanFloat : 1;
+// glib-Lexical-Scanner.html
+// uint scanHex : 1; /+* `0x0ff0' +/
+// glib-Lexical-Scanner.html
+// uint scanHexDollar : 1; /+* `$0ff0' +/
+// glib-Lexical-Scanner.html
+// uint scanStringSq : 1; /+* string: 'anything' +/
+// glib-Lexical-Scanner.html
+// uint scanStringDq : 1; /+* string: "\\-escapes!\n" +/
+// glib-Lexical-Scanner.html
+// uint numbers2_Int : 1; /+* bin, octal, hex => int +/
+// glib-Lexical-Scanner.html
+// uint int2_Float : 1; /+* int => G_TOKEN_FLOAT? +/
+// glib-Lexical-Scanner.html
+// uint identifier2_String : 1;
+// glib-Lexical-Scanner.html
+// uint char2_Token : 1; /+* return G_TOKEN_CHAR? +/
+// glib-Lexical-Scanner.html
+// uint symbol2_Token : 1;
+// glib-Lexical-Scanner.html
+// uint scope0_Fallback : 1; /+* try scope 0 on lookups? +/
+// glib-Lexical-Scanner.html
+// uint storeInt64 : 1; /+* use value.vInt64 rather than vInt +/
+// glib-Lexical-Scanner.html
+// uint paddingDummy;
+// glib-Lexical-Scanner.html
+
+
+/**
+ * Main Gtk struct.
+ * The data structure used for automatic completion.
+ * GList*items;
+ * list of target items (strings or data structures).
+ * GCompletionFuncfunc;
+ * function which is called to get the string associated with a target
+ */
+public struct GCompletion{}
+// GList* items;
+// glib-Automatic-String-Completion.html
+// GCompletionFunc func;
+// glib-Automatic-String-Completion.html
+// char* prefix;
+// glib-Automatic-String-Completion.html
+// GList* cache;
+// glib-Automatic-String-Completion.html
+// GCompletionStrncmpFunc strncmpFunc;
+// glib-Automatic-String-Completion.html
+
+
+/**
+ * Main Gtk struct.
+ * Opaque datatype that records a start time.
+ */
+public struct GTimer{}
+
+
+/**
+ * An opaque structure representing an opened directory.
+ */
+public struct GDir{}
+
+
+/**
+ * The GMappedFile represents a file mapping created with
+ * g_mapped_file_new(). It has only private members and should
+ * not be accessed directly.
+ */
+public struct GMappedFile{}
+
+
+/**
+ * Main Gtk struct.
+ * A GOptionContext struct defines which options
+ * are accepted by the commandline option parser. The struct has only private
+ * fields and should not be directly accessed.
+ */
+public struct GOptionContext{}
+
+
+/**
+ * A GOptionEntry defines a single option.
+ * To have an effect, they must be added to a GOptionGroup with
+ * g_option_context_add_main_entries() or g_option_group_add_entries().
+ * constgchar*long_name;
+ * The long name of an option can be used to specify it
+ */
+public struct GOptionEntry{}
+// char *longName;
+// glib-Commandline-option-parser.html
+// char shortName;
+// glib-Commandline-option-parser.html
+// int flags;
+// glib-Commandline-option-parser.html
+// GOptionArg arg;
+// glib-Commandline-option-parser.html
+// void* argData;
+// glib-Commandline-option-parser.html
+// char *description;
+// glib-Commandline-option-parser.html
+// char *argDescription;
+// glib-Commandline-option-parser.html
+
+
+/**
+ * A GOptionGroup struct defines the options in a single
+ * group. The struct has only private fields and should not be directly accessed.
+ * All options in a group share the same translation function. Libaries which
+ * need to parse commandline options are expected to provide a function for
+ * getting a GOptionGroup holding their options, which
+ * the application can then add to its GOptionContext.
+ */
+public struct GOptionGroup{}
+
+
+/**
+ * Main Gtk struct.
+ * A GPatternSpec is the 'compiled' form of a pattern.
+ * This structure is opaque and its fields cannot be accessed directly.
+ */
+public struct GPatternSpec{}
+
+
+/**
+ * Main Gtk struct.
+ * A parse context is used to parse a stream of bytes that you expect to
+ * contain marked-up text. See g_markup_parse_context_new(),
+ * GMarkupParser, and so on for more details.
+ */
+public struct GMarkupParseContext{}
+
+
+/**
+ * Any of the fields in GMarkupParser can be NULL, in which case they
+ * will be ignored. Except for the error function, any of these
+ * callbacks can set an error; in particular the
+ * G_MARKUP_ERROR_UNKNOWN_ELEMENT, G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE,
+ * and G_MARKUP_ERROR_INVALID_CONTENT errors are intended to be set
+ * from these callbacks. If you set an error from a callback,
+ * g_markup_parse_context_parse() will report that error back to its caller.
+ * start_element()
+ * Callback to invoke when the opening tag of an element
+ */
+public struct GMarkupParser{}
+// /+* Called for open tags <foo bar="baz"> +/
+// glib-Simple-XML-Subset-Parser.html
+// void (*startElement) (GMarkupParseContext *context,
+// glib-Simple-XML-Subset-Parser.html
+// char *elementName,
+// glib-Simple-XML-Subset-Parser.html
+// char **attributeNames,
+// glib-Simple-XML-Subset-Parser.html
+// char **attributeValues,
+// glib-Simple-XML-Subset-Parser.html
+// void* userData,
+// glib-Simple-XML-Subset-Parser.html
+// GError **error);
+// glib-Simple-XML-Subset-Parser.html
+// /+* Called for close tags </foo> +/
+// glib-Simple-XML-Subset-Parser.html
+// void (*endElement) (GMarkupParseContext *context,
+// glib-Simple-XML-Subset-Parser.html
+// char *elementName,
+// glib-Simple-XML-Subset-Parser.html
+// void* userData,
+// glib-Simple-XML-Subset-Parser.html
+// GError **error);
+// glib-Simple-XML-Subset-Parser.html
+// /+* Called for character data +/
+// glib-Simple-XML-Subset-Parser.html
+// /+* text is not nul-terminated +/
+// glib-Simple-XML-Subset-Parser.html
+// void (*text) (GMarkupParseContext *context,
+// glib-Simple-XML-Subset-Parser.html
+// char *text,
+// glib-Simple-XML-Subset-Parser.html
+// uint textLen,
+// glib-Simple-XML-Subset-Parser.html
+// void* userData,
+// glib-Simple-XML-Subset-Parser.html
+// GError **error);
+// glib-Simple-XML-Subset-Parser.html
+// /+* Called for strings that should be re-saved verbatim inn this same
+// glib-Simple-XML-Subset-Parser.html
+// * position, but are not otherwise interpretable. At the moment
+// glib-Simple-XML-Subset-Parser.html
+// * this includes comments and processing instructions.
+// glib-Simple-XML-Subset-Parser.html
+// +/
+// glib-Simple-XML-Subset-Parser.html
+// /+* text is not nul-terminated. +/
+// glib-Simple-XML-Subset-Parser.html
+// void (*passthrough) (GMarkupParseContext *context,
+// glib-Simple-XML-Subset-Parser.html
+// char *passthroughText,
+// glib-Simple-XML-Subset-Parser.html
+// uint textLen,
+// glib-Simple-XML-Subset-Parser.html
+// void* userData,
+// glib-Simple-XML-Subset-Parser.html
+// GError **error);
+// glib-Simple-XML-Subset-Parser.html
+// /+* Called on error, including one set by other
+// glib-Simple-XML-Subset-Parser.html
+// * methods inn the vtable. The GError should not be freed.
+// glib-Simple-XML-Subset-Parser.html
+// +/
+// glib-Simple-XML-Subset-Parser.html
+// void (*error) (GMarkupParseContext *context,
+// glib-Simple-XML-Subset-Parser.html
+// GError *error,
+// glib-Simple-XML-Subset-Parser.html
+// void* userData);
+// glib-Simple-XML-Subset-Parser.html
+
+
+/**
+ * Main Gtk struct.
+ * The GKeyFile struct contains only private fields
+ * and should not be used directly.
+ */
+public struct GKeyFile{}
+
+
+/**
+ * Main Gtk struct.
+ * Warning
+ * GMemChunk is deprecated and should not be used in newly-written code.
+ * The GMemChunk struct is an opaque data structure representing a memory
+ * chunk. It should be accessed only through the use of the following functions.
+ */
+public struct GMemChunk{}
+
+
+/**
+ * Main Gtk struct.
+ * The GList struct is used for each element in a doubly-linked list.
+ * gpointerdata;
+ * holds the element's data, which can be a pointer to any kind of data,
+ */
+public struct GList{}
+// void* data;
+// glib-Doubly-Linked-Lists.html
+// GList *next;
+// glib-Doubly-Linked-Lists.html
+// GList *prev;
+// glib-Doubly-Linked-Lists.html
+
+
+/**
+ * Main Gtk struct.
+ * The GSList struct is used for each element in the singly-linked list.
+ * gpointerdata;
+ * holds the element's data, which can be a pointer to any kind of data,
+ */
+public struct GSList{}
+// void* data;
+// glib-Singly-Linked-Lists.html
+// GSList *next;
+// glib-Singly-Linked-Lists.html
+
+
+/**
+ * Main Gtk struct.
+ * Contains the public fields of a Queue.
+ * GList*head;
+ * a pointer to the first element of the queue.
+ * GList*tail;
+ * a pointer to the last element of the queue.
+ * guintlength;
+ * the number of elements in the queue.
+ */
+public struct GQueue{}
+// GList *head;
+// glib-Double-ended-Queues.html
+// GList *tail;
+// glib-Double-ended-Queues.html
+// uint length;
+// glib-Double-ended-Queues.html
+
+
+/**
+ * Main Gtk struct.
+ * Each piece of memory that is pushed onto the stack
+ * is cast to a GTrashStack*.
+ * GTrashStack*next;
+ * pointer to the previous element of the stack,
+ * gets stored in the first sizeof (gpointer)
+ * bytes of the element.
+ */
+public struct GTrashStack{}
+// GTrashStack *next;
+// glib-Trash-Stacks.html
+
+
+/**
+ * Main Gtk struct.
+ * The GHashTable struct is an opaque data structure to represent a
+ * Hash Table.
+ * It should only be accessed via the following functions.
+ */
+public struct GHashTable{}
+
+
+/**
+ * Main Gtk struct.
+ * The GString struct contains the public fields of a GString.
+ * gchar*str;
+ * points to the character data. It may move as text is added.
+ */
+public struct GString
+{
+	char *str;
+	uint len;
+	uint allocatedLen;
+}
+
+
+/**
+ * Main Gtk struct.
+ * An opaque data structure representing String Chunks.
+ * It should only be accessed by using the following functions.
+ */
+public struct GStringChunk{}
+
+
+/**
+ * Main Gtk struct.
+ * Contains the public fields of an Array.
+ * gchar*data;
+ * a pointer to the element data. The data may be moved as elements are
+ * added to the GArray.
+ * guintlen;
+ * the number of elements in the GArray.
+ */
+public struct GArray
+{
+	char *data;
+	uint len;
+}
+
+
+/**
+ * Main Gtk struct.
+ * Contains the public fields of a pointer array.
+ * gpointer*pdata;
+ * points to the array of pointers, which may be moved when the array grows.
+ * guintlen;
+ * number of pointers in the array.
+ */
+public struct GPtrArray
+{
+	void* *pdata;
+	uint len;
+}
+
+
+/**
+ * Main Gtk struct.
+ * The GByteArray struct allows access to the public fields of a GByteArray.
+ * guint8*data;
+ * a pointer to the element data. The data may be moved as elements are
+ * added to the GByteArray.
+ * guintlen;
+ * the number of elements in the GByteArray.
+ */
+public struct GByteArray
+{
+	byte *data;
+	uint len;
+}
+
+
+/**
+ * Main Gtk struct.
+ * The GTree struct is an opaque data structure representing a
+ * Balanced Binary Tree.
+ * It should be accessed only by using the following functions.
+ */
+public struct GTree{}
+
+
+/**
+ * Main Gtk struct.
+ * The GNode struct represents one node in a
+ * N-ary Tree.
+ * fields
+ * gpointerdata;
+ * contains the actual data of the node.
+ * GNode*next;
+ * points to the node's next sibling (a sibling is another
+ */
+public struct GNode{}
+// void* data;
+// glib-N-ary-Trees.html
+// GNode *next;
+// glib-N-ary-Trees.html
+// GNode *prev;
+// glib-N-ary-Trees.html
+// GNode *parent;
+// glib-N-ary-Trees.html
+// GNode *children;
+// glib-N-ary-Trees.html
+
+
+/**
+ * Main Gtk struct.
+ * The GData struct is an opaque data structure to represent a
+ * Keyed Data List.
+ * It should only be accessed via the following functions.
+ */
+public struct GData{}
+
+
+/**
+ * Main Gtk struct.
+ * The GRelation struct is an opaque data structure to represent a
+ * Relation.
+ * It should only be accessed via the following functions.
+ */
+public struct GRelation{}
+
+
+/**
+ * The GTuples struct is used to return records (or tuples) from the
+ * GRelation by g_relation_select().
+ * It only contains one public member - the number of records that matched.
+ * To access the matched records, you must use g_tuples_index().
+ * guintlen;
+ * the number of records that matched.
+ */
+public struct GTuples
+{
+	uint len;
+}
+
+
+/**
+ * Main Gtk struct.
+ * The GCache struct is an opaque data structure containing information about
+ * a GCache. It should only be accessed via the following functions.
+ */
+public struct GCache{}
+
+
+/**
+ * Main Gtk struct.
+ * Warning
+ * GAllocator is deprecated and should not be used in newly-written code.
+ * The GAllocator struct contains private data. and
+ * should only be accessed using the following functions.
+ */
+public struct GAllocator{}
+
+
+/*
+ * Checks the version of the GLib library.
+ * Returns TRUE if the version of the GLib header files is the same
+ * as or newer than the passed-in version.
+ * Example1.Checking the version of the GLib library
+ *  if (!GLIB_CHECK_VERSION (1, 2, 0))
+ *  g_error ("GLib version 1.2.0 or above is needed");
+ * major:
+ * the major version number.
+ * minor:
+ * the minor version number.
+ * micro:
+ * the micro version number.
+ */
+// TODO
+// #define GLIB_CHECK_VERSION(major,minor,micro)
+
+/*
+ * Warning
+ * g_main_new has been deprecated since version 2.2 and should not be used in newly-written code. Use g_main_loop_new() instead.
+ * Creates a new GMainLoop for the default main loop.
+ * is_running:
+ * set to TRUE to indicate that the loop is running. This is not
+ * very important since calling g_main_run() will set this to TRUE anyway.
+ * Returns:
+ * a new GMainLoop.
+ */
+// TODO
+// #define g_main_new(is_running)
+
+/*
+ * Warning
+ * g_main_destroy has been deprecated since version 2.2 and should not be used in newly-written code. Use g_main_loop_unref() instead.
+ * Frees the memory allocated for the GMainLoop.
+ * loop:
+ * a GMainLoop.
+ */
+// TODO
+// #define g_main_destroy(loop)
+
+/*
+ * Warning
+ * g_main_run has been deprecated since version 2.2 and should not be used in newly-written code. Use g_main_loop_run() instead.
+ * Runs a main loop until it stops running.
+ * loop:
+ * a GMainLoop.
+ */
+// TODO
+// #define g_main_run(loop)
+
+/*
+ * Warning
+ * g_main_quit has been deprecated since version 2.2 and should not be used in newly-written code. Use g_main_loop_quit() instead.
+ * Stops the GMainLoop. If g_main_run() was called to run the GMainLoop,
+ * it will now return.
+ * loop:
+ * a GMainLoop.
+ */
+// TODO
+// #define g_main_quit(loop)
+
+/*
+ * Warning
+ * g_main_is_running has been deprecated since version 2.2 and should not be used in newly-written code. USe g_main_loop_is_running() instead.
+ * Checks if the main loop is running.
+ * loop:
+ * a GMainLoop.
+ * Returns:
+ * TRUE if the main loop is running.
+ */
+// TODO
+// #define g_main_is_running(loop)
+
+/*
+ * Warning
+ * g_main_iteration has been deprecated since version 2.2 and should not be used in newly-written code. Use g_main_context_iteration() instead.
+ * Runs a single iteration for the default GMainContext.
+ * may_block:
+ * set to TRUE if it should block (i.e. wait) until an event source
+ * becomes ready. It will return after an event source has been processed.
+ * If set to FALSE it will return immediately if no event source is ready to be
+ * processed.
+ * Returns:
+ * TRUE if more events are pending.
+ */
+// TODO
+// #define g_main_iteration(may_block)
+
+/*
+ * Warning
+ * g_main_pending has been deprecated since version 2.2 and should not be used in newly-written code. Use g_main_context_pending() instead.
+ * Checks if any events are pending for the default GMainContext
+ * (i.e. ready to be processed).
+ * Returns:
+ * TRUE if any events are pending.
+ */
+// TODO
+// #define g_main_pending()
+
+/*
+ * Warning
+ * g_main_set_poll_func has been deprecated since version 2.2 and should not be used in newly-written code. Use g_main_context_set_poll_func() instead.
+ * Sets the function to use for the handle polling of file descriptors
+ * for the default main context.
+ * func:
+ * the function to call to poll all file descriptors.
+ */
+// TODO
+// #define g_main_set_poll_func(func)
+
+/*
+ * Allocates n_structs elements of type struct_type.
+ * The returned pointer is cast to a pointer to the given type.
+ * If n_structs is 0 it returns NULL.
+ * Since the returned pointer is already casted to the right type,
+ * it is normally unnecessary to cast it explicitly, and doing
+ * so might hide memory allocation errors.
+ * struct_type:
+ * the type of the elements to allocate.
+ * n_structs:
+ * the number of elements to allocate.
+ * Returns:
+ * a pointer to the allocated memory, cast to a pointer to struct_type.
+ */
+// TODO
+// #define g_new(struct_type, n_structs)
+
+/*
+ * Allocates n_structs elements of type struct_type, initialized to 0's.
+ * The returned pointer is cast to a pointer to the given type.
+ * If n_structs is 0 it returns NULL.
+ * Since the returned pointer is already casted to the right type,
+ * it is normally unnecessary to cast it explicitly, and doing
+ * so might hide memory allocation errors.
+ * struct_type:
+ * the type of the elements to allocate.
+ * n_structs:
+ * the number of elements to allocate.
+ * Returns:
+ * a pointer to the allocated memory, cast to a pointer to struct_type.
+ */
+// TODO
+// #define g_new0(struct_type, n_structs)
+
+/*
+ * Reallocates the memory pointed to by mem, so that it now has space for
+ * n_structs elements of type struct_type. It returns the new address of
+ * the memory, which may have been moved.
+ * struct_type:
+ * the type of the elements to allocate.
+ * mem:
+ * the currently allocated memory.
+ * n_structs:
+ * the number of elements to allocate.
+ * Returns:
+ * a pointer to the new allocated memory, cast to a pointer to struct_type.
+ */
+// TODO
+// #define g_renew(struct_type, mem, n_structs)
+
+/*
+ * Attempts to allocate n_structs elements of type struct_type, and returns
+ * NULL on failure. Contrast with g_new(), which aborts the program on failure.
+ * The returned pointer is cast to a pointer to the given type.
+ * If n_structs is 0 it returns NULL.
+ * struct_type:
+ * the type of the elements to allocate.
+ * n_structs:
+ * the number of elements to allocate.
+ * Returns:
+ * a pointer to the allocated memory, cast to a pointer to struct_type.
+ * Since 2.8
+ */
+// TODO
+// #define g_try_new(struct_type, n_structs)
+
+/*
+ * Attempts to allocate n_structs elements of type struct_type, initialized
+ * to 0's, and returns NULL on failure. Contrast with g_new0(), which aborts
+ * the program on failure.
+ * The returned pointer is cast to a pointer to the given type.
+ * If n_counts is 0 it returns NULL.
+ * struct_type:
+ * the type of the elements to allocate.
+ * n_structs:
+ * the number of elements to allocate.
+ * Returns:
+ * a pointer to the allocated memory, cast to a pointer to struct_type.
+ * Since 2.8
+ */
+// TODO
+// #define g_try_new0(struct_type, n_structs)
+
+/*
+ * Attempts to reallocate the memory pointed to by mem, so that it now has
+ * space for n_structs elements of type struct_type, and returns NULL on
+ * failure. Contrast with g_renew(), which aborts the program on failure.
+ * It returns the new address of the memory, which may have been moved.
+ * struct_type:
+ * the type of the elements to allocate.
+ * mem:
+ * the currently allocated memory.
+ * n_structs:
+ * the number of elements to allocate.
+ * Returns:
+ * a pointer to the new allocated memory, cast to a pointer to struct_type.
+ * Since 2.8
+ */
+// TODO
+// #define g_try_renew(struct_type, mem, n_structs)
+
+/*
+ * Allocates size bytes on the stack; these bytes will be freed when the current
+ * stack frame is cleaned up. This macro essentially just wraps the alloca()
+ * function present on most UNIX variants.
+ * Thus it provides the same advantages and pitfalls as alloca():
+ *  + alloca() is very fast, as on most systems it's implemented by just adjusting
+ *  the stack pointer register.
+ *  + It doesn't cause any memory fragmentation, within its scope, separate alloca()
+ *  blocks just build up and are released together at function end.
+ *  - Allocation sizes have to fit into the current stack frame. For instance in a
+ *  threaded environment on Linux, the per-thread stack size is limited to 2 Megabytes,
+ *  so be sparse with alloca() uses.
+ *  - Allocation failure due to insufficient stack space is not indicated with a NULL
+ *  return like e.g. with malloc(). Instead, most systems probably handle it the same
+ *  way as out of stack space situations from infinite function recursion, i.e.
+ *  with a segmentation fault.
+ *  - Special care has to be taken when mixing alloca() with GNU C variable sized arrays.
+ *  Stack space allocated with alloca() in the same scope as a variable sized array
+ *  will be freed together with the variable sized array upon exit of that scope, and
+ *  not upon exit of the enclosing function scope.
+ * size:
+ *  number of bytes to allocate.
+ * Returns:
+ * space for size bytes, allocated on the stack
+ */
+// TODO
+// #define g_alloca(size)
+
+/*
+ * Wraps g_alloca() in a more typesafe manner.
+ * struct_type:
+ * Type of memory chunks to be allocated
+ * n_structs:
+ *  Number of chunks to be allocated
+ * Returns:
+ *  Pointer to stack space for n_structs chunks of type struct_type
+ */
+// TODO
+// #define g_newa(struct_type, n_structs)
+
+/*
+ * Copies a block of memory len bytes long, from src to dest.
+ * The source and destination areas may overlap.
+ * In order to use this function, you must include
+ * string.h yourself, because this macro will
+ * typically simply resolve to memmove() and GLib does not include
+ * string.h for you.
+ * dest:
+ *  the destination address to copy the bytes to.
+ * src:
+ *  the source address to copy the bytes from.
+ * len:
+ *  the number of bytes to copy.
+ */
+// TODO
+// #define g_memmove(dest,src,len)
+
+/*
+ * Returns from the current function if the expression is not true.
+ * If the expression evaluates to FALSE, a critical message is logged and
+ * the function returns. This can only be used in functions which do not return
+ * a value.
+ * expr:
+ * the expression to check.
+ */
+// TODO
+// #define g_return_if_fail(expr)
+
+/*
+ * Returns from the current function, returning the value val, if the expression
+ * is not true.
+ * If the expression evaluates to FALSE, a critical message is logged and
+ * val is returned.
+ * expr:
+ * the expression to check.
+ * val:
+ * the value to return from the current function if the expression is not
+ * true.
+ */
+// TODO
+// #define g_return_val_if_fail(expr,val)
+
+/*
+ * Logs a critical message and returns from the current function.
+ * This can only be used in functions which do not return a value.
+ */
+// TODO
+// #define g_return_if_reached()
+
+/*
+ * Logs a critical message and returns val.
+ * val:
+ * the value to return from the current function.
+ */
+// TODO
+// #define g_return_val_if_reached(val)
+
+/*
+ * Debugging macro to terminate the application if the assertion fails.
+ * If the assertion fails (i.e. the expression is not true), an error message
+ * is logged and the application is terminated.
+ * The macro can be turned off in final releases of code by defining
+ * G_DISABLE_ASSERT when compiling the application.
+ * expr:
+ * the expression to check.
+ */
+// TODO
+// #define g_assert(expr)
+
+/*
+ * Debugging macro to terminate the application if it is ever reached.
+ * If it is reached, an error message is logged and the application is terminated.
+ * The macro can be turned off in final releases of code by defining
+ * G_DISABLE_ASSERT when compiling the application.
+ */
+// TODO
+// #define g_assert_not_reached()
+
+/*
+ * Inserts a breakpoint instruction into the code. On x86 and alpha systems
+ * this is implemented as a soft interrupt and on other architectures it raises
+ * a SIGTRAP signal.
+ */
+// TODO
+// #define G_BREAKPOINT()
+
+/*
+ * A convenience function/macro to log a normal message.
+ * ...:
+ * format string, followed by parameters to insert into the format string (as with printf())
+ */
+// TODO
+// #define g_message(...)
+
+/*
+ * A convenience function/macro to log a warning message.
+ * You can make warnings fatal at runtime by setting the G_DEBUG environment
+ * variable (see Running GLib Applications).
+ * ...:
+ * format string, followed by parameters to insert into the format string (as with printf())
+ */
+// TODO
+// #define g_warning(...)
+
+/*
+ * Logs a "critical warning" (G_LOG_LEVEL_CRITICAL). It's more or less
+ * application-defined what constitutes a critical vs. a regular
+ * warning. You could call g_log_set_always_fatal() to make critical
+ * warnings exit the program, then use g_critical() for fatal errors, for
+ * example.
+ * You can also make critical warnings fatal at runtime by setting
+ * the G_DEBUG environment variable (see
+ * Running GLib Applications).
+ * ...:
+ * format string, followed by parameters to insert into the format string (as with printf())
+ */
+// TODO
+// #define g_critical(...)
+
+/*
+ * A convenience function/macro to log an error message.
+ * Error messages are always fatal, resulting in a call to
+ * abort() to terminate the application.
+ * This function will result in a core dump; don't use it for errors you
+ * expect. Using this function indicates a bug in your program, i.e. an
+ * assertion failure.
+ * ...:
+ * format string, followed by parameters to insert into the format string (as with printf())
+ */
+// TODO
+// #define g_error(...)
+
+/*
+ * A convenience function/macro to log a debug message.
+ * ...:
+ * format string, followed by parameters to insert into the format string (as with printf())
+ * Since 2.6
+ */
+// TODO
+// #define g_debug(...)
+
+/*
+ * Removes leading and trailing whitespace from a string. See g_strchomp() and
+ * g_strchug().
+ * string:
+ * a string to remove the leading and trailing whitespace from.
+ */
+// TODO
+// #define g_strstrip( string )
+
+/*
+ * Skips to the next character in a UTF-8 string. The string must be
+ * valid; this macro is as fast as possible, and has no error-checking.
+ * You would use this macro to iterate over a string character by
+ * character. The macro returns the start of the next UTF-8 character.
+ * Before using this macro, use g_utf8_validate() to validate strings
+ * that may contain invalid UTF-8.
+ * p:
+ * Pointer to the start of a valid UTF-8 character.
+ */
+// TODO
+// #define g_utf8_next_char(p)
+
+/*
+ * Marks a string for translation, gets replaced with the translated string
+ * at runtime.
+ * String:
+ * the string to be translated
+ * Since 2.4
+ */
+// TODO
+// #define _(String)
+
+/*
+ * Like _(), but applies g_strip_context() to the translation. This has the
+ * advantage that the string can be adorned with a prefix to guarantee
+ * uniqueness and provide context to the translator.
+ * One use case given in the gettext manual is GUI translation, where one could
+ * e.g. disambiguate two "Open" menu entries as "File|Open" and "Printer|Open".
+ * Another use case is the string "Russian" which may have to be translated
+ * differently depending on whether it's the name of a character set or a
+ * language. This could be solved by using "charset|Russian" and
+ * "language|Russian".
+ * Note
+ * If you are using the Q_() macro, you need to make sure that you
+ * pass --keyword=Q_ to xgettext when extracting messages.
+ * String:
+ * the string to be translated, with a '|'-separated prefix which
+ *  must not be translated
+ * Since 2.4
+ */
+// TODO
+// #define Q_(String)
+
+/*
+ * Marks a string for translation, gets replaced with the untranslated string
+ * at runtime. This is useful in situations where the translated strings can't
+ * be directly used, e.g. in string array initializers.
+ *  {
+	 *  static const char *messages[] = {
+		 *  N_("some very meaningful message"),
+		 *  N_("and another one")
+	 *  };
+	 *  const char *string;
+	 *  ...
+	 *  string
+	 *  = index > 1 ? _("a default message") : gettext (messages[index]);
+	 *  fputs (string);
+	 *  ...
+ *  }
+ * String:
+ * the string to be translated
+ * Since 2.4
+ */
+// TODO
+// #define N_(String)
+
+/*
+ * Returns a random gboolean from rand_. This corresponds to a unbiased
+ * coin toss.
+ * rand_:
+ * a GRand.
+ * Returns:
+ * a random gboolean.
+ */
+// TODO
+// #define g_rand_boolean(rand_)
+
+/*
+ * Returns a random gboolean. This corresponds to a unbiased coin toss.
+ * Returns:
+ * a random gboolean.
+ */
+// TODO
+// #define g_random_boolean()
+
+/*
+ * Warning
+ * g_scanner_add_symbol has been deprecated since version 2.2 and should not be used in newly-written code. Use g_scanner_scope_add_symbol() instead.
+ * Adds a symbol to the default scope.
+ * scanner:
+ * a GScanner.
+ * symbol:
+ * the symbol to add.
+ * value:
+ * the value of the symbol.
+ */
+// TODO
+// #define g_scanner_add_symbol( scanner, symbol, value )
+
+/*
+ * Warning
+ * g_scanner_remove_symbol has been deprecated since version 2.2 and should not be used in newly-written code. Use g_scanner_scope_remove_symbol() instead.
+ * Removes a symbol from the default scope.
+ * scanner:
+ * a GScanner.
+ * symbol:
+ * the symbol to remove.
+ */
+// TODO
+// #define g_scanner_remove_symbol( scanner, symbol )
+
+/*
+ * Warning
+ * g_scanner_foreach_symbol has been deprecated since version 2.2 and should not be used in newly-written code. Use g_scanner_scope_foreach_symbol() instead.
+ * Calls a function for each symbol in the default scope.
+ * scanner:
+ * a GScanner.
+ * func:
+ * the function to call with each symbol.
+ * data:
+ * data to pass to the function.
+ */
+// TODO
+// #define g_scanner_foreach_symbol( scanner, func, data )
+
+/*
+ * Warning
+ * g_scanner_freeze_symbol_table has been deprecated since version 2.2 and should not be used in newly-written code. This macro does nothing.
+ * There is no reason to use this macro, since it does nothing.
+ * scanner:
+ * a GScanner.
+ */
+// TODO
+// #define g_scanner_freeze_symbol_table(scanner)
+
+/*
+ * Warning
+ * g_scanner_thaw_symbol_table has been deprecated since version 2.2 and should not be used in newly-written code. This macro does nothing.
+ * There is no reason to use this macro, since it does nothing.
+ * scanner:
+ * a GScanner.
+ */
+// TODO
+// #define g_scanner_thaw_symbol_table(scanner)
+
+/*
+ * On Windows, this macro defines a DllMain() function that stores the actual
+ * DLL name that the code being compiled will be included in.
+ * On non-Windows platforms, expands to nothing.
+ * static:
+ * empty or "static".
+ * dll_name:
+ * the name of the (pointer to the) char array where the DLL name
+ *  will be stored. If this is used, you must also include
+ *  windows.h. If you need a more complex DLL entry
+ *  point function, you cannot use this.
+ */
+// TODO
+// #define G_WIN32_DLLMAIN_FOR_DLL_NAME(static, dll_name)
+
+/*
+ * On Windows, this macro defines an expression which evaluates to TRUE
+ * if the code is running on a version of Windows where the wide
+ * character versions of the Win32 API functions, and the wide chaacter
+ * versions of the C library functions work. (They are always present in
+ * the DLLs, but don't work on Windows 9x and Me.)
+ * On non-Windows platforms, it is not defined.
+ * Since 2.6
+ */
+// TODO
+// #define G_WIN32_HAVE_WIDECHAR_API() TRUE
+
+/*
+ * On Windows, this macro defines an expression which evaluates to TRUE
+ * if the code is running on an NT-based Windows operating system.
+ * On non-Windows platforms, it is not defined.
+ * Since 2.6
+ */
+// TODO
+// #define G_WIN32_IS_NT_BASED() TRUE
+
+/*
+ * A convenience macro to allocate a block of memory from the slice allocator.
+ * It calls g_slice_alloc() with sizeof (type) and casts
+ * the returned pointer to a pointer of the given type, avoiding a type cast
+ * in the source code.
+ * Note that the underlying slice allocation mechanism can
+ * be changed with the G_SLICE=always-malloc
+ * environment variable.
+ * type:
+ * the type to allocate, typically a structure name
+ * Returns:
+ * a pointer to the allocated block, cast to a pointer to type.
+ * Since 2.10
+ */
+// TODO
+// #define g_slice_new(type)
+
+/*
+ * A convenience macro to allocate a block of memory from the slice allocator
+ * and set the memory to 0. It calls g_slice_alloc0() with
+ * sizeof (type) and casts the returned pointer to a pointer
+ * of the given type, avoiding a type cast in the source code.
+ * Note that the underlying slice allocation mechanism can
+ * be changed with the G_SLICE=always-malloc
+ * environment variable.
+ * type:
+ * the type to allocate, typically a structure name
+ * Returns:
+ * a pointer to the allocated block, cast to a pointer to type.
+ * Since 2.10
+ */
+// TODO
+// #define g_slice_new0(type)
+
+/*
+ * A convenience macro to duplicate a block of memory using the slice allocator.
+ * It calls g_slice_copy() with sizeof (type) and casts
+ * the returned pointer to a pointer of the given type, avoiding a type cast
+ * in the source code.
+ * Note that the underlying slice allocation mechanism can
+ * be changed with the G_SLICE=always-malloc
+ * environment variable.
+ * type:
+ * the type to duplicate, typically a structure name
+ * mem:
+ * the memory to copy into the allocated block
+ * Returns:
+ * a pointer to the allocated block, cast to a pointer to type.
+ * Since 2.14
+ */
+// TODO
+// #define g_slice_dup(type, mem)
+
+/*
+ * A convenience macro to free a block of memory that has been allocated
+ * from the slice allocator. It calls g_slice_free1() using
+ * sizeof (type) as the block size.
+ * Note that the exact release behaviour can be changed with the
+ * G_DEBUG=gc-friendly environment variable,
+ * also see G_SLICE for related debugging options.
+ * type:
+ * the type of the block to free, typically a structure name
+ * mem:
+ * a pointer to the block to free
+ * Since 2.10
+ */
+// TODO
+// #define g_slice_free(type, mem)
+
+/*
+ * Frees a linked list of memory blocks of structure type type.
+ * The memory blocks must be equal-sized, allocated via
+ * g_slice_alloc() or g_slice_alloc0() and linked together by a
+ * next pointer (similar to GSList). The name of the
+ * next field in type is passed as third argument.
+ * Note that the exact release behaviour can be changed with the
+ * G_DEBUG=gc-friendly environment variable,
+ * also see G_SLICE for related debugging options.
+ * type:
+ *  the type of the mem_chain blocks
+ * mem_chain:
+ *  a pointer to the first block of the chain
+ * next:
+ *  the field name of the next pointer in type
+ * Since 2.10
+ */
+// TODO
+// #define g_slice_free_chain(type, mem_chain, next)
+
+/*
+ * Warning
+ * g_mem_chunk_create has been deprecated since version 2.10 and should not be used in newly-written code. Use the slice
+ *  allocator instead
+ * A convenience macro for creating a new GMemChunk.
+ * It calls g_mem_chunk_new(), using the given type to create the GMemChunk
+ * name. The atom size is determined using sizeof(), and the
+ * area size is calculated by multiplying the pre_alloc parameter with
+ * the atom size.
+ * type:
+ * the type of the atoms, typically a structure name.
+ * pre_alloc:
+ * the number of atoms to store in each block of memory.
+ * alloc_type:
+ * the type of the GMemChunk.
+ * G_ALLOC_AND_FREE is used if the atoms will be freed individually.
+ * G_ALLOC_ONLY should be used if atoms will never be freed individually.
+ * G_ALLOC_ONLY is quicker, since it does not need to track free atoms,
+ * but it obviously wastes memory if you no longer need many of the atoms.
+ * Returns:
+ * the new GMemChunk.
+ */
+// TODO
+// #define g_mem_chunk_create(type, pre_alloc, alloc_type)
+
+/*
+ * Warning
+ * g_chunk_new has been deprecated since version 2.10 and should not be used in newly-written code. Use g_slice_new() instead
+ * A convenience macro to allocate an atom of memory from a GMemChunk.
+ * It calls g_mem_chunk_alloc() and casts the returned atom to a pointer to
+ * the given type, avoiding a type cast in the source code.
+ * type:
+ * the type of the GMemChunk atoms, typically a structure name.
+ * chunk:
+ * a GMemChunk.
+ * Returns:
+ * a pointer to the allocated atom, cast to a pointer to type.
+ */
+// TODO
+// #define g_chunk_new(type, chunk)
+
+/*
+ * Warning
+ * g_chunk_new0 has been deprecated since version 2.10 and should not be used in newly-written code. Use g_slice_new0() instead
+ * A convenience macro to allocate an atom of memory from a GMemChunk.
+ * It calls g_mem_chunk_alloc0() and casts the returned atom to a pointer to
+ * the given type, avoiding a type cast in the source code.
+ * type:
+ * the type of the GMemChunk atoms, typically a structure name.
+ * chunk:
+ * a GMemChunk.
+ * Returns:
+ * a pointer to the allocated atom, cast to a pointer to type.
+ */
+// TODO
+// #define g_chunk_new0(type, chunk)
+
+/*
+ * Warning
+ * g_chunk_free has been deprecated since version 2.10 and should not be used in newly-written code. Use g_slice_free() instead
+ * A convenience macro to free an atom of memory from a GMemChunk.
+ * It simply switches the arguments and calls g_mem_chunk_free()
+ * It is included simply to complement the other convenience macros, g_chunk_new()
+ * and g_chunk_new0().
+ * mem:
+ * a pointer to the atom to be freed.
+ * mem_chunk:
+ * a GMemChunk.
+ */
+// TODO
+// #define g_chunk_free(mem, mem_chunk)
+
+/*
+ * A convenience macro to gets the previous element in a GList.
+ * list:
+ * an element in a GList.
+ * Returns:
+ * the previous element, or NULL if there are no previous elements.
+ */
+// TODO
+// #define g_list_previous(list)
+
+/*
+ * A convenience macro to gets the next element in a GList.
+ * list:
+ * an element in a GList.
+ * Returns:
+ * the next element, or NULL if there are no more elements.
+ */
+// TODO
+// #define g_list_next(list)
+
+/*
+ * A convenience macro to gets the next element in a GSList.
+ * slist:
+ * an element in a GSList.
+ * Returns:
+ * the next element, or NULL if there are no more elements.
+ */
+// TODO
+// #define g_slist_next(slist)
+
+/*
+ * Warning
+ * g_hash_table_freeze is deprecated and should not be used in newly-written code.
+ * This function is deprecated and will be removed in the next major
+ *  release of GLib. It does nothing.
+ * hash_table:
+ * a GHashTable
+ */
+// TODO
+// #define g_hash_table_freeze(hash_table)
+
+/*
+ * Warning
+ * g_hash_table_thaw is deprecated and should not be used in newly-written code.
+ * This function is deprecated and will be removed in the next major
+ *  release of GLib. It does nothing.
+ * hash_table:
+ * a GHashTable
+ */
+// TODO
+// #define g_hash_table_thaw(hash_table)
+
+/*
+ * Adds the value on to the end of the array.
+ * The array will grow in size automatically if necessary.
+ * Note
+ * g_array_append_val() is a macro which uses a reference to the value
+ * parameter v. This means that you cannot use it with literal values
+ * such as "27". You must use variables.
+ * a:
+ * a GArray.
+ * v:
+ * the value to append to the GArray.
+ * Returns:
+ * the GArray.
+ */
+// TODO
+// #define g_array_append_val(a,v)
+
+/*
+ * Adds the value on to the start of the array.
+ * The array will grow in size automatically if necessary.
+ * This operation is slower than g_array_append_val() since the existing elements
+ * in the array have to be moved to make space for the new element.
+ * Note
+ * g_array_prepend_val() is a macro which uses a reference to the value
+ * parameter v. This means that you cannot use it with literal values
+ * such as "27". You must use variables.
+ * a:
+ * a GArray.
+ * v:
+ * the value to prepend to the GArray.
+ * Returns:
+ * the GArray.
+ */
+// TODO
+// #define g_array_prepend_val(a,v)
+
+/*
+ * Inserts an element into an array at the given index.
+ * Note
+ * g_array_insert_val() is a macro which uses a reference to the value
+ * parameter v. This means that you cannot use it with literal values
+ * such as "27". You must use variables.
+ * a:
+ * a GArray.
+ * i:
+ * the index to place the element at.
+ * v:
+ * the value to insert into the array.
+ * Returns:
+ * the GArray.
+ */
+// TODO
+// #define g_array_insert_val(a,i,v)
+
+/*
+ * Returns the element of a GArray at the given index.
+ * The return value is cast to the given type.
+ * Example20.Getting a pointer to an element in a GArray
+ *  EDayViewEvent *event;
+ *  /+* This gets a pointer to the 3rd element in the array of EDayViewEvent
+ *  structs. +/
+ *  event = g_array_index (events, EDayViewEvent, 3);
+ * a:
+ * a GArray.
+ * t:
+ * the type of the elements.
+ * i:
+ * the index of the element to return.
+ * Returns:
+ * the element of the GArray at the index given by i.
+ */
+// TODO
+// #define g_array_index(a,t,i)
+
+/*
+ * Returns the pointer at the given index of the pointer array.
+ * array:
+ * a GPtrArray.
+ * index_:
+ * the index of the pointer to return.
+ * Returns:
+ * the pointer at the given index.
+ */
+// TODO
+// #define g_ptr_array_index(array,index_)
+
+/*
+ * Inserts a GNode as the last child of the given parent.
+ * parent:
+ * the GNode to place the new GNode under.
+ * node:
+ * the GNode to insert.
+ * Returns:
+ * the inserted GNode.
+ */
+// TODO
+// #define g_node_append(parent, node)
+
+/*
+ * Inserts a new GNode at the given position.
+ * parent:
+ * the GNode to place the new GNode under.
+ * position:
+ * the position to place the new GNode at.
+ * If position is -1, the new GNode is inserted as the last child of parent.
+ * data:
+ * the data for the new GNode.
+ * Returns:
+ * the new GNode.
+ */
+// TODO
+// #define g_node_insert_data(parent, position, data)
+
+/*
+ * Inserts a new GNode before the given sibling.
+ * parent:
+ * the GNode to place the new GNode under.
+ * sibling:
+ * the sibling GNode to place the new GNode before.
+ * data:
+ * the data for the new GNode.
+ * Returns:
+ * the new GNode.
+ */
+// TODO
+// #define g_node_insert_data_before(parent, sibling, data)
+
+/*
+ * Inserts a new GNode as the last child of the given parent.
+ * parent:
+ * the GNode to place the new GNode under.
+ * data:
+ * the data for the new GNode.
+ * Returns:
+ * the new GNode.
+ */
+// TODO
+// #define g_node_append_data(parent, data)
+
+/*
+ * Inserts a new GNode as the first child of the given parent.
+ * parent:
+ * the GNode to place the new GNode under.
+ * data:
+ * the data for the new GNode.
+ * Returns:
+ * the new GNode.
+ */
+// TODO
+// #define g_node_prepend_data(parent, data)
+
+/*
+ * Gets the first child of a GNode.
+ * node:
+ * a GNode.
+ * Returns:
+ * the first child of node, or NULL if node is NULL or has no children.
+ */
+// TODO
+// #define g_node_first_child(node)
+
+/*
+ * Gets the next sibling of a GNode.
+ * node:
+ * a GNode.
+ * Returns:
+ * the next sibling of node, or NULL if node is NULL.
+ */
+// TODO
+// #define g_node_next_sibling(node)
+
+/*
+ * Gets the previous sibling of a GNode.
+ * node:
+ * a GNode.
+ * Returns:
+ * the previous sibling of node, or NULL if node is NULL.
+ */
+// TODO
+// #define g_node_prev_sibling(node)
+
+/*
+ * Returns TRUE if a GNode is a leaf node.
+ * node:
+ * a GNode.
+ * Returns:
+ * TRUE if the GNode is a leaf node (i.e. it has no children).
+ */
+// TODO
+// #define	 G_NODE_IS_LEAF(node)	(((GNode*) (node))->children == NULL)
+
+/*
+ * Returns TRUE if a GNode is the root of a tree.
+ * node:
+ * a GNode.
+ * Returns:
+ * TRUE if the GNode is the root of a tree (i.e. it has no parent
+ * or siblings).
+ */
+// TODO
+// #define G_NODE_IS_ROOT(node)
+
+/*
+ * Sets the data corresponding to the given GQuark id.
+ * Any previous data with the same key is removed, and its
+ * destroy function is called.
+ * dl:
+ * a datalist.
+ * q:
+ * the GQuark to identify the data element.
+ * d:
+ * the data element, or NULL to remove any previous element
+ * corresponding to q.
+ */
+// TODO
+// #define g_datalist_id_set_data(dl, q, d)
+
+/*
+ * Removes an element, using its GQuark identifier.
+ * dl:
+ * a datalist.
+ * q:
+ * the GQuark identifying the data element.
+ */
+// TODO
+// #define g_datalist_id_remove_data(dl, q)
+
+/*
+ * Sets the data element corresponding to the given string identifier.
+ * dl:
+ * a datalist.
+ * k:
+ * the string to identify the data element.
+ * d:
+ * the data element, or NULL to remove any previous element
+ * corresponding to k.
+ */
+// TODO
+// #define g_datalist_set_data(dl, k, d)
+
+/*
+ * Sets the data element corresponding to the given string identifier, and the
+ * function to be called when the data element is removed.
+ * dl:
+ * a datalist.
+ * k:
+ * the string to identify the data element.
+ * d:
+ * the data element, or NULL to remove any previous element corresponding to
+ * k.
+ * f:
+ * the function to call when the data element is removed. This
+ * function will be called with the data element and can be used to free any
+ * memory allocated for it. If d is NULL, then f must also be NULL.
+ */
+// TODO
+// #define g_datalist_set_data_full(dl, k, d, f)
+
+/*
+ * Gets a data element, using its string identifer.
+ * This is slower than g_datalist_id_get_data() because the string is first
+ * converted to a GQuark.
+ * dl:
+ * a datalist.
+ * k:
+ * the string identifying a data element.
+ * Returns:
+ * the data element, or NULL if it is not found.
+ */
+// TODO
+// #define g_datalist_get_data(dl, k)
+
+/*
+ * Removes an element using its string identifier.
+ * The data element's destroy function is called if it has been set.
+ * dl:
+ * a datalist.
+ * k:
+ * the string identifying the data element.
+ */
+// TODO
+// #define g_datalist_remove_data(dl, k)
+
+/*
+ * Removes an element, without calling its destroy notifier.
+ * dl:
+ * a datalist.
+ * k:
+ * the string identifying the data element.
+ */
+// TODO
+// #define g_datalist_remove_no_notify(dl, k)
+
+/*
+ * Sets the data element associated with the given GQuark id.
+ * Any previous data with the same key is removed, and its destroy function
+ * is called.
+ * l:
+ * the location identifying the dataset.
+ * k:
+ * the GQuark id to identify the data element.
+ * d:
+ * the data element.
+ */
+// TODO
+// #define g_dataset_id_set_data(l, k, d)
+
+/*
+ * Removes a data element from a dataset.
+ * The data element's destroy function is called if it has been set.
+ * l:
+ * the location identifying the dataset.
+ * k:
+ * the GQuark id identifying the data element.
+ */
+// TODO
+// #define g_dataset_id_remove_data(l, k)
+
+/*
+ * Sets the data corresponding to the given string identifier.
+ * l:
+ * the location identifying the dataset.
+ * k:
+ * the string to identify the data element.
+ * d:
+ * the data element.
+ */
+// TODO
+// #define g_dataset_set_data(l, k, d)
+
+/*
+ * Sets the data corresponding to the given string identifier, and the function
+ * to call when the data element is destroyed.
+ * l:
+ * the location identifying the dataset.
+ * k:
+ * the string to identify the data element.
+ * d:
+ * the data element.
+ * f:
+ * the function to call when the data element is removed. This
+ * function will be called with the data element and can be used to free any
+ * memory allocated for it.
+ */
+// TODO
+// #define g_dataset_set_data_full(l, k, d, f)
+
+/*
+ * Gets the data element corresponding to a string.
+ * l:
+ * the location identifying the dataset.
+ * k:
+ * the string identifying the data element.
+ * Returns:
+ * the data element corresponding to the string, or NULL if it is not
+ * found.
+ */
+// TODO
+// #define g_dataset_get_data(l, k)
+
+/*
+ * Removes a data element corresponding to a string.
+ * Its destroy function is called if it has been set.
+ * l:
+ * the location identifying the dataset.
+ * k:
+ * the string identifying the data element.
+ */
+// TODO
+// #define g_dataset_remove_data(l, k)
+
+/*
+ * Removes an element, without calling its destroy notifier.
+ * l:
+ * the location identifying the dataset.
+ * k:
+ * the string identifying the data element.
+ */
+// TODO
+// #define g_dataset_remove_no_notify(l, k)
+
+/*
+ * Specifies the type of function passed to g_main_context_set_poll_func().
+ * The semantics of the function should match those of the
+ * poll() system call.
+ * ufds:
+ * an array of GPollFD elements.
+ * nfsd:
+ * the number of elements in ufds.
+ * timeout_:
+ * the maximum time to wait for an event of the file descriptors.
+ *  A negative value indicates an infinite timeout.
+ * Returns:
+ * the number of GPollFD elements which have events or errors reported,
+ * or -1 if an error occurred.
+ */
+// gint (*GPollFunc) (GPollFD *ufds,  guint nfsd,  gint timeout_);
+public typedef extern(C) int  function (GPollFD*, uint, int) GPollFunc;
+
+/*
+ * The type of functions to be called when a child exists.
+ * pid:
+ * the process id of the child process
+ * status:
+ * Status information about the child process,
+ *  see waitpid(2) for more information about this field
+ * data:
+ * user data passed to g_child_watch_add()
+ */
+// void (*GChildWatchFunc) (GPid pid,  gint status,  gpointer data);
+public typedef extern(C) void  function (GPid, int, void*) GChildWatchFunc;
+
+/*
+ * This is just a placeholder for GClosureMarshal, which cannot be used here
+ * for dependency reasons.
+ */
+// void (*GSourceDummyMarshal) (void);
+public typedef extern(C) void  function () GSourceDummyMarshal;
+
+/*
+ * Specifies the type of function passed to g_timeout_add(), g_timeout_add_full(),
+ * g_idle_add(), and g_idle_add_full().
+ * data:
+ * data passed to the function, set when the source was created with one
+ * of the above functions.
+ * Returns:
+ * it should return FALSE if the source should be removed.
+ */
+// gboolean (*GSourceFunc) (gpointer data);
+public typedef extern(C) int  function (void*) GSourceFunc;
+
+/*
+ * Specifies the type of the module initialization function.
+ * If a module contains a function named g_module_check_init() it is called
+ * automatically when the module is loaded. It is passed the GModule structure
+ * and should return NULL on success or a string describing the initialization
+ * error.
+ * module:
+ * the GModule corresponding to the module which has just been loaded.
+ * Returns:
+ * NULL on success, or a string describing the initialization error.
+ */
+// const gchar* (*GModuleCheckInit) (GModule *module);
+public typedef extern(C) char*  function (GModule*) GModuleCheckInit;
+
+/*
+ * Specifies the type of the module function called when it is unloaded.
+ * If a module contains a function named g_module_unload() it is called
+ * automatically when the module is unloaded.
+ * It is passed the GModule structure.
+ * module:
+ * the GModule about to be unloaded.
+ */
+// void (*GModuleUnload) (GModule *module);
+public typedef extern(C) void  function (GModule*) GModuleUnload;
+
+/*
+ * Specifies the type of function passed to g_io_add_watch() or
+ * g_io_add_watch_full(), which is called when the requested
+ * condition on a GIOChannel is satisfied.
+ * source:
+ * the GIOChannel event source
+ * condition:
+ * the condition which has been satisfied
+ * data:
+ * user data set in g_io_add_watch() or g_io_add_watch_full()
+ * Returns:
+ * the function should return FALSE if the event source
+ *  should be removed
+ */
+// gboolean (*GIOFunc) (GIOChannel *source,  GIOCondition condition,  gpointer data);
+public typedef extern(C) int  function (GIOChannel*, GIOCondition, void*) GIOFunc;
+
+/*
+ * Specifies the type of the print handler functions.
+ * These are called with the complete formatted string to output.
+ * string:
+ * the message to be output.
+ */
+// void (*GPrintFunc) (const gchar *string);
+public typedef extern(C) void  function (char[]) GPrintFunc;
+
+/*
+ * Specifies the prototype of log handler functions.
+ * log_domain:
+ * the log domain of the message.
+ * log_level:
+ * the log level of the message (including the fatal and recursion
+ * flags).
+ * message:
+ * the message to process.
+ * user_data:
+ * user data, set in g_log_set_handler().
+ */
+// void (*GLogFunc) (const gchar *log_domain,  GLogLevelFlags log_level,  const gchar *message,  gpointer user_data);
+public typedef extern(C) void  function (char[], GLogLevelFlags, char[], void*) GLogFunc;
+
+/*
+ * Declares a type of function which takes no arguments and has no return value.
+ * It is used to specify the type function passed to g_atexit().
+ */
+// void (*GVoidFunc) (void);
+public typedef extern(C) void  function () GVoidFunc;
+
+/*
+ * Declares a type of function which takes an arbitrary data pointer argument
+ * and has no return value. It is not currently used in GLib or GTK+.
+ * data:
+ * a data pointer.
+ */
+// void (*GFreeFunc) (gpointer data);
+public typedef extern(C) void  function (void*) GFreeFunc;
+
+/*
+ * Specifies the type of the message handler function.
+ * scanner:
+ * a GScanner.
+ * message:
+ * the message.
+ * error:
+ * TRUE if the message signals an error, FALSE if it
+ *  signals a warning.
+ */
+// void (*GScannerMsgFunc) (GScanner *scanner,  gchar *message,  gboolean error);
+public typedef extern(C) void  function (GScanner*, char[], int) GScannerMsgFunc;
+
+/*
+ * Specifies the type of the function passed to g_completion_new().
+ * It should return the string corresponding to the given target item.
+ * This is used when you use data structures as GCompletion items.
+ * Param1:
+ * the completion item.
+ * Returns:
+ * the string corresponding to the item.
+ */
+// gchar* (*GCompletionFunc) (gpointer );
+public typedef extern(C) char*  function (void*) GCompletionFunc;
+
+/*
+ * Specifies the type of the function passed to g_completion_set_compare().
+ * This is used when you use strings as GCompletion items.
+ * s1:
+ * string to compare with s2.
+ * s2:
+ * string to compare with s1.
+ * n:
+ * maximal number of bytes to compare.
+ * Returns:
+ * an integer less than, equal to, or greater than zero if the
+ * first n bytes of s1 is found, respectively, to be less than, to match,
+ * or to be greater than the first n bytes of s2.
+ */
+// gint (*GCompletionStrncmpFunc) (const gchar *s1,  const gchar *s2,  gsize n);
+public typedef extern(C) int  function (char[], char[], uint) GCompletionStrncmpFunc;
+
+/*
+ * Specifies the type of the setup function passed to g_spawn_async(),
+ * g_spawn_sync() and g_spawn_async_with_pipes(). On POSIX platforms it
+ * is called in the child after GLib has performed all the setup it plans
+ * to perform but before calling exec(). On POSIX actions taken in this
+ * function will thus only affect the child, not the parent.
+ * On Windows the function is called in the parent. Its usefulness on
+ * Windows is thus questionable. In many cases executing the child setup
+ * function in the parent can have ill effects, and you should be very
+ * careful when porting software to Windows that uses child setup
+ * functions.
+ * user_data:
+ * user data to pass to the function.
+ */
+// void (*GSpawnChildSetupFunc) (gpointer user_data);
+public typedef extern(C) void  function (void*) GSpawnChildSetupFunc;
+
+/*
+ * The type of function to be passed as callback for G_OPTION_ARG_CALLBACK
+ * options.
+ * option_name:
+ * The name of the option being parsed. This will be either a
+ *  single dash followed by a single letter (for a short name) or two dashes
+ *  followed by a long option name.
+ * value:
+ * The value to be parsed.
+ * data:
+ * User data added to the GOptionGroup containing the option when it
+ *  was created with g_option_group_new()
+ * error:
+ * A return location for errors. The error code G_OPTION_ERROR_FAILED
+ *  is intended to be used for errors in GOptionArgFunc callbacks.
+ * Returns:
+ * TRUE if the option was successfully parsed, FALSE if an error
+ *  occurred, in which case error should be set with g_set_error()
+ */
+// gboolean (*GOptionArgFunc) (const gchar *option_name,  const gchar *value,  gpointer data,  GError **error);
+public typedef extern(C) int  function (char[], char[], void*, GError**) GOptionArgFunc;
+
+/*
+ * The type of functions which are used to translate user-visible
+ * strings, for --help output.
+ * str:
+ * the untranslated string
+ * data:
+ * user data specified when installing the function, e.g.
+ *  in g_option_group_set_translate_func()
+ * Returns:
+ * a translation of the string for the current locale.
+ *  The returned string is owned by GLib and must not be freed.
+ */
+// const gchar* (*GTranslateFunc) (const gchar *str,  gpointer data);
+public typedef extern(C) char*  function (char[], void*) GTranslateFunc;
+
+/*
+ * The type of function that can be called before and after parsing.
+ * context:
+ * The active GOptionContext
+ * group:
+ * The group to which the function belongs
+ * data:
+ * User data added to the GOptionGroup containing the option when it
+ *  was created with g_option_group_new()
+ * error:
+ * A return location for error details
+ * Returns:
+ * TRUE if the function completed successfully, FALSE if an error
+ *  occurred, in which case error should be set with g_set_error()
+ */
+// gboolean (*GOptionParseFunc) (GOptionContext *context,  GOptionGroup *group,  gpointer data,  GError **error);
+public typedef extern(C) int  function (GOptionContext*, GOptionGroup*, void*, GError**) GOptionParseFunc;
+
+/*
+ * The type of function to be used as callback when a parse error occurs.
+ * context:
+ * The active GOptionContext
+ * group:
+ * The group to which the function belongs
+ * data:
+ * User data added to the GOptionGroup containing the option when it
+ *  was created with g_option_group_new()
+ * error:
+ * The GError containing details about the parse error
+ */
+// void (*GOptionErrorFunc) (GOptionContext *context,  GOptionGroup *group,  gpointer data,  GError **error);
+public typedef extern(C) void  function (GOptionContext*, GOptionGroup*, void*, GError**) GOptionErrorFunc;
+
+/*
+ * Specifies the type of a comparison function used to compare two
+ * values. The function should return a negative integer if the first
+ * value comes before the second, 0 if they are equal, or a positive
+ * integer if the first value comes after the second.
+ * a:
+ * a value.
+ * b:
+ * a value to compare with.
+ * Returns:
+ * negative value if a < b; zero if a = b; positive value
+ * if a > b.
+ */
+// gint (*GCompareFunc) (gconstpointer a,  gconstpointer b);
+public typedef extern(C) int  function (void*, void*) GCompareFunc;
+
+/*
+ * Specifies the type of a comparison function used to compare two
+ * values. The function should return a negative integer if the first
+ * value comes before the second, 0 if they are equal, or a positive
+ * integer if the first value comes after the second.
+ * a:
+ * a value.
+ * b:
+ * a value to compare with.
+ * user_data:
+ * user data to pass to comparison function.
+ * Returns:
+ * negative value if a < b; zero if a = b; positive value
+ * if a > b.
+ */
+// gint (*GCompareDataFunc) (gconstpointer a,  gconstpointer b,  gpointer user_data);
+public typedef extern(C) int  function (void*, void*, void*) GCompareDataFunc;
+
+/*
+ * Specifies the type of functions passed to g_list_foreach() and
+ * g_slist_foreach().
+ * data:
+ * the element's data.
+ * user_data:
+ * user data passed to g_list_foreach() or g_slist_foreach().
+ */
+// void (*GFunc) (gpointer data,  gpointer user_data);
+public typedef extern(C) void  function (void*, void*) GFunc;
+
+/*
+ * Specifies the type of the hash function which is passed to
+ * g_hash_table_new() when a GHashTable is created.
+ * The function is passed a key and should return a guint hash value.
+ * The functions g_direct_hash(), g_int_hash() and g_str_hash() provide
+ * hash functions which can be used when the key is a gpointer, gint, and
+ * gchar* respectively.
+ * FIXME: Need more here.
+ * The hash values should be evenly distributed over a fairly large range?
+ * The modulus is taken with the hash table size (a prime number)
+ * to find the 'bucket' to place each key into.
+ * The function should also be very fast, since it is called for each key
+ * lookup.
+ * key:
+ * a key.
+ * Returns:
+ * the hash value corresponding to the key.
+ */
+// guint (*GHashFunc) (gconstpointer key);
+public typedef extern(C) uint  function (void*) GHashFunc;
+
+/*
+ * Specifies the type of a function used to test two values for
+ * equality. The function should return TRUE if both values are equal and
+ * FALSE otherwise.
+ * a:
+ * a value.
+ * b:
+ * a value to compare with.
+ * Returns:
+ * TRUE if a = b; FALSE otherwise.
+ */
+// gboolean (*GEqualFunc) (gconstpointer a,  gconstpointer b);
+public typedef extern(C) int  function (void*, void*) GEqualFunc;
+
+/*
+ * Specifies the type of the function passed to g_hash_table_foreach().
+ * It is called with each key/value pair, together with the user_data parameter
+ * which is passed to g_hash_table_foreach().
+ * key:
+ * a key.
+ * value:
+ * the value corresponding to the key.
+ * user_data:
+ * user data passed to g_hash_table_foreach().
+ */
+// void (*GHFunc) (gpointer key,  gpointer value,  gpointer user_data);
+public typedef extern(C) void  function (void*, void*, void*) GHFunc;
+
+/*
+ * Specifies the type of the function passed to g_hash_table_foreach_remove().
+ * It is called with each key/value pair, together with the user_data parameter
+ * passed to g_hash_table_foreach_remove().
+ * It should return TRUE if the key/value pair should be removed from the
+ * GHashTable.
+ * key:
+ * a key.
+ * value:
+ * the value associated with the key.
+ * user_data:
+ * user data passed to g_hash_table_remove().
+ * Returns:
+ * TRUE if the key/value pair should be removed from the GHashTable.
+ */
+// gboolean (*GHRFunc) (gpointer key,  gpointer value,  gpointer user_data);
+public typedef extern(C) int  function (void*, void*, void*) GHRFunc;
+
+/*
+ * Specifies the type of function passed to g_tree_traverse().
+ * It is passed the key and value of each node, together with
+ * the user_data parameter passed to g_tree_traverse().
+ * If the function returns TRUE, the traversal is stopped.
+ * key:
+ * a key of a GTree node.
+ * value:
+ * the value corresponding to the key.
+ * data:
+ * user data passed to g_tree_traverse().
+ * Returns:
+ * TRUE to stop the traversal.
+ */
+// gboolean (*GTraverseFunc) (gpointer key,  gpointer value,  gpointer data);
+public typedef extern(C) int  function (void*, void*, void*) GTraverseFunc;
+
+/*
+ * A function of this signature is used to copy the node data when doing a deep-copy
+ * of a tree.
+ * src:
+ * A pointer to the data which should be copied.
+ * data:
+ * Additional data.
+ * Returns:
+ * A pointer to the copy.
+ * Since 2.4
+ */
+// gpointer (*GCopyFunc) (gconstpointer src,  gpointer data);
+public typedef extern(C) void*  function (void*, void*) GCopyFunc;
+
+/*
+ * Specifies the type of function passed to g_node_traverse().
+ * The function is called with each of the nodes visited, together with the
+ * user data passed to g_node_traverse().
+ * If the function returns TRUE, then the traversal is stopped.
+ * node:
+ * a GNode.
+ * data:
+ * user data passed to g_node_traverse().
+ * Returns:
+ * TRUE to stop the traversal.
+ */
+// gboolean (*GNodeTraverseFunc) (GNode *node,  gpointer data);
+public typedef extern(C) int  function (GNode*, void*) GNodeTraverseFunc;
+
+/*
+ * Specifies the type of function passed to g_node_children_foreach().
+ * The function is called with each child node, together with the user data
+ * passed to g_node_children_foreach().
+ * node:
+ * a GNode.
+ * data:
+ * user data passed to g_node_children_foreach().
+ */
+// void (*GNodeForeachFunc) (GNode *node,  gpointer data);
+public typedef extern(C) void  function (GNode*, void*) GNodeForeachFunc;
+
+/*
+ * Specifies the type of function which is called when a data element is
+ * destroyed. It is passed the pointer to the data element and should free
+ * any memory and resources allocated for it.
+ * data:
+ * the data element.
+ */
+// void (*GDestroyNotify) (gpointer data);
+public typedef extern(C) void  function (void*) GDestroyNotify;
+
+/*
+ * Specifies the type of function passed to g_dataset_foreach().
+ * It is called with each GQuark id and associated data element,
+ * together with the user_data parameter supplied to g_dataset_foreach().
+ * key_id:
+ * the GQuark id to identifying the data element.
+ * data:
+ * the data element.
+ * user_data:
+ * user data passed to g_dataset_foreach().
+ */
+// void (*GDataForeachFunc) (GQuark key_id,  gpointer data,  gpointer user_data);
+public typedef extern(C) void  function (GQuark, void*, void*) GDataForeachFunc;
+
+/*
+ * Specifies the type of the value_destroy_func and key_destroy_func functions
+ * passed to g_cache_new().
+ * The functions are passed a pointer to the GCache key or GCache value and
+ * should free any memory and other resources associated with it.
+ * value:
+ * the GCache value to destroy.
+ */
+// void (*GCacheDestroyFunc) (gpointer value);
+public typedef extern(C) void  function (void*) GCacheDestroyFunc;
+
+/*
+ * Specifies the type of the key_dup_func function passed to g_cache_new().
+ * The function is passed a key (not a value as the prototype implies) and
+ * should return a duplicate of the key.
+ * value:
+ * the GCache key to destroy (not a GCache value as it seems).
+ * Returns:
+ * a copy of the GCache key.
+ */
+// gpointer (*GCacheDupFunc) (gpointer value);
+public typedef extern(C) void*  function (void*) GCacheDupFunc;
+
+/*
+ * Specifies the type of the value_new_func function passed to g_cache_new().
+ * It is passed a GCache key and should create the value corresponding to the
+ * key.
+ * key:
+ * a GCache key.
+ * Returns:
+ * a new GCache value corresponding to the key.
+ */
+// gpointer (*GCacheNewFunc) (gpointer key);
+public typedef extern(C) void*  function (void*) GCacheNewFunc;
+/**
+ * A union holding the value of the token.
+ */
+public struct GTokenValue
+{
+	union
+	{
+		void* vSymbol;
+		char *vIdentifier;
+		uint vBinary;
+		uint vOctal;
+		uint vInt;
+		ulong vInt64;
+		double vFloat;
+		uint vHex;
+		char *vString;
+		char *vComment;
+		char vChar;
+		uint vError;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/gtk/c/gobject.d	Sat Jan 05 15:13:44 2008 -0800
@@ -0,0 +1,719 @@
+/******************************************************************************
+
+    This file is part of gtkD.
+
+    gtkD is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation; either version 2.1 of the License, or
+    (at your option) any later version.
+ 
+    gtkD is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with gtkD; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+******************************************************************************/
+
+module dwt.internal.gtk.c.gobject;
+
+private import dwt.internal.gtk.c.gobjecttypes;
+private import dwt.internal.gtk.runtime.Loader;
+
+/******************************************************************************
+
+******************************************************************************/
+
+private Linker gobjectLinker;
+
+/******************************************************************************
+
+******************************************************************************/
+
+static this()
+{
+    gobjectLinker = new Linker( getLibraryPath ~ importLibs[LIBRARY.GOBJECT] );
+    gobjectLinker.link( gobjectLinks );
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+static ~this()
+{
+    delete gobjectLinker;
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+extern(C) 
+{	
+	// gobject.Type
+	
+	void function()g_type_init;
+	void function(GTypeDebugFlags debugFlags)g_type_init_with_debug_flags;
+	gchar* function(GType type)g_type_name;
+	GQuark function(GType type)g_type_qname;
+	GType function(gchar* name)g_type_from_name;
+	GType function(GType type)g_type_parent;
+	guint function(GType type)g_type_depth;
+	GType function(GType leafType, GType rootType)g_type_next_base;
+	gboolean function(GType type, GType isAType)g_type_is_a;
+	gpointer function(GType type)g_type_class_ref;
+	gpointer function(GType type)g_type_class_peek;
+	gpointer function(GType type)g_type_class_peek_static;
+	void function(gpointer gClass)g_type_class_unref;
+	gpointer function(gpointer gClass)g_type_class_peek_parent;
+	void function(gpointer gClass, gsize privateSize)g_type_class_add_private;
+	gpointer function(gpointer instanceClass, GType ifaceType)g_type_interface_peek;
+	gpointer function(gpointer gIface)g_type_interface_peek_parent;
+	gpointer function(GType gType)g_type_default_interface_ref;
+	gpointer function(GType gType)g_type_default_interface_peek;
+	void function(gpointer gIface)g_type_default_interface_unref;
+	GType* function(GType type, guint* nChildren)g_type_children;
+	GType* function(GType type, guint* nInterfaces)g_type_interfaces;
+	GType* function(GType interfaceType, guint* nPrerequisites)g_type_interface_prerequisites;
+	void function(GType type, GQuark quark, gpointer data)g_type_set_qdata;
+	gpointer function(GType type, GQuark quark)g_type_get_qdata;
+	void function(GType type, GTypeQuery* query)g_type_query;
+	GType function(GType parentType, gchar* typeName, GTypeInfo* info, GTypeFlags flags)g_type_register_static;
+	GType function(GType parentType, gchar* typeName, guint classSize, GClassInitFunc classInit, guint instanceSize, GInstanceInitFunc instanceInit, GTypeFlags flags)g_type_register_static_simple;
+	GType function(GType parentType, gchar* typeName, GTypePlugin* plugin, GTypeFlags flags)g_type_register_dynamic;
+	GType function(GType typeId, gchar* typeName, GTypeInfo* info, GTypeFundamentalInfo* finfo, GTypeFlags flags)g_type_register_fundamental;
+	void function(GType instanceType, GType interfaceType, GInterfaceInfo* info)g_type_add_interface_static;
+	void function(GType instanceType, GType interfaceType, GTypePlugin* plugin)g_type_add_interface_dynamic;
+	void function(GType interfaceType, GType prerequisiteType)g_type_interface_add_prerequisite;
+	GTypePlugin* function(GType type)g_type_get_plugin;
+	GTypePlugin* function(GType instanceType, GType interfaceType)g_type_interface_get_plugin;
+	GType function()g_type_fundamental_next;
+	GType function(GType typeId)g_type_fundamental;
+	GTypeInstance* function(GType type)g_type_create_instance;
+	void function(GTypeInstance* instanc)g_type_free_instance;
+	void function(gpointer cacheData, GTypeClassCacheFunc cacheFunc)g_type_add_class_cache_func;
+	void function(gpointer cacheData, GTypeClassCacheFunc cacheFunc)g_type_remove_class_cache_func;
+	void function(gpointer gClass)g_type_class_unref_uncached;
+	void function(gpointer checkData, GTypeInterfaceCheckFunc checkFunc)g_type_add_interface_check;
+	void function(gpointer checkData, GTypeInterfaceCheckFunc checkFunc)g_type_remove_interface_check;
+	GTypeValueTable* function(GType type)g_type_value_table_peek;
+	
+	// gobject.TypePlugin
+	
+	void function(GTypePlugin* plugin)g_type_plugin_use;
+	void function(GTypePlugin* plugin)g_type_plugin_unuse;
+	void function(GTypePlugin* plugin, GType gType, GTypeInfo* info, GTypeValueTable* valueTable)g_type_plugin_complete_type_info;
+	void function(GTypePlugin* plugin, GType instanceType, GType interfaceType, GInterfaceInfo* info)g_type_plugin_complete_interface_info;
+	
+	// gobject.TypeModule
+	
+	gboolean function(GTypeModule* modul)g_type_module_use;
+	void function(GTypeModule* modul)g_type_module_unuse;
+	void function(GTypeModule* modul, gchar* name)g_type_module_set_name;
+	GType function(GTypeModule* modul, GType parentType, gchar* typeName, GTypeInfo* typeInfo, GTypeFlags flags)g_type_module_register_type;
+	void function(GTypeModule* modul, GType instanceType, GType interfaceType, GInterfaceInfo* interfaceInfo)g_type_module_add_interface;
+	GType function(GTypeModule* modul, gchar* name, GEnumValue* _StaticValues)g_type_module_register_enum;
+	GType function(GTypeModule* modul, gchar* name, GFlagsValue* _StaticValues)g_type_module_register_flags;
+	
+	// gobject.ObjectG
+	
+	void function(GObjectClass* oclass, guint propertyId, GParamSpec* pspec)g_object_class_install_property;
+	GParamSpec* function(GObjectClass* oclass, gchar* propertyName)g_object_class_find_property;
+	GParamSpec** function(GObjectClass* oclass, guint* nProperties)g_object_class_list_properties;
+	void function(GObjectClass* oclass, guint propertyId, gchar* name)g_object_class_override_property;
+	void function(gpointer gIface, GParamSpec* pspec)g_object_interface_install_property;
+	GParamSpec* function(gpointer gIface, gchar* propertyName)g_object_interface_find_property;
+	GParamSpec** function(gpointer gIface, guint* nPropertiesP)g_object_interface_list_properties;
+	gpointer function(GType objectType, gchar* firstPropertyName, ... )g_object_new;
+	gpointer function(GType objectType, guint nParameters, GParameter* parameters)g_object_newv;
+	gpointer function(gpointer object)g_object_ref;
+	void function(gpointer object)g_object_unref;
+	gpointer function(gpointer object)g_object_ref_sink;
+	gboolean function(gpointer object)g_object_is_floating;
+	void function(GObject* object)g_object_force_floating;
+	void function(GObject* object, GWeakNotify notify, gpointer data)g_object_weak_ref;
+	void function(GObject* object, GWeakNotify notify, gpointer data)g_object_weak_unref;
+	void function(GObject* object, gpointer* weakPointerLocation)g_object_add_weak_pointer;
+	void function(GObject* object, gpointer* weakPointerLocation)g_object_remove_weak_pointer;
+	void function(GObject* object, GToggleNotify notify, gpointer data)g_object_add_toggle_ref;
+	void function(GObject* object, GToggleNotify notify, gpointer data)g_object_remove_toggle_ref;
+	gpointer function(gpointer object, gchar* signalSpec, ... )g_object_connect;
+	void function(gpointer object, gchar* signalSpec, ... )g_object_disconnect;
+	void function(gpointer object, gchar* firstPropertyName, ... )g_object_set;
+	void function(gpointer object, gchar* firstPropertyName, ... )g_object_get;
+	void function(GObject* object, gchar* propertyName)g_object_notify;
+	void function(GObject* object)g_object_freeze_notify;
+	void function(GObject* object)g_object_thaw_notify;
+	gpointer function(GObject* object, gchar* key)g_object_get_data;
+	void function(GObject* object, gchar* key, gpointer data)g_object_set_data;
+	void function(GObject* object, gchar* key, gpointer data, GDestroyNotify destroy)g_object_set_data_full;
+	gpointer function(GObject* object, gchar* key)g_object_steal_data;
+	gpointer function(GObject* object, GQuark quark)g_object_get_qdata;
+	void function(GObject* object, GQuark quark, gpointer data)g_object_set_qdata;
+	void function(GObject* object, GQuark quark, gpointer data, GDestroyNotify destroy)g_object_set_qdata_full;
+	gpointer function(GObject* object, GQuark quark)g_object_steal_qdata;
+	void function(GObject* object, gchar* propertyName, GValue* value)g_object_set_property;
+	void function(GObject* object, gchar* propertyName, GValue* value)g_object_get_property;
+	GObject* function(GType objectType, gchar* firstPropertyName, va_list varArgs)g_object_new_valist;
+	void function(GObject* object, gchar* firstPropertyName, va_list varArgs)g_object_set_valist;
+	void function(GObject* object, gchar* firstPropertyName, va_list varArgs)g_object_get_valist;
+	void function(GObject* object, GClosure* closure)g_object_watch_closure;
+	void function(GObject* object)g_object_run_dispose;
+	
+	// gobject.Enums
+	
+	GEnumValue* function(GEnumClass* enumClass, gint value)g_enum_get_value;
+	GEnumValue* function(GEnumClass* enumClass, gchar* name)g_enum_get_value_by_name;
+	GEnumValue* function(GEnumClass* enumClass, gchar* nick)g_enum_get_value_by_nick;
+	GType function(gchar* name, GEnumValue* _StaticValues)g_enum_register_static;
+	void function(GType type, GTypeInfo* info, GEnumValue* _Values)g_enum_complete_type_info;
+	
+	// gobject.Flags
+	
+	GFlagsValue* function(GFlagsClass* flagsClass, guint value)g_flags_get_first_value;
+	GFlagsValue* function(GFlagsClass* flagsClass, gchar* name)g_flags_get_value_by_name;
+	GFlagsValue* function(GFlagsClass* flagsClass, gchar* nick)g_flags_get_value_by_nick;
+	GType function(gchar* name, GFlagsValue* _StaticValues)g_flags_register_static;
+	void function(GType type, GTypeInfo* info, GFlagsValue* _Values)g_flags_complete_type_info;
+	
+	// gobject.Boxed
+	
+	gpointer function(GType boxedType, gconstpointer srcBoxed)g_boxed_copy;
+	void function(GType boxedType, gpointer boxed)g_boxed_free;
+	GType function(gchar* name, GBoxedCopyFunc boxedCopy, GBoxedFreeFunc boxedFree)g_boxed_type_register_static;
+	GType function(gchar* name)g_pointer_type_register_static;
+	
+	// gobject.Value
+	
+	GValue* function(GValue* value, GType gType)g_value_init;
+	void function(GValue* srcValue, GValue* destValue)g_value_copy;
+	GValue* function(GValue* value)g_value_reset;
+	void function(GValue* value)g_value_unset;
+	void function(GValue* value, gpointer instanc)g_value_set_instance;
+	gboolean function(GValue* value)g_value_fits_pointer;
+	gpointer function(GValue* value)g_value_peek_pointer;
+	gboolean function(GType srcType, GType destType)g_value_type_compatible;
+	gboolean function(GType srcType, GType destType)g_value_type_transformable;
+	gboolean function(GValue* srcValue, GValue* destValue)g_value_transform;
+	void function(GType srcType, GType destType, GValueTransform transformFunc)g_value_register_transform_func;
+	gchar* function(GValue* value)g_strdup_value_contents;
+	GParamSpec* function(gchar* name, gchar* nick, gchar* blurb, gboolean defaultValue, GParamFlags flags)g_param_spec_boolean;
+	void function(GValue* value, gboolean vBoolean)g_value_set_boolean;
+	gboolean function(GValue* value)g_value_get_boolean;
+	GParamSpec* function(gchar* name, gchar* nick, gchar* blurb, gint8 minimum, gint8 maximum, gint8 defaultValue, GParamFlags flags)g_param_spec_char;
+	void function(GValue* value, gchar vChar)g_value_set_char;
+	gchar function(GValue* value)g_value_get_char;
+	GParamSpec* function(gchar* name, gchar* nick, gchar* blurb, guint8 minimum, guint8 maximum, guint8 defaultValue, GParamFlags flags)g_param_spec_uchar;
+	void function(GValue* value, guchar vUchar)g_value_set_uchar;
+	guchar function(GValue* value)g_value_get_uchar;
+	GParamSpec* function(gchar* name, gchar* nick, gchar* blurb, gint minimum, gint maximum, gint defaultValue, GParamFlags flags)g_param_spec_int;
+	void function(GValue* value, gint vInt)g_value_set_int;
+	gint function(GValue* value)g_value_get_int;
+	GParamSpec* function(gchar* name, gchar* nick, gchar* blurb, guint minimum, guint maximum, guint defaultValue, GParamFlags flags)g_param_spec_uint;
+	void function(GValue* value, guint vUint)g_value_set_uint;
+	guint function(GValue* value)g_value_get_uint;
+	GParamSpec* function(gchar* name, gchar* nick, gchar* blurb, glong minimum, glong maximum, glong defaultValue, GParamFlags flags)g_param_spec_long;
+	void function(GValue* value, glong vLong)g_value_set_long;
+	glong function(GValue* value)g_value_get_long;
+	GParamSpec* function(gchar* name, gchar* nick, gchar* blurb, gulong minimum, gulong maximum, gulong defaultValue, GParamFlags flags)g_param_spec_ulong;
+	void function(GValue* value, gulong vUlong)g_value_set_ulong;
+	gulong function(GValue* value)g_value_get_ulong;
+	GParamSpec* function(gchar* name, gchar* nick, gchar* blurb, gint64 minimum, gint64 maximum, gint64 defaultValue, GParamFlags flags)g_param_spec_int64;
+	void function(GValue* value, gint64 vInt64)g_value_set_int64;
+	gint64 function(GValue* value)g_value_get_int64;
+	GParamSpec* function(gchar* name, gchar* nick, gchar* blurb, guint64 minimum, guint64 maximum, guint64 defaultValue, GParamFlags flags)g_param_spec_uint64;
+	void function(GValue* value, guint64 vUint64)g_value_set_uint64;
+	guint64 function(GValue* value)g_value_get_uint64;
+	GParamSpec* function(gchar* name, gchar* nick, gchar* blurb, gfloat minimum, gfloat maximum, gfloat defaultValue, GParamFlags flags)g_param_spec_float;
+	void function(GValue* value, gfloat vFloat)g_value_set_float;
+	gfloat function(GValue* value)g_value_get_float;
+	GParamSpec* function(gchar* name, gchar* nick, gchar* blurb, gdouble minimum, gdouble maximum, gdouble defaultValue, GParamFlags flags)g_param_spec_double;
+	void function(GValue* value, gdouble vDouble)g_value_set_double;
+	gdouble function(GValue* value)g_value_get_double;
+	GParamSpec* function(gchar* name, gchar* nick, gchar* blurb, GType enumType, gint defaultValue, GParamFlags flags)g_param_spec_enum;
+	void function(GValue* value, gint vEnum)g_value_set_enum;
+	gint function(GValue* value)g_value_get_enum;
+	GParamSpec* function(gchar* name, gchar* nick, gchar* blurb, GType flagsType, guint defaultValue, GParamFlags flags)g_param_spec_flags;
+	void function(GValue* value, guint vFlags)g_value_set_flags;
+	guint function(GValue* value)g_value_get_flags;
+	GParamSpec* function(gchar* name, gchar* nick, gchar* blurb, gchar* defaultValue, GParamFlags flags)g_param_spec_string;
+	void function(GValue* value, gchar* vString)g_value_set_string;
+	void function(GValue* value, gchar* vString)g_value_set_static_string;
+	void function(GValue* value, gchar* vString)g_value_take_string;
+	void function(GValue* value, gchar* vString)g_value_set_string_take_ownership;
+	gchar* function(GValue* value)g_value_get_string;
+	gchar* function(GValue* value)g_value_dup_string;
+	GParamSpec* function(gchar* name, gchar* nick, gchar* blurb, GType paramType, GParamFlags flags)g_param_spec_param;
+	void function(GValue* value, GParamSpec* param)g_value_set_param;
+	void function(GValue* value, GParamSpec* param)g_value_take_param;
+	void function(GValue* value, GParamSpec* param)g_value_set_param_take_ownership;
+	GParamSpec* function(GValue* value)g_value_get_param;
+	GParamSpec* function(GValue* value)g_value_dup_param;
+	GParamSpec* function(gchar* name, gchar* nick, gchar* blurb, GType boxedType, GParamFlags flags)g_param_spec_boxed;
+	void function(GValue* value, gconstpointer vBoxed)g_value_set_boxed;
+	void function(GValue* value, gconstpointer vBoxed)g_value_set_static_boxed;
+	void function(GValue* value, gconstpointer vBoxed)g_value_take_boxed;
+	void function(GValue* value, gconstpointer vBoxed)g_value_set_boxed_take_ownership;
+	gpointer function(GValue* value)g_value_get_boxed;
+	gpointer function(GValue* value)g_value_dup_boxed;
+	GParamSpec* function(gchar* name, gchar* nick, gchar* blurb, GParamFlags flags)g_param_spec_pointer;
+	void function(GValue* value, gpointer vPointer)g_value_set_pointer;
+	gpointer function(GValue* value)g_value_get_pointer;
+	GParamSpec* function(gchar* name, gchar* nick, gchar* blurb, GType objectType, GParamFlags flags)g_param_spec_object;
+	void function(GValue* value, gpointer vObject)g_value_set_object;
+	void function(GValue* value, gpointer vObject)g_value_take_object;
+	void function(GValue* value, gpointer vObject)g_value_set_object_take_ownership;
+	gpointer function(GValue* value)g_value_get_object;
+	gpointer function(GValue* value)g_value_dup_object;
+	GParamSpec* function(gchar* name, gchar* nick, gchar* blurb, gunichar defaultValue, GParamFlags flags)g_param_spec_unichar;
+	GParamSpec* function(gchar* name, gchar* nick, gchar* blurb, GParamSpec* elementSpec, GParamFlags flags)g_param_spec_value_array;
+	GParamSpec* function(gchar* name, GParamSpec* overridden)g_param_spec_override;
+	GParamSpec* function(gchar* name, gchar* nick, gchar* blurb, GType isAType, GParamFlags flags)g_param_spec_gtype;
+	GType function(GValue* value)g_value_get_gtype;
+	void function(GValue* value, GType vGtype)g_value_set_gtype;
+	
+	// gobject.ParamSpec
+	
+	GParamSpec* function(GParamSpec* pspec)g_param_spec_ref;
+	void function(GParamSpec* pspec)g_param_spec_unref;
+	void function(GParamSpec* pspec)g_param_spec_sink;
+	GParamSpec* function(GParamSpec* pspec)g_param_spec_ref_sink;
+	void function(GParamSpec* pspec, GValue* value)g_param_value_set_default;
+	gboolean function(GParamSpec* pspec, GValue* value)g_param_value_defaults;
+	gboolean function(GParamSpec* pspec, GValue* value)g_param_value_validate;
+	gboolean function(GParamSpec* pspec, GValue* srcValue, GValue* destValue, gboolean strictValidation)g_param_value_convert;
+	gint function(GParamSpec* pspec, GValue* value1, GValue* value2)g_param_values_cmp;
+	gchar* function(GParamSpec* pspec)g_param_spec_get_name;
+	gchar* function(GParamSpec* pspec)g_param_spec_get_nick;
+	gchar* function(GParamSpec* pspec)g_param_spec_get_blurb;
+	gpointer function(GParamSpec* pspec, GQuark quark)g_param_spec_get_qdata;
+	void function(GParamSpec* pspec, GQuark quark, gpointer data)g_param_spec_set_qdata;
+	void function(GParamSpec* pspec, GQuark quark, gpointer data, GDestroyNotify destroy)g_param_spec_set_qdata_full;
+	gpointer function(GParamSpec* pspec, GQuark quark)g_param_spec_steal_qdata;
+	GParamSpec* function(GParamSpec* pspec)g_param_spec_get_redirect_target;
+	gpointer function(GType paramType, gchar* name, gchar* nick, gchar* blurb, GParamFlags flags)g_param_spec_internal;
+	GType function(gchar* name, GParamSpecTypeInfo* pspecInfo)g_param_type_register_static;
+	GParamSpecPool* function(gboolean typePrefixing)g_param_spec_pool_new;
+	void function(GParamSpecPool* pool, GParamSpec* pspec, GType ownerType)g_param_spec_pool_insert;
+	void function(GParamSpecPool* pool, GParamSpec* pspec)g_param_spec_pool_remove;
+	GParamSpec* function(GParamSpecPool* pool, gchar* paramName, GType ownerType, gboolean walkAncestors)g_param_spec_pool_lookup;
+	GParamSpec** function(GParamSpecPool* pool, GType ownerType, guint* nPspecsP)g_param_spec_pool_list;
+	GList* function(GParamSpecPool* pool, GType ownerType)g_param_spec_pool_list_owned;
+	
+	// gobject.Signals
+	
+	guint function(gchar* signalName, GType itype, GSignalFlags signalFlags, guint classOffset, GSignalAccumulator accumulator, gpointer accuData, GSignalCMarshaller cMarshaller, GType returnType, guint nParams, ... )g_signal_new;
+	guint function(gchar* signalName, GType itype, GSignalFlags signalFlags, GClosure* classClosure, GSignalAccumulator accumulator, gpointer accuData, GSignalCMarshaller cMarshaller, GType returnType, guint nParams, GType* paramTypes)g_signal_newv;
+	guint function(gchar* signalName, GType itype, GSignalFlags signalFlags, GClosure* classClosure, GSignalAccumulator accumulator, gpointer accuData, GSignalCMarshaller cMarshaller, GType returnType, guint nParams, va_list args)g_signal_new_valist;
+	void function(guint signalId, GSignalQuery* query)g_signal_query;
+	guint function(gchar* name, GType itype)g_signal_lookup;
+	gchar* function(guint signalId)g_signal_name;
+	guint* function(GType itype, guint* nIds)g_signal_list_ids;
+	void function(gpointer instanc, guint signalId, GQuark detail, ... )g_signal_emit;
+	void function(gpointer instanc, gchar* detailedSignal, ... )g_signal_emit_by_name;
+	void function(GValue* instanceAndParams, guint signalId, GQuark detail, GValue* returnValue)g_signal_emitv;
+	void function(gpointer instanc, guint signalId, GQuark detail, va_list varArgs)g_signal_emit_valist;
+	gulong function(gpointer instanc, gchar* detailedSignal, GCallback cHandler, gpointer gobject, GConnectFlags connectFlags)g_signal_connect_object;
+	gulong function(gpointer instanc, gchar* detailedSignal, GCallback cHandler, gpointer data, GClosureNotify destroyData, GConnectFlags connectFlags)g_signal_connect_data;
+	gulong function(gpointer instanc, gchar* detailedSignal, GClosure* closure, gboolean after)g_signal_connect_closure;
+	gulong function(gpointer instanc, guint signalId, GQuark detail, GClosure* closure, gboolean after)g_signal_connect_closure_by_id;
+	void function(gpointer instanc, gulong handlerId)g_signal_handler_block;
+	void function(gpointer instanc, gulong handlerId)g_signal_handler_unblock;
+	void function(gpointer instanc, gulong handlerId)g_signal_handler_disconnect;
+	gulong function(gpointer instanc, GSignalMatchType mask, guint signalId, GQuark detail, GClosure* closure, gpointer func, gpointer data)g_signal_handler_find;
+	guint function(gpointer instanc, GSignalMatchType mask, guint signalId, GQuark detail, GClosure* closure, gpointer func, gpointer data)g_signal_handlers_block_matched;
+	guint function(gpointer instanc, GSignalMatchType mask, guint signalId, GQuark detail, GClosure* closure, gpointer func, gpointer data)g_signal_handlers_unblock_matched;
+	guint function(gpointer instanc, GSignalMatchType mask, guint signalId, GQuark detail, GClosure* closure, gpointer func, gpointer data)g_signal_handlers_disconnect_matched;
+	gboolean function(gpointer instanc, gulong handlerId)g_signal_handler_is_connected;
+	gboolean function(gpointer instanc, guint signalId, GQuark detail, gboolean mayBeBlocked)g_signal_has_handler_pending;
+	void function(gpointer instanc, guint signalId, GQuark detail)g_signal_stop_emission;
+	void function(gpointer instanc, gchar* detailedSignal)g_signal_stop_emission_by_name;
+	void function(guint signalId, GType instanceType, GClosure* classClosure)g_signal_override_class_closure;
+	void function(GValue* instanceAndParams, GValue* returnValue)g_signal_chain_from_overridden;
+	gulong function(guint signalId, GQuark detail, GSignalEmissionHook hookFunc, gpointer hookData, GDestroyNotify dataDestroy)g_signal_add_emission_hook;
+	void function(guint signalId, gulong hookId)g_signal_remove_emission_hook;
+	gboolean function(gchar* detailedSignal, GType itype, guint* signalIdP, GQuark* detailP, gboolean forceDetailQuark)g_signal_parse_name;
+	GSignalInvocationHint* function(gpointer instanc)g_signal_get_invocation_hint;
+	GClosure* function(GType itype, guint structOffset)g_signal_type_cclosure_new;
+	gboolean function(GSignalInvocationHint* ihint, GValue* returnAccu, GValue* handlerReturn, gpointer dummy)g_signal_accumulator_true_handled;
+	
+	// gobject.Closure
+	
+	GClosure* function(guint sizeofClosure, GObject* object)g_closure_new_object;
+	GClosure* function(GClosure* closure)g_closure_ref;
+	void function(GClosure* closure)g_closure_sink;
+	void function(GClosure* closure)g_closure_unref;
+	void function(GClosure* closure, GValue* returnValue, guint nParamValues, GValue* paramValues, gpointer invocationHint)g_closure_invoke;
+	void function(GClosure* closure)g_closure_invalidate;
+	void function(GClosure* closure, gpointer notifyData, GClosureNotify notifyFunc)g_closure_add_finalize_notifier;
+	void function(GClosure* closure, gpointer notifyData, GClosureNotify notifyFunc)g_closure_add_invalidate_notifier;
+	void function(GClosure* closure, gpointer notifyData, GClosureNotify notifyFunc)g_closure_remove_finalize_notifier;
+	void function(GClosure* closure, gpointer notifyData, GClosureNotify notifyFunc)g_closure_remove_invalidate_notifier;
+	GClosure* function(guint sizeofClosure, gpointer data)g_closure_new_simple;
+	void function(GClosure* closure, GClosureMarshal marshal)g_closure_set_marshal;
+	void function(GClosure* closure, gpointer preMarshalData, GClosureNotify preMarshalNotify, gpointer postMarshalData, GClosureNotify postMarshalNotify)g_closure_add_marshal_guards;
+	void function(GClosure* closure, gpointer marshalData, GClosureMarshal metaMarshal)g_closure_set_meta_marshal;
+	void function(GSource* source, GClosure* closure)g_source_set_closure;
+	
+	// gobject.CClosure
+	
+	GClosure* function(GCallback callbackFunc, gpointer userData, GClosureNotify destroyData)g_cclosure_new;
+	GClosure* function(GCallback callbackFunc, gpointer userData, GClosureNotify destroyData)g_cclosure_new_swap;
+	GClosure* function(GCallback callbackFunc, GObject* object)g_cclosure_new_object;
+	GClosure* function(GCallback callbackFunc, GObject* object)g_cclosure_new_object_swap;
+	void function(GClosure* closure, GValue* returnValue, guint nParamValues, GValue* paramValues, gpointer invocationHint, gpointer marshalData)g_cclosure_marshal_VOID__VOID;
+	void function(GClosure* closure, GValue* returnValue, guint nParamValues, GValue* paramValues, gpointer invocationHint, gpointer marshalData)g_cclosure_marshal_VOID__BOOLEAN;
+	void function(GClosure* closure, GValue* returnValue, guint nParamValues, GValue* paramValues, gpointer invocationHint, gpointer marshalData)g_cclosure_marshal_VOID__CHAR;
+	void function(GClosure* closure, GValue* returnValue, guint nParamValues, GValue* paramValues, gpointer invocationHint, gpointer marshalData)g_cclosure_marshal_VOID__UCHAR;
+	void function(GClosure* closure, GValue* returnValue, guint nParamValues, GValue* paramValues, gpointer invocationHint, gpointer marshalData)g_cclosure_marshal_VOID__INT;
+	void function(GClosure* closure, GValue* returnValue, guint nParamValues, GValue* paramValues, gpointer invocationHint, gpointer marshalData)g_cclosure_marshal_VOID__UINT;
+	void function(GClosure* closure, GValue* returnValue, guint nParamValues, GValue* paramValues, gpointer invocationHint, gpointer marshalData)g_cclosure_marshal_VOID__LONG;
+	void function(GClosure* closure, GValue* returnValue, guint nParamValues, GValue* paramValues, gpointer invocationHint, gpointer marshalData)g_cclosure_marshal_VOID__ULONG;
+	void function(GClosure* closure, GValue* returnValue, guint nParamValues, GValue* paramValues, gpointer invocationHint, gpointer marshalData)g_cclosure_marshal_VOID__ENUM;
+	void function(GClosure* closure, GValue* returnValue, guint nParamValues, GValue* paramValues, gpointer invocationHint, gpointer marshalData)g_cclosure_marshal_VOID__FLAGS;
+	void function(GClosure* closure, GValue* returnValue, guint nParamValues, GValue* paramValues, gpointer invocationHint, gpointer marshalData)g_cclosure_marshal_VOID__FLOAT;
+	void function(GClosure* closure, GValue* returnValue, guint nParamValues, GValue* paramValues, gpointer invocationHint, gpointer marshalData)g_cclosure_marshal_VOID__DOUBLE;
+	void function(GClosure* closure, GValue* returnValue, guint nParamValues, GValue* paramValues, gpointer invocationHint, gpointer marshalData)g_cclosure_marshal_VOID__STRING;
+	void function(GClosure* closure, GValue* returnValue, guint nParamValues, GValue* paramValues, gpointer invocationHint, gpointer marshalData)g_cclosure_marshal_VOID__PARAM;
+	void function(GClosure* closure, GValue* returnValue, guint nParamValues, GValue* paramValues, gpointer invocationHint, gpointer marshalData)g_cclosure_marshal_VOID__BOXED;
+	void function(GClosure* closure, GValue* returnValue, guint nParamValues, GValue* paramValues, gpointer invocationHint, gpointer marshalData)g_cclosure_marshal_VOID__POINTER;
+	void function(GClosure* closure, GValue* returnValue, guint nParamValues, GValue* paramValues, gpointer invocationHint, gpointer marshalData)g_cclosure_marshal_VOID__OBJECT;
+	void function(GClosure* closure, GValue* returnValue, guint nParamValues, GValue* paramValues, gpointer invocationHint, gpointer marshalData)g_cclosure_marshal_STRING__OBJECT_POINTER;
+	void function(GClosure* closure, GValue* returnValue, guint nParamValues, GValue* paramValues, gpointer invocationHint, gpointer marshalData)g_cclosure_marshal_VOID__UINT_POINTER;
+	void function(GClosure* closure, GValue* returnValue, guint nParamValues, GValue* paramValues, gpointer invocationHint, gpointer marshalData)g_cclosure_marshal_BOOLEAN__FLAGS;
+	
+	// gobject.ValueArray
+	
+	GValue* function(GValueArray* valueArray, guint index)g_value_array_get_nth;
+	GValueArray* function(guint nPrealloced)g_value_array_new;
+	GValueArray* function(GValueArray* valueArray)g_value_array_copy;
+	void function(GValueArray* valueArray)g_value_array_free;
+	GValueArray* function(GValueArray* valueArray, GValue* value)g_value_array_append;
+	GValueArray* function(GValueArray* valueArray, GValue* value)g_value_array_prepend;
+	GValueArray* function(GValueArray* valueArray, guint index, GValue* value)g_value_array_insert;
+	GValueArray* function(GValueArray* valueArray, guint index)g_value_array_remove;
+	GValueArray* function(GValueArray* valueArray, GCompareFunc compareFunc)g_value_array_sort;
+	GValueArray* function(GValueArray* valueArray, GCompareDataFunc compareFunc, gpointer userData)g_value_array_sort_with_data;
+
+
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+Symbol[] gobjectLinks = 
+[
+
+	{ "g_type_init",  cast(void**)& g_type_init},
+	{ "g_type_init_with_debug_flags",  cast(void**)& g_type_init_with_debug_flags},
+	{ "g_type_name",  cast(void**)& g_type_name},
+	{ "g_type_qname",  cast(void**)& g_type_qname},
+	{ "g_type_from_name",  cast(void**)& g_type_from_name},
+	{ "g_type_parent",  cast(void**)& g_type_parent},
+	{ "g_type_depth",  cast(void**)& g_type_depth},
+	{ "g_type_next_base",  cast(void**)& g_type_next_base},
+	{ "g_type_is_a",  cast(void**)& g_type_is_a},
+	{ "g_type_class_ref",  cast(void**)& g_type_class_ref},
+	{ "g_type_class_peek",  cast(void**)& g_type_class_peek},
+	{ "g_type_class_peek_static",  cast(void**)& g_type_class_peek_static},
+	{ "g_type_class_unref",  cast(void**)& g_type_class_unref},
+	{ "g_type_class_peek_parent",  cast(void**)& g_type_class_peek_parent},
+	{ "g_type_class_add_private",  cast(void**)& g_type_class_add_private},
+	{ "g_type_interface_peek",  cast(void**)& g_type_interface_peek},
+	{ "g_type_interface_peek_parent",  cast(void**)& g_type_interface_peek_parent},
+	{ "g_type_default_interface_ref",  cast(void**)& g_type_default_interface_ref},
+	{ "g_type_default_interface_peek",  cast(void**)& g_type_default_interface_peek},
+	{ "g_type_default_interface_unref",  cast(void**)& g_type_default_interface_unref},
+	{ "g_type_children",  cast(void**)& g_type_children},
+	{ "g_type_interfaces",  cast(void**)& g_type_interfaces},
+	{ "g_type_interface_prerequisites",  cast(void**)& g_type_interface_prerequisites},
+	{ "g_type_set_qdata",  cast(void**)& g_type_set_qdata},
+	{ "g_type_get_qdata",  cast(void**)& g_type_get_qdata},
+	{ "g_type_query",  cast(void**)& g_type_query},
+	{ "g_type_register_static",  cast(void**)& g_type_register_static},
+	{ "g_type_register_static_simple",  cast(void**)& g_type_register_static_simple},
+	{ "g_type_register_dynamic",  cast(void**)& g_type_register_dynamic},
+	{ "g_type_register_fundamental",  cast(void**)& g_type_register_fundamental},
+	{ "g_type_add_interface_static",  cast(void**)& g_type_add_interface_static},
+	{ "g_type_add_interface_dynamic",  cast(void**)& g_type_add_interface_dynamic},
+	{ "g_type_interface_add_prerequisite",  cast(void**)& g_type_interface_add_prerequisite},
+	{ "g_type_get_plugin",  cast(void**)& g_type_get_plugin},
+	{ "g_type_interface_get_plugin",  cast(void**)& g_type_interface_get_plugin},
+	{ "g_type_fundamental_next",  cast(void**)& g_type_fundamental_next},
+	{ "g_type_fundamental",  cast(void**)& g_type_fundamental},
+	{ "g_type_create_instance",  cast(void**)& g_type_create_instance},
+	{ "g_type_free_instance",  cast(void**)& g_type_free_instance},
+	{ "g_type_add_class_cache_func",  cast(void**)& g_type_add_class_cache_func},
+	{ "g_type_remove_class_cache_func",  cast(void**)& g_type_remove_class_cache_func},
+	{ "g_type_class_unref_uncached",  cast(void**)& g_type_class_unref_uncached},
+	{ "g_type_add_interface_check",  cast(void**)& g_type_add_interface_check},
+	{ "g_type_remove_interface_check",  cast(void**)& g_type_remove_interface_check},
+	{ "g_type_value_table_peek",  cast(void**)& g_type_value_table_peek},
+	{ "g_type_plugin_use",  cast(void**)& g_type_plugin_use},
+	{ "g_type_plugin_unuse",  cast(void**)& g_type_plugin_unuse},
+	{ "g_type_plugin_complete_type_info",  cast(void**)& g_type_plugin_complete_type_info},
+	{ "g_type_plugin_complete_interface_info",  cast(void**)& g_type_plugin_complete_interface_info},
+	{ "g_type_module_use",  cast(void**)& g_type_module_use},
+	{ "g_type_module_unuse",  cast(void**)& g_type_module_unuse},
+	{ "g_type_module_set_name",  cast(void**)& g_type_module_set_name},
+	{ "g_type_module_register_type",  cast(void**)& g_type_module_register_type},
+	{ "g_type_module_add_interface",  cast(void**)& g_type_module_add_interface},
+	{ "g_type_module_register_enum",  cast(void**)& g_type_module_register_enum},
+	{ "g_type_module_register_flags",  cast(void**)& g_type_module_register_flags},
+	{ "g_object_class_install_property",  cast(void**)& g_object_class_install_property},
+	{ "g_object_class_find_property",  cast(void**)& g_object_class_find_property},
+	{ "g_object_class_list_properties",  cast(void**)& g_object_class_list_properties},
+	{ "g_object_class_override_property",  cast(void**)& g_object_class_override_property},
+	{ "g_object_interface_install_property",  cast(void**)& g_object_interface_install_property},
+	{ "g_object_interface_find_property",  cast(void**)& g_object_interface_find_property},
+	{ "g_object_interface_list_properties",  cast(void**)& g_object_interface_list_properties},
+	{ "g_object_new",  cast(void**)& g_object_new},
+	{ "g_object_newv",  cast(void**)& g_object_newv},
+	{ "g_object_ref",  cast(void**)& g_object_ref},
+	{ "g_object_unref",  cast(void**)& g_object_unref},
+	{ "g_object_ref_sink",  cast(void**)& g_object_ref_sink},
+	{ "g_object_is_floating",  cast(void**)& g_object_is_floating},
+	{ "g_object_force_floating",  cast(void**)& g_object_force_floating},
+	{ "g_object_weak_ref",  cast(void**)& g_object_weak_ref},
+	{ "g_object_weak_unref",  cast(void**)& g_object_weak_unref},
+	{ "g_object_add_weak_pointer",  cast(void**)& g_object_add_weak_pointer},
+	{ "g_object_remove_weak_pointer",  cast(void**)& g_object_remove_weak_pointer},
+	{ "g_object_add_toggle_ref",  cast(void**)& g_object_add_toggle_ref},
+	{ "g_object_remove_toggle_ref",  cast(void**)& g_object_remove_toggle_ref},
+	{ "g_object_connect",  cast(void**)& g_object_connect},
+	{ "g_object_disconnect",  cast(void**)& g_object_disconnect},
+	{ "g_object_set",  cast(void**)& g_object_set},
+	{ "g_object_get",  cast(void**)& g_object_get},
+	{ "g_object_notify",  cast(void**)& g_object_notify},
+	{ "g_object_freeze_notify",  cast(void**)& g_object_freeze_notify},
+	{ "g_object_thaw_notify",  cast(void**)& g_object_thaw_notify},
+	{ "g_object_get_data",  cast(void**)& g_object_get_data},
+	{ "g_object_set_data",  cast(void**)& g_object_set_data},
+	{ "g_object_set_data_full",  cast(void**)& g_object_set_data_full},
+	{ "g_object_steal_data",  cast(void**)& g_object_steal_data},
+	{ "g_object_get_qdata",  cast(void**)& g_object_get_qdata},
+	{ "g_object_set_qdata",  cast(void**)& g_object_set_qdata},
+	{ "g_object_set_qdata_full",  cast(void**)& g_object_set_qdata_full},
+	{ "g_object_steal_qdata",  cast(void**)& g_object_steal_qdata},
+	{ "g_object_set_property",  cast(void**)& g_object_set_property},
+	{ "g_object_get_property",  cast(void**)& g_object_get_property},
+	{ "g_object_new_valist",  cast(void**)& g_object_new_valist},
+	{ "g_object_set_valist",  cast(void**)& g_object_set_valist},
+	{ "g_object_get_valist",  cast(void**)& g_object_get_valist},
+	{ "g_object_watch_closure",  cast(void**)& g_object_watch_closure},
+	{ "g_object_run_dispose",  cast(void**)& g_object_run_dispose},
+	{ "g_enum_get_value",  cast(void**)& g_enum_get_value},
+	{ "g_enum_get_value_by_name",  cast(void**)& g_enum_get_value_by_name},
+	{ "g_enum_get_value_by_nick",  cast(void**)& g_enum_get_value_by_nick},
+	{ "g_enum_register_static",  cast(void**)& g_enum_register_static},
+	{ "g_enum_complete_type_info",  cast(void**)& g_enum_complete_type_info},
+	{ "g_flags_get_first_value",  cast(void**)& g_flags_get_first_value},
+	{ "g_flags_get_value_by_name",  cast(void**)& g_flags_get_value_by_name},
+	{ "g_flags_get_value_by_nick",  cast(void**)& g_flags_get_value_by_nick},
+	{ "g_flags_register_static",  cast(void**)& g_flags_register_static},
+	{ "g_flags_complete_type_info",  cast(void**)& g_flags_complete_type_info},
+	{ "g_boxed_copy",  cast(void**)& g_boxed_copy},
+	{ "g_boxed_free",  cast(void**)& g_boxed_free},
+	{ "g_boxed_type_register_static",  cast(void**)& g_boxed_type_register_static},
+	{ "g_pointer_type_register_static",  cast(void**)& g_pointer_type_register_static},
+	{ "g_value_init",  cast(void**)& g_value_init},
+	{ "g_value_copy",  cast(void**)& g_value_copy},
+	{ "g_value_reset",  cast(void**)& g_value_reset},
+	{ "g_value_unset",  cast(void**)& g_value_unset},
+	{ "g_value_set_instance",  cast(void**)& g_value_set_instance},
+	{ "g_value_fits_pointer",  cast(void**)& g_value_fits_pointer},
+	{ "g_value_peek_pointer",  cast(void**)& g_value_peek_pointer},
+	{ "g_value_type_compatible",  cast(void**)& g_value_type_compatible},
+	{ "g_value_type_transformable",  cast(void**)& g_value_type_transformable},
+	{ "g_value_transform",  cast(void**)& g_value_transform},
+	{ "g_value_register_transform_func",  cast(void**)& g_value_register_transform_func},
+	{ "g_strdup_value_contents",  cast(void**)& g_strdup_value_contents},
+	{ "g_param_spec_boolean",  cast(void**)& g_param_spec_boolean},
+	{ "g_value_set_boolean",  cast(void**)& g_value_set_boolean},
+	{ "g_value_get_boolean",  cast(void**)& g_value_get_boolean},
+	{ "g_param_spec_char",  cast(void**)& g_param_spec_char},
+	{ "g_value_set_char",  cast(void**)& g_value_set_char},
+	{ "g_value_get_char",  cast(void**)& g_value_get_char},
+	{ "g_param_spec_uchar",  cast(void**)& g_param_spec_uchar},
+	{ "g_value_set_uchar",  cast(void**)& g_value_set_uchar},
+	{ "g_value_get_uchar",  cast(void**)& g_value_get_uchar},
+	{ "g_param_spec_int",  cast(void**)& g_param_spec_int},
+	{ "g_value_set_int",  cast(void**)& g_value_set_int},
+	{ "g_value_get_int",  cast(void**)& g_value_get_int},
+	{ "g_param_spec_uint",  cast(void**)& g_param_spec_uint},
+	{ "g_value_set_uint",  cast(void**)& g_value_set_uint},
+	{ "g_value_get_uint",  cast(void**)& g_value_get_uint},
+	{ "g_param_spec_long",  cast(void**)& g_param_spec_long},
+	{ "g_value_set_long",  cast(void**)& g_value_set_long},
+	{ "g_value_get_long",  cast(void**)& g_value_get_long},
+	{ "g_param_spec_ulong",  cast(void**)& g_param_spec_ulong},
+	{ "g_value_set_ulong",  cast(void**)& g_value_set_ulong},
+	{ "g_value_get_ulong",  cast(void**)& g_value_get_ulong},
+	{ "g_param_spec_int64",  cast(void**)& g_param_spec_int64},
+	{ "g_value_set_int64",  cast(void**)& g_value_set_int64},
+	{ "g_value_get_int64",  cast(void**)& g_value_get_int64},
+	{ "g_param_spec_uint64",  cast(void**)& g_param_spec_uint64},
+	{ "g_value_set_uint64",  cast(void**)& g_value_set_uint64},
+	{ "g_value_get_uint64",  cast(void**)& g_value_get_uint64},
+	{ "g_param_spec_float",  cast(void**)& g_param_spec_float},
+	{ "g_value_set_float",  cast(void**)& g_value_set_float},
+	{ "g_value_get_float",  cast(void**)& g_value_get_float},
+	{ "g_param_spec_double",  cast(void**)& g_param_spec_double},
+	{ "g_value_set_double",  cast(void**)& g_value_set_double},
+	{ "g_value_get_double",  cast(void**)& g_value_get_double},
+	{ "g_param_spec_enum",  cast(void**)& g_param_spec_enum},
+	{ "g_value_set_enum",  cast(void**)& g_value_set_enum},
+	{ "g_value_get_enum",  cast(void**)& g_value_get_enum},
+	{ "g_param_spec_flags",  cast(void**)& g_param_spec_flags},
+	{ "g_value_set_flags",  cast(void**)& g_value_set_flags},
+	{ "g_value_get_flags",  cast(void**)& g_value_get_flags},
+	{ "g_param_spec_string",  cast(void**)& g_param_spec_string},
+	{ "g_value_set_string",  cast(void**)& g_value_set_string},
+	{ "g_value_set_static_string",  cast(void**)& g_value_set_static_string},
+	{ "g_value_take_string",  cast(void**)& g_value_take_string},
+	{ "g_value_set_string_take_ownership",  cast(void**)& g_value_set_string_take_ownership},
+	{ "g_value_get_string",  cast(void**)& g_value_get_string},
+	{ "g_value_dup_string",  cast(void**)& g_value_dup_string},
+	{ "g_param_spec_param",  cast(void**)& g_param_spec_param},
+	{ "g_value_set_param",  cast(void**)& g_value_set_param},
+	{ "g_value_take_param",  cast(void**)& g_value_take_param},
+	{ "g_value_set_param_take_ownership",  cast(void**)& g_value_set_param_take_ownership},
+	{ "g_value_get_param",  cast(void**)& g_value_get_param},
+	{ "g_value_dup_param",  cast(void**)& g_value_dup_param},
+	{ "g_param_spec_boxed",  cast(void**)& g_param_spec_boxed},
+	{ "g_value_set_boxed",  cast(void**)& g_value_set_boxed},
+	{ "g_value_set_static_boxed",  cast(void**)& g_value_set_static_boxed},
+	{ "g_value_take_boxed",  cast(void**)& g_value_take_boxed},
+	{ "g_value_set_boxed_take_ownership",  cast(void**)& g_value_set_boxed_take_ownership},
+	{ "g_value_get_boxed",  cast(void**)& g_value_get_boxed},
+	{ "g_value_dup_boxed",  cast(void**)& g_value_dup_boxed},
+	{ "g_param_spec_pointer",  cast(void**)& g_param_spec_pointer},
+	{ "g_value_set_pointer",  cast(void**)& g_value_set_pointer},
+	{ "g_value_get_pointer",  cast(void**)& g_value_get_pointer},
+	{ "g_param_spec_object",  cast(void**)& g_param_spec_object},
+	{ "g_value_set_object",  cast(void**)& g_value_set_object},
+	{ "g_value_take_object",  cast(void**)& g_value_take_object},
+	{ "g_value_set_object_take_ownership",  cast(void**)& g_value_set_object_take_ownership},
+	{ "g_value_get_object",  cast(void**)& g_value_get_object},
+	{ "g_value_dup_object",  cast(void**)& g_value_dup_object},
+	{ "g_param_spec_unichar",  cast(void**)& g_param_spec_unichar},
+	{ "g_param_spec_value_array",  cast(void**)& g_param_spec_value_array},
+	{ "g_param_spec_override",  cast(void**)& g_param_spec_override},
+	{ "g_param_spec_gtype",  cast(void**)& g_param_spec_gtype},
+	{ "g_value_get_gtype",  cast(void**)& g_value_get_gtype},
+	{ "g_value_set_gtype",  cast(void**)& g_value_set_gtype},
+	{ "g_param_spec_ref",  cast(void**)& g_param_spec_ref},
+	{ "g_param_spec_unref",  cast(void**)& g_param_spec_unref},
+	{ "g_param_spec_sink",  cast(void**)& g_param_spec_sink},
+	{ "g_param_spec_ref_sink",  cast(void**)& g_param_spec_ref_sink},
+	{ "g_param_value_set_default",  cast(void**)& g_param_value_set_default},
+	{ "g_param_value_defaults",  cast(void**)& g_param_value_defaults},
+	{ "g_param_value_validate",  cast(void**)& g_param_value_validate},
+	{ "g_param_value_convert",  cast(void**)& g_param_value_convert},
+	{ "g_param_values_cmp",  cast(void**)& g_param_values_cmp},
+	{ "g_param_spec_get_name",  cast(void**)& g_param_spec_get_name},
+	{ "g_param_spec_get_nick",  cast(void**)& g_param_spec_get_nick},
+	{ "g_param_spec_get_blurb",  cast(void**)& g_param_spec_get_blurb},
+	{ "g_param_spec_get_qdata",  cast(void**)& g_param_spec_get_qdata},
+	{ "g_param_spec_set_qdata",  cast(void**)& g_param_spec_set_qdata},
+	{ "g_param_spec_set_qdata_full",  cast(void**)& g_param_spec_set_qdata_full},
+	{ "g_param_spec_steal_qdata",  cast(void**)& g_param_spec_steal_qdata},
+	{ "g_param_spec_get_redirect_target",  cast(void**)& g_param_spec_get_redirect_target},
+	{ "g_param_spec_internal",  cast(void**)& g_param_spec_internal},
+	{ "g_param_type_register_static",  cast(void**)& g_param_type_register_static},
+	{ "g_param_spec_pool_new",  cast(void**)& g_param_spec_pool_new},
+	{ "g_param_spec_pool_insert",  cast(void**)& g_param_spec_pool_insert},
+	{ "g_param_spec_pool_remove",  cast(void**)& g_param_spec_pool_remove},
+	{ "g_param_spec_pool_lookup",  cast(void**)& g_param_spec_pool_lookup},
+	{ "g_param_spec_pool_list",  cast(void**)& g_param_spec_pool_list},
+	{ "g_param_spec_pool_list_owned",  cast(void**)& g_param_spec_pool_list_owned},
+	{ "g_signal_new",  cast(void**)& g_signal_new},
+	{ "g_signal_newv",  cast(void**)& g_signal_newv},
+	{ "g_signal_new_valist",  cast(void**)& g_signal_new_valist},
+	{ "g_signal_query",  cast(void**)& g_signal_query},
+	{ "g_signal_lookup",  cast(void**)& g_signal_lookup},
+	{ "g_signal_name",  cast(void**)& g_signal_name},
+	{ "g_signal_list_ids",  cast(void**)& g_signal_list_ids},
+	{ "g_signal_emit",  cast(void**)& g_signal_emit},
+	{ "g_signal_emit_by_name",  cast(void**)& g_signal_emit_by_name},
+	{ "g_signal_emitv",  cast(void**)& g_signal_emitv},
+	{ "g_signal_emit_valist",  cast(void**)& g_signal_emit_valist},
+	{ "g_signal_connect_object",  cast(void**)& g_signal_connect_object},
+	{ "g_signal_connect_data",  cast(void**)& g_signal_connect_data},
+	{ "g_signal_connect_closure",  cast(void**)& g_signal_connect_closure},
+	{ "g_signal_connect_closure_by_id",  cast(void**)& g_signal_connect_closure_by_id},
+	{ "g_signal_handler_block",  cast(void**)& g_signal_handler_block},
+	{ "g_signal_handler_unblock",  cast(void**)& g_signal_handler_unblock},
+	{ "g_signal_handler_disconnect",  cast(void**)& g_signal_handler_disconnect},
+	{ "g_signal_handler_find",  cast(void**)& g_signal_handler_find},
+	{ "g_signal_handlers_block_matched",  cast(void**)& g_signal_handlers_block_matched},
+	{ "g_signal_handlers_unblock_matched",  cast(void**)& g_signal_handlers_unblock_matched},
+	{ "g_signal_handlers_disconnect_matched",  cast(void**)& g_signal_handlers_disconnect_matched},
+	{ "g_signal_handler_is_connected",  cast(void**)& g_signal_handler_is_connected},
+	{ "g_signal_has_handler_pending",  cast(void**)& g_signal_has_handler_pending},
+	{ "g_signal_stop_emission",  cast(void**)& g_signal_stop_emission},
+	{ "g_signal_stop_emission_by_name",  cast(void**)& g_signal_stop_emission_by_name},
+	{ "g_signal_override_class_closure",  cast(void**)& g_signal_override_class_closure},
+	{ "g_signal_chain_from_overridden",  cast(void**)& g_signal_chain_from_overridden},
+	{ "g_signal_add_emission_hook",  cast(void**)& g_signal_add_emission_hook},
+	{ "g_signal_remove_emission_hook",  cast(void**)& g_signal_remove_emission_hook},
+	{ "g_signal_parse_name",  cast(void**)& g_signal_parse_name},
+	{ "g_signal_get_invocation_hint",  cast(void**)& g_signal_get_invocation_hint},
+	{ "g_signal_type_cclosure_new",  cast(void**)& g_signal_type_cclosure_new},
+	{ "g_signal_accumulator_true_handled",  cast(void**)& g_signal_accumulator_true_handled},
+	{ "g_closure_new_object",  cast(void**)& g_closure_new_object},
+	{ "g_closure_ref",  cast(void**)& g_closure_ref},
+	{ "g_closure_sink",  cast(void**)& g_closure_sink},
+	{ "g_closure_unref",  cast(void**)& g_closure_unref},
+	{ "g_closure_invoke",  cast(void**)& g_closure_invoke},
+	{ "g_closure_invalidate",  cast(void**)& g_closure_invalidate},
+	{ "g_closure_add_finalize_notifier",  cast(void**)& g_closure_add_finalize_notifier},
+	{ "g_closure_add_invalidate_notifier",  cast(void**)& g_closure_add_invalidate_notifier},
+	{ "g_closure_remove_finalize_notifier",  cast(void**)& g_closure_remove_finalize_notifier},
+	{ "g_closure_remove_invalidate_notifier",  cast(void**)& g_closure_remove_invalidate_notifier},
+	{ "g_closure_new_simple",  cast(void**)& g_closure_new_simple},
+	{ "g_closure_set_marshal",  cast(void**)& g_closure_set_marshal},
+	{ "g_closure_add_marshal_guards",  cast(void**)& g_closure_add_marshal_guards},
+	{ "g_closure_set_meta_marshal",  cast(void**)& g_closure_set_meta_marshal},
+	{ "g_source_set_closure",  cast(void**)& g_source_set_closure},
+	{ "g_cclosure_new",  cast(void**)& g_cclosure_new},
+	{ "g_cclosure_new_swap",  cast(void**)& g_cclosure_new_swap},
+	{ "g_cclosure_new_object",  cast(void**)& g_cclosure_new_object},
+	{ "g_cclosure_new_object_swap",  cast(void**)& g_cclosure_new_object_swap},
+	{ "g_cclosure_marshal_VOID__VOID",  cast(void**)& g_cclosure_marshal_VOID__VOID},
+	{ "g_cclosure_marshal_VOID__BOOLEAN",  cast(void**)& g_cclosure_marshal_VOID__BOOLEAN},
+	{ "g_cclosure_marshal_VOID__CHAR",  cast(void**)& g_cclosure_marshal_VOID__CHAR},
+	{ "g_cclosure_marshal_VOID__UCHAR",  cast(void**)& g_cclosure_marshal_VOID__UCHAR},
+	{ "g_cclosure_marshal_VOID__INT",  cast(void**)& g_cclosure_marshal_VOID__INT},
+	{ "g_cclosure_marshal_VOID__UINT",  cast(void**)& g_cclosure_marshal_VOID__UINT},
+	{ "g_cclosure_marshal_VOID__LONG",  cast(void**)& g_cclosure_marshal_VOID__LONG},
+	{ "g_cclosure_marshal_VOID__ULONG",  cast(void**)& g_cclosure_marshal_VOID__ULONG},
+	{ "g_cclosure_marshal_VOID__ENUM",  cast(void**)& g_cclosure_marshal_VOID__ENUM},
+	{ "g_cclosure_marshal_VOID__FLAGS",  cast(void**)& g_cclosure_marshal_VOID__FLAGS},
+	{ "g_cclosure_marshal_VOID__FLOAT",  cast(void**)& g_cclosure_marshal_VOID__FLOAT},
+	{ "g_cclosure_marshal_VOID__DOUBLE",  cast(void**)& g_cclosure_marshal_VOID__DOUBLE},
+	{ "g_cclosure_marshal_VOID__STRING",  cast(void**)& g_cclosure_marshal_VOID__STRING},
+	{ "g_cclosure_marshal_VOID__PARAM",  cast(void**)& g_cclosure_marshal_VOID__PARAM},
+	{ "g_cclosure_marshal_VOID__BOXED",  cast(void**)& g_cclosure_marshal_VOID__BOXED},
+	{ "g_cclosure_marshal_VOID__POINTER",  cast(void**)& g_cclosure_marshal_VOID__POINTER},
+	{ "g_cclosure_marshal_VOID__OBJECT",  cast(void**)& g_cclosure_marshal_VOID__OBJECT},
+	{ "g_cclosure_marshal_STRING__OBJECT_POINTER",  cast(void**)& g_cclosure_marshal_STRING__OBJECT_POINTER},
+	{ "g_cclosure_marshal_VOID__UINT_POINTER",  cast(void**)& g_cclosure_marshal_VOID__UINT_POINTER},
+	{ "g_cclosure_marshal_BOOLEAN__FLAGS",  cast(void**)& g_cclosure_marshal_BOOLEAN__FLAGS},
+	{ "g_value_array_get_nth",  cast(void**)& g_value_array_get_nth},
+	{ "g_value_array_new",  cast(void**)& g_value_array_new},
+	{ "g_value_array_copy",  cast(void**)& g_value_array_copy},
+	{ "g_value_array_free",  cast(void**)& g_value_array_free},
+	{ "g_value_array_append",  cast(void**)& g_value_array_append},
+	{ "g_value_array_prepend",  cast(void**)& g_value_array_prepend},
+	{ "g_value_array_insert",  cast(void**)& g_value_array_insert},
+	{ "g_value_array_remove",  cast(void**)& g_value_array_remove},
+	{ "g_value_array_sort",  cast(void**)& g_value_array_sort},
+	{ "g_value_array_sort_with_data",  cast(void**)& g_value_array_sort_with_data},
+
+];
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/gtk/c/gobjecttypes.d	Sat Jan 05 15:13:44 2008 -0800
@@ -0,0 +1,3125 @@
+/*
+ * This file is part of gtkD.
+ *
+ * gtkD is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * gtkD is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with gtkD; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+ 
+// generated automatically - do not change
+// find conversion definition on APILookup.txt
+// implement new conversion functionalities on the wrap.utils pakage
+
+module dwt.internal.gtk.c.gobjecttypes;
+
+public import dwt.internal.gtk.c.glibtypes;
+
+/******************************************************************************
+
+******************************************************************************/
+
+// G_TYPE_*
+enum GType
+{
+	INVALID = 0<<2,
+	NONE = 1<<2,
+	INTERFACE = 2<<2,
+	CHAR = 3<<2,
+	UCHAR = 4<<2,
+	BOOLEAN = 5<<2,
+	INT = 6<<2,
+	UINT = 7<<2,
+	LONG = 8<<2,
+	ULONG = 9<<2,
+	INT64 = 10<<2,
+	UINT64 = 11<<2,
+	ENUM = 12<<2,
+	FLAGS = 13<<2,
+	FLOAT = 14<<2,
+	DOUBLE = 15<<2,
+	STRING = 16<<2,
+	POINTER = 17<<2,
+	BOXED = 18<<2,
+	PARAM = 19<<2,
+	OBJECT = 20<<2,
+
+}
+
+
+/**
+ * typedef gchar** GStrv;
+ * A C representable type name for G_TYPE_STRV.
+ * See Also
+ * GParamSpecBoxed, g_param_spec_boxed()
+ */
+public alias char** GStrv;
+
+/**
+ * typedef gchar* gchararray;
+ * A C representable type name for G_TYPE_STRING.
+ */
+public alias char* gchararray;
+
+/**
+ * typedef GClosureMarshal			 GSignalCMarshaller;
+ * This is the signature of marshaller functions, required to marshall
+ * arrays of parameter values to signal emissions into C language callback
+ * invocations. It is merely an alias to GClosureMarshal since the GClosure
+ * mechanism takes over responsibility of actual function invocation for the
+ * signal system.
+ */
+public alias GClosureMarshal GSignalCMarshaller;
+/**
+ * The GTypeDebugFlags enumeration values can be passed to
+ * g_type_init_with_debug_flags() to trigger debugging messages during runtime.
+ * Note that the messages can also be triggered by setting the
+ * GOBJECT_DEBUG environment variable to a ':'-separated list of
+ * "objects" and "signals".
+ * G_TYPE_DEBUG_NONE
+ * Print no messages.
+ * G_TYPE_DEBUG_OBJECTS
+ * Print messages about object bookkeeping.
+ * G_TYPE_DEBUG_SIGNALS
+ * Print messages about signal emissions.
+ * G_TYPE_DEBUG_MASK
+ * Mask covering all debug flags.
+ */
+public enum GTypeDebugFlags
+{
+	NONE = 0,
+	OBJECTS = 1 << 0,
+	SIGNALS = 1 << 1,
+	MASK = 0x03
+}
+alias GTypeDebugFlags TypeDebugFlags;
+
+/**
+ * Bit masks used to check or determine characteristics of a type.
+ * G_TYPE_FLAG_ABSTRACT
+ */
+public enum GTypeFlags
+{
+	ABSTRACT = (1 << 4),
+	VALUE_ABSTRACT = (1 << 5)
+}
+alias GTypeFlags TypeFlags;
+
+/**
+ * Bit masks used to check or determine specific characteristics of a
+ * fundamental type.
+ * G_TYPE_FLAG_CLASSED
+ */
+public enum GTypeFundamentalFlags
+{
+	FLAG_CLASSED = (1 << 0),
+	FLAG_INSTANTIATABLE = (1 << 1),
+	FLAG_DERIVABLE = (1 << 2),
+	FLAG_DEEP_DERIVABLE = (1 << 3)
+}
+alias GTypeFundamentalFlags TypeFundamentalFlags;
+
+/**
+ * Through the GParamFlags flag values, certain aspects of parameters
+ * can be configured.
+ * G_PARAM_READABLE
+ */
+public enum GParamFlags
+{
+	READABLE = 1 << 0,
+	WRITABLE = 1 << 1,
+	CONSTRUCT = 1 << 2,
+	CONSTRUCT_ONLY = 1 << 3,
+	LAX_VALIDATION = 1 << 4,
+	STATIC_NAME = 1 << 5,
+	PRIVATE = STATIC_NAME,
+	STATIC_NICK = 1 << 6,
+	STATIC_BLURB = 1 << 7
+}
+alias GParamFlags ParamFlags;
+
+/**
+ * The signal flags are used to specify a signal's behaviour, the overall
+ * signal description outlines how especially the RUN flags control the
+ * stages of a signal emission.
+ * G_SIGNAL_RUN_FIRST
+ */
+public enum GSignalFlags
+{
+	RUN_FIRST = 1 << 0,
+	RUN_LAST = 1 << 1,
+	RUN_CLEANUP = 1 << 2,
+	NO_RECURSE = 1 << 3,
+	DETAILED = 1 << 4,
+	ACTION = 1 << 5,
+	NO_HOOKS = 1 << 6
+}
+alias GSignalFlags SignalFlags;
+
+/**
+ * The match types specify what g_signal_handlers_block_matched(),
+ * g_signal_handlers_unblock_matched() and g_signal_handlers_disconnect_matched()
+ * match signals by.
+ * G_SIGNAL_MATCH_ID
+ * The signal id must be equal.
+ * G_SIGNAL_MATCH_DETAIL
+ * The signal detail be equal.
+ * G_SIGNAL_MATCH_CLOSURE
+ * The closure must be the same.
+ * G_SIGNAL_MATCH_FUNC
+ * The C closure callback must be the same.
+ * G_SIGNAL_MATCH_DATA
+ * The closure data must be the same.
+ * G_SIGNAL_MATCH_UNBLOCKED
+ * Only unblocked signals may matched.
+ */
+public enum GSignalMatchType
+{
+	ID = 1 << 0,
+	DETAIL = 1 << 1,
+	CLOSURE = 1 << 2,
+	FUNC = 1 << 3,
+	DATA = 1 << 4,
+	UNBLOCKED = 1 << 5
+}
+alias GSignalMatchType SignalMatchType;
+
+/**
+ * The connection flags are used to specify the behaviour of a signal's
+ * connection.
+ * G_CONNECT_AFTER
+ * whether the handler should be called before or after the
+ */
+public enum GConnectFlags
+{
+	AFTER = 1 << 0,
+	SWAPPED = 1 << 1
+}
+alias GConnectFlags ConnectFlags;
+
+struct GValue
+{
+	align(4)
+	{
+		GType		g_type;
+		union Data
+		{
+			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 data1;
+	Data data2;
+};
+
+/**
+ * An opaque structure used as the base of all interface types.
+ */
+public struct GTypeInterface{}
+
+
+/**
+ * An opaque structure used as the base of all type instances.
+ */
+public struct GTypeInstance{}
+
+
+/**
+ * An opaque structure used as the base of all classes.
+ */
+public struct GTypeClass{}
+
+
+/**
+ * This structure is used to provide the type system with the information
+ * required to initialize and destruct (finalize) a type's class and
+ * its instances.
+ * The initialized structure is passed to the g_type_register_static() function
+ * (or is copied into the provided GTypeInfo structure in the
+ * g_type_plugin_complete_type_info()). The type system will perform a deep
+ * copy of this structure, so its memory does not need to be persistent
+ * across invocation of g_type_register_static().
+ * guint16class_size;
+ */
+public struct GTypeInfo{}
+// /+* interface types, classed types, instantiated types +/
+// gobject-Type-Information.html
+// ushort classSize;
+// gobject-Type-Information.html
+// GBaseInitFunc baseInit;
+// gobject-Type-Information.html
+// GBaseFinalizeFunc baseFinalize;
+// gobject-Type-Information.html
+// /+* interface types, classed types, instantiated types +/
+// gobject-Type-Information.html
+// GClassInitFunc classInit;
+// gobject-Type-Information.html
+// GClassFinalizeFunc classFinalize;
+// gobject-Type-Information.html
+// void* classData;
+// gobject-Type-Information.html
+// /+* instantiated types +/
+// gobject-Type-Information.html
+// ushort instanceSize;
+// gobject-Type-Information.html
+// ushort nPreallocs;
+// gobject-Type-Information.html
+// GInstanceInitFunc instanceInit;
+// gobject-Type-Information.html
+// /+* value handling +/
+// gobject-Type-Information.html
+// GTypeValueTable *valueTable;
+// gobject-Type-Information.html
+
+
+/**
+ * A structure that provides information to the type system which is
+ * used specifically for managing fundamental types.
+ * GTypeFundamentalFlagstype_flags;
+ * GTypeFundamentalFlags describing the characteristics of the fundamental type
+ */
+public struct GTypeFundamentalInfo{}
+// GTypeFundamentalFlags typeFlags;
+// gobject-Type-Information.html
+
+
+/**
+ * A structure that provides information to the type system which is
+ * used specifically for managing interface types.
+ * GInterfaceInitFuncinterface_init;
+ * location of the interface initialization function
+ * GInterfaceFinalizeFuncinterface_finalize;
+ * location of the interface finalization function
+ * gpointerinterface_data;
+ * user-supplied data passed to the interface init/finalize functions
+ */
+public struct GInterfaceInfo{}
+// GInterfaceInitFunc interfaceInit;
+// gobject-Type-Information.html
+// GInterfaceFinalizeFunc interfaceFinalize;
+// gobject-Type-Information.html
+// void* interfaceData;
+// gobject-Type-Information.html
+
+
+/**
+ * The GTypeValueTable provides the functions required by the GValue implementation,
+ * to serve as a container for values of a type.
+ * value_init()
+ */
+public struct GTypeValueTable{}
+// void (*valueInit) (GValue *value);
+// gobject-Type-Information.html
+// void (*valueFree) (GValue *value);
+// gobject-Type-Information.html
+// void (*valueCopy) ( GValue *srcValue,
+// gobject-Type-Information.html
+// GValue *destValue);
+// gobject-Type-Information.html
+// /+* varargs functionality (optional) +/
+// gobject-Type-Information.html
+// void* (*valuePeekPointer) ( GValue *value);
+// gobject-Type-Information.html
+// char *collectFormat;
+// gobject-Type-Information.html
+// char* (*collectValue) (GValue *value,
+// gobject-Type-Information.html
+// uint nCollectValues,
+// gobject-Type-Information.html
+// GTypeCValue *collectValues,
+// gobject-Type-Information.html
+// uint collectFlags);
+// gobject-Type-Information.html
+// char *lcopyFormat;
+// gobject-Type-Information.html
+// char* (*lcopyValue) ( GValue *value,
+// gobject-Type-Information.html
+// uint nCollectValues,
+// gobject-Type-Information.html
+// GTypeCValue *collectValues,
+// gobject-Type-Information.html
+// uint collectFlags);
+// gobject-Type-Information.html
+
+
+/**
+ * A structure holding information for a specific type. It is
+ * filled in by the g_type_query() function.
+ * GTypetype;
+ * the GType value of the type.
+ * constgchar*type_name;
+ * the name of the type.
+ * guintclass_size;
+ * the size of the class structure.
+ * guintinstance_size;
+ * the size of the instance structure.
+ */
+public struct GTypeQuery{}
+// GType type;
+// gobject-Type-Information.html
+// char *typeName;
+// gobject-Type-Information.html
+// uint classSize;
+// gobject-Type-Information.html
+// uint instanceSize;
+// gobject-Type-Information.html
+
+
+/**
+ * Main Gtk struct.
+ * The GTypePlugin typedef is used as a placeholder
+ * for objects that implement the GTypePlugin
+ * interface.
+ */
+public struct GTypePlugin{}
+
+
+/**
+ * The GTypePlugin interface is used by the type system in order to handle
+ * the lifecycle of dynamically loaded types.
+ * GTypePluginUseuse_plugin;
+ * Increases the use count of the plugin.
+ * GTypePluginUnuseunuse_plugin;
+ * Decreases the use count of the plugin.
+ * GTypePluginCompleteTypeInfocomplete_type_info;
+ * Fills in the GTypeInfo and
+ */
+public struct GTypePluginClass{}
+// GTypePluginUse usePlugin;
+// GTypePlugin.html
+// GTypePluginUnuse unusePlugin;
+// GTypePlugin.html
+// GTypePluginCompleteTypeInfo completeTypeInfo;
+// GTypePlugin.html
+// GTypePluginCompleteInterfaceInfo completeInterfaceInfo;
+// GTypePlugin.html
+
+
+/**
+ * Main Gtk struct.
+ * The members of the GTypeModule structure should not
+ * be accessed directly, except for the name field.
+ * gchar*name;
+ * the name of the module
+ */
+public struct GTypeModule
+{
+	char *name;
+}
+
+
+/**
+ * In order to implement dynamic loading of types based on GTypeModule,
+ * the load and unload functions in GTypeModuleClass must be implemented.
+ * GObjectClassparent_class;
+ * the parent class
+ * load()
+ * loads the module and registers one or more types using
+ */
+public struct GTypeModuleClass{}
+// GObjectClass parentClass;
+// GTypeModule.html
+// int (* load) (GTypeModule *modul);
+// GTypeModule.html
+// void (* unload) (GTypeModule *modul);
+// GTypeModule.html
+
+
+/**
+ * Main Gtk struct.
+ * All the fields in the GObject structure are private
+ * to the GObject implementation and should never be accessed directly.
+ */
+public struct GObject{}
+
+
+/**
+ * The class structure for the GObject type.
+ * Example4.Implementing singletons using a constructor
+ * static MySingleton *the_singleton = NULL;
+ * static GObject*
+ * my_singleton_constructor (GType type,
+ */
+public struct GObjectClass{}
+// GTypeClass gTypeClass;
+// gobject-The-Base-Object-Type.html
+// /+* seldomly overidden +/
+// gobject-The-Base-Object-Type.html
+// GObject* (*constructor) (GType type,
+// gobject-The-Base-Object-Type.html
+// uint nConstructProperties,
+// gobject-The-Base-Object-Type.html
+// GObjectConstructParam *constructProperties);
+// gobject-The-Base-Object-Type.html
+// /+* overridable methods +/
+// gobject-The-Base-Object-Type.html
+// void (*setProperty) (GObject *object,
+// gobject-The-Base-Object-Type.html
+// uint propertyId,
+// gobject-The-Base-Object-Type.html
+// GValue *value,
+// gobject-The-Base-Object-Type.html
+// GParamSpec *pspec);
+// gobject-The-Base-Object-Type.html
+// void (*getProperty) (GObject *object,
+// gobject-The-Base-Object-Type.html
+// uint propertyId,
+// gobject-The-Base-Object-Type.html
+// GValue *value,
+// gobject-The-Base-Object-Type.html
+// GParamSpec *pspec);
+// gobject-The-Base-Object-Type.html
+// void (*dispose) (GObject *object);
+// gobject-The-Base-Object-Type.html
+// void (*finalize) (GObject *object);
+// gobject-The-Base-Object-Type.html
+// /+* seldomly overidden +/
+// gobject-The-Base-Object-Type.html
+// void (*dispatchPropertiesChanged) (GObject *object,
+// gobject-The-Base-Object-Type.html
+// uint nPspecs,
+// gobject-The-Base-Object-Type.html
+// GParamSpec **pspecs);
+// gobject-The-Base-Object-Type.html
+// /+* signals +/
+// gobject-The-Base-Object-Type.html
+// void (*notify) (GObject *object,
+// gobject-The-Base-Object-Type.html
+// GParamSpec *pspec);
+// gobject-The-Base-Object-Type.html
+// /+* called when done constructing +/
+// gobject-The-Base-Object-Type.html
+// void (*constructed) (GObject *object);
+// gobject-The-Base-Object-Type.html
+
+
+/**
+ * The GObjectConstructParam struct is an auxiliary
+ * structure used to hand GParamSpec/GValue pairs to the constructor of
+ * a GObjectClass.
+ * GParamSpec*pspec;
+ * the GParamSpec of the construct parameter
+ * GValue*value;
+ * the value to set the parameter to
+ */
+public struct GObjectConstructParam{}
+// GParamSpec *pspec;
+// gobject-The-Base-Object-Type.html
+// GValue *value;
+// gobject-The-Base-Object-Type.html
+
+
+/**
+ * The GParameter struct is an auxiliary structure used
+ * to hand parameter name/value pairs to g_object_newv().
+ * constgchar*name;
+ * the parameter name
+ * GValuevalue;
+ * the parameter value
+ */
+public struct GParameter{}
+// char *name;
+// gobject-The-Base-Object-Type.html
+// GValue value;
+// gobject-The-Base-Object-Type.html
+
+
+/**
+ * All the fields in the GInitiallyUnowned structure
+ * are private to the GInitiallyUnowned implementation and should never be
+ * accessed directly.
+ */
+public struct GInitiallyUnowned{}
+
+
+/**
+ * The class structure for the GInitiallyUnowned type.
+ */
+public struct GInitiallyUnownedClass{}
+
+
+/**
+ * The class of an enumeration type holds information about its
+ * possible values.
+ * GTypeClassg_type_class;
+ * the parent class
+ * gintminimum;
+ * the smallest possible value.
+ * gintmaximum;
+ * the largest possible value.
+ * guintn_values;
+ * the number of possible values.
+ * GEnumValue*values;
+ * an array of GEnumValue structs describing the
+ * individual values.
+ */
+public struct GEnumClass{}
+// GTypeClass gTypeClass;
+// gobject-Enumeration-and-Flag-Types.html
+// int minimum;
+// gobject-Enumeration-and-Flag-Types.html
+// int maximum;
+// gobject-Enumeration-and-Flag-Types.html
+// uint nValues;
+// gobject-Enumeration-and-Flag-Types.html
+// GEnumValue *values;
+// gobject-Enumeration-and-Flag-Types.html
+
+
+/**
+ * The class of a flags type holds information about its
+ * possible values.
+ * GTypeClassg_type_class;
+ * the parent class
+ * guintmask;
+ * a mask covering all possible values.
+ * guintn_values;
+ * the number of possible values.
+ * GFlagsValue*values;
+ * an array of GFlagsValue structs describing the
+ * individual values.
+ */
+public struct GFlagsClass{}
+// GTypeClass gTypeClass;
+// gobject-Enumeration-and-Flag-Types.html
+// uint mask;
+// gobject-Enumeration-and-Flag-Types.html
+// uint nValues;
+// gobject-Enumeration-and-Flag-Types.html
+// GFlagsValue *values;
+// gobject-Enumeration-and-Flag-Types.html
+
+
+/**
+ * Main Gtk struct.
+ * A structure which contains a single enum value, it's name, and it's
+ * nickname.
+ * gintvalue;
+ * the enum value
+ * constgchar*value_name;
+ * the name of the value
+ * constgchar*value_nick;
+ * the nickname of the value
+ */
+public struct GEnumValue
+{
+	int value;
+	char *valueName;
+	char *valueNick;
+}
+
+
+/**
+ * A structure which contains a single flags value, it's name, and it's
+ * nickname.
+ * guintvalue;
+ * the flags value
+ * constgchar*value_name;
+ * the name of the value
+ * constgchar*value_nick;
+ * the nickname of the value
+ */
+public struct GFlagsValue
+{
+	uint value;
+	char *valueName;
+	char *valueNick;
+}
+
+
+/**
+ * A GParamSpec derived structure that contains the meta data for boolean properties.
+ * GParamSpecparent_instance;
+ * private GParamSpec portion
+ * gbooleandefault_value;
+ */
+public struct GParamSpecBoolean{}
+// GParamSpec parentInstance;
+// gobject-Standard-Parameter-and-Value-Types.html
+// int defaultValue;
+// gobject-Standard-Parameter-and-Value-Types.html
+
+
+/**
+ * A GParamSpec derived structure that contains the meta data for character properties.
+ * GParamSpecparent_instance;
+ * private GParamSpec portion
+ * gint8minimum;
+ */
+public struct GParamSpecChar{}
+// GParamSpec parentInstance;
+// gobject-Standard-Parameter-and-Value-Types.html
+// byte minimum;
+// gobject-Standard-Parameter-and-Value-Types.html
+// byte maximum;
+// gobject-Standard-Parameter-and-Value-Types.html
+// byte defaultValue;
+// gobject-Standard-Parameter-and-Value-Types.html
+
+
+/**
+ * A GParamSpec derived structure that contains the meta data for unsigned character properties.
+ * GParamSpecparent_instance;
+ * private GParamSpec portion
+ * guint8minimum;
+ */
+public struct GParamSpecUChar{}
+// GParamSpec parentInstance;
+// gobject-Standard-Parameter-and-Value-Types.html
+// byte minimum;
+// gobject-Standard-Parameter-and-Value-Types.html
+// byte maximum;
+// gobject-Standard-Parameter-and-Value-Types.html
+// byte defaultValue;
+// gobject-Standard-Parameter-and-Value-Types.html
+
+
+/**
+ * A GParamSpec derived structure that contains the meta data for integer properties.
+ * GParamSpecparent_instance;
+ * private GParamSpec portion
+ * gintminimum;
+ */
+public struct GParamSpecInt{}
+// GParamSpec parentInstance;
+// gobject-Standard-Parameter-and-Value-Types.html
+// int minimum;
+// gobject-Standard-Parameter-and-Value-Types.html
+// int maximum;
+// gobject-Standard-Parameter-and-Value-Types.html
+// int defaultValue;
+// gobject-Standard-Parameter-and-Value-Types.html
+
+
+/**
+ * A GParamSpec derived structure that contains the meta data for unsigned integer properties.
+ * GParamSpecparent_instance;
+ * private GParamSpec portion
+ * guintminimum;
+ */
+public struct GParamSpecUInt{}
+// GParamSpec parentInstance;
+// gobject-Standard-Parameter-and-Value-Types.html
+// uint minimum;
+// gobject-Standard-Parameter-and-Value-Types.html
+// uint maximum;
+// gobject-Standard-Parameter-and-Value-Types.html
+// uint defaultValue;
+// gobject-Standard-Parameter-and-Value-Types.html
+
+
+/**
+ * A GParamSpec derived structure that contains the meta data for long integer properties.
+ * GParamSpecparent_instance;
+ * private GParamSpec portion
+ * glongminimum;
+ */
+public struct GParamSpecLong{}
+// GParamSpec parentInstance;
+// gobject-Standard-Parameter-and-Value-Types.html
+// int minimum;
+// gobject-Standard-Parameter-and-Value-Types.html
+// int maximum;
+// gobject-Standard-Parameter-and-Value-Types.html
+// int defaultValue;
+// gobject-Standard-Parameter-and-Value-Types.html
+
+
+/**
+ * A GParamSpec derived structure that contains the meta data for unsigned long integer properties.
+ * GParamSpecparent_instance;
+ * private GParamSpec portion
+ * gulongminimum;
+ */
+public struct GParamSpecULong{}
+// GParamSpec parentInstance;
+// gobject-Standard-Parameter-and-Value-Types.html
+// uint minimum;
+// gobject-Standard-Parameter-and-Value-Types.html
+// uint maximum;
+// gobject-Standard-Parameter-and-Value-Types.html
+// uint defaultValue;
+// gobject-Standard-Parameter-and-Value-Types.html
+
+
+/**
+ * A GParamSpec derived structure that contains the meta data for 64bit integer properties.
+ * GParamSpecparent_instance;
+ * private GParamSpec portion
+ * gint64minimum;
+ */
+public struct GParamSpecInt64{}
+// GParamSpec parentInstance;
+// gobject-Standard-Parameter-and-Value-Types.html
+// long minimum;
+// gobject-Standard-Parameter-and-Value-Types.html
+// long maximum;
+// gobject-Standard-Parameter-and-Value-Types.html
+// long defaultValue;
+// gobject-Standard-Parameter-and-Value-Types.html
+
+
+/**
+ * A GParamSpec derived structure that contains the meta data for unsigned 64bit integer properties.
+ * GParamSpecparent_instance;
+ * private GParamSpec portion
+ * guint64minimum;
+ */
+public struct GParamSpecUInt64{}
+// GParamSpec parentInstance;
+// gobject-Standard-Parameter-and-Value-Types.html
+// ulong minimum;
+// gobject-Standard-Parameter-and-Value-Types.html
+// ulong maximum;
+// gobject-Standard-Parameter-and-Value-Types.html
+// ulong defaultValue;
+// gobject-Standard-Parameter-and-Value-Types.html
+
+
+/**
+ * A GParamSpec derived structure that contains the meta data for float properties.
+ * GParamSpecparent_instance;
+ * private GParamSpec portion
+ * gfloatminimum;
+ */
+public struct GParamSpecFloat{}
+// GParamSpec parentInstance;
+// gobject-Standard-Parameter-and-Value-Types.html
+// float minimum;
+// gobject-Standard-Parameter-and-Value-Types.html
+// float maximum;
+// gobject-Standard-Parameter-and-Value-Types.html
+// float defaultValue;
+// gobject-Standard-Parameter-and-Value-Types.html
+// float epsilon;
+// gobject-Standard-Parameter-and-Value-Types.html
+
+
+/**
+ * A GParamSpec derived structure that contains the meta data for double properties.
+ * GParamSpecparent_instance;
+ * private GParamSpec portion
+ * gdoubleminimum;
+ */
+public struct GParamSpecDouble{}
+// GParamSpec parentInstance;
+// gobject-Standard-Parameter-and-Value-Types.html
+// double minimum;
+// gobject-Standard-Parameter-and-Value-Types.html
+// double maximum;
+// gobject-Standard-Parameter-and-Value-Types.html
+// double defaultValue;
+// gobject-Standard-Parameter-and-Value-Types.html
+// double epsilon;
+// gobject-Standard-Parameter-and-Value-Types.html
+
+
+/**
+ * A GParamSpec derived structure that contains the meta data for enum
+ * properties.
+ * GParamSpecparent_instance;
+ * private GParamSpec portion
+ * GEnumClass*enum_class;
+ * the GEnumClass for the enum
+ * gintdefault_value;
+ */
+public struct GParamSpecEnum{}
+// GParamSpec parentInstance;
+// gobject-Standard-Parameter-and-Value-Types.html
+// GEnumClass *enumClass;
+// gobject-Standard-Parameter-and-Value-Types.html
+// int defaultValue;
+// gobject-Standard-Parameter-and-Value-Types.html
+
+
+/**
+ * A GParamSpec derived structure that contains the meta data for flags
+ * properties.
+ * GParamSpecparent_instance;
+ * private GParamSpec portion
+ * GFlagsClass*flags_class;
+ * the GFlagsClass for the flags
+ * guintdefault_value;
+ */
+public struct GParamSpecFlags{}
+// GParamSpec parentInstance;
+// gobject-Standard-Parameter-and-Value-Types.html
+// GFlagsClass *flagsClass;
+// gobject-Standard-Parameter-and-Value-Types.html
+// uint defaultValue;
+// gobject-Standard-Parameter-and-Value-Types.html
+
+
+/**
+ * A GParamSpec derived structure that contains the meta data for string
+ * properties.
+ * GParamSpecparent_instance;
+ * private GParamSpec portion
+ * gchar*default_value;
+ */
+public struct GParamSpecString{}
+// GParamSpec parentInstance;
+// gobject-Standard-Parameter-and-Value-Types.html
+// char *defaultValue;
+// gobject-Standard-Parameter-and-Value-Types.html
+// char *csetFirst;
+// gobject-Standard-Parameter-and-Value-Types.html
+// char *csetNth;
+// gobject-Standard-Parameter-and-Value-Types.html
+// char substitutor;
+// gobject-Standard-Parameter-and-Value-Types.html
+// uint nullFoldIfEmpty : 1;
+// gobject-Standard-Parameter-and-Value-Types.html
+// uint ensureNonNull : 1;
+// gobject-Standard-Parameter-and-Value-Types.html
+
+
+/**
+ * A GParamSpec derived structure that contains the meta data for G_TYPE_PARAM
+ * properties.
+ * GParamSpecparent_instance;
+ * private GParamSpec portion
+ */
+public struct GParamSpecParam{}
+// GParamSpec parentInstance;
+// gobject-Standard-Parameter-and-Value-Types.html
+
+
+/**
+ * A GParamSpec derived structure that contains the meta data for boxed properties.
+ * GParamSpecparent_instance;
+ * private GParamSpec portion
+ */
+public struct GParamSpecBoxed{}
+// GParamSpec parentInstance;
+// gobject-Standard-Parameter-and-Value-Types.html
+
+
+/**
+ * A GParamSpec derived structure that contains the meta data for pointer properties.
+ * GParamSpecparent_instance;
+ * private GParamSpec portion
+ */
+public struct GParamSpecPointer{}
+// GParamSpec parentInstance;
+// gobject-Standard-Parameter-and-Value-Types.html
+
+
+/**
+ * A GParamSpec derived structure that contains the meta data for object properties.
+ * GParamSpecparent_instance;
+ * private GParamSpec portion
+ */
+public struct GParamSpecObject{}
+// GParamSpec parentInstance;
+// gobject-Standard-Parameter-and-Value-Types.html
+
+
+/**
+ * A GParamSpec derived structure that contains the meta data for unichar (unsigned integer) properties.
+ * GParamSpecparent_instance;
+ * private GParamSpec portion
+ * gunichardefault_value;
+ */
+public struct GParamSpecUnichar{}
+// GParamSpec parentInstance;
+// gobject-Standard-Parameter-and-Value-Types.html
+// gunichar defaultValue;
+// gobject-Standard-Parameter-and-Value-Types.html
+
+
+/**
+ * A GParamSpec derived structure that contains the meta data for GValueArray properties.
+ * GParamSpecparent_instance;
+ */
+public struct GParamSpecValueArray{}
+// GParamSpec parentInstance;
+// gobject-Standard-Parameter-and-Value-Types.html
+// GParamSpec *elementSpec;
+// gobject-Standard-Parameter-and-Value-Types.html
+// uint fixedNElements;
+// gobject-Standard-Parameter-and-Value-Types.html
+
+
+/**
+ * This is a type of GParamSpec type that simply redirects operations to
+ * another paramspec. All operations other than getting or
+ * setting the value are redirected, including accessing the nick and
+ * blurb, validating a value, and so forth. See
+ * g_param_spec_get_redirect_target() for retrieving the overidden
+ * property. GParamSpecOverride is used in implementing
+ * g_object_class_override_property(), and will not be directly useful
+ * unless you are implementing a new base type similar to GObject.
+ * Since 2.4
+ */
+public struct GParamSpecOverride{}
+
+
+/**
+ * A GParamSpec derived structure that contains the meta data for GType properties.
+ * GParamSpecparent_instance;
+ */
+public struct GParamSpecGType{}
+// GParamSpec parentInstance;
+// gobject-Standard-Parameter-and-Value-Types.html
+// GType isAType;
+// gobject-Standard-Parameter-and-Value-Types.html
+
+
+/**
+ * Main Gtk struct.
+ * All fields of the GParamSpec struct are private and
+ * should not be used directly, except for the following:
+ * GTypeInstanceg_type_instance;
+ * private GTypeInstance portion
+ * gchar*name;
+ */
+public struct GParamSpec{}
+// GTypeInstance gTypeInstance;
+// gobject-GParamSpec.html
+// char *name;
+// gobject-GParamSpec.html
+// GParamFlags flags;
+// gobject-GParamSpec.html
+// GType valueType;
+// gobject-GParamSpec.html
+// GType ownerType; /+* class or interface using this property +/
+// gobject-GParamSpec.html
+
+
+/**
+ * The class structure for the GParamSpec type.
+ * Normally, GParamSpec classes are filled by
+ * g_param_type_register_static().
+ * GTypeClassg_type_class;
+ * the parent class
+ * GTypevalue_type;
+ * the GValue type for this parameter
+ * finalize()
+ * The instance finalization function (optional), should chain
+ */
+public struct GParamSpecClass{}
+// GTypeClass gTypeClass;
+// gobject-GParamSpec.html
+// GType valueType;
+// gobject-GParamSpec.html
+// void (*finalize) (GParamSpec *pspec);
+// gobject-GParamSpec.html
+// /+* GParam methods +/
+// gobject-GParamSpec.html
+// void (*valueSetDefault) (GParamSpec *pspec,
+// gobject-GParamSpec.html
+// GValue *value);
+// gobject-GParamSpec.html
+// int (*valueValidate) (GParamSpec *pspec,
+// gobject-GParamSpec.html
+// GValue *value);
+// gobject-GParamSpec.html
+// int (*valuesCmp) (GParamSpec *pspec,
+// gobject-GParamSpec.html
+// GValue *value1,
+// gobject-GParamSpec.html
+// GValue *value2);
+// gobject-GParamSpec.html
+
+
+/**
+ * This structure is used to provide the type system with the information
+ * required to initialize and destruct (finalize) a parameter's class and
+ * instances thereof.
+ * The initialized structure is passed to the g_param_type_register_static()
+ * The type system will perform a deep copy of this structure, so it's memory
+ * does not need to be persistent across invocation of
+ * g_param_type_register_static().
+ * guint16instance_size;
+ * Size of the instance (object) structure.
+ * guint16n_preallocs;
+ * Prior to GLib 2.10, it specified the number of pre-allocated (cached) instances to reserve memory for (0 indicates no caching). Since GLib 2.10, it is ignored, since instances are allocated with the slice allocator now.
+ * instance_init()
+ * Location of the instance initialization function (optional).
+ * GTypevalue_type;
+ * The GType of values conforming to this GParamSpec
+ * finalize()
+ * The instance finalization function (optional).
+ * value_set_default()
+ * Resets a value to the default value for pspec
+ */
+public struct GParamSpecTypeInfo{}
+// /+* type system portion +/
+// gobject-GParamSpec.html
+// ushort instanceSize; /+* obligatory +/
+// gobject-GParamSpec.html
+// ushort nPreallocs; /+* optional +/
+// gobject-GParamSpec.html
+// void (*instanceInit) (GParamSpec *pspec); /+* optional +/
+// gobject-GParamSpec.html
+// /+* class portion +/
+// gobject-GParamSpec.html
+// GType valueType; /+* obligatory +/
+// gobject-GParamSpec.html
+// void (*finalize) (GParamSpec *pspec); /+* optional +/
+// gobject-GParamSpec.html
+// void (*valueSetDefault) (GParamSpec *pspec, /+* recommended +/
+// gobject-GParamSpec.html
+// GValue *value);
+// gobject-GParamSpec.html
+// int (*valueValidate) (GParamSpec *pspec, /+* optional +/
+// gobject-GParamSpec.html
+// GValue *value);
+// gobject-GParamSpec.html
+// int (*valuesCmp) (GParamSpec *pspec, /+* recommended +/
+// gobject-GParamSpec.html
+// GValue *value1,
+// gobject-GParamSpec.html
+// GValue *value2);
+// gobject-GParamSpec.html
+
+
+/**
+ * A GParamSpecPool maintains a collection of GParamSpecs which can be
+ * quickly accessed by owner and name. The implementation of the GObject property
+ * system uses such a pool to store the GParamSpecs of the properties all object
+ * types.
+ */
+public struct GParamSpecPool{}
+
+
+/**
+ * The GSignalInvocationHint structure is used to pass on additional information
+ * to callbacks during a signal emission.
+ * guintsignal_id;
+ */
+public struct GSignalInvocationHint{}
+// uint signalId;
+// gobject-Signals.html
+// GQuark detail;
+// gobject-Signals.html
+// GSignalFlags runType;
+// gobject-Signals.html
+
+
+/**
+ * A structure holding in-depth information for a specific signal. It is
+ * filled in by the g_signal_query() function.
+ * guintsignal_id;
+ */
+public struct GSignalQuery{}
+// uint signalId;
+// gobject-Signals.html
+// char *signalName;
+// gobject-Signals.html
+// GType itype;
+// gobject-Signals.html
+// GSignalFlags signalFlags;
+// gobject-Signals.html
+// GType returnType; /+* mangled with G_SIGNAL_TYPE_STATIC_SCOPE flag +/
+// gobject-Signals.html
+// uint nParams;
+// gobject-Signals.html
+// GType *paramTypes; /+* mangled with G_SIGNAL_TYPE_STATIC_SCOPE flag +/
+// gobject-Signals.html
+
+
+/**
+ * Main Gtk struct.
+ * A GClosure represents a callback supplied by the programmer.
+ * volatile	guintin_marshal:1;
+ * Indicates whether the closure is currently being invoked with
+ */
+public struct GClosure
+{
+	uint bitfield;
+	//uint inMarshal : 1;
+}
+
+
+/**
+ * A GCClosure is a specialization of GClosure for C function callbacks.
+ * GClosureclosure;
+ * the GClosure
+ * gpointercallback;
+ * the callback function
+ */
+public struct GCClosure{}
+// GClosure closure;
+// gobject-Closures.html
+// void* callback;
+// gobject-Closures.html
+
+
+/**
+ * Main Gtk struct.
+ * A GValueArray contains an array of GValue elements.
+ * guintn_values;
+ */
+public struct GValueArray{}
+// uint nValues;
+// gobject-Value-arrays.html
+// GValue *values;
+// gobject-Value-arrays.html
+
+
+/*
+ * Returns the fundamental type which is the ancestor of type.
+ * Fundamental types are types that serve as ultimate bases for the derived types,
+ * thus they are the roots of distinct inheritance hierarchies.
+ * type:
+ * A GType value.
+ */
+// TODO
+// #define G_TYPE_FUNDAMENTAL(type)	(g_type_fundamental (type))
+
+/*
+ * Returns the type ID for the fundamental type number x.
+ * Use g_type_fundamental_next() instead of this macro to create new fundamental
+ * types.
+ * x:
+ * the fundamental type number.
+ */
+// TODO
+// #define	G_TYPE_MAKE_FUNDAMENTAL(x)	((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT))
+
+/*
+ * Returns TRUE if type is an abstract type. An abstract type can not be
+ * instantiated and is normally used as an abstract base class for
+ * derived classes.
+ * type:
+ * A GType value.
+ */
+// TODO
+// #define G_TYPE_IS_ABSTRACT(type) (g_type_test_flags ((type), G_TYPE_FLAG_ABSTRACT))
+
+/*
+ * Returns TRUE if type is derived (or in object-oriented terminology:
+ * inherited) from another type (this holds true for all non-fundamental
+ * types).
+ * type:
+ * A GType value.
+ */
+// TODO
+// #define G_TYPE_IS_DERIVED(type) ((type) > G_TYPE_FUNDAMENTAL_MAX)
+
+/*
+ * Returns TRUE if type is a fundamental type.
+ * type:
+ * A GType value.
+ */
+// TODO
+// #define G_TYPE_IS_FUNDAMENTAL(type) ((type) <= G_TYPE_FUNDAMENTAL_MAX)
+
+/*
+ * Returns TRUE if type is a value type and can be used with
+ * g_value_init().
+ * type:
+ * A GType value.
+ */
+// TODO
+// #define G_TYPE_IS_VALUE_TYPE(type) (g_type_check_is_value_type (type))
+
+/*
+ * Returns TRUE if type has a GTypeValueTable.
+ * type:
+ * A GType value.
+ */
+// TODO
+// #define G_TYPE_HAS_VALUE_TABLE(type) (g_type_value_table_peek (type) != NULL)
+
+/*
+ * Returns TRUE if type is a classed type.
+ * type:
+ * A GType value.
+ */
+// TODO
+// #define G_TYPE_IS_CLASSED(type) (g_type_test_flags ((type), G_TYPE_FLAG_CLASSED))
+
+/*
+ * Returns TRUE if type can be instantiated. Instantiation is the
+ * process of creating an instance (object) of this type.
+ * type:
+ * A GType value.
+ */
+// TODO
+// #define G_TYPE_IS_INSTANTIATABLE(type) (g_type_test_flags ((type), G_TYPE_FLAG_INSTANTIATABLE))
+
+/*
+ * Returns TRUE if type is a derivable type. A derivable type can
+ * be used as the base class of a flat (single-level) class hierarchy.
+ * type:
+ * A GType value.
+ */
+// TODO
+// #define G_TYPE_IS_DERIVABLE(type) (g_type_test_flags ((type), G_TYPE_FLAG_DERIVABLE))
+
+/*
+ * Returns TRUE if type is a deep derivable type. A deep derivable type
+ * can be used as the base class of a deep (multi-level) class hierarchy.
+ * type:
+ * A GType value.
+ */
+// TODO
+// #define G_TYPE_IS_DEEP_DERIVABLE(type) (g_type_test_flags ((type), G_TYPE_FLAG_DEEP_DERIVABLE))
+
+/*
+ * Returns TRUE if type is an interface type.
+ * An interface type provides a pure API, the implementation
+ * of which is provided by another type (which is then said to conform
+ * to the interface). GLib interfaces are somewhat analogous to Java
+ * interfaces and C++ classes containing only pure virtual functions,
+ * with the difference that GType interfaces are not derivable (but see
+ * g_type_interface_add_prerequisite() for an alternative).
+ * type:
+ * A GType value.
+ */
+// TODO
+// #define G_TYPE_IS_INTERFACE(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_INTERFACE)
+
+/*
+ * Returns the type identifier from a given instance structure.
+ * This macro should only be used in type implementations.
+ * instance:
+ * Location of a valid GTypeInstance structure.
+ */
+// TODO
+// #define G_TYPE_FROM_INSTANCE(instance) (G_TYPE_FROM_CLASS (((GTypeInstance*) (instance))->g_class))
+
+/*
+ * Returns the type identifier from a given class structure.
+ * This macro should only be used in type implementations.
+ * g_class:
+ * Location of a valid GTypeClass structure.
+ */
+// TODO
+// #define G_TYPE_FROM_CLASS(g_class) (((GTypeClass*) (g_class))->g_type)
+
+/*
+ * Returns the type identifier from a given interface structure.
+ * This macro should only be used in type implementations.
+ * g_iface:
+ * Location of a valid GTypeInterface structure.
+ */
+// TODO
+// #define G_TYPE_FROM_INTERFACE(g_iface) (((GTypeInterface*) (g_iface))->g_type)
+
+/*
+ * Returns the class structure of a given instance, casted
+ * to a specified ancestor type g_type of the instance.
+ * Warning
+ * Note
+ * that while calling a GInstanceInitFunc(), the class pointer gets
+ * modified, so it might not always return the expected pointer.
+ * This macro should only be used in type implementations.
+ * instance:
+ * 	Location of the GTypeInstance structure.
+ * g_type:
+ * 	The anchestor type of the class to be returned.
+ * c_type:
+ * 	The corresponding C type of g_type.
+ */
+// TODO
+// #define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type) (_G_TYPE_IGC ((instance), (g_type), c_type))
+
+/*
+ * Returns the interface structure for interface g_type of a given instance.
+ * This macro should only be used in type implementations.
+ * instance:
+ * Location of the GTypeInstance structure.
+ * g_type:
+ * The interface type to be returned.
+ * c_type:
+ * The corresponding C type of g_type.
+ */
+// TODO
+// #define G_TYPE_INSTANCE_GET_INTERFACE(instance, g_type, c_type) (_G_TYPE_IGI ((instance), (g_type), c_type))
+
+/*
+ * Gets the private structure for a particular type.
+ * The private structure must have been registered in the
+ * class_init function with g_type_class_add_private().
+ * This macro should only be used in type implementations.
+ * instance:
+ * the instance of a type deriving from private_type.
+ * g_type:
+ * the type identifying which private data to retrieve.
+ * c_type:
+ * The C type for the private structure.
+ * Since 2.4
+ */
+// TODO
+// #define G_TYPE_INSTANCE_GET_PRIVATE(instance, g_type, c_type) ((c_type*) g_type_instance_get_private ((GTypeInstance*) (instance), (g_type)))
+
+/*
+ * Returns TRUE if instance is a valid GTypeInstance structure,
+ * otherwise emits a warning and returns FALSE.
+ * This macro should only be used in type implementations.
+ * instance:
+ * Location of a GTypeInstance structure.
+ */
+// TODO
+// #define G_TYPE_CHECK_INSTANCE(instance)				(_G_TYPE_CHI ((GTypeInstance*) (instance)))
+
+/*
+ * Checks that instance is an instance of the type identified by g_type
+ * and emits a warning if this is not the case. Returns instance casted
+ * to a pointer to c_type.
+ * This macro should only be used in type implementations.
+ * instance:
+ * Location of a GTypeInstance structure.
+ * g_type:
+ * The type to be returned.
+ * c_type:
+ * The corresponding C type of g_type.
+ */
+// TODO
+// #define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type) (_G_TYPE_CIC ((instance), (g_type), c_type))
+
+/*
+ * Returns TRUE if instance is an instance of the type identified by g_type.
+ * Otherwise emits a warning and returns FALSE.
+ * This macro should only be used in type implementations.
+ * instance:
+ * Location of a GTypeInstance structure.
+ * g_type:
+ * The type to be checked
+ */
+// TODO
+// #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type) (_G_TYPE_CIT ((instance), (g_type)))
+
+/*
+ * Checks that g_class is a class structure of the type identified by g_type
+ * and emits a warning if this is not the case. Returns g_class casted
+ * to a pointer to c_type.
+ * This macro should only be used in type implementations.
+ * g_class:
+ * Location of a GTypeClass structure.
+ * g_type:
+ * The type to be returned.
+ * c_type:
+ * The corresponding C type of class structure of g_type.
+ */
+// TODO
+// #define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type) (_G_TYPE_CCC ((g_class), (g_type), c_type))
+
+/*
+ * Returns TRUE if g_class is a class structure of the type identified by
+ * g_type. Otherwise emits a warning and returns FALSE.
+ * This macro should only be used in type implementations.
+ * g_class:
+ * Location of a GTypeClass structure.
+ * g_type:
+ * The type to be checked.
+ */
+// TODO
+// #define G_TYPE_CHECK_CLASS_TYPE(g_class, g_type) (_G_TYPE_CCT ((g_class), (g_type)))
+
+/*
+ * Returns TRUE if value has been initialized to hold values
+ * of a value type.
+ * This macro should only be used in type implementations.
+ * value:
+ * a GValue
+ */
+// TODO
+// #define G_TYPE_CHECK_VALUE(value)				(_G_TYPE_CHV ((value)))
+
+/*
+ * Returns TRUE if value has been initialized to hold values
+ * of type g_type.
+ * This macro should only be used in type implementations.
+ * value:
+ * a GValue
+ * g_type:
+ * The type to be checked.
+ */
+// TODO
+// #define G_TYPE_CHECK_VALUE_TYPE(value, g_type)			(_G_TYPE_CVH ((value), (g_type)))
+
+/*
+ * A convenience macro for type implementations, which declares a
+ * class initialization function, an instance initialization function (see GTypeInfo for information about
+ * these) and a static variable named t_n_parent_class pointing to the parent class. Furthermore, it defines
+ * a *_get_type() function. See G_DEFINE_TYPE_EXTENDED() for an example.
+ * TN:
+ * The name of the new type, in Camel case.
+ * t_n:
+ * The name of the new type, in lowercase, with words
+ *  separated by '_'.
+ * T_P:
+ * The GType of the parent type.
+ * Since 2.4
+ */
+// TODO
+// #define G_DEFINE_TYPE(TN, t_n, T_P)			 G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, 0, {})
+
+/*
+ * A convenience macro for type implementations.
+ * Similar to G_DEFINE_TYPE(), but allows to insert custom code into the
+ * *_get_type() function, e.g. interface implementations via G_IMPLEMENT_INTERFACE().
+ * See G_DEFINE_TYPE_EXTENDED() for an example.
+ * TN:
+ * The name of the new type, in Camel case.
+ * t_n:
+ * The name of the new type in lowercase, with words separated by '_'.
+ * T_P:
+ * The GType of the parent type.
+ * _C_:
+ * Custom code that gets inserted in the *_get_type() function.
+ * Since 2.4
+ */
+// TODO
+// #define G_DEFINE_TYPE_WITH_CODE(TN, t_n, T_P, _C_)	 _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, 0) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
+
+/*
+ * A convenience macro for type implementations.
+ * Similar to G_DEFINE_TYPE(), but defines an abstract type.
+ * See G_DEFINE_TYPE_EXTENDED() for an example.
+ * TN:
+ * The name of the new type, in Camel case.
+ * t_n:
+ * The name of the new type, in lowercase, with words
+ *  separated by '_'.
+ * T_P:
+ * The GType of the parent type.
+ * Since 2.4
+ */
+// TODO
+// #define G_DEFINE_ABSTRACT_TYPE(TN, t_n, T_P)		 G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, G_TYPE_FLAG_ABSTRACT, {})
+
+/*
+ * A convenience macro for type implementations.
+ * Similar to G_DEFINE_TYPE_WITH_CODE(), but defines an abstract type and allows to
+ * insert custom code into the *_get_type() function, e.g. interface implementations
+ * via G_IMPLEMENT_INTERFACE(). See G_DEFINE_TYPE_EXTENDED() for an example.
+ * TN:
+ * The name of the new type, in Camel case.
+ * t_n:
+ * The name of the new type, in lowercase, with words
+ *  separated by '_'.
+ * T_P:
+ * The GType of the parent type.
+ * _C_:
+ * Custom code that gets inserted in the @type_name_get_type() function.
+ * Since 2.4
+ */
+// TODO
+// #define G_DEFINE_ABSTRACT_TYPE_WITH_CODE(TN, t_n, T_P, _C_) _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, G_TYPE_FLAG_ABSTRACT) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
+
+/*
+ * A convenience macro to ease interface addition in the _C_ section
+ * of G_DEFINE_TYPE_WITH_CODE() or G_DEFINE_ABSTRACT_TYPE_WITH_CODE().
+ * See G_DEFINE_TYPE_EXTENDED() for an example.
+ * Note that this macro can only be used together with the G_DEFINE_TYPE_*
+ * macros, since it depends on variable names from those macros.
+ * TYPE_IFACE:
+ * The GType of the interface to add
+ * iface_init:
+ * The interface init function
+ * Since 2.4
+ */
+// TODO
+// #define G_IMPLEMENT_INTERFACE(TYPE_IFACE, iface_init)
+
+/*
+ * The most general convenience macro for type implementations, on which
+ * G_DEFINE_TYPE(), etc are based.
+ * G_DEFINE_TYPE_EXTENDED (GtkGadget,
+ *  gtk_gadget,
+ *  GTK_TYPE_WIDGET,
+ *  0,
+ *  G_IMPLEMENT_INTERFACE (TYPE_GIZMO,
+ *  gtk_gadget_gizmo_init));
+ * expands to
+ * static void gtk_gadget_init (GtkGadget *self);
+ * static void gtk_gadget_class_init (GtkGadgetClass *klass);
+ * static gpointer gtk_gadget_parent_class = NULL;
+ * static void gtk_gadget_class_intern_init (gpointer klass)
+ * {
+	 *  gtk_gadget_parent_class = g_type_class_peek_parent (klass);
+	 *  gtk_gadget_class_init ((GtkGadgetClass*) klass);
+ * }
+ * GType
+ * gtk_gadget_get_type (void)
+ * {
+	 *  static GType g_define_type_id = 0;
+	 *  if (G_UNLIKELY (g_define_type_id == 0))
+	 *  {
+		 *  static const GTypeInfo g_define_type_info = {
+			 *  sizeof (GtkGadgetClass),
+			 *  (GBaseInitFunc) NULL,
+			 *  (GBaseFinalizeFunc) NULL,
+			 *  (GClassInitFunc) gtk_gadget_class_intern_init,
+			 *  (GClassFinalizeFunc) NULL,
+			 *  NULL, /+* class_data +/
+			 *  sizeof (GtkGadget),
+			 *  0, /+* n_preallocs +/
+			 *  (GInstanceInitFunc) gtk_gadget_init,
+		 *  };
+		 *  g_define_type_id = g_type_register_static (GTK_TYPE_WIDGET, "GtkGadget", g_define_type_info, 0);
+		 *  {
+			 *  static const GInterfaceInfo g_implement_interface_info = {
+				 *  (GInterfaceInitFunc) gtk_gadget_gizmo_init
+			 *  };
+			 *  g_type_add_interface_static (g_define_type_id, TYPE_GIZMO, g_implement_interface_info);
+		 *  }
+	 *  }
+	 *  return g_define_type_id;
+ * }
+ * The only pieces which have to be manually provided are the definitions of the
+ * instance and class structure and the definitions of the instance and class
+ * init functions.
+ * TN:
+ * The name of the new type, in Camel case.
+ * t_n:
+ * The name of the new type, in lowercase, with words
+ *  separated by '_'.
+ * T_P:
+ * The GType of the parent type.
+ * _f_:
+ * GTypeFlags to pass to g_type_register_static()
+ * _C_:
+ * Custom code that gets inserted in the *_get_type() function.
+ * Since 2.4
+ */
+// TODO
+// #define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_)	 _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
+
+/*
+ * A convenience macro for dynamic type implementations, which declares a
+ * class initialization function, an instance initialization function (see
+ * GTypeInfo for information about these) and a static variable named
+ * t_n_parent_class pointing to the parent class. Furthermore,
+ * it defines a *_get_type() and a static
+ * *_register_type() function for use in your
+ * module_init().
+ * See G_DEFINE_DYNAMIC_TYPE_EXTENDED() for an example.
+ * TN:
+ * The name of the new type, in Camel case.
+ * t_n:
+ * The name of the new type, in lowercase, with words
+ *  separated by '_'.
+ * T_P:
+ * The GType of the parent type.
+ * Since 2.14
+ */
+// TODO
+// #define G_DEFINE_DYNAMIC_TYPE(TN, t_n, T_P) G_DEFINE_DYNAMIC_TYPE_EXTENDED (TN, t_n, T_P, 0, {})
+
+/*
+ * A more general version of G_DEFINE_DYNAMIC_TYPE() which
+ * allows to specify GTypeFlags and custom code.
+ * G_DEFINE_DYNAMIC_TYPE_EXTENDED (GtkGadget,
+ *  gtk_gadget,
+ *  GTK_TYPE_THING,
+ *  0,
+ *  G_IMPLEMENT_INTERFACE (TYPE_GIZMO,
+ *  gtk_gadget_gizmo_init));
+ * expands to
+ * static void gtk_gadget_init (GtkGadget *self);
+ * static void gtk_gadget_class_init (GtkGadgetClass *klass);
+ * static void gtk_gadget_class_finalize (GtkGadgetClass *klass);
+ * static gpointer gtk_gadget_parent_class = NULL;
+ * static GType gtk_gadget_type_id = 0;
+ * static void gtk_gadget_class_intern_init (gpointer klass)
+ * {
+	 *  gtk_gadget_parent_class = g_type_class_peek_parent (klass);
+	 *  gtk_gadget_class_init ((GtkGadgetClass*) klass);
+ * }
+ * GType
+ * gtk_gadget_get_type (void)
+ * {
+	 *  return gtk_gadget_type_id;
+ * }
+ * static void
+ * gtk_gadget_register_type (GTypeModule *type_module)
+ * {
+	 *  const GTypeInfo g_define_type_info = {
+		 *  sizeof (GtkGadgetClass),
+		 *  (GBaseInitFunc) NULL,
+		 *  (GBaseFinalizeFunc) NULL,
+		 *  (GClassInitFunc) gtk_gadget_class_intern_init,
+		 *  (GClassFinalizeFunc) gtk_gadget_class_finalize,
+		 *  NULL, /+* class_data +/
+		 *  sizeof (GtkGadget),
+		 *  0, /+* n_preallocs +/
+		 *  (GInstanceInitFunc) gtk_gadget_init,
+		 *  NULL /+* value_table +/
+	 *  };
+	 *  gtk_gadget_type_id = g_type_module_register_type (type_module,
+	 *  GTK_TYPE_THING,
+	 *  GtkGadget,
+	 *  g_define_type_info,
+	 *  (GTypeFlags) flags);
+	 *  {
+		 *  const GInterfaceInfo g_implement_interface_info = {
+			 *  (GInterfaceInitFunc) gtk_gadget_gizmo_init
+		 *  };
+		 *  g_type_add_interface_static (g_define_type_id, TYPE_GIZMO, g_implement_interface_info);
+	 *  }
+ * }
+ * TypeName:
+ * The name of the new type, in Camel case.
+ * type_name:
+ * The name of the new type, in lowercase, with words
+ *  separated by '_'.
+ * TYPE_PARENT:
+ * The GType of the parent type.
+ * flags:
+ * GTypeFlags to pass to g_type_register_static()
+ * CODE:
+ * Custom code that gets inserted in the *_get_type() function.
+ * Since 2.14
+ * See Also
+ * GTypePlugin
+ * The abstract type loader interface.
+ * GModule
+ * Portable mechanism for dynamically loaded modules.
+ */
+// TODO
+// #define G_DEFINE_DYNAMIC_TYPE_EXTENDED(TypeName, type_name, TYPE_PARENT, flags, CODE)
+
+/*
+ * Returns a boolean value of FALSE or TRUE indicating whether
+ * the passed in type id is a G_TYPE_OBJECT or derived from it.
+ * type:
+ * Type id to check for is a G_TYPE_OBJECT relationship.
+ * Returns:
+ * FALSE or TRUE, indicating whether type is a G_TYPE_OBJECT.
+ */
+// TODO
+// #define G_TYPE_IS_OBJECT(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_OBJECT)
+
+/*
+ * Casts a GObject or derived pointer into a (GObject*) pointer.
+ * Depending on the current debugging level, this function may invoke
+ * certain runtime checks to identify invalid casts.
+ * object:
+ * Object which is subject to casting.
+ */
+// TODO
+// #define G_OBJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_OBJECT, GObject))
+
+/*
+ * Checks whether a valid GTypeInstance pointer is of type G_TYPE_OBJECT.
+ * object:
+ * Instance to check for being a G_TYPE_OBJECT.
+ */
+// TODO
+// #define G_IS_OBJECT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), G_TYPE_OBJECT))
+
+/*
+ * Casts a derived GObjectClass structure into a GObjectClass structure.
+ * class:
+ * a valid GObjectClass
+ */
+// TODO
+// #define G_OBJECT_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
+
+/*
+ * Checks whether class "is a" valid GObjectClass structure of type
+ * G_TYPE_OBJECT or derived.
+ * class:
+ * a GObjectClass
+ */
+// TODO
+// #define G_IS_OBJECT_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_OBJECT))
+
+/*
+ * Returns the class structure associated to a GObject instance.
+ * object:
+ * a GObject instance.
+ */
+// TODO
+// #define G_OBJECT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_OBJECT, GObjectClass))
+
+/*
+ * Return the type id of an object.
+ * object:
+ * Object to return the type id for.
+ * Returns:
+ * Type id of object.
+ */
+// TODO
+// #define G_OBJECT_TYPE(object) (G_TYPE_FROM_INSTANCE (object))
+
+/*
+ * Returns the name of an object's type.
+ * object:
+ * Object to return the type name for.
+ * Returns:
+ * Type name of object. The string is owned by the type system and
+ * should not be freed.
+ */
+// TODO
+// #define G_OBJECT_TYPE_NAME(object) (g_type_name (G_OBJECT_TYPE (object)))
+
+/*
+ * Return the type id of a class structure.
+ * class:
+ * a valid GObjectClass
+ * Returns:
+ * Type id of class.
+ */
+// TODO
+// #define G_OBJECT_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class))
+
+/*
+ * Return the name of a class structure's type.
+ * class:
+ * a valid GObjectClass
+ * Returns:
+ * Type name of class. The string is owned by the type system and
+ * should not be freed.
+ */
+// TODO
+// #define G_OBJECT_CLASS_NAME(class) (g_type_name (G_OBJECT_CLASS_TYPE (class)))
+
+/*
+ * This macro should be used to emit a standard warning about unexpected
+ * properties in set_property() and get_property() implementations.
+ * object:
+ * the GObject on which set_property() or get_property() was called
+ * property_id:
+ * the numeric id of the property
+ * pspec:
+ * the GParamSpec of the property
+ * Signal Details
+ * The "notify" signal
+ * void user_function (GObject *gobject,
+ *  GParamSpec *arg1,
+ *  gpointer user_data) : Run First / No Recursion / Has Details / Action / No Hooks
+ * The notify signal is emitted on an object when one of its properties
+ * has been changed. Note that getting this signal doesn't guarantee that the
+ * value of the property has actually changed, it may also be emitted when
+ * the setter for the property is called to reinstate the previous value.
+ * This signal is typically used to obtain change notification for a
+ * single property, by specifying the property name as a detail in the
+ * g_signal_connect() call, like this:
+ * g_signal_connect (text_view->buffer, "notify::paste-target-list",
+ *  G_CALLBACK (gtk_text_view_target_list_notify),
+ *  text_view)
+ * It is important to note that you must use
+ * canonical parameter names as
+ * detail strings for the notify signal.
+ * pspec:
+ * the GParamSpec of the property which changed
+ * gobject:
+ * the object which received the signal.
+ * user_data:
+ * user data set when the signal handler was connected.
+ * See Also
+ * GParamSpecObject, g_param_spec_object()
+ */
+// TODO
+// #define G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec)
+
+/*
+ * Returns the type identifier from a given GEnumClass structure.
+ * class:
+ * a GEnumClass
+ */
+// TODO
+// #define G_ENUM_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class))
+
+/*
+ * Returns the static type name from a given GEnumClass structure.
+ * class:
+ * a GEnumClass
+ */
+// TODO
+// #define G_ENUM_CLASS_TYPE_NAME(class) (g_type_name (G_ENUM_CLASS_TYPE (class)))
+
+/*
+ * Returns whether type "is a" G_TYPE_ENUM.
+ * type:
+ * a GType ID.
+ */
+// TODO
+// #define G_TYPE_IS_ENUM(type)	 (G_TYPE_FUNDAMENTAL (type) == G_TYPE_ENUM)
+
+/*
+ * Casts a derived GEnumClass structure into a GEnumClass structure.
+ * class:
+ * a valid GEnumClass
+ */
+// TODO
+// #define G_ENUM_CLASS(class)	 (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_ENUM, GEnumClass))
+
+/*
+ * Checks whether class "is a" valid GEnumClass structure of type G_TYPE_ENUM
+ * or derived.
+ * class:
+ * a GEnumClass
+ */
+// TODO
+// #define G_IS_ENUM_CLASS(class)	 (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_ENUM))
+
+/*
+ * Returns whether type "is a" G_TYPE_FLAGS.
+ * type:
+ * a GType ID.
+ */
+// TODO
+// #define G_TYPE_IS_FLAGS(type)	 (G_TYPE_FUNDAMENTAL (type) == G_TYPE_FLAGS)
+
+/*
+ * Casts a derived GFlagsClass structure into a GFlagsClass structure.
+ * class:
+ * a valid GFlagsClass
+ */
+// TODO
+// #define G_FLAGS_CLASS(class)	 (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_FLAGS, GFlagsClass))
+
+/*
+ * Checks whether class "is a" valid GFlagsClass structure of type G_TYPE_FLAGS
+ * or derived.
+ * class:
+ * a GFlagsClass
+ */
+// TODO
+// #define G_IS_FLAGS_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_FLAGS))
+
+/*
+ * Returns the type identifier from a given GFlagsClass structure.
+ * class:
+ * a GFlagsClass
+ */
+// TODO
+// #define G_FLAGS_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class))
+
+/*
+ * Returns the static type name from a given GFlagsClass structure.
+ * class:
+ * a GFlagsClass
+ */
+// TODO
+// #define G_FLAGS_CLASS_TYPE_NAME(class) (g_type_name (G_FLAGS_CLASS_TYPE (class)))
+
+/*
+ * Returns TRUE if value holds (or contains) a value of type.
+ * This macro will also check for value != NULL and issue a
+ * warning if the check fails.
+ * value:
+ * A GValue structure.
+ * type:
+ * A GType value.
+ */
+// TODO
+// #define G_VALUE_HOLDS(value,type)	(G_TYPE_CHECK_VALUE_TYPE ((value), (type)))
+
+/*
+ * Returns the type identifier of value.
+ * value:
+ * A GValue structure.
+ */
+// TODO
+// #define	G_VALUE_TYPE(value)		(((GValue*) (value))->g_type)
+
+/*
+ * Returns the type name of value.
+ * value:
+ * A GValue structure.
+ */
+// TODO
+// #define	G_VALUE_TYPE_NAME(value)	(g_type_name (G_VALUE_TYPE (value)))
+
+/*
+ * Return whether the passed in type ID can be used for g_value_init().
+ * That is, this macro checks whether this type provides an implementation
+ * of the GTypeValueTable functions required for a type to create a GValue of.
+ * type:
+ * 	 A GType value.
+ * Returns:
+ * Whether type is suitable as a GValue type.
+ */
+// TODO
+// #define	G_TYPE_IS_VALUE(type)		(g_type_check_is_value_type (type))
+
+/*
+ * Returns TRUE if type is an abstract value type. An abstract value type
+ * introduces a value table, but can't be used for g_value_init() and is normally
+ * used as an abstract base type for derived value types.
+ * type:
+ * A GType value.
+ */
+// TODO
+// #define G_TYPE_IS_VALUE_ABSTRACT(type) (g_type_test_flags ((type), G_TYPE_FLAG_VALUE_ABSTRACT))
+
+/*
+ * Returns TRUE if value is a valid and initialized GValue structure.
+ * value:
+ * A GValue structure.
+ */
+// TODO
+// #define	G_IS_VALUE(value)		(G_TYPE_CHECK_VALUE (value))
+
+/*
+ * Return whether the given GParamSpec is of type G_TYPE_PARAM_BOOLEAN.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_BOOLEAN(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_BOOLEAN))
+
+/*
+ * Cast a GParamSpec instance into a GParamSpecBoolean.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_PARAM_SPEC_BOOLEAN(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_BOOLEAN, GParamSpecBoolean))
+
+/*
+ * Return whether the given GValue can hold values of type G_TYPE_BOOLEAN.
+ * value:
+ * a valid GValue structure
+ */
+// TODO
+// #define G_VALUE_HOLDS_BOOLEAN(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_BOOLEAN))
+
+/*
+ * Return whether the given GParamSpec is of type G_TYPE_PARAM_CHAR.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_CHAR(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_CHAR))
+
+/*
+ * Cast a GParamSpec instance into a GParamSpecChar.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_PARAM_SPEC_CHAR(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_CHAR, GParamSpecChar))
+
+/*
+ * Return whether the given GValue can hold values of type G_TYPE_CHAR.
+ * value:
+ * a valid GValue structure
+ */
+// TODO
+// #define G_VALUE_HOLDS_CHAR(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_CHAR))
+
+/*
+ * Return whether the given GParamSpec is of type G_TYPE_PARAM_UCHAR.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_UCHAR(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UCHAR))
+
+/*
+ * Cast a GParamSpec instance into a GParamSpecUChar.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_PARAM_SPEC_UCHAR(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UCHAR, GParamSpecUChar))
+
+/*
+ * Return whether the given GValue can hold values of type G_TYPE_UCHAR.
+ * value:
+ * a valid GValue structure
+ */
+// TODO
+// #define G_VALUE_HOLDS_UCHAR(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UCHAR))
+
+/*
+ * Return whether the given GParamSpec is of type G_TYPE_PARAM_INT.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_INT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_INT))
+
+/*
+ * Cast a GParamSpec instance into a GParamSpecInt.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_PARAM_SPEC_INT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_INT, GParamSpecInt))
+
+/*
+ * Return whether the given GValue can hold values of type G_TYPE_INT.
+ * value:
+ * a valid GValue structure
+ */
+// TODO
+// #define G_VALUE_HOLDS_INT(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_INT))
+
+/*
+ * Return whether the given GParamSpec is of type G_TYPE_PARAM_UINT.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_UINT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UINT))
+
+/*
+ * Cast a GParamSpec instance into a GParamSpecUInt.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_PARAM_SPEC_UINT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UINT, GParamSpecUInt))
+
+/*
+ * Return whether the given GValue can hold values of type G_TYPE_UINT.
+ * value:
+ * a valid GValue structure
+ */
+// TODO
+// #define G_VALUE_HOLDS_UINT(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UINT))
+
+/*
+ * Return whether the given GParamSpec is of type G_TYPE_PARAM_LONG.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_LONG(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_LONG))
+
+/*
+ * Cast a GParamSpec instance into a GParamSpecLong.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_PARAM_SPEC_LONG(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_LONG, GParamSpecLong))
+
+/*
+ * Return whether the given GValue can hold values of type G_TYPE_LONG.
+ * value:
+ * a valid GValue structure
+ */
+// TODO
+// #define G_VALUE_HOLDS_LONG(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_LONG))
+
+/*
+ * Return whether the given GParamSpec is of type G_TYPE_PARAM_ULONG.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_ULONG(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_ULONG))
+
+/*
+ * Cast a GParamSpec instance into a GParamSpecULong.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_PARAM_SPEC_ULONG(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_ULONG, GParamSpecULong))
+
+/*
+ * Return whether the given GValue can hold values of type G_TYPE_ULONG.
+ * value:
+ * a valid GValue structure
+ */
+// TODO
+// #define G_VALUE_HOLDS_ULONG(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_ULONG))
+
+/*
+ * Return whether the given GParamSpec is of type G_TYPE_PARAM_INT64.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_INT64(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_INT64))
+
+/*
+ * Cast a GParamSpec instance into a GParamSpecInt64.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_PARAM_SPEC_INT64(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_INT64, GParamSpecInt64))
+
+/*
+ * Return whether the given GValue can hold values of type G_TYPE_INT64.
+ * value:
+ * a valid GValue structure
+ */
+// TODO
+// #define G_VALUE_HOLDS_INT64(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_INT64))
+
+/*
+ * Return whether the given GParamSpec is of type G_TYPE_PARAM_UINT64.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_UINT64(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UINT64))
+
+/*
+ * Cast a GParamSpec instance into a GParamSpecUInt64.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_PARAM_SPEC_UINT64(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UINT64, GParamSpecUInt64))
+
+/*
+ * Return whether the given GValue can hold values of type G_TYPE_UINT64.
+ * value:
+ * a valid GValue structure
+ */
+// TODO
+// #define G_VALUE_HOLDS_UINT64(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UINT64))
+
+/*
+ * Return whether the given GParamSpec is of type G_TYPE_PARAM_FLOAT.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_FLOAT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_FLOAT))
+
+/*
+ * Cast a GParamSpec instance into a GParamSpecFloat.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_PARAM_SPEC_FLOAT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_FLOAT, GParamSpecFloat))
+
+/*
+ * Return whether the given GValue can hold values of type G_TYPE_FLOAT.
+ * value:
+ * a valid GValue structure
+ */
+// TODO
+// #define G_VALUE_HOLDS_FLOAT(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_FLOAT))
+
+/*
+ * Return whether the given GParamSpec is of type G_TYPE_PARAM_DOUBLE.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_DOUBLE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_DOUBLE))
+
+/*
+ * Cast a GParamSpec instance into a GParamSpecDouble.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_PARAM_SPEC_DOUBLE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_DOUBLE, GParamSpecDouble))
+
+/*
+ * Return whether the given GValue can hold values of type G_TYPE_DOUBLE.
+ * value:
+ * a valid GValue structure
+ */
+// TODO
+// #define G_VALUE_HOLDS_DOUBLE(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_DOUBLE))
+
+/*
+ * Returns whether the given GParamSpec is of type G_TYPE_PARAM_ENUM.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_ENUM(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_ENUM))
+
+/*
+ * Cast a GParamSpec instance into a GParamSpecEnum.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_PARAM_SPEC_ENUM(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_ENUM, GParamSpecEnum))
+
+/*
+ * Return whether the given GValue can hold values derived from type G_TYPE_ENUM.
+ * value:
+ * a valid GValue structure
+ */
+// TODO
+// #define G_VALUE_HOLDS_ENUM(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_ENUM))
+
+/*
+ * Returns whether the given GParamSpec is of type G_TYPE_PARAM_FLAGS.
+ * pspec:
+ *  a valid GParamSpec instance
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_FLAGS(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_FLAGS))
+
+/*
+ * Cast a GParamSpec instance into a GParamSpecFlags.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_PARAM_SPEC_FLAGS(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_FLAGS, GParamSpecFlags))
+
+/*
+ * Returns whether the given GValue can hold values derived from type G_TYPE_FLAGS.
+ * value:
+ * a valid GValue structure
+ */
+// TODO
+// #define G_VALUE_HOLDS_FLAGS(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_FLAGS))
+
+/*
+ * Returns whether the given GParamSpec is of type G_TYPE_PARAM_STRING.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_STRING(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_STRING))
+
+/*
+ * Casts a GParamSpec instance into a GParamSpecString.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_PARAM_SPEC_STRING(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_STRING, GParamSpecString))
+
+/*
+ * Return whether the given GValue can hold values of type G_TYPE_STRING.
+ * value:
+ * a valid GValue structure
+ */
+// TODO
+// #define G_VALUE_HOLDS_STRING(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_STRING))
+
+/*
+ * Returns whether the given GParamSpec is of type G_TYPE_PARAM_PARAM.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_PARAM(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_PARAM))
+
+/*
+ * Casts a GParamSpec instance into a GParamSpecParam.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_PARAM_SPEC_PARAM(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_PARAM, GParamSpecParam))
+
+/*
+ * Return whether the given GValue can hold values derived from type G_TYPE_PARAM.
+ * value:
+ * a valid GValue structure
+ */
+// TODO
+// #define G_VALUE_HOLDS_PARAM(value)	(G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_PARAM))
+
+/*
+ * Return whether the given GParamSpec is of type G_TYPE_PARAM_BOXED.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_BOXED(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_BOXED))
+
+/*
+ * Cast a GParamSpec instance into a GParamSpecBoxed.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_PARAM_SPEC_BOXED(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_BOXED, GParamSpecBoxed))
+
+/*
+ * Return whether the given GValue can hold values derived from type G_TYPE_BOXED.
+ * value:
+ * a valid GValue structure
+ */
+// TODO
+// #define G_VALUE_HOLDS_BOXED(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_BOXED))
+
+/*
+ * Returns whether the given GParamSpec is of type G_TYPE_PARAM_POINTER.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_POINTER(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_POINTER))
+
+/*
+ * Casts a GParamSpec instance into a GParamSpecPointer.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_PARAM_SPEC_POINTER(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_POINTER, GParamSpecPointer))
+
+/*
+ * Return whether the given GValue can hold values of type G_TYPE_POINTER.
+ * value:
+ * a valid GValue structure
+ */
+// TODO
+// #define G_VALUE_HOLDS_POINTER(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_POINTER))
+
+/*
+ * Returns whether the given GParamSpec is of type G_TYPE_PARAM_OBJECT.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_OBJECT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OBJECT))
+
+/*
+ * Casts a GParamSpec instance into a GParamSpecObject.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_PARAM_SPEC_OBJECT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OBJECT, GParamSpecObject))
+
+/*
+ * Return whether the given GValue can hold values derived from type G_TYPE_OBJECT.
+ * value:
+ * a valid GValue structure
+ */
+// TODO
+// #define G_VALUE_HOLDS_OBJECT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_OBJECT))
+
+/*
+ * Return whether the given GParamSpec is of type G_TYPE_PARAM_UNICHAR.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_UNICHAR(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UNICHAR))
+
+/*
+ * Cast a GParamSpec instance into a GParamSpecUnichar.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_PARAM_SPEC_UNICHAR(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UNICHAR, GParamSpecUnichar))
+
+/*
+ * Return whether the given GParamSpec is of type G_TYPE_PARAM_VALUE_ARRAY.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VALUE_ARRAY))
+
+/*
+ * Cast a GParamSpec instance into a GParamSpecValueArray.
+ * pspec:
+ * a valid GParamSpec instance
+ */
+// TODO
+// #define G_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VALUE_ARRAY, GParamSpecValueArray))
+
+/*
+ * Returns whether the given GParamSpec is of type G_TYPE_PARAM_OVERRIDE.
+ * pspec:
+ * a GParamSpec
+ * Since 2.4
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_OVERRIDE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OVERRIDE))
+
+/*
+ * Casts a GParamSpec into a GParamSpecOverride.
+ * pspec:
+ *  a GParamSpec
+ * Since 2.4
+ */
+// TODO
+// #define G_PARAM_SPEC_OVERRIDE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OVERRIDE, GParamSpecOverride))
+
+/*
+ * Returns whether the given GParamSpec is of type G_TYPE_PARAM_GTYPE.
+ * pspec:
+ * a GParamSpec
+ * Since 2.10
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_GTYPE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_GTYPE))
+
+/*
+ * Casts a GParamSpec into a GParamSpecGType.
+ * pspec:
+ *  a GParamSpec
+ * Since 2.10
+ */
+// TODO
+// #define G_PARAM_SPEC_GTYPE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_GTYPE, GParamSpecGType))
+
+/*
+ * Returns whether the given GValue can hold values of type G_TYPE_GTYPE.
+ * value:
+ *  a valid GValue structure
+ * Since 2.12
+ */
+// TODO
+// #define G_VALUE_HOLDS_GTYPE(value)	 (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_GTYPE))
+
+/*
+ * Returns whether type "is a" G_TYPE_PARAM.
+ * type:
+ * a GType ID
+ */
+// TODO
+// #define G_TYPE_IS_PARAM(type)		(G_TYPE_FUNDAMENTAL (type) == G_TYPE_PARAM)
+
+/*
+ * Casts a derived GParamSpec object (e.g. of type GParamSpecInt) into
+ * a GParamSpec object.
+ * pspec:
+ * a valid GParamSpec
+ */
+// TODO
+// #define G_PARAM_SPEC(pspec)		(G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM, GParamSpec))
+
+/*
+ * Checks whether pspec "is a" valid GParamSpec structure of type G_TYPE_PARAM
+ * or derived.
+ * pspec:
+ * a GParamSpec
+ */
+// TODO
+// #define G_IS_PARAM_SPEC(pspec)		(G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM))
+
+/*
+ * Casts a derived GParamSpecClass structure into a GParamSpecClass structure.
+ * pclass:
+ * a valid GParamSpecClass
+ */
+// TODO
+// #define G_PARAM_SPEC_CLASS(pclass) (G_TYPE_CHECK_CLASS_CAST ((pclass), G_TYPE_PARAM, GParamSpecClass))
+
+/*
+ * Checks whether pclass "is a" valid GParamSpecClass structure of type
+ * G_TYPE_PARAM or derived.
+ * pclass:
+ * a GParamSpecClass
+ */
+// TODO
+// #define G_IS_PARAM_SPEC_CLASS(pclass) (G_TYPE_CHECK_CLASS_TYPE ((pclass), G_TYPE_PARAM))
+
+/*
+ * Retrieves the GParamSpecClass of a GParamSpec.
+ * pspec:
+ * a valid GParamSpec
+ */
+// TODO
+// #define G_PARAM_SPEC_GET_CLASS(pspec)	(G_TYPE_INSTANCE_GET_CLASS ((pspec), G_TYPE_PARAM, GParamSpecClass))
+
+/*
+ * Retrieves the GType of this pspec.
+ * pspec:
+ * a valid GParamSpec
+ */
+// TODO
+// #define G_PARAM_SPEC_TYPE(pspec)	(G_TYPE_FROM_INSTANCE (pspec))
+
+/*
+ * Retrieves the GType name of this pspec.
+ * pspec:
+ * a valid GParamSpec
+ */
+// TODO
+// #define G_PARAM_SPEC_TYPE_NAME(pspec)	(g_type_name (G_PARAM_SPEC_TYPE (pspec)))
+
+/*
+ * Retrieves the GType to initialize a GValue for this parameter.
+ * pspec:
+ * a valid GParamSpec
+ */
+// TODO
+// #define	G_PARAM_SPEC_VALUE_TYPE(pspec)	(G_PARAM_SPEC (pspec)->value_type)
+
+/*
+ * Connects a GCallback function to a signal for a particular object.
+ * The handler will be called before the default handler of the signal.
+ * instance:
+ * the instance to connect to.
+ * detailed_signal:
+ * a string of the form "signal-name::detail".
+ * c_handler:
+ * the GCallback to connect.
+ * data:
+ * data to pass to c_handler calls.
+ * Returns:
+ * the handler id
+ */
+// TODO
+// #define g_signal_connect(instance, detailed_signal, c_handler, data)
+
+/*
+ * Connects a GCallback function to a signal for a particular object.
+ * The handler will be called after the default handler of the signal.
+ * instance:
+ * the instance to connect to.
+ * detailed_signal:
+ * a string of the form "signal-name::detail".
+ * c_handler:
+ * the GCallback to connect.
+ * data:
+ * data to pass to c_handler calls.
+ * Returns:
+ * the handler id
+ */
+// TODO
+// #define g_signal_connect_after(instance, detailed_signal, c_handler, data)
+
+/*
+ * Connects a GCallback function to a signal for a particular object.
+ * The instance on which the signal is emitted and data will be swapped when
+ * calling the handler.
+ * instance:
+ * the instance to connect to.
+ * detailed_signal:
+ * a string of the form "signal-name::detail".
+ * c_handler:
+ * the GCallback to connect.
+ * data:
+ * data to pass to c_handler calls.
+ * Returns:
+ * the handler id
+ */
+// TODO
+// #define g_signal_connect_swapped(instance, detailed_signal, c_handler, data)
+
+/*
+ * Blocks all handlers on an instance that match func and data.
+ * instance:
+ * The instance to block handlers from.
+ * func:
+ * The C closure callback of the handlers (useless for non-C closures).
+ * data:
+ * The closure data of the handlers' closures.
+ * Returns:
+ * The number of handlers that got blocked.
+ */
+// TODO
+// #define g_signal_handlers_block_by_func(instance, func, data)
+
+/*
+ * Unblocks all handlers on an instance that match func and data.
+ * instance:
+ * The instance to unblock handlers from.
+ * func:
+ * The C closure callback of the handlers (useless for non-C closures).
+ * data:
+ * The closure data of the handlers' closures.
+ * Returns:
+ * The number of handlers that got unblocked.
+ */
+// TODO
+// #define g_signal_handlers_unblock_by_func(instance, func, data)
+
+/*
+ * Disconnects all handlers on an instance that match func and data.
+ * instance:
+ * The instance to remove handlers from.
+ * func:
+ * The C closure callback of the handlers (useless for non-C closures).
+ * data:
+ * The closure data of the handlers' closures.
+ * Returns:
+ * The number of handlers that got disconnected.
+ */
+// TODO
+// #define g_signal_handlers_disconnect_by_func(instance, func, data)
+
+/*
+ * Returns TRUE if a GClosureMarshal marshaller has not yet been set on
+ * closure. See g_closure_set_marshal().
+ * closure:
+ * a GClosure
+ */
+// TODO
+// #define	G_CLOSURE_NEEDS_MARSHAL(closure) (((GClosure*) (closure))->marshal == NULL)
+
+/*
+ * Returns the total number of notifiers connected with the closure cl.
+ * The count includes the meta marshaller, the finalize and invalidate notifiers
+ * and the marshal guards. Note that each guard counts as two notifiers.
+ * See g_closure_set_meta_marshal(), g_closure_add_finalize_notifier(),
+ * g_closure_add_invalidate_notifier() and g_closure_add_marshal_guards().
+ * cl:
+ * a GClosure
+ */
+// TODO
+// #define G_CLOSURE_N_NOTIFIERS(cl)
+
+/*
+ * Returns whether the user data of the GCClosure should be passed as the
+ * first parameter to the callback. See g_cclosure_new_swap().
+ * cclosure:
+ * a GCClosure
+ */
+// TODO
+// #define	G_CCLOSURE_SWAP_DATA(cclosure)	 (((GClosure*) (closure))->derivative_flag)
+
+/*
+ * Cast a function pointer to a GCallback.
+ * f:
+ * a function pointer.
+ */
+// TODO
+// #define	G_CALLBACK(f)			 ((GCallback) (f))
+
+/*
+ * A callback function used by the type system to do base initialization
+ * of the class structures of derived types. It is called as part of the
+ * initialization process of all derived classes and should reallocate
+ * or reset all dynamic class members copied over from the parent class.
+ * For example, class members (such as strings) that are not sufficiently
+ * handled by a plain memory copy of the parent class into the derived class
+ * have to be altered. See GClassInitFunc() for a discussion of the class
+ * intialization process.
+ * g_class:
+ * The GTypeClass structure to initialize.
+ */
+// void (*GBaseInitFunc) (gpointer g_class);
+public typedef extern(C) void  function (void*) GBaseInitFunc;
+
+/*
+ * A callback function used by the type system to finalize those portions
+ * of a derived types class structure that were setup from the corresponding
+ * GBaseInitFunc() function. Class finalization basically works the inverse
+ * way in which class intialization is performed.
+ * See GClassInitFunc() for a discussion of the class intialization process.
+ * g_class:
+ * The GTypeClass structure to finalize.
+ */
+// void (*GBaseFinalizeFunc) (gpointer g_class);
+public typedef extern(C) void  function (void*) GBaseFinalizeFunc;
+
+/*
+ * A callback function used by the type system to initialize the class
+ * of a specific type. This function should initialize all static class
+ * members.
+ * The initialization process of a class involves:
+ * 	1 - Copying common members from the parent class over to the
+ * 	derived class structure.
+ * 	2 - Zero initialization of the remaining members not copied
+ * 	over from the parent class.
+ * 	3 - Invocation of the GBaseInitFunc() initializers of all parent
+ * 	types and the class' type.
+ * 	4 - Invocation of the class' GClassInitFunc() initializer.
+ * Since derived classes are partially initialized through a memory copy
+ * of the parent class, the general rule is that GBaseInitFunc() and
+ * GBaseFinalizeFunc() should take care of necessary reinitialization
+ * and release of those class members that were introduced by the type
+ * that specified these GBaseInitFunc()/GBaseFinalizeFunc().
+ * GClassInitFunc() should only care about initializing static
+ * class members, while dynamic class members (such as allocated strings
+ * or reference counted resources) are better handled by a GBaseInitFunc()
+ * for this type, so proper initialization of the dynamic class members
+ * is performed for class initialization of derived types as well.
+ * An example may help to correspond the intend of the different class
+ * initializers:
+ * typedef struct {
+	 *  GObjectClass parent_class;
+	 *  gint static_integer;
+	 *  gchar *dynamic_string;
+ * } TypeAClass;
+ * static void
+ * type_a_base_class_init (TypeAClass *class)
+ * {
+	 *  class->dynamic_string = g_strdup ("some string");
+ * }
+ * static void
+ * type_a_base_class_finalize (TypeAClass *class)
+ * {
+	 *  g_free (class->dynamic_string);
+ * }
+ * static void
+ * type_a_class_init (TypeAClass *class)
+ * {
+	 *  class->static_integer = 42;
+ * }
+ * typedef struct {
+	 *  TypeAClass parent_class;
+	 *  gfloat static_float;
+	 *  GString *dynamic_gstring;
+ * } TypeBClass;
+ * static void
+ * type_b_base_class_init (TypeBClass *class)
+ * {
+	 *  class->dynamic_gstring = g_string_new ("some other string");
+ * }
+ * static void
+ * type_b_base_class_finalize (TypeBClass *class)
+ * {
+	 *  g_string_free (class->dynamic_gstring);
+ * }
+ * static void
+ * type_b_class_init (TypeBClass *class)
+ * {
+	 *  class->static_float = 3.14159265358979323846;
+ * }
+ * Initialization of TypeBClass will first cause initialization of
+ * TypeAClass (derived classes reference their parent classes, see
+ * g_type_class_ref() on this).
+ * Initialization of TypeAClass roughly involves zero-initializing its fields,
+ * then calling its GBaseInitFunc() type_a_base_class_init() to allocate
+ * its dynamic members (dynamic_string), and finally calling its GClassInitFunc()
+ * type_a_class_init() to initialize its static members (static_integer).
+ * The first step in the initialization process of TypeBClass is then
+ * a plain memory copy of the contents of TypeAClass into TypeBClass and
+ * zero-initialization of the remaining fields in TypeBClass.
+ * The dynamic members of TypeAClass within TypeBClass now need
+ * reinitialization which is performed by calling type_a_base_class_init()
+ * with an argument of TypeBClass.
+ * After that, the GBaseInitFunc() of TypeBClass, type_b_base_class_init()
+ * is called to allocate the dynamic members of TypeBClass (dynamic_gstring),
+ * and finally the GClassInitFunc() of TypeBClass, type_b_class_init(),
+ * is called to complete the initialization process with the static members
+ * (static_float).
+ * Corresponding finalization counter parts to the GBaseInitFunc() functions
+ * have to be provided to release allocated resources at class finalization
+ * time.
+ * g_class:
+ * 	The GTypeClass structure to initialize.
+ * class_data:
+ * 	The class_data member supplied via the GTypeInfo structure.
+ */
+// void (*GClassInitFunc) (gpointer g_class,  gpointer class_data);
+public typedef extern(C) void  function (void*, void*) GClassInitFunc;
+
+/*
+ * A callback function used by the type system to finalize a class.
+ * This function is rarely needed, as dynamically allocated class resources
+ * should be handled by GBaseInitFunc() and GBaseFinalizeFunc().
+ * Also, specification of a GClassFinalizeFunc() in the GTypeInfo
+ * structure of a static type is invalid, because classes of static types
+ * will never be finalized (they are artificially kept alive when their
+ * reference count drops to zero).
+ * g_class:
+ * 	The GTypeClass structure to finalize.
+ * class_data:
+ * 	The class_data member supplied via the GTypeInfo structure.
+ */
+// void (*GClassFinalizeFunc) (gpointer g_class,  gpointer class_data);
+public typedef extern(C) void  function (void*, void*) GClassFinalizeFunc;
+
+/*
+ * A callback function used by the type system to initialize a new
+ * instance of a type. This function initializes all instance members and
+ * allocates any resources required by it.
+ * Initialization of a derived instance involves calling all its parent
+ * types instance initializers, so the class member of the instance
+ * is altered during its initialization to always point to the class that
+ * belongs to the type the current initializer was introduced for.
+ * instance:
+ * 	The instance to initialize.
+ * g_class:
+ * 	The class of the type the instance is created for.
+ */
+// void (*GInstanceInitFunc) (GTypeInstance *instance,  gpointer g_class);
+public typedef extern(C) void  function (GTypeInstance*, void*) GInstanceInitFunc;
+
+/*
+ * A callback function used by the type system to initialize a new
+ * interface. This function should initialize all internal data and
+ * allocate any resources required by the interface.
+ * g_iface:
+ * 	The interface structure to initialize.
+ * iface_data:
+ * 	The class_data supplied via the GTypeInfo structure.
+ */
+// void (*GInterfaceInitFunc) (gpointer g_iface,  gpointer iface_data);
+public typedef extern(C) void  function (void*, void*) GInterfaceInitFunc;
+
+/*
+ * A callback function used by the type system to finalize an interface.
+ * This function should destroy any internal data and release any resources
+ * allocated by the corresponding GInterfaceInitFunc() function.
+ * g_iface:
+ * 	The interface structure to finalize.
+ * iface_data:
+ * 	The class_data supplied via the GTypeInfo structure.
+ */
+// void (*GInterfaceFinalizeFunc) (gpointer g_iface,  gpointer iface_data);
+public typedef extern(C) void  function (void*, void*) GInterfaceFinalizeFunc;
+
+/*
+ * A callback function which is called when the reference count of a class
+ * drops to zero. It may use g_type_class_ref() to prevent the class from
+ * being freed. You should not call g_type_class_unref() from a
+ * GTypeClassCacheFunc function to prevent infinite recursion, use
+ * g_type_class_unref_uncached() instead.
+ * The functions have to check the class id passed in to figure
+ * whether they actually want to cache the class of this type, since all
+ * classes are routed through the same GTypeClassCacheFunc chain.
+ * cache_data:
+ * data that was given to the g_type_add_class_cache_func() call
+ * g_class:
+ * The GTypeClass structure which is unreferenced
+ * Returns:
+ * TRUE to stop further GTypeClassCacheFuncs from being
+ * called, FALSE to continue.
+ */
+// gboolean (*GTypeClassCacheFunc) (gpointer cache_data,  GTypeClass *g_class);
+public typedef extern(C) int  function (void*, GTypeClass*) GTypeClassCacheFunc;
+
+/*
+ * A callback called after an interface vtable is initialized.
+ * See g_type_add_interface_check().
+ * check_data:
+ * data passed to g_type_add_interface_check().
+ * g_iface:
+ * the interface that has been initialized
+ * Since 2.4
+ */
+// void (*GTypeInterfaceCheckFunc) (gpointer check_data,  gpointer g_iface);
+public typedef extern(C) void  function (void*, void*) GTypeInterfaceCheckFunc;
+
+/*
+ * The type of the use_plugin function of GTypePluginClass, which gets called
+ * to increase the use count of plugin.
+ * plugin:
+ * the GTypePlugin whose use count should be increased
+ */
+// void (*GTypePluginUse) (GTypePlugin *plugin);
+public typedef extern(C) void  function (GTypePlugin*) GTypePluginUse;
+
+/*
+ * The type of the unuse_plugin function of GTypePluginClass.
+ * plugin:
+ * the GTypePlugin whose use count should be decreased
+ */
+// void (*GTypePluginUnuse) (GTypePlugin *plugin);
+public typedef extern(C) void  function (GTypePlugin*) GTypePluginUnuse;
+
+/*
+ * The type of the complete_type_info function of GTypePluginClass.
+ * plugin:
+ * the GTypePlugin
+ * g_type:
+ * the GType whose info is completed
+ * info:
+ * the GTypeInfo struct to fill in
+ * value_table:
+ * the GTypeValueTable to fill in
+ */
+// void (*GTypePluginCompleteTypeInfo) (GTypePlugin *plugin,  GType g_type,  GTypeInfo *info,  GTypeValueTable *value_table);
+public typedef extern(C) void  function (GTypePlugin*, GType, GTypeInfo*, GTypeValueTable*) GTypePluginCompleteTypeInfo;
+
+/*
+ * The type of the complete_interface_info function of GTypePluginClass.
+ * plugin:
+ * the GTypePlugin
+ * instance_type:
+ * the GType of an instantiable type to which the interface
+ *  is added
+ * interface_type:
+ * the GType of the interface whose info is completed
+ * info:
+ * the GInterfaceInfo to fill in
+ */
+// void (*GTypePluginCompleteInterfaceInfo) (GTypePlugin *plugin,  GType instance_type,  GType interface_type,  GInterfaceInfo *info);
+public typedef extern(C) void  function (GTypePlugin*, GType, GType, GInterfaceInfo*) GTypePluginCompleteInterfaceInfo;
+
+/*
+ * The type of the get_property function of GObjectClass.
+ * object:
+ * a GObject
+ * property_id:
+ * the numeric id under which the property was registered with
+ *  g_object_class_install_property().
+ * value:
+ * a GValue to return the property value in
+ * pspec:
+ * the GParamSpec describing the property
+ */
+// void (*GObjectGetPropertyFunc) (GObject *object,  guint property_id,  GValue *value,  GParamSpec *pspec);
+public typedef extern(C) void  function (GObject*, uint, GValue*, GParamSpec*) GObjectGetPropertyFunc;
+
+/*
+ * The type of the set_property function of GObjectClass.
+ * object:
+ * a GObject
+ * property_id:
+ * the numeric id under which the property was registered with
+ *  g_object_class_install_property().
+ * value:
+ * the new value for the property
+ * pspec:
+ * the GParamSpec describing the property
+ */
+// void (*GObjectSetPropertyFunc) (GObject *object,  guint property_id,  const GValue *value,  GParamSpec *pspec);
+public typedef extern(C) void  function (GObject*, uint, GValue*, GParamSpec*) GObjectSetPropertyFunc;
+
+/*
+ * The type of the finalize function of GObjectClass.
+ * object:
+ * the GObject being finalized
+ */
+// void (*GObjectFinalizeFunc) (GObject *object);
+public typedef extern(C) void  function (GObject*) GObjectFinalizeFunc;
+
+/*
+ * A GWeakNotify function can be added to an object as a callback that gets
+ * triggered when the object is finalized. Since the object is already being
+ * finalized when the GWeakNotify is called, there's not much you could do
+ * with the object, apart from e.g. using its adress as hash-index or the like.
+ * data:
+ * data that was provided when the weak reference was established
+ * where_the_object_was:
+ * the object being finalized
+ */
+// void (*GWeakNotify) (gpointer data,  GObject *where_the_object_was);
+public typedef extern(C) void  function (void*, GObject*) GWeakNotify;
+
+/*
+ * A callback function used for notification when the state
+ * of a toggle reference changes. See g_object_add_toggle_ref().
+ * data:
+ * Callback data passed to g_object_add_toggle_ref()
+ * object:
+ * The object on which g_object_add_toggle_ref() was called.
+ * is_last_ref:
+ * TRUE if the toggle reference is now the
+ *  last reference to the object. FALSE if the toggle
+ *  reference was the last reference and there are now other
+ *  references.
+ */
+// void (*GToggleNotify) (gpointer data,  GObject *object,  gboolean is_last_ref);
+public typedef extern(C) void  function (void*, GObject*, int) GToggleNotify;
+
+/*
+ * This function is provided by the user and should produce a copy of the passed
+ * in boxed structure.
+ * boxed:
+ *  The boxed structure to be copied.
+ * Returns:
+ * The newly created copy of the boxed structure.
+ */
+// gpointer (*GBoxedCopyFunc) (gpointer boxed);
+public typedef extern(C) void*  function (void*) GBoxedCopyFunc;
+
+/*
+ * This function is provided by the user and should free the boxed
+ * structure passed.
+ * boxed:
+ * The boxed structure to be freed.
+ */
+// void (*GBoxedFreeFunc) (gpointer boxed);
+public typedef extern(C) void  function (void*) GBoxedFreeFunc;
+
+/*
+ * The type of value transformation functions which can be registered with
+ * g_value_register_transform_func().
+ * src_value:
+ *  Source value.
+ * dest_value:
+ * Target value.
+ */
+// void (*GValueTransform) (const GValue *src_value,  GValue *dest_value);
+public typedef extern(C) void  function (GValue*, GValue*) GValueTransform;
+
+/*
+ * The signal accumulator is a special callback function that can be used
+ * to collect return values of the various callbacks that are called
+ * during a signal emission. The signal accumulator is specified at signal
+ * creation time, if it is left NULL, no accumulation of callback return
+ * values is performed. The return value of signal emissions is then the
+ * value returned by the last callback.
+ * ihint:
+ * 	Signal invocation hint, see GSignalInvocationHint.
+ * return_accu:
+ * 	Accumulator to collect callback return values in, this
+ * 		is the return value of the current signal emission.
+ * handler_return:
+ * A GValue holding the return value of the signal handler.
+ * data:
+ *  Callback data that was specified when creating the signal.
+ * Returns:
+ * 	The accumulator function returns whether the signal emission
+ * 		should be aborted. Returning FALSE means to abort the
+ * 		current emission and TRUE is returned for continuation.
+ */
+// gboolean (*GSignalAccumulator) (GSignalInvocationHint *ihint,  GValue *return_accu,  const GValue *handler_return,  gpointer data);
+public typedef extern(C) int  function (GSignalInvocationHint*, GValue*, GValue*, void*) GSignalAccumulator;
+
+/*
+ * A simple function pointer to get invoked when the signal is emitted. This
+ * allows you to tie a hook to the signal type, so that it will trap all
+ * emissions of that signal, from any object.
+ * You may not attach these to signals created with the G_SIGNAL_NO_HOOKS flag.
+ * ihint:
+ * Signal invocation hint, see GSignalInvocationHint.
+ * n_param_values:
+ * the number of parameters to the function, including
+ *  the instance on which the signal was emitted.
+ * param_values:
+ * the instance on which the signal was emitted, followed by the
+ *  parameters of the emission.
+ * data:
+ * user data associated with the hook.
+ * Returns:
+ * whether it wants to stay connected. If it returns FALSE, the signal
+ *  hook is disconnected (and destroyed).
+ */
+// gboolean (*GSignalEmissionHook) (GSignalInvocationHint *ihint,  guint n_param_values,  const GValue *param_values,  gpointer data);
+public typedef extern(C) int  function (GSignalInvocationHint*, uint, GValue*, void*) GSignalEmissionHook;
+
+/*
+ * The type used for callback functions in structure definitions and function
+ * signatures. This doesn't mean that all callback functions must take no
+ * parameters and return void. The required signature of a callback function
+ * is determined by the context in which is used (e.g. the signal to which it
+ * is connected). Use G_CALLBACK() to cast the callback function to a GCallback.
+ */
+// void (*GCallback) (void);
+public typedef extern(C) void  function () GCallback;
+
+/*
+ * The type used for marshaller functions.
+ * closure:
+ * the GClosure to which the marshaller belongs
+ * return_value:
+ * a GValue to store the return value. May be NULL if the
+ *  callback of closure doesn't return a value.
+ * n_param_values:
+ * the length of the param_values array
+ * param_values:
+ * an array of GValues holding the arguments on
+ *  which to invoke the callback of closure
+ * invocation_hint:
+ * the invocation hint given as the the last argument
+ *  to g_closure_invoke()
+ * marshal_data:
+ * additional data specified when registering the marshaller,
+ *  see g_closure_set_marshal() and g_closure_set_meta_marshal()
+ */
+// void (*GClosureMarshal) (GClosure *closure,  GValue *return_value,  guint n_param_values,  const GValue *param_values,  gpointer invocation_hint,  gpointer marshal_data);
+public typedef extern(C) void  function (GClosure*, GValue*, uint, GValue*, void*, void*) GClosureMarshal;
+
+/*
+ * The type used for the various notification callbacks which can be registered
+ * on closures.
+ * data:
+ * data specified when registering the notification callback
+ * closure:
+ * the GClosure on which the notification is emitted
+ */
+// void (*GClosureNotify) (gpointer data,  GClosure *closure);
+public typedef extern(C) void  function (void*, GClosure*) GClosureNotify;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/gtk/c/gthread.d	Sat Jan 05 15:13:44 2008 -0800
@@ -0,0 +1,191 @@
+/******************************************************************************
+
+    This file is part of gtkD.
+
+    gtkD is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation; either version 2.1 of the License, or
+    (at your option) any later version.
+ 
+    gtkD is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with gtkD; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+******************************************************************************/
+
+module dwt.internal.gtk.c.gthread;
+
+private import dwt.internal.gtk.c.gthreadtypes;
+private import dwt.internal.gtk.runtime.Loader;
+
+/******************************************************************************
+
+******************************************************************************/
+
+private Linker gthreadLinker;
+
+/******************************************************************************
+
+******************************************************************************/
+
+static this()
+{
+    gthreadLinker = new Linker( getLibraryPath ~ importLibs[LIBRARY.GTHREAD] );
+    gthreadLinker.link(gthreadLinks);
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+static ~this()
+{
+    delete gthreadLinker;
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+extern(C) 
+{	
+	// gthread.Mutex
+	
+	GMutex* function()g_mutex_new;
+	void function(GMutex* mutex)g_mutex_lock;
+	gboolean function(GMutex* mutex)g_mutex_trylock;
+	void function(GMutex* mutex)g_mutex_unlock;
+	void function(GMutex* mutex)g_mutex_free;
+	
+	// gthread.StaticRecMutex
+	
+	void function(GStaticRecMutex* mutex)g_static_rec_mutex_init;
+	void function(GStaticRecMutex* mutex)g_static_rec_mutex_lock;
+	gboolean function(GStaticRecMutex* mutex)g_static_rec_mutex_trylock;
+	void function(GStaticRecMutex* mutex)g_static_rec_mutex_unlock;
+	void function(GStaticRecMutex* mutex, guint depth)g_static_rec_mutex_lock_full;
+	guint function(GStaticRecMutex* mutex)g_static_rec_mutex_unlock_full;
+	void function(GStaticRecMutex* mutex)g_static_rec_mutex_free;
+	
+	// gthread.RWLock
+	
+	void function(GStaticRWLock* lock)g_static_rw_lock_init;
+	void function(GStaticRWLock* lock)g_static_rw_lock_reader_lock;
+	gboolean function(GStaticRWLock* lock)g_static_rw_lock_reader_trylock;
+	void function(GStaticRWLock* lock)g_static_rw_lock_reader_unlock;
+	void function(GStaticRWLock* lock)g_static_rw_lock_writer_lock;
+	gboolean function(GStaticRWLock* lock)g_static_rw_lock_writer_trylock;
+	void function(GStaticRWLock* lock)g_static_rw_lock_writer_unlock;
+	void function(GStaticRWLock* lock)g_static_rw_lock_free;
+	
+	// gthread.Cond
+	
+	GCond* function()g_cond_new;
+	void function(GCond* cond)g_cond_signal;
+	void function(GCond* cond)g_cond_broadcast;
+	void function(GCond* cond, GMutex* mutex)g_cond_wait;
+	gboolean function(GCond* cond, GMutex* mutex, GTimeVal* absTime)g_cond_timed_wait;
+	void function(GCond* cond)g_cond_free;
+	
+	// gthread.Private
+	
+	GPrivate* function(GDestroyNotify destructor)g_private_new;
+	gpointer function(GPrivate* privateKey)g_private_get;
+	void function(GPrivate* privateKey, gpointer data)g_private_set;
+	
+	// gthread.StaticPrivate
+	
+	void function(GStaticPrivate* privateKey)g_static_private_init;
+	gpointer function(GStaticPrivate* privateKey)g_static_private_get;
+	void function(GStaticPrivate* privateKey, gpointer data, GDestroyNotify notify)g_static_private_set;
+	void function(GStaticPrivate* privateKey)g_static_private_free;
+	
+	// gthread.Thread
+	
+	void function(GThreadFunctions* vtable)g_thread_init;
+	gboolean function()g_thread_supported;
+	GThread* function(GThreadFunc func, gpointer data, gboolean joinable, GError** error)g_thread_create;
+	GThread* function(GThreadFunc func, gpointer data, gulong stackSize, gboolean joinable, gboolean bound, GThreadPriority priority, GError** error)g_thread_create_full;
+	GThread* function()g_thread_self;
+	gpointer function(GThread* thread)g_thread_join;
+	void function(GThread* thread, GThreadPriority priority)g_thread_set_priority;
+	void function()g_thread_yield;
+	void function(gpointer retval)g_thread_exit;
+	void function(GFunc threadFunc, gpointer userData)g_thread_foreach;
+	void function(GStaticMutex* mutex)g_static_mutex_init;
+	void function(GStaticMutex* mutex)g_static_mutex_lock;
+	gboolean function(GStaticMutex* mutex)g_static_mutex_trylock;
+	void function(GStaticMutex* mutex)g_static_mutex_unlock;
+	GMutex* function(GStaticMutex* mutex)g_static_mutex_get_mutex;
+	void function(GStaticMutex* mutex)g_static_mutex_free;
+	gboolean function(gsize* valueLocation)g_once_init_enter;
+	void function(gsize* valueLocation, gsize initializationValue)g_once_init_leave;
+
+
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+Symbol[] gthreadLinks = 
+[
+
+	{ "g_mutex_new",  cast(void**)& g_mutex_new},
+	{ "g_mutex_lock",  cast(void**)& g_mutex_lock},
+	{ "g_mutex_trylock",  cast(void**)& g_mutex_trylock},
+	{ "g_mutex_unlock",  cast(void**)& g_mutex_unlock},
+	{ "g_mutex_free",  cast(void**)& g_mutex_free},
+	{ "g_static_rec_mutex_init",  cast(void**)& g_static_rec_mutex_init},
+	{ "g_static_rec_mutex_lock",  cast(void**)& g_static_rec_mutex_lock},
+	{ "g_static_rec_mutex_trylock",  cast(void**)& g_static_rec_mutex_trylock},
+	{ "g_static_rec_mutex_unlock",  cast(void**)& g_static_rec_mutex_unlock},
+	{ "g_static_rec_mutex_lock_full",  cast(void**)& g_static_rec_mutex_lock_full},
+	{ "g_static_rec_mutex_unlock_full",  cast(void**)& g_static_rec_mutex_unlock_full},
+	{ "g_static_rec_mutex_free",  cast(void**)& g_static_rec_mutex_free},
+	{ "g_static_rw_lock_init",  cast(void**)& g_static_rw_lock_init},
+	{ "g_static_rw_lock_reader_lock",  cast(void**)& g_static_rw_lock_reader_lock},
+	{ "g_static_rw_lock_reader_trylock",  cast(void**)& g_static_rw_lock_reader_trylock},
+	{ "g_static_rw_lock_reader_unlock",  cast(void**)& g_static_rw_lock_reader_unlock},
+	{ "g_static_rw_lock_writer_lock",  cast(void**)& g_static_rw_lock_writer_lock},
+	{ "g_static_rw_lock_writer_trylock",  cast(void**)& g_static_rw_lock_writer_trylock},
+	{ "g_static_rw_lock_writer_unlock",  cast(void**)& g_static_rw_lock_writer_unlock},
+	{ "g_static_rw_lock_free",  cast(void**)& g_static_rw_lock_free},
+	{ "g_cond_new",  cast(void**)& g_cond_new},
+	{ "g_cond_signal",  cast(void**)& g_cond_signal},
+	{ "g_cond_broadcast",  cast(void**)& g_cond_broadcast},
+	{ "g_cond_wait",  cast(void**)& g_cond_wait},
+	{ "g_cond_timed_wait",  cast(void**)& g_cond_timed_wait},
+	{ "g_cond_free",  cast(void**)& g_cond_free},
+	{ "g_private_new",  cast(void**)& g_private_new},
+	{ "g_private_get",  cast(void**)& g_private_get},
+	{ "g_private_set",  cast(void**)& g_private_set},
+	{ "g_static_private_init",  cast(void**)& g_static_private_init},
+	{ "g_static_private_get",  cast(void**)& g_static_private_get},
+	{ "g_static_private_set",  cast(void**)& g_static_private_set},
+	{ "g_static_private_free",  cast(void**)& g_static_private_free},
+	{ "g_thread_init",  cast(void**)& g_thread_init},
+	{ "g_thread_supported",  cast(void**)& g_thread_supported},
+	{ "g_thread_create",  cast(void**)& g_thread_create},
+	{ "g_thread_create_full",  cast(void**)& g_thread_create_full},
+	{ "g_thread_self",  cast(void**)& g_thread_self},
+	{ "g_thread_join",  cast(void**)& g_thread_join},
+	{ "g_thread_set_priority",  cast(void**)& g_thread_set_priority},
+	{ "g_thread_yield",  cast(void**)& g_thread_yield},
+	{ "g_thread_exit",  cast(void**)& g_thread_exit},
+	{ "g_thread_foreach",  cast(void**)& g_thread_foreach},
+	{ "g_static_mutex_init",  cast(void**)& g_static_mutex_init},
+	{ "g_static_mutex_lock",  cast(void**)& g_static_mutex_lock},
+	{ "g_static_mutex_trylock",  cast(void**)& g_static_mutex_trylock},
+	{ "g_static_mutex_unlock",  cast(void**)& g_static_mutex_unlock},
+	{ "g_static_mutex_get_mutex",  cast(void**)& g_static_mutex_get_mutex},
+	{ "g_static_mutex_free",  cast(void**)& g_static_mutex_free},
+	{ "g_once_init_enter",  cast(void**)& g_once_init_enter},
+	{ "g_once_init_leave",  cast(void**)& g_once_init_leave},
+
+];
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/gtk/c/gthreadtypes.d	Sat Jan 05 15:13:44 2008 -0800
@@ -0,0 +1,395 @@
+/******************************************************************************
+
+    This file is part of gtkD.
+
+    gtkD is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation; either version 2.1 of the License, or
+    (at your option) any later version.
+ 
+    gtkD is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with gtkD; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+******************************************************************************/
+
+module dwt.internal.gtk.c.gthreadtypes;
+
+public import dwt.internal.gtk.c.glibtypes;
+
+/******************************************************************************
+
+    Possible errors of thread related functions.
+    G_THREAD_ERROR_AGAIN
+    a thread couldn't be created due to resource
+    shortage. Try again later.
+
+******************************************************************************/
+
+public enum GThreadError
+{
+	AGAIN /+* Resource temporarily unavailable +/
+}
+alias GThreadError ThreadError;
+
+/**
+ * Specifies the priority of a thread.
+ * Note
+ * It is not guaranteed that threads with different priorities really
+ * behave accordingly. On some systems (e.g. Linux) there are no thread
+ * priorities. On other systems (e.g. Solaris) there doesn't seem to be
+ * different scheduling for different priorities. All in all try to avoid
+ * being dependent on priorities.
+ * G_THREAD_PRIORITY_LOW
+ * a priority lower than normal
+ * G_THREAD_PRIORITY_NORMAL
+ * the default priority
+ * G_THREAD_PRIORITY_HIGH
+ * a priority higher than normal
+ * G_THREAD_PRIORITY_URGENT
+ * the highest priority
+ */
+public enum GThreadPriority
+{
+	LOW,
+	NORMAL,
+	HIGH,
+	URGENT
+}
+alias GThreadPriority ThreadPriority;
+
+/**
+ * The possible statuses of a one-time initialization function controlled by a GOnce struct.
+ * G_ONCE_STATUS_NOTCALLED
+ * the function has not been called yet.
+ * G_ONCE_STATUS_PROGRESS
+ * the function call is currently in progress.
+ * G_ONCE_STATUS_READY
+ * the function has been called.
+ * Since 2.4
+ */
+public enum GOnceStatus
+{
+	NOTCALLED,
+	PROGRESS,
+	READY
+}
+alias GOnceStatus OnceStatus;
+
+
+/**
+ * This function table is used by g_thread_init() to initialize the
+ * thread system. The functions in the table are directly used by their
+ * g_* prepended counterparts (described in this document). For example,
+ * if you call g_mutex_new() then mutex_new() from the table provided to
+ * g_thread_init() will be called.
+ * Note
+ * Do not use this struct unless you know what you are doing.
+ */
+public struct GThreadFunctions{}
+// GMutex* (*mutexNew) (void);
+//
+// void (*mutexLock) (GMutex *mutex);
+//
+// int (*mutexTrylock) (GMutex *mutex);
+//
+// void (*mutexUnlock) (GMutex *mutex);
+//
+// void (*mutexFree) (GMutex *mutex);
+//
+// GCond* (*condNew) (void);
+//
+// void (*condSignal) (GCond *cond);
+//
+// void (*condBroadcast) (GCond *cond);
+//
+// void (*condWait) (GCond *cond,
+//
+// GMutex *mutex);
+//
+// int (*condTimedWait) (GCond *cond,
+//
+// GMutex *mutex,
+//
+// GTimeVal *endTime);
+//
+// void (*condFree) (GCond *cond);
+//
+// GPrivate* (*privateNew) (GDestroyNotify destructor);
+//
+// void* (*privateGet) (GPrivate *privateKey);
+//
+// void (*privateSet) (GPrivate *privateKey,
+//
+// void* data);
+//
+// void (*threadCreate) (GThreadFunc func,
+//
+// void* data,
+//
+// uint stackSize,
+//
+// int joinable,
+//
+// int bound,
+//
+// GThreadPriority priority,
+//
+// void* thread,
+//
+// GError **error);
+//
+// void (*threadYield) (void);
+//
+// void (*threadJoin) (void* thread);
+//
+// void (*threadExit) (void);
+//
+// void (*threadSetPriority)(void* thread,
+//
+// GThreadPriority priority);
+//
+// void (*threadSelf) (void* thread);
+//
+// int (*threadEqual) (void* thread1,
+//
+// void* thread2);
+//
+
+
+/**
+ * Main Gtk struct.
+ * The GThread struct represents a running thread. It has three public
+ * read-only members, but the underlying struct is bigger, so you must
+ * not copy this struct.
+ * Note
+ * Resources for a joinable thread are not fully released until
+ * g_thread_join() is called for that thread.
+ */
+public struct GThread{}
+
+
+/**
+ * The GMutex struct is an opaque data structure to represent a mutex
+ * (mutual exclusion). It can be used to protect data against shared
+ * access. Take for example the following function:
+ * Example2.A function which will not work in a threaded environment
+ */
+public struct GMutex{}
+
+
+/**
+ * A GStaticMutex works like a GMutex, but it has one significant
+ * advantage. It doesn't need to be created at run-time like a GMutex,
+ * but can be defined at compile-time. Here is a shorter, easier and
+ * safer version of our give_me_next_number() example:
+ * Example5.Using GStaticMutex to simplify thread-safe programming
+ */
+public struct GStaticMutex{}
+
+
+/**
+ * A GStaticRecMutex works like a GStaticMutex, but it can be locked
+ * multiple times by one thread. If you enter it n times, you have to
+ * unlock it n times again to let other threads lock it. An exception is
+ * the function g_static_rec_mutex_unlock_full(): that allows you to
+ * unlock a GStaticRecMutex completely returning the depth, (i.e. the
+ * number of times this mutex was locked). The depth can later be used to
+ * restore the state of the GStaticRecMutex by calling
+ * g_static_rec_mutex_lock_full().
+ * Even though GStaticRecMutex is not opaque, it should only be used with
+ * the following functions.
+ * All of the g_static_rec_mutex_* functions can be
+ * used even if g_thread_init() has not been called. Then they do
+ * nothing, apart from g_static_rec_mutex_trylock,
+ * which does nothing but returning TRUE.
+ */
+public struct GStaticRecMutex{}
+
+
+/**
+ * The GStaticRWLock struct represents a read-write lock. A read-write
+ * lock can be used for protecting data that some portions of code only
+ * read from, while others also write. In such situations it is
+ * desirable that several readers can read at once, whereas of course
+ * only one writer may write at a time. Take a look at the following
+ * example:
+ * Example7.An array with access functions
+ */
+public struct GStaticRWLock{}
+
+
+/**
+ * The GCond struct is an opaque data structure that represents a
+ * condition. Threads can block on a GCond if they find a certain
+ * condition to be false. If other threads change the state of this
+ * condition they signal the GCond, and that causes the waiting threads
+ * to be woken up.
+ * Example8.Using GCond to block a thread until a condition is satisfied
+ * GCond* data_cond = NULL; /+* Must be initialized somewhere +/
+ * GMutex* data_mutex = NULL; /+* Must be initialized somewhere +/
+ * gpointer current_data = NULL;
+ * void push_data (gpointer data)
+ * {
+	 */
+public struct GCond{}
+
+
+/**
+ * The GPrivate struct is an opaque data structure to represent a thread
+ * private data key. Threads can thereby obtain and set a pointer which
+ * is private to the current thread.
+ * Take our give_me_next_number() example from above.
+ * Suppose we don't want current_number to be shared
+ * between the threads, but instead to be private to each thread. This can be
+ * done as follows:
+ * Example9.Using GPrivate for per-thread data
+ */
+public struct GPrivate{}
+
+
+/**
+ * A GStaticPrivate works almost like a GPrivate, but it has one
+ * significant advantage. It doesn't need to be created at run-time like
+ * a GPrivate, but can be defined at compile-time. This is similar to
+ * the difference between GMutex and GStaticMutex. Now look at our
+ * give_me_next_number() example with ""
+ * Example10.Using GStaticPrivate for per-thread data
+ */
+public struct GStaticPrivate{}
+
+
+/**
+ * A GOnce struct controls a one-time initialization
+ * function. Any one-time initialization function must have its own unique
+ * GOnce struct.
+ * volatileGOnceStatusstatus;
+ * the status of the GOnce
+ * volatilegpointerretval;
+ * the value returned by the call to the function, if status
+ */
+public struct GOnce
+{
+	GOnceStatus status;
+	void* retval;
+}
+
+
+/*
+ * The G_LOCK_* macros provide a convenient interface to GStaticMutex
+ * with the advantage that they will expand to nothing in programs
+ * compiled against a thread-disabled GLib, saving code and memory
+ * there. G_LOCK_DEFINE defines a lock. It can appear anywhere variable
+ * definitions may appear in programs, i.e. in the first block of a
+ * function or outside of functions. The name parameter will be mangled
+ * to get the name of the GStaticMutex. This means that you can use
+ * names of existing variables as the parameter - e.g. the name of the
+ * variable you intent to protect with the lock. Look at our
+ * give_me_next_number() example using the G_LOCK_* macros:
+ * Example6.Using the G_LOCK_* convenience macros
+ * G_LOCK_DEFINE (current_number);
+ * int give_me_next_number ()
+ *  {
+	 *  static int current_number = 0;
+	 *  int ret_val;
+	 *  G_LOCK (current_number);
+	 *  ret_val = current_number = calc_next_number (current_number);
+	 *  G_UNLOCK (current_number);
+	 *  return ret_val;
+ *  }
+ * name:
+ * the name of the lock.
+ */
+// TODO
+// #define G_LOCK_DEFINE(name)
+
+/*
+ * This works like G_LOCK_DEFINE, but it creates a static object.
+ * name:
+ * the name of the lock.
+ */
+// TODO
+// #define G_LOCK_DEFINE_STATIC(name)
+
+/*
+ * This declares a lock, that is defined with G_LOCK_DEFINE in another module.
+ * name:
+ * the name of the lock.
+ */
+// TODO
+// #define G_LOCK_EXTERN(name)
+
+/*
+ * Works like g_mutex_lock(), but for a lock defined with G_LOCK_DEFINE.
+ * name:
+ * the name of the lock.
+ */
+// TODO
+// #define G_LOCK(name)
+
+/*
+ * Works like g_mutex_trylock(), but for a lock defined with G_LOCK_DEFINE.
+ * name:
+ * the name of the lock.
+ * Returns:
+ * TRUE, if the lock could be locked.
+ */
+// TODO
+// #define G_TRYLOCK(name)
+
+/*
+ * Works like g_mutex_unlock(), but for a lock defined with G_LOCK_DEFINE.
+ * name:
+ * the name of the lock.
+ */
+// TODO
+// #define G_UNLOCK(name)
+
+/*
+ * The first call to this routine by a process with a given GOnce struct calls
+ * func with the given argument. Thereafter, subsequent calls to g_once() with
+ * the same GOnce struct do not call func again, but return the stored result
+ * of the first call. On return from g_once(), the status of once will be
+ * G_ONCE_STATUS_READY.
+ * For example, a mutex or a thread-specific data key must be created exactly
+ * once. In a threaded environment, calling g_once() ensures that the
+ * initialization is serialized across multiple threads.
+ * Note
+ * Calling g_once() recursively on the same GOnce struct in func will lead
+ * to a deadlock.
+ * gpointer
+ * get_debug_flags ()
+ * {
+	 *  static GOnce my_once = G_ONCE_INIT;
+	 *  g_once (my_once, parse_debug_flags, NULL);
+	 *  return my_once.retval;
+ * }
+ * once:
+ * a GOnce structure
+ * func:
+ * the GThreadFunc function associated to once. This function is
+ *  called only once, regardless of the number of times it and its
+ *  associated GOnce struct are passed to g_once() .
+ * arg:
+ *  data to be passed to func
+ * Since 2.4
+ */
+// TODO
+// #define g_once(once, func, arg)
+
+/*
+ * Specifies the type of the func functions passed to
+ * g_thread_create() or g_thread_create_full().
+ * data:
+ * data passed to the thread.
+ * Returns:
+ * the return value of the thread, which will be returned by
+ * g_thread_join().
+ */
+// gpointer (*GThreadFunc) (gpointer data);
+public typedef extern(C) void*  function (void*) GThreadFunc;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/gtk/c/gtk.d	Sat Jan 05 15:13:44 2008 -0800
@@ -0,0 +1,6181 @@
+/******************************************************************************
+
+    This file is part of gtkD.
+
+    gtkD is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation; either version 2.1 of the License, or
+    (at your option) any later version.
+ 
+    gtkD is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with gtkD; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+******************************************************************************/
+
+module dwt.internal.gtk.c.gtk;
+
+private import dwt.internal.gtk.c.gtktypes;
+private import dwt.internal.gtk.runtime.Loader;
+
+/******************************************************************************
+
+******************************************************************************/
+
+private Linker gtkLinker;
+
+/******************************************************************************
+
+******************************************************************************/
+
+static this()
+{
+    gtkLinker = new Linker( getLibraryPath ~ importLibs[LIBRARY.GTK] );
+    gtkLinker.link( gtkLinks );
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+static ~this()
+{
+    delete gtkLinker;
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+extern(C) 
+{	
+	// gtk.GtkD
+	
+	gchar* function()gtk_set_locale;
+	void function()gtk_disable_setlocale;
+	PangoLanguage* function()gtk_get_default_language;
+	gboolean function(int* argc, char*** argv)gtk_parse_args;
+	void function(int* argc, char*** argv)gtk_init;
+	gboolean function(int* argc, char*** argv)gtk_init_check;
+	gboolean function(int* argc, char*** argv, char* parameterString, GOptionEntry* entries, char* translationDomain, GError** error)gtk_init_with_args;
+	GOptionGroup* function(gboolean openDefaultDisplay)gtk_get_option_group;
+	void function(gint errorCode)gtk_exit;
+	gboolean function()gtk_events_pending;
+	void function()gtk_main;
+	guint function()gtk_main_level;
+	void function()gtk_main_quit;
+	gboolean function()gtk_main_iteration;
+	gboolean function(gboolean blocking)gtk_main_iteration_do;
+	void function(GdkEvent* event)gtk_main_do_event;
+	void function(GtkWidget* widget)gtk_grab_add;
+	GtkWidget* function()gtk_grab_get_current;
+	void function(GtkWidget* widget)gtk_grab_remove;
+	void function(GtkFunction funct, gpointer data)gtk_init_add;
+	void function(guint mainLevel, GtkObject* object)gtk_quit_add_destroy;
+	guint function(guint mainLevel, GtkFunction funct, gpointer data)gtk_quit_add;
+	guint function(guint mainLevel, GtkFunction funct, GtkCallbackMarshal marshal, gpointer data, GtkDestroyNotify destroy)gtk_quit_add_full;
+	void function(guint quitHandlerId)gtk_quit_remove;
+	void function(gpointer data)gtk_quit_remove_by_data;
+	guint function(gint source, GdkInputCondition condition, GdkInputFunction funct, GtkCallbackMarshal marshal, gpointer data, GtkDestroyNotify destroy)gtk_input_add_full;
+	void function(guint inputHandlerId)gtk_input_remove;
+	guint function(GtkKeySnoopFunc snooper, gpointer funcData)gtk_key_snooper_install;
+	void function(guint snooperHandlerId)gtk_key_snooper_remove;
+	GdkEvent* function()gtk_get_current_event;
+	guint32 function()gtk_get_current_event_time;
+	gboolean function(GdkModifierType* state)gtk_get_current_event_state;
+	GtkWidget* function(GdkEvent* event)gtk_get_event_widget;
+	void function(GtkWidget* widget, GdkEvent* event)gtk_propagate_event;
+	
+	// gtk.Timeout
+	
+	guint function(guint32 interval, GtkFunction funct, GtkCallbackMarshal marshal, gpointer data, GtkDestroyNotify destroy)gtk_timeout_add_full;
+	guint function(guint32 interval, GtkFunction funct, gpointer data)gtk_timeout_add;
+	void function(guint timeoutHandlerId)gtk_timeout_remove;
+	
+	// gtk.Idle
+	
+	guint function(GtkFunction funct, gpointer data)gtk_idle_add;
+	guint function(gint priority, GtkFunction funct, gpointer data)gtk_idle_add_priority;
+	guint function(gint priority, GtkFunction funct, GtkCallbackMarshal marshal, gpointer data, GtkDestroyNotify destroy)gtk_idle_add_full;
+	void function(guint idleHandlerId)gtk_idle_remove;
+	void function(gpointer data)gtk_idle_remove_by_data;
+	
+	// gtk.AccelGroup
+	
+	GtkAccelGroup* function()gtk_accel_group_new;
+	void function(GtkAccelGroup* accelGroup, guint accelKey, GdkModifierType accelMods, GtkAccelFlags accelFlags, GClosure* closure)gtk_accel_group_connect;
+	void function(GtkAccelGroup* accelGroup, gchar* accelPath, GClosure* closure)gtk_accel_group_connect_by_path;
+	gboolean function(GtkAccelGroup* accelGroup, GClosure* closure)gtk_accel_group_disconnect;
+	gboolean function(GtkAccelGroup* accelGroup, guint accelKey, GdkModifierType accelMods)gtk_accel_group_disconnect_key;
+	GtkAccelGroupEntry* function(GtkAccelGroup* accelGroup, guint accelKey, GdkModifierType accelMods, guint* nEntries)gtk_accel_group_query;
+	gboolean function(GtkAccelGroup* accelGroup, GQuark accelQuark, GObject* acceleratable, guint accelKey, GdkModifierType accelMods)gtk_accel_group_activate;
+	void function(GtkAccelGroup* accelGroup)gtk_accel_group_lock;
+	void function(GtkAccelGroup* accelGroup)gtk_accel_group_unlock;
+	GtkAccelGroup* function(GClosure* closure)gtk_accel_group_from_accel_closure;
+	gboolean function(GObject* object, guint accelKey, GdkModifierType accelMods)gtk_accel_groups_activate;
+	GSList* function(GObject* object)gtk_accel_groups_from_object;
+	GtkAccelKey* function(GtkAccelGroup* accelGroup, GtkAccelGroupFindFunc findFunc, gpointer data)gtk_accel_group_find;
+	gboolean function(guint keyval, GdkModifierType modifiers)gtk_accelerator_valid;
+	void function(gchar* accelerator, guint* acceleratorKey, GdkModifierType* acceleratorMods)gtk_accelerator_parse;
+	gchar* function(guint acceleratorKey, GdkModifierType acceleratorMods)gtk_accelerator_name;
+	gchar* function(guint acceleratorKey, GdkModifierType acceleratorMods)gtk_accelerator_get_label;
+	void function(GdkModifierType defaultModMask)gtk_accelerator_set_default_mod_mask;
+	guint function()gtk_accelerator_get_default_mod_mask;
+	
+	// gtk.AccelMap
+	
+	void function(gchar* accelPath, guint accelKey, GdkModifierType accelMods)gtk_accel_map_add_entry;
+	gboolean function(gchar* accelPath, GtkAccelKey* key)gtk_accel_map_lookup_entry;
+	gboolean function(gchar* accelPath, guint accelKey, GdkModifierType accelMods, gboolean replace)gtk_accel_map_change_entry;
+	void function(gchar* fileName)gtk_accel_map_load;
+	void function(gchar* fileName)gtk_accel_map_save;
+	void function(gpointer data, GtkAccelMapForeach foreachFunc)gtk_accel_map_foreach;
+	void function(gint fd)gtk_accel_map_load_fd;
+	void function(gint fd)gtk_accel_map_save_fd;
+	void function(GScanner* scanner)gtk_accel_map_load_scanner;
+	void function(gchar* filterPattern)gtk_accel_map_add_filter;
+	void function(gpointer data, GtkAccelMapForeach foreachFunc)gtk_accel_map_foreach_unfiltered;
+	GtkAccelMap* function()gtk_accel_map_get;
+	void function(gchar* accelPath)gtk_accel_map_lock_path;
+	void function(gchar* accelPath)gtk_accel_map_unlock_path;
+	
+	// gtk.Clipboard
+	
+	GtkClipboard* function(GdkAtom selection)gtk_clipboard_get;
+	GtkClipboard* function(GdkDisplay* display, GdkAtom selection)gtk_clipboard_get_for_display;
+	GdkDisplay* function(GtkClipboard* clipboard)gtk_clipboard_get_display;
+	gboolean function(GtkClipboard* clipboard, GtkTargetEntry* targets, guint nTargets, GtkClipboardGetFunc getFunc, GtkClipboardClearFunc clearFunc, gpointer userData)gtk_clipboard_set_with_data;
+	gboolean function(GtkClipboard* clipboard, GtkTargetEntry* targets, guint nTargets, GtkClipboardGetFunc getFunc, GtkClipboardClearFunc clearFunc, GObject* owner)gtk_clipboard_set_with_owner;
+	GObject* function(GtkClipboard* clipboard)gtk_clipboard_get_owner;
+	void function(GtkClipboard* clipboard)gtk_clipboard_clear;
+	void function(GtkClipboard* clipboard, gchar* text, gint len)gtk_clipboard_set_text;
+	void function(GtkClipboard* clipboard, GdkPixbuf* pixbuf)gtk_clipboard_set_image;
+	void function(GtkClipboard* clipboard, GdkAtom target, GtkClipboardReceivedFunc callback, gpointer userData)gtk_clipboard_request_contents;
+	void function(GtkClipboard* clipboard, GtkClipboardTextReceivedFunc callback, gpointer userData)gtk_clipboard_request_text;
+	void function(GtkClipboard* clipboard, GtkClipboardImageReceivedFunc callback, gpointer userData)gtk_clipboard_request_image;
+	void function(GtkClipboard* clipboard, GtkClipboardTargetsReceivedFunc callback, gpointer userData)gtk_clipboard_request_targets;
+	void function(GtkClipboard* clipboard, GtkTextBuffer* buffer, GtkClipboardRichTextReceivedFunc callback, gpointer userData)gtk_clipboard_request_rich_text;
+	GtkSelectionData* function(GtkClipboard* clipboard, GdkAtom target)gtk_clipboard_wait_for_contents;
+	gchar* function(GtkClipboard* clipboard)gtk_clipboard_wait_for_text;
+	GdkPixbuf* function(GtkClipboard* clipboard)gtk_clipboard_wait_for_image;
+	guint8* function(GtkClipboard* clipboard, GtkTextBuffer* buffer, GdkAtom* format, gsize* length)gtk_clipboard_wait_for_rich_text;
+	gboolean function(GtkClipboard* clipboard)gtk_clipboard_wait_is_text_available;
+	gboolean function(GtkClipboard* clipboard)gtk_clipboard_wait_is_image_available;
+	gboolean function(GtkClipboard* clipboard, GtkTextBuffer* buffer)gtk_clipboard_wait_is_rich_text_available;
+	gboolean function(GtkClipboard* clipboard, GdkAtom** targets, gint* nTargets)gtk_clipboard_wait_for_targets;
+	gboolean function(GtkClipboard* clipboard, GdkAtom target)gtk_clipboard_wait_is_target_available;
+	void function(GtkClipboard* clipboard, GtkTargetEntry* targets, gint nTargets)gtk_clipboard_set_can_store;
+	void function(GtkClipboard* clipboard)gtk_clipboard_store;
+	
+	// gtk.DragAndDrop
+	
+	void function(GtkWidget* widget, GtkDestDefaults flags, GtkTargetEntry* targets, gint nTargets, GdkDragAction actions)gtk_drag_dest_set;
+	void function(GtkWidget* widget, GdkWindow* proxyWindow, GdkDragProtocol protocol, gboolean useCoordinates)gtk_drag_dest_set_proxy;
+	void function(GtkWidget* widget)gtk_drag_dest_unset;
+	GdkAtom function(GtkWidget* widget, GdkDragContext* context, GtkTargetList* targetList)gtk_drag_dest_find_target;
+	GtkTargetList* function(GtkWidget* widget)gtk_drag_dest_get_target_list;
+	void function(GtkWidget* widget, GtkTargetList* targetList)gtk_drag_dest_set_target_list;
+	void function(GtkWidget* widget)gtk_drag_dest_add_text_targets;
+	void function(GtkWidget* widget)gtk_drag_dest_add_image_targets;
+	void function(GtkWidget* widget)gtk_drag_dest_add_uri_targets;
+	void function(GtkWidget* widget, gboolean trackMotion)gtk_drag_dest_set_track_motion;
+	gboolean function(GtkWidget* widget)gtk_drag_dest_get_track_motion;
+	void function(GdkDragContext* context, gboolean success, gboolean del, guint32 time)gtk_drag_finish;
+	void function(GtkWidget* widget, GdkDragContext* context, GdkAtom target, guint32 time)gtk_drag_get_data;
+	GtkWidget* function(GdkDragContext* context)gtk_drag_get_source_widget;
+	void function(GtkWidget* widget)gtk_drag_highlight;
+	void function(GtkWidget* widget)gtk_drag_unhighlight;
+	GdkDragContext* function(GtkWidget* widget, GtkTargetList* targets, GdkDragAction actions, gint button, GdkEvent* event)gtk_drag_begin;
+	void function(GdkDragContext* context, GtkWidget* widget, gint hotX, gint hotY)gtk_drag_set_icon_widget;
+	void function(GdkDragContext* context, GdkColormap* colormap, GdkPixmap* pixmap, GdkBitmap* mask, gint hotX, gint hotY)gtk_drag_set_icon_pixmap;
+	void function(GdkDragContext* context, GdkPixbuf* pixbuf, gint hotX, gint hotY)gtk_drag_set_icon_pixbuf;
+	void function(GdkDragContext* context, gchar* stockId, gint hotX, gint hotY)gtk_drag_set_icon_stock;
+	void function(GdkDragContext* context, gchar* iconName, gint hotX, gint hotY)gtk_drag_set_icon_name;
+	void function(GdkDragContext* context)gtk_drag_set_icon_default;
+	void function(GdkColormap* colormap, GdkPixmap* pixmap, GdkBitmap* mask, gint hotX, gint hotY)gtk_drag_set_default_icon;
+	gboolean function(GtkWidget* widget, gint startX, gint startY, gint currentX, gint currentY)gtk_drag_check_threshold;
+	void function(GtkWidget* widget, GdkModifierType startButtonMask, GtkTargetEntry* targets, gint nTargets, GdkDragAction actions)gtk_drag_source_set;
+	void function(GtkWidget* widget, GdkColormap* colormap, GdkPixmap* pixmap, GdkBitmap* mask)gtk_drag_source_set_icon;
+	void function(GtkWidget* widget, GdkPixbuf* pixbuf)gtk_drag_source_set_icon_pixbuf;
+	void function(GtkWidget* widget, gchar* stockId)gtk_drag_source_set_icon_stock;
+	void function(GtkWidget* widget, gchar* iconName)gtk_drag_source_set_icon_name;
+	void function(GtkWidget* widget)gtk_drag_source_unset;
+	void function(GtkWidget* widget, GtkTargetList* targetList)gtk_drag_source_set_target_list;
+	GtkTargetList* function(GtkWidget* widget)gtk_drag_source_get_target_list;
+	void function(GtkWidget* widget)gtk_drag_source_add_text_targets;
+	void function(GtkWidget* widget)gtk_drag_source_add_image_targets;
+	void function(GtkWidget* widget)gtk_drag_source_add_uri_targets;
+	
+	// gtk.IconTheme
+	
+	GtkIconTheme* function()gtk_icon_theme_new;
+	GtkIconTheme* function()gtk_icon_theme_get_default;
+	GtkIconTheme* function(GdkScreen* screen)gtk_icon_theme_get_for_screen;
+	void function(GtkIconTheme* iconTheme, GdkScreen* screen)gtk_icon_theme_set_screen;
+	void function(GtkIconTheme* iconTheme, gchar*[] path, gint nElements)gtk_icon_theme_set_search_path;
+	void function(GtkIconTheme* iconTheme, gchar**[] path, gint* nElements)gtk_icon_theme_get_search_path;
+	void function(GtkIconTheme* iconTheme, gchar* path)gtk_icon_theme_append_search_path;
+	void function(GtkIconTheme* iconTheme, gchar* path)gtk_icon_theme_prepend_search_path;
+	void function(GtkIconTheme* iconTheme, gchar* themeName)gtk_icon_theme_set_custom_theme;
+	gboolean function(GtkIconTheme* iconTheme, gchar* iconName)gtk_icon_theme_has_icon;
+	GtkIconInfo* function(GtkIconTheme* iconTheme, gchar* iconName, gint size, GtkIconLookupFlags flags)gtk_icon_theme_lookup_icon;
+	GtkIconInfo* function(GtkIconTheme* iconTheme, gchar*[] iconNames, gint size, GtkIconLookupFlags flags)gtk_icon_theme_choose_icon;
+	GdkPixbuf* function(GtkIconTheme* iconTheme, gchar* iconName, gint size, GtkIconLookupFlags flags, GError** error)gtk_icon_theme_load_icon;
+	GList* function(GtkIconTheme* iconTheme)gtk_icon_theme_list_contexts;
+	GList* function(GtkIconTheme* iconTheme, gchar* context)gtk_icon_theme_list_icons;
+	gint* function(GtkIconTheme* iconTheme, gchar* iconName)gtk_icon_theme_get_icon_sizes;
+	char* function(GtkIconTheme* iconTheme)gtk_icon_theme_get_example_icon_name;
+	gboolean function(GtkIconTheme* iconTheme)gtk_icon_theme_rescan_if_needed;
+	void function(gchar* iconName, gint size, GdkPixbuf* pixbuf)gtk_icon_theme_add_builtin_icon;
+	
+	// gtk.IconInfo
+	
+	GtkIconInfo* function(GtkIconInfo* iconInfo)gtk_icon_info_copy;
+	void function(GtkIconInfo* iconInfo)gtk_icon_info_free;
+	gint function(GtkIconInfo* iconInfo)gtk_icon_info_get_base_size;
+	gchar* function(GtkIconInfo* iconInfo)gtk_icon_info_get_filename;
+	GdkPixbuf* function(GtkIconInfo* iconInfo)gtk_icon_info_get_builtin_pixbuf;
+	GdkPixbuf* function(GtkIconInfo* iconInfo, GError** error)gtk_icon_info_load_icon;
+	void function(GtkIconInfo* iconInfo, gboolean rawCoordinates)gtk_icon_info_set_raw_coordinates;
+	gboolean function(GtkIconInfo* iconInfo, GdkRectangle* rectangle)gtk_icon_info_get_embedded_rect;
+	gboolean function(GtkIconInfo* iconInfo, GdkPoint** points, gint* nPoints)gtk_icon_info_get_attach_points;
+	gchar* function(GtkIconInfo* iconInfo)gtk_icon_info_get_display_name;
+	
+	// gtk.StockItem
+	
+	void function(GtkStockItem* items, guint nItems)gtk_stock_add;
+	void function(GtkStockItem* items, guint nItems)gtk_stock_add_static;
+	GtkStockItem* function(GtkStockItem* item)gtk_stock_item_copy;
+	void function(GtkStockItem* item)gtk_stock_item_free;
+	GSList* function()gtk_stock_list_ids;
+	gboolean function(gchar* stockId, GtkStockItem* item)gtk_stock_lookup;
+	void function(gchar* domain, GtkTranslateFunc func, gpointer data, GtkDestroyNotify notify)gtk_stock_set_translate_func;
+	
+	// gtk.IconSource
+	
+	GtkIconSource* function(GtkIconSource* source)gtk_icon_source_copy;
+	void function(GtkIconSource* source)gtk_icon_source_free;
+	void function(GtkIconFactory* factory, gchar* stockId, GtkIconSet* iconSet)gtk_icon_factory_add;
+	void function(GtkIconFactory* factory)gtk_icon_factory_add_default;
+	GtkIconSet* function(GtkIconFactory* factory, gchar* stockId)gtk_icon_factory_lookup;
+	GtkIconSet* function(gchar* stockId)gtk_icon_factory_lookup_default;
+	GtkIconFactory* function()gtk_icon_factory_new;
+	void function(GtkIconFactory* factory)gtk_icon_factory_remove_default;
+	void function(GtkIconSet* iconSet, GtkIconSource* source)gtk_icon_set_add_source;
+	GtkIconSet* function(GtkIconSet* iconSet)gtk_icon_set_copy;
+	GtkIconSet* function()gtk_icon_set_new;
+	GtkIconSet* function(GdkPixbuf* pixbuf)gtk_icon_set_new_from_pixbuf;
+	GtkIconSet* function(GtkIconSet* iconSet)gtk_icon_set_ref;
+	GdkPixbuf* function(GtkIconSet* iconSet, GtkStyle* style, GtkTextDirection direction, GtkStateType state, GtkIconSize size, GtkWidget* widget, char* detail)gtk_icon_set_render_icon;
+	void function(GtkIconSet* iconSet)gtk_icon_set_unref;
+	gboolean function(GtkIconSize size, gint* width, gint* height)gtk_icon_size_lookup;
+	gboolean function(GtkSettings* settings, GtkIconSize size, gint* width, gint* height)gtk_icon_size_lookup_for_settings;
+	GtkIconSize function(gchar* name, gint width, gint height)gtk_icon_size_register;
+	void function(gchar* alia, GtkIconSize target)gtk_icon_size_register_alias;
+	GtkIconSize function(gchar* name)gtk_icon_size_from_name;
+	gchar* function(GtkIconSize size)gtk_icon_size_get_name;
+	void function(GtkIconSet* iconSet, GtkIconSize** sizes, gint* nSizes)gtk_icon_set_get_sizes;
+	GtkTextDirection function(GtkIconSource* source)gtk_icon_source_get_direction;
+	gboolean function(GtkIconSource* source)gtk_icon_source_get_direction_wildcarded;
+	gchar* function(GtkIconSource* source)gtk_icon_source_get_filename;
+	GdkPixbuf* function(GtkIconSource* source)gtk_icon_source_get_pixbuf;
+	gchar* function(GtkIconSource* source)gtk_icon_source_get_icon_name;
+	GtkIconSize function(GtkIconSource* source)gtk_icon_source_get_size;
+	gboolean function(GtkIconSource* source)gtk_icon_source_get_size_wildcarded;
+	GtkStateType function(GtkIconSource* source)gtk_icon_source_get_state;
+	gboolean function(GtkIconSource* source)gtk_icon_source_get_state_wildcarded;
+	GtkIconSource* function()gtk_icon_source_new;
+	void function(GtkIconSource* source, GtkTextDirection direction)gtk_icon_source_set_direction;
+	void function(GtkIconSource* source, gboolean setting)gtk_icon_source_set_direction_wildcarded;
+	void function(GtkIconSource* source, gchar* filename)gtk_icon_source_set_filename;
+	void function(GtkIconSource* source, GdkPixbuf* pixbuf)gtk_icon_source_set_pixbuf;
+	void function(GtkIconSource* source, gchar* iconName)gtk_icon_source_set_icon_name;
+	void function(GtkIconSource* source, GtkIconSize size)gtk_icon_source_set_size;
+	void function(GtkIconSource* source, gboolean setting)gtk_icon_source_set_size_wildcarded;
+	void function(GtkIconSource* source, GtkStateType state)gtk_icon_source_set_state;
+	void function(GtkIconSource* source, gboolean setting)gtk_icon_source_set_state_wildcarded;
+	
+	// gtk.RcStyle
+	
+	GScanner* function()gtk_rc_scanner_new;
+	GtkStyle* function(GtkWidget* widget)gtk_rc_get_style;
+	GtkStyle* function(GtkSettings* settings, char* widgetPath, char* classPath, GType type)gtk_rc_get_style_by_paths;
+	void function(GtkRcStyle* rcStyle, gchar* pattern)gtk_rc_add_widget_name_style;
+	void function(GtkRcStyle* rcStyle, gchar* pattern)gtk_rc_add_widget_class_style;
+	void function(GtkRcStyle* rcStyle, gchar* pattern)gtk_rc_add_class_style;
+	void function(gchar* filename)gtk_rc_parse;
+	void function(gchar* rcString)gtk_rc_parse_string;
+	gboolean function()gtk_rc_reparse_all;
+	gboolean function(GtkSettings* settings, gboolean forceLoad)gtk_rc_reparse_all_for_settings;
+	void function(GtkSettings* settings)gtk_rc_reset_styles;
+	void function(gchar* filename)gtk_rc_add_default_file;
+	gchar** function()gtk_rc_get_default_files;
+	void function(gchar** filenames)gtk_rc_set_default_files;
+	guint function(GScanner* scanner, GdkColor* color)gtk_rc_parse_color;
+	guint function(GScanner* scanner, GtkRcStyle* style, GdkColor* color)gtk_rc_parse_color_full;
+	guint function(GScanner* scanner, GtkStateType* state)gtk_rc_parse_state;
+	guint function(GScanner* scanner, GtkPathPriorityType* priority)gtk_rc_parse_priority;
+	gchar* function(gchar* moduleFile)gtk_rc_find_module_in_path;
+	gchar* function(GtkSettings* settings, GScanner* scanner, gchar* pixmapFile)gtk_rc_find_pixmap_in_path;
+	gchar* function()gtk_rc_get_module_dir;
+	gchar* function()gtk_rc_get_im_module_path;
+	gchar* function()gtk_rc_get_im_module_file;
+	gchar* function()gtk_rc_get_theme_dir;
+	GtkRcStyle* function()gtk_rc_style_new;
+	GtkRcStyle* function(GtkRcStyle* orig)gtk_rc_style_copy;
+	void function(GtkRcStyle* rcStyle)gtk_rc_style_ref;
+	void function(GtkRcStyle* rcStyle)gtk_rc_style_unref;
+	
+	// gtk.Settings
+	
+	GtkSettings* function()gtk_settings_get_default;
+	GtkSettings* function(GdkScreen* screen)gtk_settings_get_for_screen;
+	void function(GParamSpec* pspec)gtk_settings_install_property;
+	void function(GParamSpec* pspec, GtkRcPropertyParser parser)gtk_settings_install_property_parser;
+	gboolean function(GParamSpec* pspec, GString* gstring, GValue* propertyValue)gtk_rc_property_parse_color;
+	gboolean function(GParamSpec* pspec, GString* gstring, GValue* propertyValue)gtk_rc_property_parse_enum;
+	gboolean function(GParamSpec* pspec, GString* gstring, GValue* propertyValue)gtk_rc_property_parse_flags;
+	gboolean function(GParamSpec* pspec, GString* gstring, GValue* propertyValue)gtk_rc_property_parse_requisition;
+	gboolean function(GParamSpec* pspec, GString* gstring, GValue* propertyValue)gtk_rc_property_parse_border;
+	void function(GtkSettings* settings, gchar* name, GtkSettingsValue* svalue)gtk_settings_set_property_value;
+	void function(GtkSettings* settings, gchar* name, gchar* vString, gchar* origin)gtk_settings_set_string_property;
+	void function(GtkSettings* settings, gchar* name, glong vLong, gchar* origin)gtk_settings_set_long_property;
+	void function(GtkSettings* settings, gchar* name, gdouble vDouble, gchar* origin)gtk_settings_set_double_property;
+	
+	// gtk.BindingSet
+	
+	void function(GtkBindingSet* bindingSet, guint keyval, GdkModifierType modifiers, gchar* signalName, GSList* bindingArgs)gtk_binding_entry_add_signall;
+	void function(GtkBindingSet* bindingSet, guint keyval, GdkModifierType modifiers)gtk_binding_entry_clear;
+	guint function(GScanner* scanner)gtk_binding_parse_binding;
+	GtkBindingSet* function(gchar* setName)gtk_binding_set_new;
+	GtkBindingSet* function(gpointer objectClass)gtk_binding_set_by_class;
+	GtkBindingSet* function(gchar* setName)gtk_binding_set_find;
+	gboolean function(GtkObject* object, guint keyval, GdkModifierType modifiers)gtk_bindings_activate;
+	gboolean function(GtkObject* object, GdkEventKey* event)gtk_bindings_activate_event;
+	gboolean function(GtkBindingSet* bindingSet, guint keyval, GdkModifierType modifiers, GtkObject* object)gtk_binding_set_activate;
+	void function(GtkBindingSet* bindingSet, guint keyval, GdkModifierType modifiers, gchar* signalName, guint nArgs, ... )gtk_binding_entry_add_signal;
+	void function(GtkBindingSet* bindingSet, guint keyval, GdkModifierType modifiers)gtk_binding_entry_skip;
+	void function(GtkBindingSet* bindingSet, guint keyval, GdkModifierType modifiers)gtk_binding_entry_remove;
+	void function(GtkBindingSet* bindingSet, GtkPathType pathType, gchar* pathPattern, GtkPathPriorityType priority)gtk_binding_set_add_path;
+	
+	// gtk.StandardEnumerations
+	
+	
+	// gtk.GCs
+	
+	GdkGC* function(gint depth, GdkColormap* colormap, GdkGCValues* values, GdkGCValuesMask valuesMask)gtk_gc_get;
+	void function(GdkGC* gc)gtk_gc_release;
+	
+	// gtk.Style
+	
+	GtkStyle* function()gtk_style_new;
+	GtkStyle* function(GtkStyle* style)gtk_style_copy;
+	GtkStyle* function(GtkStyle* style, GdkWindow* window)gtk_style_attach;
+	void function(GtkStyle* style)gtk_style_detach;
+	GtkStyle* function(GtkStyle* style)gtk_style_ref;
+	void function(GtkStyle* style)gtk_style_unref;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType)gtk_style_set_background;
+	void function(GtkStyle* style, GdkWindow* window, gboolean setBg, GtkStateType stateType, GdkRectangle* area, gint x, gint y, gint width, gint height)gtk_style_apply_default_background;
+	gboolean function(GtkStyle* style, gchar* colorName, GdkColor* color)gtk_style_lookup_color;
+	GtkIconSet* function(GtkStyle* style, gchar* stockId)gtk_style_lookup_icon_set;
+	GdkPixbuf* function(GtkStyle* style, GtkIconSource* source, GtkTextDirection direction, GtkStateType state, GtkIconSize size, GtkWidget* widget, gchar* detail)gtk_style_render_icon;
+	GdkFont* function(GtkStyle* style)gtk_style_get_font;
+	void function(GtkStyle* style, GdkFont* font)gtk_style_set_font;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, gint x1, gint x2, gint y)gtk_draw_hline;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, gint y1_, gint y2_, gint x)gtk_draw_vline;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, gint x, gint y, gint width, gint height)gtk_draw_shadow;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, GdkPoint* points, gint npoints, gboolean fill)gtk_draw_polygon;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, GtkArrowType arrowType, gboolean fill, gint x, gint y, gint width, gint height)gtk_draw_arrow;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, gint x, gint y, gint width, gint height)gtk_draw_diamond;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, gint x, gint y, gchar* string)gtk_draw_string;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, gint x, gint y, gint width, gint height)gtk_draw_box;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, gint x, gint y, gint width, gint height, GtkPositionType gapSide, gint gapX, gint gapWidth)gtk_draw_box_gap;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, gint x, gint y, gint width, gint height)gtk_draw_check;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, gint x, gint y, gint width, gint height, GtkPositionType gapSide)gtk_draw_extension;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, gint x, gint y, gint width, gint height)gtk_draw_flat_box;
+	void function(GtkStyle* style, GdkWindow* window, gint x, gint y, gint width, gint height)gtk_draw_focus;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, gint x, gint y, gint width, gint height, GtkOrientation orientation)gtk_draw_handle;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, gint x, gint y, gint width, gint height)gtk_draw_option;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, gint x, gint y, gint width, gint height, GtkPositionType gapSide, gint gapX, gint gapWidth)gtk_draw_shadow_gap;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, gint x, gint y, gint width, gint height, GtkOrientation orientation)gtk_draw_slider;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, gint x, gint y, gint width, gint height)gtk_draw_tab;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, gint x, gint y, GtkExpanderStyle expanderStyle)gtk_draw_expander;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, gboolean useText, gint x, gint y, PangoLayout* layout)gtk_draw_layout;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GdkWindowEdge edge, gint x, gint y, gint width, gint height)gtk_draw_resize_grip;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, GdkRectangle* area, GtkWidget* widget, gchar* detail, GtkArrowType arrowType, gboolean fill, gint x, gint y, gint width, gint height)gtk_paint_arrow;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, GdkRectangle* area, GtkWidget* widget, gchar* detail, gint x, gint y, gint width, gint height)gtk_paint_box;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, GdkRectangle* area, GtkWidget* widget, gchar* detail, gint x, gint y, gint width, gint height, GtkPositionType gapSide, gint gapX, gint gapWidth)gtk_paint_box_gap;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, GdkRectangle* area, GtkWidget* widget, gchar* detail, gint x, gint y, gint width, gint height)gtk_paint_check;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, GdkRectangle* area, GtkWidget* widget, gchar* detail, gint x, gint y, gint width, gint height)gtk_paint_diamond;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, GdkRectangle* area, GtkWidget* widget, gchar* detail, gint x, gint y, gint width, gint height, GtkPositionType gapSide)gtk_paint_extension;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, GdkRectangle* area, GtkWidget* widget, gchar* detail, gint x, gint y, gint width, gint height)gtk_paint_flat_box;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GdkRectangle* area, GtkWidget* widget, gchar* detail, gint x, gint y, gint width, gint height)gtk_paint_focus;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, GdkRectangle* area, GtkWidget* widget, gchar* detail, gint x, gint y, gint width, gint height, GtkOrientation orientation)gtk_paint_handle;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GdkRectangle* area, GtkWidget* widget, gchar* detail, gint x1, gint x2, gint y)gtk_paint_hline;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, GdkRectangle* area, GtkWidget* widget, gchar* detail, gint x, gint y, gint width, gint height)gtk_paint_option;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, GdkRectangle* area, GtkWidget* widget, gchar* detail, GdkPoint* points, gint npoints, gboolean fill)gtk_paint_polygon;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, GdkRectangle* area, GtkWidget* widget, gchar* detail, gint x, gint y, gint width, gint height)gtk_paint_shadow;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, GdkRectangle* area, GtkWidget* widget, gchar* detail, gint x, gint y, gint width, gint height, GtkPositionType gapSide, gint gapX, gint gapWidth)gtk_paint_shadow_gap;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, GdkRectangle* area, GtkWidget* widget, gchar* detail, gint x, gint y, gint width, gint height, GtkOrientation orientation)gtk_paint_slider;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GdkRectangle* area, GtkWidget* widget, gchar* detail, gint x, gint y, gchar* string)gtk_paint_string;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GtkShadowType shadowType, GdkRectangle* area, GtkWidget* widget, gchar* detail, gint x, gint y, gint width, gint height)gtk_paint_tab;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GdkRectangle* area, GtkWidget* widget, gchar* detail, gint y1_, gint y2_, gint x)gtk_paint_vline;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GdkRectangle* area, GtkWidget* widget, gchar* detail, gint x, gint y, GtkExpanderStyle expanderStyle)gtk_paint_expander;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, gboolean useText, GdkRectangle* area, GtkWidget* widget, gchar* detail, gint x, gint y, PangoLayout* layout)gtk_paint_layout;
+	void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType, GdkRectangle* area, GtkWidget* widget, gchar* detail, GdkWindowEdge edge, gint x, gint y, gint width, gint height)gtk_paint_resize_grip;
+	void function(GtkWidget* widget, GdkDrawable* drawable, GdkRectangle* area, GdkRectangle* location, gboolean isPrimary, GtkTextDirection direction, gboolean drawArrow)gtk_draw_insertion_cursor;
+	GtkBorder* function(GtkBorder* border)gtk_border_copy;
+	void function(GtkBorder* border)gtk_border_free;
+	
+	// gtk.Selections
+	
+	GtkTargetList* function(GtkTargetEntry* targets, guint ntargets)gtk_target_list_new;
+	GtkTargetList* function(GtkTargetList* list)gtk_target_list_ref;
+	void function(GtkTargetList* list)gtk_target_list_unref;
+	void function(GtkTargetList* list, GdkAtom target, guint flags, guint info)gtk_target_list_add;
+	void function(GtkTargetList* list, GtkTargetEntry* targets, guint ntargets)gtk_target_list_add_table;
+	void function(GtkTargetList* list, guint info)gtk_target_list_add_text_targets;
+	void function(GtkTargetList* list, guint info, gboolean writable)gtk_target_list_add_image_targets;
+	void function(GtkTargetList* list, guint info)gtk_target_list_add_uri_targets;
+	void function(GtkTargetList* list, guint info, gboolean deserializable, GtkTextBuffer* buffer)gtk_target_list_add_rich_text_targets;
+	void function(GtkTargetList* list, GdkAtom target)gtk_target_list_remove;
+	gboolean function(GtkTargetList* list, GdkAtom target, guint* info)gtk_target_list_find;
+	void function(GtkTargetEntry* targets, gint nTargets)gtk_target_table_free;
+	GtkTargetEntry* function(GtkTargetList* list, gint* nTargets)gtk_target_table_new_from_list;
+	gboolean function(GtkWidget* widget, GdkAtom selection, guint32 time)gtk_selection_owner_set;
+	gboolean function(GdkDisplay* display, GtkWidget* widget, GdkAtom selection, guint32 time)gtk_selection_owner_set_for_display;
+	void function(GtkWidget* widget, GdkAtom selection, GdkAtom target, guint info)gtk_selection_add_target;
+	void function(GtkWidget* widget, GdkAtom selection, GtkTargetEntry* targets, guint ntargets)gtk_selection_add_targets;
+	void function(GtkWidget* widget, GdkAtom selection)gtk_selection_clear_targets;
+	gboolean function(GtkWidget* widget, GdkAtom selection, GdkAtom target, guint32 time)gtk_selection_convert;
+	void function(GtkSelectionData* selectionData, GdkAtom type, gint format, guchar* data, gint length)gtk_selection_data_set;
+	gboolean function(GtkSelectionData* selectionData, gchar* str, gint len)gtk_selection_data_set_text;
+	guchar* function(GtkSelectionData* selectionData)gtk_selection_data_get_text;
+	gboolean function(GtkSelectionData* selectionData, GdkPixbuf* pixbuf)gtk_selection_data_set_pixbuf;
+	GdkPixbuf* function(GtkSelectionData* selectionData)gtk_selection_data_get_pixbuf;
+	gboolean function(GtkSelectionData* selectionData, gchar** uris)gtk_selection_data_set_uris;
+	gchar** function(GtkSelectionData* selectionData)gtk_selection_data_get_uris;
+	gboolean function(GtkSelectionData* selectionData, GdkAtom** targets, gint* nAtoms)gtk_selection_data_get_targets;
+	gboolean function(GtkSelectionData* selectionData, gboolean writable)gtk_selection_data_targets_include_image;
+	gboolean function(GtkSelectionData* selectionData)gtk_selection_data_targets_include_text;
+	gboolean function(GtkSelectionData* selectionData)gtk_selection_data_targets_include_uri;
+	gboolean function(GtkSelectionData* selectionData, GtkTextBuffer* buffer)gtk_selection_data_targets_include_rich_text;
+	gboolean function(GdkAtom* targets, gint nTargets, gboolean writable)gtk_targets_include_image;
+	gboolean function(GdkAtom* targets, gint nTargets)gtk_targets_include_text;
+	gboolean function(GdkAtom* targets, gint nTargets)gtk_targets_include_uri;
+	gboolean function(GdkAtom* targets, gint nTargets, GtkTextBuffer* buffer)gtk_targets_include_rich_text;
+	void function(GtkWidget* widget)gtk_selection_remove_all;
+	gboolean function(GtkWidget* widget, GdkEventSelection* event)gtk_selection_clear;
+	GtkSelectionData* function(GtkSelectionData* data)gtk_selection_data_copy;
+	void function(GtkSelectionData* data)gtk_selection_data_free;
+	
+	// gtk.Version
+	
+	gchar* function(guint requiredMajor, guint requiredMinor, guint requiredMicro)gtk_check_version;
+	
+	// gtk.Signals
+	
+	guint function(gchar* name, GtkSignalRunType signalFlags, GtkType objectType, guint functionOffset, GtkSignalMarshaller marshaller, GtkType returnVal, guint nArgs, ... )gtk_signal_new;
+	guint function(gchar* name, GtkSignalRunType signalFlags, GtkType objectType, guint functionOffset, GtkSignalMarshaller marshaller, GtkType returnVal, guint nArgs, GtkType* args)gtk_signal_newv;
+	void function(GtkObject* object, guint signalId, ... )gtk_signal_emit;
+	void function(GtkObject* object, gchar* name, ... )gtk_signal_emit_by_name;
+	void function(GtkObject* object, guint signalId, GtkArg* args)gtk_signal_emitv;
+	void function(GtkObject* object, gchar* name, GtkArg* args)gtk_signal_emitv_by_name;
+	void function(GtkObject* object, gchar* name)gtk_signal_emit_stop_by_name;
+	gulong function(GtkObject* object, gchar* name, GtkSignalFunc func, GtkCallbackMarshal unsupported, gpointer data, GtkDestroyNotify destroyFunc, gint objectSignal, gint after)gtk_signal_connect_full;
+	void function(GtkObject* object, gchar* name, GtkSignalFunc func, gpointer funcData, GtkObject* aliveObject)gtk_signal_connect_while_alive;
+	void function(GtkObject* object, gchar* name, GtkSignalFunc func, GtkObject* aliveObject)gtk_signal_connect_object_while_alive;
+	
+	// gtk.Types
+	
+	void function(GTypeDebugFlags debugFlags)gtk_type_init;
+	GtkType function(GtkType parentType, GtkTypeInfo* gtkinfo)gtk_type_unique;
+	gpointer function(GtkType type)gtk_type_class;
+	gpointer function(GtkType type)gtk_type_new;
+	GtkEnumValue* function(GtkType enumType)gtk_type_enum_get_values;
+	GtkFlagValue* function(GtkType flagsType)gtk_type_flags_get_values;
+	GtkEnumValue* function(GtkType enumType, gchar* valueName)gtk_type_enum_find_value;
+	GtkFlagValue* function(GtkType flagsType, gchar* valueName)gtk_type_flags_find_value;
+	
+	// gtk.Dialog
+	
+	GtkWidget* function()gtk_dialog_new;
+	GtkWidget* function(gchar* title, GtkWindow* parent, GtkDialogFlags flags, gchar* firstButtonText, ... )gtk_dialog_new_with_buttons;
+	gint function(GtkDialog* dialog)gtk_dialog_run;
+	void function(GtkDialog* dialog, gint responseId)gtk_dialog_response;
+	GtkWidget* function(GtkDialog* dialog, gchar* buttonText, gint responseId)gtk_dialog_add_button;
+	void function(GtkDialog* dialog, gchar* firstButtonText, ... )gtk_dialog_add_buttons;
+	void function(GtkDialog* dialog, GtkWidget* child, gint responseId)gtk_dialog_add_action_widget;
+	gboolean function(GtkDialog* dialog)gtk_dialog_get_has_separator;
+	void function(GtkDialog* dialog, gint responseId)gtk_dialog_set_default_response;
+	void function(GtkDialog* dialog, gboolean setting)gtk_dialog_set_has_separator;
+	void function(GtkDialog* dialog, gint responseId, gboolean setting)gtk_dialog_set_response_sensitive;
+	gint function(GtkDialog* dialog, GtkWidget* widget)gtk_dialog_get_response_for_widget;
+	gboolean function(GdkScreen* screen)gtk_alternative_dialog_button_order;
+	void function(GtkDialog* dialog, gint firstResponseId, ... )gtk_dialog_set_alternative_button_order;
+	void function(GtkDialog* dialog, gint nParams, gint* newOrder)gtk_dialog_set_alternative_button_order_from_array;
+	
+	// gtk.Invisible
+	
+	GtkWidget* function()gtk_invisible_new;
+	GtkWidget* function(GdkScreen* screen)gtk_invisible_new_for_screen;
+	void function(GtkInvisible* invisible, GdkScreen* screen)gtk_invisible_set_screen;
+	GdkScreen* function(GtkInvisible* invisible)gtk_invisible_get_screen;
+	
+	// gtk.MessageDialog
+	
+	GtkWidget* function(GtkWindow* parent, GtkDialogFlags flags, GtkMessageType type, GtkButtonsType buttons, gchar* messageFormat, ... )gtk_message_dialog_new;
+	GtkWidget* function(GtkWindow* parent, GtkDialogFlags flags, GtkMessageType type, GtkButtonsType buttons, gchar* messageFormat, ... )gtk_message_dialog_new_with_markup;
+	void function(GtkMessageDialog* messageDialog, gchar* str)gtk_message_dialog_set_markup;
+	void function(GtkMessageDialog* dialog, GtkWidget* image)gtk_message_dialog_set_image;
+	void function(GtkMessageDialog* messageDialog, gchar* messageFormat, ... )gtk_message_dialog_format_secondary_text;
+	void function(GtkMessageDialog* messageDialog, gchar* messageFormat, ... )gtk_message_dialog_format_secondary_markup;
+	
+	// gtk.PopupBox
+	
+	
+	// gtk.Window
+	
+	GtkWidget* function(GtkWindowType type)gtk_window_new;
+	void function(GtkWindow* window, gchar* title)gtk_window_set_title;
+	void function(GtkWindow* window, gchar* wmclassName, gchar* wmclassClass)gtk_window_set_wmclass;
+	void function(GtkWindow* window, gint allowShrink, gint allowGrow, gint autoShrink)gtk_window_set_policy;
+	void function(GtkWindow* window, gboolean resizable)gtk_window_set_resizable;
+	gboolean function(GtkWindow* window)gtk_window_get_resizable;
+	void function(GtkWindow* window, GtkAccelGroup* accelGroup)gtk_window_add_accel_group;
+	void function(GtkWindow* window, GtkAccelGroup* accelGroup)gtk_window_remove_accel_group;
+	gboolean function(GtkWindow* window)gtk_window_activate_focus;
+	gboolean function(GtkWindow* window)gtk_window_activate_default;
+	void function(GtkWindow* window, gboolean modal)gtk_window_set_modal;
+	void function(GtkWindow* window, gint width, gint height)gtk_window_set_default_size;
+	void function(GtkWindow* window, GtkWidget* geometryWidget, GdkGeometry* geometry, GdkWindowHints geomMask)gtk_window_set_geometry_hints;
+	void function(GtkWindow* window, GdkGravity gravity)gtk_window_set_gravity;
+	GdkGravity function(GtkWindow* window)gtk_window_get_gravity;
+	void function(GtkWindow* window, GtkWindowPosition position)gtk_window_set_position;
+	void function(GtkWindow* window, GtkWindow* parent)gtk_window_set_transient_for;
+	void function(GtkWindow* window, gboolean setting)gtk_window_set_destroy_with_parent;
+	void function(GtkWindow* window, GdkScreen* screen)gtk_window_set_screen;
+	GdkScreen* function(GtkWindow* window)gtk_window_get_screen;
+	gboolean function(GtkWindow* window)gtk_window_is_active;
+	gboolean function(GtkWindow* window)gtk_window_has_toplevel_focus;
+	GList* function()gtk_window_list_toplevels;
+	void function(GtkWindow* window, guint keyval, GtkWidget* target)gtk_window_add_mnemonic;
+	void function(GtkWindow* window, guint keyval, GtkWidget* target)gtk_window_remove_mnemonic;
+	gboolean function(GtkWindow* window, guint keyval, GdkModifierType modifier)gtk_window_mnemonic_activate;
+	gboolean function(GtkWindow* window, GdkEventKey* event)gtk_window_activate_key;
+	gboolean function(GtkWindow* window, GdkEventKey* event)gtk_window_propagate_key_event;
+	GtkWidget* function(GtkWindow* window)gtk_window_get_focus;
+	void function(GtkWindow* window, GtkWidget* focus)gtk_window_set_focus;
+	void function(GtkWindow* window, GtkWidget* defaultWidget)gtk_window_set_default;
+	void function(GtkWindow* window)gtk_window_present;
+	void function(GtkWindow* window, guint32 timestamp)gtk_window_present_with_time;
+	void function(GtkWindow* window)gtk_window_iconify;
+	void function(GtkWindow* window)gtk_window_deiconify;
+	void function(GtkWindow* window)gtk_window_stick;
+	void function(GtkWindow* window)gtk_window_unstick;
+	void function(GtkWindow* window)gtk_window_maximize;
+	void function(GtkWindow* window)gtk_window_unmaximize;
+	void function(GtkWindow* window)gtk_window_fullscreen;
+	void function(GtkWindow* window)gtk_window_unfullscreen;
+	void function(GtkWindow* window, gboolean setting)gtk_window_set_keep_above;
+	void function(GtkWindow* window, gboolean setting)gtk_window_set_keep_below;
+	void function(GtkWindow* window, GdkWindowEdge edge, gint button, gint rootX, gint rootY, guint32 timestamp)gtk_window_begin_resize_drag;
+	void function(GtkWindow* window, gint button, gint rootX, gint rootY, guint32 timestamp)gtk_window_begin_move_drag;
+	void function(GtkWindow* window, gboolean setting)gtk_window_set_decorated;
+	void function(GtkWindow* window, gboolean setting)gtk_window_set_deletable;
+	void function(GtkWindow* window, gint left, gint top, gint right, gint bottom)gtk_window_set_frame_dimensions;
+	void function(GtkWindow* window, gboolean setting)gtk_window_set_has_frame;
+	void function(GtkWindow* window, GdkModifierType modifier)gtk_window_set_mnemonic_modifier;
+	void function(GtkWindow* window, gchar* role)gtk_window_set_role;
+	void function(GtkWindow* window, GdkWindowTypeHint hint)gtk_window_set_type_hint;
+	void function(GtkWindow* window, gboolean setting)gtk_window_set_skip_taskbar_hint;
+	void function(GtkWindow* window, gboolean setting)gtk_window_set_skip_pager_hint;
+	void function(GtkWindow* window, gboolean setting)gtk_window_set_urgency_hint;
+	void function(GtkWindow* window, gboolean setting)gtk_window_set_accept_focus;
+	void function(GtkWindow* window, gboolean setting)gtk_window_set_focus_on_map;
+	void function(GtkWindow* window, gchar* startupId)gtk_window_set_startup_id;
+	gboolean function(GtkWindow* window)gtk_window_get_decorated;
+	gboolean function(GtkWindow* window)gtk_window_get_deletable;
+	GList* function()gtk_window_get_default_icon_list;
+	void function(GtkWindow* window, gint* width, gint* height)gtk_window_get_default_size;
+	gboolean function(GtkWindow* window)gtk_window_get_destroy_with_parent;
+	void function(GtkWindow* window, gint* left, gint* top, gint* right, gint* bottom)gtk_window_get_frame_dimensions;
+	gboolean function(GtkWindow* window)gtk_window_get_has_frame;
+	GdkPixbuf* function(GtkWindow* window)gtk_window_get_icon;
+	GList* function(GtkWindow* window)gtk_window_get_icon_list;
+	gchar* function(GtkWindow* window)gtk_window_get_icon_name;
+	GdkModifierType function(GtkWindow* window)gtk_window_get_mnemonic_modifier;
+	gboolean function(GtkWindow* window)gtk_window_get_modal;
+	void function(GtkWindow* window, gint* rootX, gint* rootY)gtk_window_get_position;
+	gchar* function(GtkWindow* window)gtk_window_get_role;
+	void function(GtkWindow* window, gint* width, gint* height)gtk_window_get_size;
+	gchar* function(GtkWindow* window)gtk_window_get_title;
+	GtkWindow* function(GtkWindow* window)gtk_window_get_transient_for;
+	GdkWindowTypeHint function(GtkWindow* window)gtk_window_get_type_hint;
+	gboolean function(GtkWindow* window)gtk_window_get_skip_taskbar_hint;
+	gboolean function(GtkWindow* window)gtk_window_get_skip_pager_hint;
+	gboolean function(GtkWindow* window)gtk_window_get_urgency_hint;
+	gboolean function(GtkWindow* window)gtk_window_get_accept_focus;
+	gboolean function(GtkWindow* window)gtk_window_get_focus_on_map;
+	GtkWindowGroup* function(GtkWindow* window)gtk_window_get_group;
+	void function(GtkWindow* window, gint x, gint y)gtk_window_move;
+	gboolean function(GtkWindow* window, gchar* geometry)gtk_window_parse_geometry;
+	void function(GtkWindow* window)gtk_window_reshow_with_initial_size;
+	void function(GtkWindow* window, gint width, gint height)gtk_window_resize;
+	void function(GList* list)gtk_window_set_default_icon_list;
+	void function(GdkPixbuf* icon)gtk_window_set_default_icon;
+	gboolean function(gchar* filename, GError** err)gtk_window_set_default_icon_from_file;
+	void function(gchar* name)gtk_window_set_default_icon_name;
+	void function(GtkWindow* window, GdkPixbuf* icon)gtk_window_set_icon;
+	void function(GtkWindow* window, GList* list)gtk_window_set_icon_list;
+	gboolean function(GtkWindow* window, gchar* filename, GError** err)gtk_window_set_icon_from_file;
+	void function(GtkWindow* window, gchar* name)gtk_window_set_icon_name;
+	void function(gboolean setting)gtk_window_set_auto_startup_notification;
+	gdouble function(GtkWindow* window)gtk_window_get_opacity;
+	void function(GtkWindow* window, gdouble opacity)gtk_window_set_opacity;
+	
+	// gtk.
+	
+	
+	// gtk.WindowGroup
+	
+	GtkWindowGroup* function()gtk_window_group_new;
+	void function(GtkWindowGroup* windowGroup, GtkWindow* window)gtk_window_group_add_window;
+	void function(GtkWindowGroup* windowGroup, GtkWindow* window)gtk_window_group_remove_window;
+	
+	// gtk.AboutDialog
+	
+	GtkWidget* function()gtk_about_dialog_new;
+	gchar* function(GtkAboutDialog* about)gtk_about_dialog_get_name;
+	void function(GtkAboutDialog* about, gchar* name)gtk_about_dialog_set_name;
+	gchar* function(GtkAboutDialog* about)gtk_about_dialog_get_program_name;
+	void function(GtkAboutDialog* about, gchar* name)gtk_about_dialog_set_program_name;
+	gchar* function(GtkAboutDialog* about)gtk_about_dialog_get_version;
+	void function(GtkAboutDialog* about, gchar* versio)gtk_about_dialog_set_version;
+	gchar* function(GtkAboutDialog* about)gtk_about_dialog_get_copyright;
+	void function(GtkAboutDialog* about, gchar* copyright)gtk_about_dialog_set_copyright;
+	gchar* function(GtkAboutDialog* about)gtk_about_dialog_get_comments;
+	void function(GtkAboutDialog* about, gchar* comments)gtk_about_dialog_set_comments;
+	gchar* function(GtkAboutDialog* about)gtk_about_dialog_get_license;
+	void function(GtkAboutDialog* about, gchar* license)gtk_about_dialog_set_license;
+	gboolean function(GtkAboutDialog* about)gtk_about_dialog_get_wrap_license;
+	void function(GtkAboutDialog* about, gboolean wrapLicense)gtk_about_dialog_set_wrap_license;
+	gchar* function(GtkAboutDialog* about)gtk_about_dialog_get_website;
+	void function(GtkAboutDialog* about, gchar* website)gtk_about_dialog_set_website;
+	gchar* function(GtkAboutDialog* about)gtk_about_dialog_get_website_label;
+	void function(GtkAboutDialog* about, gchar* websiteLabel)gtk_about_dialog_set_website_label;
+	gchar** function(GtkAboutDialog* about)gtk_about_dialog_get_authors;
+	void function(GtkAboutDialog* about, gchar** authors)gtk_about_dialog_set_authors;
+	gchar** function(GtkAboutDialog* about)gtk_about_dialog_get_artists;
+	void function(GtkAboutDialog* about, gchar** artists)gtk_about_dialog_set_artists;
+	gchar** function(GtkAboutDialog* about)gtk_about_dialog_get_documenters;
+	void function(GtkAboutDialog* about, gchar** documenters)gtk_about_dialog_set_documenters;
+	gchar* function(GtkAboutDialog* about)gtk_about_dialog_get_translator_credits;
+	void function(GtkAboutDialog* about, gchar* translatorCredits)gtk_about_dialog_set_translator_credits;
+	GdkPixbuf* function(GtkAboutDialog* about)gtk_about_dialog_get_logo;
+	void function(GtkAboutDialog* about, GdkPixbuf* logo)gtk_about_dialog_set_logo;
+	gchar* function(GtkAboutDialog* about)gtk_about_dialog_get_logo_icon_name;
+	void function(GtkAboutDialog* about, gchar* iconName)gtk_about_dialog_set_logo_icon_name;
+	GtkAboutDialogActivateLinkFunc function(GtkAboutDialogActivateLinkFunc func, gpointer data, GDestroyNotify destroy)gtk_about_dialog_set_email_hook;
+	GtkAboutDialogActivateLinkFunc function(GtkAboutDialogActivateLinkFunc func, gpointer data, GDestroyNotify destroy)gtk_about_dialog_set_url_hook;
+	void function(GtkWindow* parent, gchar* firstPropertyName, ... )gtk_show_about_dialog;
+	
+	// gtk.Assistant
+	
+	GtkWidget* function()gtk_assistant_new;
+	gint function(GtkAssistant* assistant)gtk_assistant_get_current_page;
+	void function(GtkAssistant* assistant, gint pageNum)gtk_assistant_set_current_page;
+	gint function(GtkAssistant* assistant)gtk_assistant_get_n_pages;
+	GtkWidget* function(GtkAssistant* assistant, gint pageNum)gtk_assistant_get_nth_page;
+	gint function(GtkAssistant* assistant, GtkWidget* page)gtk_assistant_prepend_page;
+	gint function(GtkAssistant* assistant, GtkWidget* page)gtk_assistant_append_page;
+	gint function(GtkAssistant* assistant, GtkWidget* page, gint position)gtk_assistant_insert_page;
+	void function(GtkAssistant* assistant, GtkAssistantPageFunc pageFunc, gpointer data, GDestroyNotify destroy)gtk_assistant_set_forward_page_func;
+	void function(GtkAssistant* assistant, GtkWidget* page, GtkAssistantPageType type)gtk_assistant_set_page_type;
+	GtkAssistantPageType function(GtkAssistant* assistant, GtkWidget* page)gtk_assistant_get_page_type;
+	void function(GtkAssistant* assistant, GtkWidget* page, gchar* title)gtk_assistant_set_page_title;
+	gchar* function(GtkAssistant* assistant, GtkWidget* page)gtk_assistant_get_page_title;
+	void function(GtkAssistant* assistant, GtkWidget* page, GdkPixbuf* pixbuf)gtk_assistant_set_page_header_image;
+	GdkPixbuf* function(GtkAssistant* assistant, GtkWidget* page)gtk_assistant_get_page_header_image;
+	void function(GtkAssistant* assistant, GtkWidget* page, GdkPixbuf* pixbuf)gtk_assistant_set_page_side_image;
+	GdkPixbuf* function(GtkAssistant* assistant, GtkWidget* page)gtk_assistant_get_page_side_image;
+	void function(GtkAssistant* assistant, GtkWidget* page, gboolean complete)gtk_assistant_set_page_complete;
+	gboolean function(GtkAssistant* assistant, GtkWidget* page)gtk_assistant_get_page_complete;
+	void function(GtkAssistant* assistant, GtkWidget* child)gtk_assistant_add_action_widget;
+	void function(GtkAssistant* assistant, GtkWidget* child)gtk_assistant_remove_action_widget;
+	void function(GtkAssistant* assistant)gtk_assistant_update_buttons_state;
+	
+	// gtk.AccelLabel
+	
+	GtkWidget* function(gchar* string)gtk_accel_label_new;
+	void function(GtkAccelLabel* accelLabel, GClosure* accelClosure)gtk_accel_label_set_accel_closure;
+	GtkWidget* function(GtkAccelLabel* accelLabel)gtk_accel_label_get_accel_widget;
+	void function(GtkAccelLabel* accelLabel, GtkWidget* accelWidget)gtk_accel_label_set_accel_widget;
+	guint function(GtkAccelLabel* accelLabel)gtk_accel_label_get_accel_width;
+	gboolean function(GtkAccelLabel* accelLabel)gtk_accel_label_refetch;
+	
+	// gtk.Image
+	
+	void function(GtkImage* image, GtkIconSet** iconSet, GtkIconSize* size)gtk_image_get_icon_set;
+	void function(GtkImage* image, GdkImage** gdkImage, GdkBitmap** mask)gtk_image_get_image;
+	GdkPixbuf* function(GtkImage* image)gtk_image_get_pixbuf;
+	void function(GtkImage* image, GdkPixmap** pixmap, GdkBitmap** mask)gtk_image_get_pixmap;
+	void function(GtkImage* image, gchar** stockId, GtkIconSize* size)gtk_image_get_stock;
+	GdkPixbufAnimation* function(GtkImage* image)gtk_image_get_animation;
+	void function(GtkImage* image, gchar** iconName, GtkIconSize* size)gtk_image_get_icon_name;
+	GtkImageType function(GtkImage* image)gtk_image_get_storage_type;
+	GtkWidget* function(gchar* filename)gtk_image_new_from_file;
+	GtkWidget* function(GtkIconSet* iconSet, GtkIconSize size)gtk_image_new_from_icon_set;
+	GtkWidget* function(GdkImage* image, GdkBitmap* mask)gtk_image_new_from_image;
+	GtkWidget* function(GdkPixbuf* pixbuf)gtk_image_new_from_pixbuf;
+	GtkWidget* function(GdkPixmap* pixmap, GdkBitmap* mask)gtk_image_new_from_pixmap;
+	GtkWidget* function(gchar* stockId, GtkIconSize size)gtk_image_new_from_stock;
+	GtkWidget* function(GdkPixbufAnimation* animation)gtk_image_new_from_animation;
+	GtkWidget* function(gchar* iconName, GtkIconSize size)gtk_image_new_from_icon_name;
+	void function(GtkImage* image, gchar* filename)gtk_image_set_from_file;
+	void function(GtkImage* image, GtkIconSet* iconSet, GtkIconSize size)gtk_image_set_from_icon_set;
+	void function(GtkImage* image, GdkImage* gdkImage, GdkBitmap* mask)gtk_image_set_from_image;
+	void function(GtkImage* image, GdkPixbuf* pixbuf)gtk_image_set_from_pixbuf;
+	void function(GtkImage* image, GdkPixmap* pixmap, GdkBitmap* mask)gtk_image_set_from_pixmap;
+	void function(GtkImage* image, gchar* stockId, GtkIconSize size)gtk_image_set_from_stock;
+	void function(GtkImage* image, GdkPixbufAnimation* animation)gtk_image_set_from_animation;
+	void function(GtkImage* image, gchar* iconName, GtkIconSize size)gtk_image_set_from_icon_name;
+	void function(GtkImage* image)gtk_image_clear;
+	GtkWidget* function()gtk_image_new;
+	void function(GtkImage* image, GdkImage* val, GdkBitmap* mask)gtk_image_set;
+	void function(GtkImage* image, GdkImage** val, GdkBitmap** mask)gtk_image_get;
+	void function(GtkImage* image, gint pixelSize)gtk_image_set_pixel_size;
+	gint function(GtkImage* image)gtk_image_get_pixel_size;
+	
+	// gtk.Label
+	
+	GtkWidget* function(gchar* str)gtk_label_new;
+	void function(GtkLabel* label, gchar* str)gtk_label_set_text;
+	void function(GtkLabel* label, PangoAttrList* attrs)gtk_label_set_attributes;
+	void function(GtkLabel* label, gchar* str)gtk_label_set_markup;
+	void function(GtkLabel* label, gchar* str)gtk_label_set_markup_with_mnemonic;
+	void function(GtkLabel* label, gchar* pattern)gtk_label_set_pattern;
+	void function(GtkLabel* label, GtkJustification jtype)gtk_label_set_justify;
+	void function(GtkLabel* label, PangoEllipsizeMode mode)gtk_label_set_ellipsize;
+	void function(GtkLabel* label, gint nChars)gtk_label_set_width_chars;
+	void function(GtkLabel* label, gint nChars)gtk_label_set_max_width_chars;
+	void function(GtkLabel* label, gchar** str)gtk_label_get;
+	guint function(GtkLabel* label, gchar* string)gtk_label_parse_uline;
+	void function(GtkLabel* label, gboolean wrap)gtk_label_set_line_wrap;
+	void function(GtkLabel* label, PangoWrapMode wrapMode)gtk_label_set_line_wrap_mode;
+	void function(GtkLabel* label, gint* x, gint* y)gtk_label_get_layout_offsets;
+	guint function(GtkLabel* label)gtk_label_get_mnemonic_keyval;
+	gboolean function(GtkLabel* label)gtk_label_get_selectable;
+	gchar* function(GtkLabel* label)gtk_label_get_text;
+	GtkWidget* function(gchar* str)gtk_label_new_with_mnemonic;
+	void function(GtkLabel* label, gint startOffset, gint endOffset)gtk_label_select_region;
+	void function(GtkLabel* label, GtkWidget* widget)gtk_label_set_mnemonic_widget;
+	void function(GtkLabel* label, gboolean setting)gtk_label_set_selectable;
+	void function(GtkLabel* label, gchar* str)gtk_label_set_text_with_mnemonic;
+	PangoAttrList* function(GtkLabel* label)gtk_label_get_attributes;
+	GtkJustification function(GtkLabel* label)gtk_label_get_justify;
+	PangoEllipsizeMode function(GtkLabel* label)gtk_label_get_ellipsize;
+	gint function(GtkLabel* label)gtk_label_get_width_chars;
+	gint function(GtkLabel* label)gtk_label_get_max_width_chars;
+	gchar* function(GtkLabel* label)gtk_label_get_label;
+	PangoLayout* function(GtkLabel* label)gtk_label_get_layout;
+	gboolean function(GtkLabel* label)gtk_label_get_line_wrap;
+	PangoWrapMode function(GtkLabel* label)gtk_label_get_line_wrap_mode;
+	GtkWidget* function(GtkLabel* label)gtk_label_get_mnemonic_widget;
+	gboolean function(GtkLabel* label, gint* start, gint* end)gtk_label_get_selection_bounds;
+	gboolean function(GtkLabel* label)gtk_label_get_use_markup;
+	gboolean function(GtkLabel* label)gtk_label_get_use_underline;
+	gboolean function(GtkLabel* label)gtk_label_get_single_line_mode;
+	gdouble function(GtkLabel* label)gtk_label_get_angle;
+	void function(GtkLabel* label, gchar* str)gtk_label_set_label;
+	void function(GtkLabel* label, gboolean setting)gtk_label_set_use_markup;
+	void function(GtkLabel* label, gboolean setting)gtk_label_set_use_underline;
+	void function(GtkLabel* label, gboolean singleLineMode)gtk_label_set_single_line_mode;
+	void function(GtkLabel* label, gdouble angle)gtk_label_set_angle;
+	
+	// gtk.ProgressBar
+	
+	GtkWidget* function()gtk_progress_bar_new;
+	void function(GtkProgressBar* pbar)gtk_progress_bar_pulse;
+	void function(GtkProgressBar* pbar, gchar* text)gtk_progress_bar_set_text;
+	void function(GtkProgressBar* pbar, gdouble fraction)gtk_progress_bar_set_fraction;
+	void function(GtkProgressBar* pbar, gdouble fraction)gtk_progress_bar_set_pulse_step;
+	void function(GtkProgressBar* pbar, GtkProgressBarOrientation orientation)gtk_progress_bar_set_orientation;
+	void function(GtkProgressBar* pbar, PangoEllipsizeMode mode)gtk_progress_bar_set_ellipsize;
+	gchar* function(GtkProgressBar* pbar)gtk_progress_bar_get_text;
+	gdouble function(GtkProgressBar* pbar)gtk_progress_bar_get_fraction;
+	gdouble function(GtkProgressBar* pbar)gtk_progress_bar_get_pulse_step;
+	GtkProgressBarOrientation function(GtkProgressBar* pbar)gtk_progress_bar_get_orientation;
+	PangoEllipsizeMode function(GtkProgressBar* pbar)gtk_progress_bar_get_ellipsize;
+	GtkWidget* function(GtkAdjustment* adjustment)gtk_progress_bar_new_with_adjustment;
+	void function(GtkProgressBar* pbar, GtkProgressBarStyle style)gtk_progress_bar_set_bar_style;
+	void function(GtkProgressBar* pbar, guint blocks)gtk_progress_bar_set_discrete_blocks;
+	void function(GtkProgressBar* pbar, guint step)gtk_progress_bar_set_activity_step;
+	void function(GtkProgressBar* pbar, guint blocks)gtk_progress_bar_set_activity_blocks;
+	void function(GtkProgressBar* pbar, gdouble percentage)gtk_progress_bar_update;
+	
+	// gtk.Statusbar
+	
+	GtkWidget* function()gtk_statusbar_new;
+	guint function(GtkStatusbar* statusbar, gchar* contextDescription)gtk_statusbar_get_context_id;
+	guint function(GtkStatusbar* statusbar, guint contextId, gchar* text)gtk_statusbar_push;
+	void function(GtkStatusbar* statusbar, guint contextId)gtk_statusbar_pop;
+	void function(GtkStatusbar* statusbar, guint contextId, guint messageId)gtk_statusbar_remove;
+	void function(GtkStatusbar* statusbar, gboolean setting)gtk_statusbar_set_has_resize_grip;
+	gboolean function(GtkStatusbar* statusbar)gtk_statusbar_get_has_resize_grip;
+	
+	// gtk.StatusIcon
+	
+	GtkStatusIcon* function()gtk_status_icon_new;
+	GtkStatusIcon* function(GdkPixbuf* pixbuf)gtk_status_icon_new_from_pixbuf;
+	GtkStatusIcon* function(gchar* filename)gtk_status_icon_new_from_file;
+	GtkStatusIcon* function(gchar* stockId)gtk_status_icon_new_from_stock;
+	GtkStatusIcon* function(gchar* iconName)gtk_status_icon_new_from_icon_name;
+	void function(GtkStatusIcon* statusIcon, GdkPixbuf* pixbuf)gtk_status_icon_set_from_pixbuf;
+	void function(GtkStatusIcon* statusIcon, gchar* filename)gtk_status_icon_set_from_file;
+	void function(GtkStatusIcon* statusIcon, gchar* stockId)gtk_status_icon_set_from_stock;
+	void function(GtkStatusIcon* statusIcon, gchar* iconName)gtk_status_icon_set_from_icon_name;
+	GtkImageType function(GtkStatusIcon* statusIcon)gtk_status_icon_get_storage_type;
+	GdkPixbuf* function(GtkStatusIcon* statusIcon)gtk_status_icon_get_pixbuf;
+	gchar* function(GtkStatusIcon* statusIcon)gtk_status_icon_get_stock;
+	gchar* function(GtkStatusIcon* statusIcon)gtk_status_icon_get_icon_name;
+	gint function(GtkStatusIcon* statusIcon)gtk_status_icon_get_size;
+	void function(GtkStatusIcon* statusIcon, GdkScreen* screen)gtk_status_icon_set_screen;
+	GdkScreen* function(GtkStatusIcon* statusIcon)gtk_status_icon_get_screen;
+	void function(GtkStatusIcon* statusIcon, gchar* tooltipText)gtk_status_icon_set_tooltip;
+	void function(GtkStatusIcon* statusIcon, gboolean visible)gtk_status_icon_set_visible;
+	gboolean function(GtkStatusIcon* statusIcon)gtk_status_icon_get_visible;
+	void function(GtkStatusIcon* statusIcon, gboolean blinking)gtk_status_icon_set_blinking;
+	gboolean function(GtkStatusIcon* statusIcon)gtk_status_icon_get_blinking;
+	gboolean function(GtkStatusIcon* statusIcon)gtk_status_icon_is_embedded;
+	void function(GtkMenu* menu, gint* x, gint* y, gboolean* pushIn, gpointer userData)gtk_status_icon_position_menu;
+	gboolean function(GtkStatusIcon* statusIcon, GdkScreen** screen, GdkRectangle* area, GtkOrientation* orientation)gtk_status_icon_get_geometry;
+	
+	// gtk.Button
+	
+	GtkWidget* function()gtk_button_new;
+	GtkWidget* function(gchar* label)gtk_button_new_with_label;
+	GtkWidget* function(gchar* label)gtk_button_new_with_mnemonic;
+	GtkWidget* function(gchar* stockId)gtk_button_new_from_stock;
+	void function(GtkButton* button)gtk_button_pressed;
+	void function(GtkButton* button)gtk_button_released;
+	void function(GtkButton* button)gtk_button_clicked;
+	void function(GtkButton* button)gtk_button_enter;
+	void function(GtkButton* button)gtk_button_leave;
+	void function(GtkButton* button, GtkReliefStyle newstyle)gtk_button_set_relief;
+	GtkReliefStyle function(GtkButton* button)gtk_button_get_relief;
+	gchar* function(GtkButton* button)gtk_button_get_label;
+	void function(GtkButton* button, gchar* label)gtk_button_set_label;
+	gboolean function(GtkButton* button)gtk_button_get_use_stock;
+	void function(GtkButton* button, gboolean useStock)gtk_button_set_use_stock;
+	gboolean function(GtkButton* button)gtk_button_get_use_underline;
+	void function(GtkButton* button, gboolean useUnderline)gtk_button_set_use_underline;
+	void function(GtkButton* button, gboolean focusOnClick)gtk_button_set_focus_on_click;
+	gboolean function(GtkButton* button)gtk_button_get_focus_on_click;
+	void function(GtkButton* button, gfloat xalign, gfloat yalign)gtk_button_set_alignment;
+	void function(GtkButton* button, gfloat* xalign, gfloat* yalign)gtk_button_get_alignment;
+	void function(GtkButton* button, GtkWidget* image)gtk_button_set_image;
+	GtkWidget* function(GtkButton* button)gtk_button_get_image;
+	void function(GtkButton* button, GtkPositionType position)gtk_button_set_image_position;
+	GtkPositionType function(GtkButton* button)gtk_button_get_image_position;
+	
+	// gtk.CheckButton
+	
+	GtkWidget* function()gtk_check_button_new;
+	GtkWidget* function(gchar* label)gtk_check_button_new_with_label;
+	GtkWidget* function(gchar* label)gtk_check_button_new_with_mnemonic;
+	
+	// gtk.RadioButton
+	
+	GtkWidget* function(GSList* group)gtk_radio_button_new;
+	GtkWidget* function(GtkRadioButton* radioGroupMember)gtk_radio_button_new_from_widget;
+	GtkWidget* function(GSList* group, gchar* label)gtk_radio_button_new_with_label;
+	GtkWidget* function(GtkRadioButton* radioGroupMember, gchar* label)gtk_radio_button_new_with_label_from_widget;
+	GtkWidget* function(GSList* group, gchar* label)gtk_radio_button_new_with_mnemonic;
+	GtkWidget* function(GtkRadioButton* radioGroupMember, gchar* label)gtk_radio_button_new_with_mnemonic_from_widget;
+	void function(GtkRadioButton* radioButton, GSList* group)gtk_radio_button_set_group;
+	GSList* function(GtkRadioButton* radioButton)gtk_radio_button_get_group;
+	
+	// gtk.ToggleButton
+	
+	GtkWidget* function()gtk_toggle_button_new;
+	GtkWidget* function(gchar* label)gtk_toggle_button_new_with_label;
+	GtkWidget* function(gchar* label)gtk_toggle_button_new_with_mnemonic;
+	void function(GtkToggleButton* toggleButton, gboolean drawIndicator)gtk_toggle_button_set_mode;
+	gboolean function(GtkToggleButton* toggleButton)gtk_toggle_button_get_mode;
+	void function(GtkToggleButton* toggleButton)gtk_toggle_button_toggled;
+	gboolean function(GtkToggleButton* toggleButton)gtk_toggle_button_get_active;
+	void function(GtkToggleButton* toggleButton, gboolean isActive)gtk_toggle_button_set_active;
+	gboolean function(GtkToggleButton* toggleButton)gtk_toggle_button_get_inconsistent;
+	void function(GtkToggleButton* toggleButton, gboolean setting)gtk_toggle_button_set_inconsistent;
+	
+	// gtk.LinkButton
+	
+	GtkWidget* function(gchar* uri)gtk_link_button_new;
+	GtkWidget* function(gchar* uri, gchar* label)gtk_link_button_new_with_label;
+	gchar* function(GtkLinkButton* linkButton)gtk_link_button_get_uri;
+	void function(GtkLinkButton* linkButton, gchar* uri)gtk_link_button_set_uri;
+	GtkLinkButtonUriFunc function(GtkLinkButtonUriFunc func, gpointer data, GDestroyNotify destroy)gtk_link_button_set_uri_hook;
+	
+	// gtk.ScaleButton
+	
+	GtkWidget* function(GtkIconSize size, gdouble min, gdouble max, gdouble step, gchar** icons)gtk_scale_button_new;
+	void function(GtkScaleButton* button, GtkAdjustment* adjustment)gtk_scale_button_set_adjustment;
+	void function(GtkScaleButton* button, gchar** icons)gtk_scale_button_set_icons;
+	void function(GtkScaleButton* button, gdouble value)gtk_scale_button_set_value;
+	GtkAdjustment* function(GtkScaleButton* button)gtk_scale_button_get_adjustment;
+	gdouble function(GtkScaleButton* button)gtk_scale_button_get_value;
+	
+	// gtk.VolumeButton
+	
+	GtkWidget* function()gtk_volume_button_new;
+	
+	// gtk.Entry
+	
+	GtkWidget* function()gtk_entry_new;
+	GtkWidget* function(gint max)gtk_entry_new_with_max_length;
+	void function(GtkEntry* entry, gchar* text)gtk_entry_set_text;
+	void function(GtkEntry* entry, gchar* text)gtk_entry_append_text;
+	void function(GtkEntry* entry, gchar* text)gtk_entry_prepend_text;
+	void function(GtkEntry* entry, gint position)gtk_entry_set_position;
+	gchar* function(GtkEntry* entry)gtk_entry_get_text;
+	void function(GtkEntry* entry, gint start, gint end)gtk_entry_select_region;
+	void function(GtkEntry* entry, gboolean visible)gtk_entry_set_visibility;
+	void function(GtkEntry* entry, gunichar ch)gtk_entry_set_invisible_char;
+	void function(GtkEntry* entry, gboolean editable)gtk_entry_set_editable;
+	void function(GtkEntry* entry, gint max)gtk_entry_set_max_length;
+	gboolean function(GtkEntry* entry)gtk_entry_get_activates_default;
+	gboolean function(GtkEntry* entry)gtk_entry_get_has_frame;
+	GtkBorder* function(GtkEntry* entry)gtk_entry_get_inner_border;
+	gint function(GtkEntry* entry)gtk_entry_get_width_chars;
+	void function(GtkEntry* entry, gboolean setting)gtk_entry_set_activates_default;
+	void function(GtkEntry* entry, gboolean setting)gtk_entry_set_has_frame;
+	void function(GtkEntry* entry, GtkBorder* border)gtk_entry_set_inner_border;
+	void function(GtkEntry* entry, gint nChars)gtk_entry_set_width_chars;
+	gunichar function(GtkEntry* entry)gtk_entry_get_invisible_char;
+	void function(GtkEntry* entry, gfloat xalign)gtk_entry_set_alignment;
+	gfloat function(GtkEntry* entry)gtk_entry_get_alignment;
+	PangoLayout* function(GtkEntry* entry)gtk_entry_get_layout;
+	void function(GtkEntry* entry, gint* x, gint* y)gtk_entry_get_layout_offsets;
+	gint function(GtkEntry* entry, gint layoutIndex)gtk_entry_layout_index_to_text_index;
+	gint function(GtkEntry* entry, gint textIndex)gtk_entry_text_index_to_layout_index;
+	gint function(GtkEntry* entry)gtk_entry_get_max_length;
+	gboolean function(GtkEntry* entry)gtk_entry_get_visibility;
+	void function(GtkEntry* entry, GtkEntryCompletion* completion)gtk_entry_set_completion;
+	GtkEntryCompletion* function(GtkEntry* entry)gtk_entry_get_completion;
+	void function(GtkEntry* entry, GtkAdjustment* adjustment)gtk_entry_set_cursor_hadjustment;
+	GtkAdjustment* function(GtkEntry* entry)gtk_entry_get_cursor_hadjustment;
+	
+	// gtk.EntryCompletion
+	
+	GtkEntryCompletion* function()gtk_entry_completion_new;
+	GtkWidget* function(GtkEntryCompletion* completion)gtk_entry_completion_get_entry;
+	void function(GtkEntryCompletion* completion, GtkTreeModel* model)gtk_entry_completion_set_model;
+	GtkTreeModel* function(GtkEntryCompletion* completion)gtk_entry_completion_get_model;
+	void function(GtkEntryCompletion* completion, GtkEntryCompletionMatchFunc func, gpointer funcData, GDestroyNotify funcNotify)gtk_entry_completion_set_match_func;
+	void function(GtkEntryCompletion* completion, gint length)gtk_entry_completion_set_minimum_key_length;
+	gint function(GtkEntryCompletion* completion)gtk_entry_completion_get_minimum_key_length;
+	void function(GtkEntryCompletion* completion)gtk_entry_completion_complete;
+	gchar* function(GtkEntryCompletion* completion)gtk_entry_completion_get_completion_prefix;
+	void function(GtkEntryCompletion* completion)gtk_entry_completion_insert_prefix;
+	void function(GtkEntryCompletion* completion, gint index, gchar* text)gtk_entry_completion_insert_action_text;
+	void function(GtkEntryCompletion* completion, gint index, gchar* markup)gtk_entry_completion_insert_action_markup;
+	void function(GtkEntryCompletion* completion, gint index)gtk_entry_completion_delete_action;
+	void function(GtkEntryCompletion* completion, gint column)gtk_entry_completion_set_text_column;
+	gint function(GtkEntryCompletion* completion)gtk_entry_completion_get_text_column;
+	void function(GtkEntryCompletion* completion, gboolean inlineCompletion)gtk_entry_completion_set_inline_completion;
+	gboolean function(GtkEntryCompletion* completion)gtk_entry_completion_get_inline_completion;
+	void function(GtkEntryCompletion* completion, gboolean inlineSelection)gtk_entry_completion_set_inline_selection;
+	gboolean function(GtkEntryCompletion* completion)gtk_entry_completion_get_inline_selection;
+	void function(GtkEntryCompletion* completion, gboolean popupCompletion)gtk_entry_completion_set_popup_completion;
+	gboolean function(GtkEntryCompletion* completion)gtk_entry_completion_get_popup_completion;
+	void function(GtkEntryCompletion* completion, gboolean popupSetWidth)gtk_entry_completion_set_popup_set_width;
+	gboolean function(GtkEntryCompletion* completion)gtk_entry_completion_get_popup_set_width;
+	void function(GtkEntryCompletion* completion, gboolean popupSingleMatch)gtk_entry_completion_set_popup_single_match;
+	gboolean function(GtkEntryCompletion* completion)gtk_entry_completion_get_popup_single_match;
+	
+	// gtk.HScale
+	
+	GtkWidget* function(GtkAdjustment* adjustment)gtk_hscale_new;
+	GtkWidget* function(gdouble min, gdouble max, gdouble step)gtk_hscale_new_with_range;
+	
+	// gtk.VScale
+	
+	GtkWidget* function(GtkAdjustment* adjustment)gtk_vscale_new;
+	GtkWidget* function(gdouble min, gdouble max, gdouble step)gtk_vscale_new_with_range;
+	
+	// gtk.SpinButton
+	
+	void function(GtkSpinButton* spinButton, GtkAdjustment* adjustment, gdouble climbRate, guint digits)gtk_spin_button_configure;
+	GtkWidget* function(GtkAdjustment* adjustment, gdouble climbRate, guint digits)gtk_spin_button_new;
+	GtkWidget* function(gdouble min, gdouble max, gdouble step)gtk_spin_button_new_with_range;
+	void function(GtkSpinButton* spinButton, GtkAdjustment* adjustment)gtk_spin_button_set_adjustment;
+	GtkAdjustment* function(GtkSpinButton* spinButton)gtk_spin_button_get_adjustment;
+	void function(GtkSpinButton* spinButton, guint digits)gtk_spin_button_set_digits;
+	void function(GtkSpinButton* spinButton, gdouble step, gdouble page)gtk_spin_button_set_increments;
+	void function(GtkSpinButton* spinButton, gdouble min, gdouble max)gtk_spin_button_set_range;
+	gint function(GtkSpinButton* spinButton)gtk_spin_button_get_value_as_int;
+	void function(GtkSpinButton* spinButton, gdouble value)gtk_spin_button_set_value;
+	void function(GtkSpinButton* spinButton, GtkSpinButtonUpdatePolicy policy)gtk_spin_button_set_update_policy;
+	void function(GtkSpinButton* spinButton, gboolean numeric)gtk_spin_button_set_numeric;
+	void function(GtkSpinButton* spinButton, GtkSpinType direction, gdouble increment)gtk_spin_button_spin;
+	void function(GtkSpinButton* spinButton, gboolean wrap)gtk_spin_button_set_wrap;
+	void function(GtkSpinButton* spinButton, gboolean snapToTicks)gtk_spin_button_set_snap_to_ticks;
+	void function(GtkSpinButton* spinButton)gtk_spin_button_update;
+	guint function(GtkSpinButton* spinButton)gtk_spin_button_get_digits;
+	void function(GtkSpinButton* spinButton, gdouble* step, gdouble* page)gtk_spin_button_get_increments;
+	gboolean function(GtkSpinButton* spinButton)gtk_spin_button_get_numeric;
+	void function(GtkSpinButton* spinButton, gdouble* min, gdouble* max)gtk_spin_button_get_range;
+	gboolean function(GtkSpinButton* spinButton)gtk_spin_button_get_snap_to_ticks;
+	GtkSpinButtonUpdatePolicy function(GtkSpinButton* spinButton)gtk_spin_button_get_update_policy;
+	gdouble function(GtkSpinButton* spinButton)gtk_spin_button_get_value;
+	gboolean function(GtkSpinButton* spinButton)gtk_spin_button_get_wrap;
+	
+	// gtk.Editable
+	
+	void function(GtkEditable* editable, gint start, gint end)gtk_editable_select_region;
+	gboolean function(GtkEditable* editable, gint* start, gint* end)gtk_editable_get_selection_bounds;
+	void function(GtkEditable* editable, gchar* newText, gint newTextLength, gint* position)gtk_editable_insert_text;
+	void function(GtkEditable* editable, gint startPos, gint endPos)gtk_editable_delete_text;
+	gchar* function(GtkEditable* editable, gint startPos, gint endPos)gtk_editable_get_chars;
+	void function(GtkEditable* editable)gtk_editable_cut_clipboard;
+	void function(GtkEditable* editable)gtk_editable_copy_clipboard;
+	void function(GtkEditable* editable)gtk_editable_paste_clipboard;
+	void function(GtkEditable* editable)gtk_editable_delete_selection;
+	void function(GtkEditable* editable, gint position)gtk_editable_set_position;
+	gint function(GtkEditable* editable)gtk_editable_get_position;
+	void function(GtkEditable* editable, gboolean isEditable)gtk_editable_set_editable;
+	gboolean function(GtkEditable* editable)gtk_editable_get_editable;
+	
+	// gtk.TextIter
+	
+	GtkTextBuffer* function(GtkTextIter* iter)gtk_text_iter_get_buffer;
+	GtkTextIter* function(GtkTextIter* iter)gtk_text_iter_copy;
+	void function(GtkTextIter* iter)gtk_text_iter_free;
+	gint function(GtkTextIter* iter)gtk_text_iter_get_offset;
+	gint function(GtkTextIter* iter)gtk_text_iter_get_line;
+	gint function(GtkTextIter* iter)gtk_text_iter_get_line_offset;
+	gint function(GtkTextIter* iter)gtk_text_iter_get_line_index;
+	gint function(GtkTextIter* iter)gtk_text_iter_get_visible_line_index;
+	gint function(GtkTextIter* iter)gtk_text_iter_get_visible_line_offset;
+	gunichar function(GtkTextIter* iter)gtk_text_iter_get_char;
+	gchar* function(GtkTextIter* start, GtkTextIter* end)gtk_text_iter_get_slice;
+	gchar* function(GtkTextIter* start, GtkTextIter* end)gtk_text_iter_get_text;
+	gchar* function(GtkTextIter* start, GtkTextIter* end)gtk_text_iter_get_visible_slice;
+	gchar* function(GtkTextIter* start, GtkTextIter* end)gtk_text_iter_get_visible_text;
+	GdkPixbuf* function(GtkTextIter* iter)gtk_text_iter_get_pixbuf;
+	GSList* function(GtkTextIter* iter)gtk_text_iter_get_marks;
+	GSList* function(GtkTextIter* iter, gboolean toggledOn)gtk_text_iter_get_toggled_tags;
+	GtkTextChildAnchor* function(GtkTextIter* iter)gtk_text_iter_get_child_anchor;
+	gboolean function(GtkTextIter* iter, GtkTextTag* tag)gtk_text_iter_begins_tag;
+	gboolean function(GtkTextIter* iter, GtkTextTag* tag)gtk_text_iter_ends_tag;
+	gboolean function(GtkTextIter* iter, GtkTextTag* tag)gtk_text_iter_toggles_tag;
+	gboolean function(GtkTextIter* iter, GtkTextTag* tag)gtk_text_iter_has_tag;
+	GSList* function(GtkTextIter* iter)gtk_text_iter_get_tags;
+	gboolean function(GtkTextIter* iter, gboolean defaultSetting)gtk_text_iter_editable;
+	gboolean function(GtkTextIter* iter, gboolean defaultEditability)gtk_text_iter_can_insert;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_starts_word;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_ends_word;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_inside_word;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_starts_line;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_ends_line;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_starts_sentence;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_ends_sentence;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_inside_sentence;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_is_cursor_position;
+	gint function(GtkTextIter* iter)gtk_text_iter_get_chars_in_line;
+	gint function(GtkTextIter* iter)gtk_text_iter_get_bytes_in_line;
+	gboolean function(GtkTextIter* iter, GtkTextAttributes* values)gtk_text_iter_get_attributes;
+	PangoLanguage* function(GtkTextIter* iter)gtk_text_iter_get_language;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_is_end;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_is_start;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_forward_char;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_backward_char;
+	gboolean function(GtkTextIter* iter, gint count)gtk_text_iter_forward_chars;
+	gboolean function(GtkTextIter* iter, gint count)gtk_text_iter_backward_chars;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_forward_line;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_backward_line;
+	gboolean function(GtkTextIter* iter, gint count)gtk_text_iter_forward_lines;
+	gboolean function(GtkTextIter* iter, gint count)gtk_text_iter_backward_lines;
+	gboolean function(GtkTextIter* iter, gint count)gtk_text_iter_forward_word_ends;
+	gboolean function(GtkTextIter* iter, gint count)gtk_text_iter_backward_word_starts;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_forward_word_end;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_backward_word_start;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_forward_cursor_position;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_backward_cursor_position;
+	gboolean function(GtkTextIter* iter, gint count)gtk_text_iter_forward_cursor_positions;
+	gboolean function(GtkTextIter* iter, gint count)gtk_text_iter_backward_cursor_positions;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_backward_sentence_start;
+	gboolean function(GtkTextIter* iter, gint count)gtk_text_iter_backward_sentence_starts;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_forward_sentence_end;
+	gboolean function(GtkTextIter* iter, gint count)gtk_text_iter_forward_sentence_ends;
+	gboolean function(GtkTextIter* iter, gint count)gtk_text_iter_forward_visible_word_ends;
+	gboolean function(GtkTextIter* iter, gint count)gtk_text_iter_backward_visible_word_starts;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_forward_visible_word_end;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_backward_visible_word_start;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_forward_visible_cursor_position;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_backward_visible_cursor_position;
+	gboolean function(GtkTextIter* iter, gint count)gtk_text_iter_forward_visible_cursor_positions;
+	gboolean function(GtkTextIter* iter, gint count)gtk_text_iter_backward_visible_cursor_positions;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_forward_visible_line;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_backward_visible_line;
+	gboolean function(GtkTextIter* iter, gint count)gtk_text_iter_forward_visible_lines;
+	gboolean function(GtkTextIter* iter, gint count)gtk_text_iter_backward_visible_lines;
+	void function(GtkTextIter* iter, gint charOffset)gtk_text_iter_set_offset;
+	void function(GtkTextIter* iter, gint lineNumber)gtk_text_iter_set_line;
+	void function(GtkTextIter* iter, gint charOnLine)gtk_text_iter_set_line_offset;
+	void function(GtkTextIter* iter, gint byteOnLine)gtk_text_iter_set_line_index;
+	void function(GtkTextIter* iter, gint byteOnLine)gtk_text_iter_set_visible_line_index;
+	void function(GtkTextIter* iter, gint charOnLine)gtk_text_iter_set_visible_line_offset;
+	void function(GtkTextIter* iter)gtk_text_iter_forward_to_end;
+	gboolean function(GtkTextIter* iter)gtk_text_iter_forward_to_line_end;
+	gboolean function(GtkTextIter* iter, GtkTextTag* tag)gtk_text_iter_forward_to_tag_toggle;
+	gboolean function(GtkTextIter* iter, GtkTextTag* tag)gtk_text_iter_backward_to_tag_toggle;
+	gboolean function(GtkTextIter* iter, GtkTextCharPredicate pred, gpointer userData, GtkTextIter* limit)gtk_text_iter_forward_find_char;
+	gboolean function(GtkTextIter* iter, GtkTextCharPredicate pred, gpointer userData, GtkTextIter* limit)gtk_text_iter_backward_find_char;
+	gboolean function(GtkTextIter* iter, gchar* str, GtkTextSearchFlags flags, GtkTextIter* matchStart, GtkTextIter* matchEnd, GtkTextIter* limit)gtk_text_iter_forward_search;
+	gboolean function(GtkTextIter* iter, gchar* str, GtkTextSearchFlags flags, GtkTextIter* matchStart, GtkTextIter* matchEnd, GtkTextIter* limit)gtk_text_iter_backward_search;
+	gboolean function(GtkTextIter* lhs, GtkTextIter* rhs)gtk_text_iter_equal;
+	gint function(GtkTextIter* lhs, GtkTextIter* rhs)gtk_text_iter_compare;
+	gboolean function(GtkTextIter* iter, GtkTextIter* start, GtkTextIter* end)gtk_text_iter_in_range;
+	void function(GtkTextIter* first, GtkTextIter* second)gtk_text_iter_order;
+	
+	// gtk.TextMark
+	
+	GtkTextMark* function(gchar* name, gboolean leftGravity)gtk_text_mark_new;
+	void function(GtkTextMark* mark, gboolean setting)gtk_text_mark_set_visible;
+	gboolean function(GtkTextMark* mark)gtk_text_mark_get_visible;
+	gboolean function(GtkTextMark* mark)gtk_text_mark_get_deleted;
+	gchar* function(GtkTextMark* mark)gtk_text_mark_get_name;
+	GtkTextBuffer* function(GtkTextMark* mark)gtk_text_mark_get_buffer;
+	gboolean function(GtkTextMark* mark)gtk_text_mark_get_left_gravity;
+	
+	// gtk.TextBuffer
+	
+	GtkTextBuffer* function(GtkTextTagTable* table)gtk_text_buffer_new;
+	gint function(GtkTextBuffer* buffer)gtk_text_buffer_get_line_count;
+	gint function(GtkTextBuffer* buffer)gtk_text_buffer_get_char_count;
+	GtkTextTagTable* function(GtkTextBuffer* buffer)gtk_text_buffer_get_tag_table;
+	void function(GtkTextBuffer* buffer, GtkTextIter* iter, gchar* text, gint len)gtk_text_buffer_insert;
+	void function(GtkTextBuffer* buffer, gchar* text, gint len)gtk_text_buffer_insert_at_cursor;
+	gboolean function(GtkTextBuffer* buffer, GtkTextIter* iter, gchar* text, gint len, gboolean defaultEditable)gtk_text_buffer_insert_interactive;
+	gboolean function(GtkTextBuffer* buffer, gchar* text, gint len, gboolean defaultEditable)gtk_text_buffer_insert_interactive_at_cursor;
+	void function(GtkTextBuffer* buffer, GtkTextIter* iter, GtkTextIter* start, GtkTextIter* end)gtk_text_buffer_insert_range;
+	gboolean function(GtkTextBuffer* buffer, GtkTextIter* iter, GtkTextIter* start, GtkTextIter* end, gboolean defaultEditable)gtk_text_buffer_insert_range_interactive;
+	void function(GtkTextBuffer* buffer, GtkTextIter* iter, gchar* text, gint len, GtkTextTag* firstTag, ... )gtk_text_buffer_insert_with_tags;
+	void function(GtkTextBuffer* buffer, GtkTextIter* iter, gchar* text, gint len, gchar* firstTagName, ... )gtk_text_buffer_insert_with_tags_by_name;
+	void function(GtkTextBuffer* buffer, GtkTextIter* start, GtkTextIter* end)gtk_text_buffer_delete;
+	gboolean function(GtkTextBuffer* buffer, GtkTextIter* startIter, GtkTextIter* endIter, gboolean defaultEditable)gtk_text_buffer_delete_interactive;
+	gboolean function(GtkTextBuffer* buffer, GtkTextIter* iter, gboolean interactive, gboolean defaultEditable)gtk_text_buffer_backspace;
+	void function(GtkTextBuffer* buffer, gchar* text, gint len)gtk_text_buffer_set_text;
+	gchar* function(GtkTextBuffer* buffer, GtkTextIter* start, GtkTextIter* end, gboolean includeHiddenChars)gtk_text_buffer_get_text;
+	gchar* function(GtkTextBuffer* buffer, GtkTextIter* start, GtkTextIter* end, gboolean includeHiddenChars)gtk_text_buffer_get_slice;
+	void function(GtkTextBuffer* buffer, GtkTextIter* iter, GdkPixbuf* pixbuf)gtk_text_buffer_insert_pixbuf;
+	void function(GtkTextBuffer* buffer, GtkTextIter* iter, GtkTextChildAnchor* anchor)gtk_text_buffer_insert_child_anchor;
+	GtkTextChildAnchor* function(GtkTextBuffer* buffer, GtkTextIter* iter)gtk_text_buffer_create_child_anchor;
+	GtkTextMark* function(GtkTextBuffer* buffer, gchar* markName, GtkTextIter* where, gboolean leftGravity)gtk_text_buffer_create_mark;
+	void function(GtkTextBuffer* buffer, GtkTextMark* mark, GtkTextIter* where)gtk_text_buffer_move_mark;
+	void function(GtkTextBuffer* buffer, gchar* name, GtkTextIter* where)gtk_text_buffer_move_mark_by_name;
+	void function(GtkTextBuffer* buffer, GtkTextMark* mark, GtkTextIter* where)gtk_text_buffer_add_mark;
+	void function(GtkTextBuffer* buffer, GtkTextMark* mark)gtk_text_buffer_delete_mark;
+	void function(GtkTextBuffer* buffer, gchar* name)gtk_text_buffer_delete_mark_by_name;
+	GtkTextMark* function(GtkTextBuffer* buffer, gchar* name)gtk_text_buffer_get_mark;
+	GtkTextMark* function(GtkTextBuffer* buffer)gtk_text_buffer_get_insert;
+	GtkTextMark* function(GtkTextBuffer* buffer)gtk_text_buffer_get_selection_bound;
+	gboolean function(GtkTextBuffer* buffer)gtk_text_buffer_get_has_selection;
+	void function(GtkTextBuffer* buffer, GtkTextIter* where)gtk_text_buffer_place_cursor;
+	void function(GtkTextBuffer* buffer, GtkTextIter* ins, GtkTextIter* bound)gtk_text_buffer_select_range;
+	void function(GtkTextBuffer* buffer, GtkTextTag* tag, GtkTextIter* start, GtkTextIter* end)gtk_text_buffer_apply_tag;
+	void function(GtkTextBuffer* buffer, GtkTextTag* tag, GtkTextIter* start, GtkTextIter* end)gtk_text_buffer_remove_tag;
+	void function(GtkTextBuffer* buffer, gchar* name, GtkTextIter* start, GtkTextIter* end)gtk_text_buffer_apply_tag_by_name;
+	void function(GtkTextBuffer* buffer, gchar* name, GtkTextIter* start, GtkTextIter* end)gtk_text_buffer_remove_tag_by_name;
+	void function(GtkTextBuffer* buffer, GtkTextIter* start, GtkTextIter* end)gtk_text_buffer_remove_all_tags;
+	GtkTextTag* function(GtkTextBuffer* buffer, gchar* tagName, gchar* firstPropertyName, ... )gtk_text_buffer_create_tag;
+	void function(GtkTextBuffer* buffer, GtkTextIter* iter, gint lineNumber, gint charOffset)gtk_text_buffer_get_iter_at_line_offset;
+	void function(GtkTextBuffer* buffer, GtkTextIter* iter, gint charOffset)gtk_text_buffer_get_iter_at_offset;
+	void function(GtkTextBuffer* buffer, GtkTextIter* iter, gint lineNumber)gtk_text_buffer_get_iter_at_line;
+	void function(GtkTextBuffer* buffer, GtkTextIter* iter, gint lineNumber, gint byteIndex)gtk_text_buffer_get_iter_at_line_index;
+	void function(GtkTextBuffer* buffer, GtkTextIter* iter, GtkTextMark* mark)gtk_text_buffer_get_iter_at_mark;
+	void function(GtkTextBuffer* buffer, GtkTextIter* iter, GtkTextChildAnchor* anchor)gtk_text_buffer_get_iter_at_child_anchor;
+	void function(GtkTextBuffer* buffer, GtkTextIter* iter)gtk_text_buffer_get_start_iter;
+	void function(GtkTextBuffer* buffer, GtkTextIter* iter)gtk_text_buffer_get_end_iter;
+	void function(GtkTextBuffer* buffer, GtkTextIter* start, GtkTextIter* end)gtk_text_buffer_get_bounds;
+	gboolean function(GtkTextBuffer* buffer)gtk_text_buffer_get_modified;
+	void function(GtkTextBuffer* buffer, gboolean setting)gtk_text_buffer_set_modified;
+	gboolean function(GtkTextBuffer* buffer, gboolean interactive, gboolean defaultEditable)gtk_text_buffer_delete_selection;
+	void function(GtkTextBuffer* buffer, GtkClipboard* clipboard, GtkTextIter* overrideLocation, gboolean defaultEditable)gtk_text_buffer_paste_clipboard;
+	void function(GtkTextBuffer* buffer, GtkClipboard* clipboard)gtk_text_buffer_copy_clipboard;
+	void function(GtkTextBuffer* buffer, GtkClipboard* clipboard, gboolean defaultEditable)gtk_text_buffer_cut_clipboard;
+	gboolean function(GtkTextBuffer* buffer, GtkTextIter* start, GtkTextIter* end)gtk_text_buffer_get_selection_bounds;
+	void function(GtkTextBuffer* buffer)gtk_text_buffer_begin_user_action;
+	void function(GtkTextBuffer* buffer)gtk_text_buffer_end_user_action;
+	void function(GtkTextBuffer* buffer, GtkClipboard* clipboard)gtk_text_buffer_add_selection_clipboard;
+	void function(GtkTextBuffer* buffer, GtkClipboard* clipboard)gtk_text_buffer_remove_selection_clipboard;
+	gboolean function(GtkTextBuffer* registerBuffer, GtkTextBuffer* contentBuffer, GdkAtom format, GtkTextIter* iter, guint8* data, gsize length, GError** error)gtk_text_buffer_deserialize;
+	gboolean function(GtkTextBuffer* buffer, GdkAtom format)gtk_text_buffer_deserialize_get_can_create_tags;
+	void function(GtkTextBuffer* buffer, GdkAtom format, gboolean canCreateTags)gtk_text_buffer_deserialize_set_can_create_tags;
+	GtkTargetList* function(GtkTextBuffer* buffer)gtk_text_buffer_get_copy_target_list;
+	GdkAtom* function(GtkTextBuffer* buffer, gint* nFormats)gtk_text_buffer_get_deserialize_formats;
+	GtkTargetList* function(GtkTextBuffer* buffer)gtk_text_buffer_get_paste_target_list;
+	GdkAtom* function(GtkTextBuffer* buffer, gint* nFormats)gtk_text_buffer_get_serialize_formats;
+	GdkAtom function(GtkTextBuffer* buffer, gchar* mimeType, GtkTextBufferDeserializeFunc funct, gpointer userData, GDestroyNotify userDataDestroy)gtk_text_buffer_register_deserialize_format;
+	GdkAtom function(GtkTextBuffer* buffer, gchar* tagsetName)gtk_text_buffer_register_deserialize_tagset;
+	GdkAtom function(GtkTextBuffer* buffer, gchar* mimeType, GtkTextBufferSerializeFunc funct, gpointer userData, GDestroyNotify userDataDestroy)gtk_text_buffer_register_serialize_format;
+	GdkAtom function(GtkTextBuffer* buffer, gchar* tagsetName)gtk_text_buffer_register_serialize_tagset;
+	guint8* function(GtkTextBuffer* registerBuffer, GtkTextBuffer* contentBuffer, GdkAtom format, GtkTextIter* start, GtkTextIter* end, gsize* length)gtk_text_buffer_serialize;
+	void function(GtkTextBuffer* buffer, GdkAtom format)gtk_text_buffer_unregister_deserialize_format;
+	void function(GtkTextBuffer* buffer, GdkAtom format)gtk_text_buffer_unregister_serialize_format;
+	
+	// gtk.TextTag
+	
+	GtkTextTag* function(gchar* name)gtk_text_tag_new;
+	gint function(GtkTextTag* tag)gtk_text_tag_get_priority;
+	void function(GtkTextTag* tag, gint priority)gtk_text_tag_set_priority;
+	gboolean function(GtkTextTag* tag, GObject* eventObject, GdkEvent* event, GtkTextIter* iter)gtk_text_tag_event;
+	
+	// gtk.TextAttributes
+	
+	GtkTextAttributes* function()gtk_text_attributes_new;
+	GtkTextAttributes* function(GtkTextAttributes* src)gtk_text_attributes_copy;
+	void function(GtkTextAttributes* src, GtkTextAttributes* dest)gtk_text_attributes_copy_values;
+	void function(GtkTextAttributes* values)gtk_text_attributes_unref;
+	GtkTextAttributes* function(GtkTextAttributes* values)gtk_text_attributes_ref;
+	
+	// gtk.TextTagTable
+	
+	GtkTextTagTable* function()gtk_text_tag_table_new;
+	void function(GtkTextTagTable* table, GtkTextTag* tag)gtk_text_tag_table_add;
+	void function(GtkTextTagTable* table, GtkTextTag* tag)gtk_text_tag_table_remove;
+	GtkTextTag* function(GtkTextTagTable* table, gchar* name)gtk_text_tag_table_lookup;
+	void function(GtkTextTagTable* table, GtkTextTagTableForeach func, gpointer data)gtk_text_tag_table_foreach;
+	gint function(GtkTextTagTable* table)gtk_text_tag_table_get_size;
+	
+	// gtk.TextView
+	
+	GtkWidget* function()gtk_text_view_new;
+	GtkWidget* function(GtkTextBuffer* buffer)gtk_text_view_new_with_buffer;
+	void function(GtkTextView* textView, GtkTextBuffer* buffer)gtk_text_view_set_buffer;
+	GtkTextBuffer* function(GtkTextView* textView)gtk_text_view_get_buffer;
+	void function(GtkTextView* textView, GtkTextMark* mark, gdouble withinMargin, gboolean useAlign, gdouble xalign, gdouble yalign)gtk_text_view_scroll_to_mark;
+	gboolean function(GtkTextView* textView, GtkTextIter* iter, gdouble withinMargin, gboolean useAlign, gdouble xalign, gdouble yalign)gtk_text_view_scroll_to_iter;
+	void function(GtkTextView* textView, GtkTextMark* mark)gtk_text_view_scroll_mark_onscreen;
+	gboolean function(GtkTextView* textView, GtkTextMark* mark)gtk_text_view_move_mark_onscreen;
+	gboolean function(GtkTextView* textView)gtk_text_view_place_cursor_onscreen;
+	void function(GtkTextView* textView, GdkRectangle* visibleRect)gtk_text_view_get_visible_rect;
+	void function(GtkTextView* textView, GtkTextIter* iter, GdkRectangle* location)gtk_text_view_get_iter_location;
+	void function(GtkTextView* textView, GtkTextIter* targetIter, gint y, gint* lineTop)gtk_text_view_get_line_at_y;
+	void function(GtkTextView* textView, GtkTextIter* iter, gint* y, gint* height)gtk_text_view_get_line_yrange;
+	void function(GtkTextView* textView, GtkTextIter* iter, gint x, gint y)gtk_text_view_get_iter_at_location;
+	void function(GtkTextView* textView, GtkTextIter* iter, gint* trailing, gint x, gint y)gtk_text_view_get_iter_at_position;
+	void function(GtkTextView* textView, GtkTextWindowType win, gint bufferX, gint bufferY, gint* windowX, gint* windowY)gtk_text_view_buffer_to_window_coords;
+	void function(GtkTextView* textView, GtkTextWindowType win, gint windowX, gint windowY, gint* bufferX, gint* bufferY)gtk_text_view_window_to_buffer_coords;
+	GdkWindow* function(GtkTextView* textView, GtkTextWindowType win)gtk_text_view_get_window;
+	GtkTextWindowType function(GtkTextView* textView, GdkWindow* window)gtk_text_view_get_window_type;
+	void function(GtkTextView* textView, GtkTextWindowType type, gint size)gtk_text_view_set_border_window_size;
+	gint function(GtkTextView* textView, GtkTextWindowType type)gtk_text_view_get_border_window_size;
+	gboolean function(GtkTextView* textView, GtkTextIter* iter)gtk_text_view_forward_display_line;
+	gboolean function(GtkTextView* textView, GtkTextIter* iter)gtk_text_view_backward_display_line;
+	gboolean function(GtkTextView* textView, GtkTextIter* iter)gtk_text_view_forward_display_line_end;
+	gboolean function(GtkTextView* textView, GtkTextIter* iter)gtk_text_view_backward_display_line_start;
+	gboolean function(GtkTextView* textView, GtkTextIter* iter)gtk_text_view_starts_display_line;
+	gboolean function(GtkTextView* textView, GtkTextIter* iter, gint count)gtk_text_view_move_visually;
+	void function(GtkTextView* textView, GtkWidget* child, GtkTextChildAnchor* anchor)gtk_text_view_add_child_at_anchor;
+	void function(GtkTextView* textView, GtkWidget* child, GtkTextWindowType whichWindow, gint xpos, gint ypos)gtk_text_view_add_child_in_window;
+	void function(GtkTextView* textView, GtkWidget* child, gint xpos, gint ypos)gtk_text_view_move_child;
+	void function(GtkTextView* textView, GtkWrapMode wrapMode)gtk_text_view_set_wrap_mode;
+	GtkWrapMode function(GtkTextView* textView)gtk_text_view_get_wrap_mode;
+	void function(GtkTextView* textView, gboolean setting)gtk_text_view_set_editable;
+	gboolean function(GtkTextView* textView)gtk_text_view_get_editable;
+	void function(GtkTextView* textView, gboolean setting)gtk_text_view_set_cursor_visible;
+	gboolean function(GtkTextView* textView)gtk_text_view_get_cursor_visible;
+	void function(GtkTextView* textView, gboolean overwrite)gtk_text_view_set_overwrite;
+	gboolean function(GtkTextView* textView)gtk_text_view_get_overwrite;
+	void function(GtkTextView* textView, gint pixelsAboveLines)gtk_text_view_set_pixels_above_lines;
+	gint function(GtkTextView* textView)gtk_text_view_get_pixels_above_lines;
+	void function(GtkTextView* textView, gint pixelsBelowLines)gtk_text_view_set_pixels_below_lines;
+	gint function(GtkTextView* textView)gtk_text_view_get_pixels_below_lines;
+	void function(GtkTextView* textView, gint pixelsInsideWrap)gtk_text_view_set_pixels_inside_wrap;
+	gint function(GtkTextView* textView)gtk_text_view_get_pixels_inside_wrap;
+	void function(GtkTextView* textView, GtkJustification justification)gtk_text_view_set_justification;
+	GtkJustification function(GtkTextView* textView)gtk_text_view_get_justification;
+	void function(GtkTextView* textView, gint leftMargin)gtk_text_view_set_left_margin;
+	gint function(GtkTextView* textView)gtk_text_view_get_left_margin;
+	void function(GtkTextView* textView, gint rightMargin)gtk_text_view_set_right_margin;
+	gint function(GtkTextView* textView)gtk_text_view_get_right_margin;
+	void function(GtkTextView* textView, gint indent)gtk_text_view_set_indent;
+	gint function(GtkTextView* textView)gtk_text_view_get_indent;
+	void function(GtkTextView* textView, PangoTabArray* tabs)gtk_text_view_set_tabs;
+	PangoTabArray* function(GtkTextView* textView)gtk_text_view_get_tabs;
+	void function(GtkTextView* textView, gboolean acceptsTab)gtk_text_view_set_accepts_tab;
+	gboolean function(GtkTextView* textView)gtk_text_view_get_accepts_tab;
+	GtkTextAttributes* function(GtkTextView* textView)gtk_text_view_get_default_attributes;
+	
+	// gtk.TextChildAnchor
+	
+	GtkTextChildAnchor* function()gtk_text_child_anchor_new;
+	GList* function(GtkTextChildAnchor* anchor)gtk_text_child_anchor_get_widgets;
+	gboolean function(GtkTextChildAnchor* anchor)gtk_text_child_anchor_get_deleted;
+	
+	// gtk.TreeModel
+	
+	GtkTreeModelFlags function(GtkTreeModel* treeModel)gtk_tree_model_get_flags;
+	gint function(GtkTreeModel* treeModel)gtk_tree_model_get_n_columns;
+	GType function(GtkTreeModel* treeModel, gint index)gtk_tree_model_get_column_type;
+	gboolean function(GtkTreeModel* treeModel, GtkTreeIter* iter, GtkTreePath* path)gtk_tree_model_get_iter;
+	gboolean function(GtkTreeModel* treeModel, GtkTreeIter* iter, gchar* pathString)gtk_tree_model_get_iter_from_string;
+	gboolean function(GtkTreeModel* treeModel, GtkTreeIter* iter)gtk_tree_model_get_iter_first;
+	GtkTreePath* function(GtkTreeModel* treeModel, GtkTreeIter* iter)gtk_tree_model_get_path;
+	void function(GtkTreeModel* treeModel, GtkTreeIter* iter, gint column, GValue* value)gtk_tree_model_get_value;
+	gboolean function(GtkTreeModel* treeModel, GtkTreeIter* iter)gtk_tree_model_iter_next;
+	gboolean function(GtkTreeModel* treeModel, GtkTreeIter* iter, GtkTreeIter* parent)gtk_tree_model_iter_children;
+	gboolean function(GtkTreeModel* treeModel, GtkTreeIter* iter)gtk_tree_model_iter_has_child;
+	gint function(GtkTreeModel* treeModel, GtkTreeIter* iter)gtk_tree_model_iter_n_children;
+	gboolean function(GtkTreeModel* treeModel, GtkTreeIter* iter, GtkTreeIter* parent, gint n)gtk_tree_model_iter_nth_child;
+	gboolean function(GtkTreeModel* treeModel, GtkTreeIter* iter, GtkTreeIter* child)gtk_tree_model_iter_parent;
+	gchar* function(GtkTreeModel* treeModel, GtkTreeIter* iter)gtk_tree_model_get_string_from_iter;
+	void function(GtkTreeModel* treeModel, GtkTreeIter* iter)gtk_tree_model_ref_node;
+	void function(GtkTreeModel* treeModel, GtkTreeIter* iter)gtk_tree_model_unref_node;
+	void function(GtkTreeModel* treeModel, GtkTreeIter* iter, ... )gtk_tree_model_get;
+	void function(GtkTreeModel* treeModel, GtkTreeIter* iter, va_list varArgs)gtk_tree_model_get_valist;
+	void function(GtkTreeModel* model, GtkTreeModelForeachFunc func, gpointer userData)gtk_tree_model_foreach;
+	void function(GtkTreeModel* treeModel, GtkTreePath* path, GtkTreeIter* iter)gtk_tree_model_row_changed;
+	void function(GtkTreeModel* treeModel, GtkTreePath* path, GtkTreeIter* iter)gtk_tree_model_row_inserted;
+	void function(GtkTreeModel* treeModel, GtkTreePath* path, GtkTreeIter* iter)gtk_tree_model_row_has_child_toggled;
+	void function(GtkTreeModel* treeModel, GtkTreePath* path)gtk_tree_model_row_deleted;
+	void function(GtkTreeModel* treeModel, GtkTreePath* path, GtkTreeIter* iter, gint* newOrder)gtk_tree_model_rows_reordered;
+	
+	// gtk.TreeIter
+	
+	GtkTreeIter* function(GtkTreeIter* iter)gtk_tree_iter_copy;
+	void function(GtkTreeIter* iter)gtk_tree_iter_free;
+	
+	// gtk.TreePath
+	
+	GtkTreePath* function()gtk_tree_path_new;
+	GtkTreePath* function(gchar* path)gtk_tree_path_new_from_string;
+	GtkTreePath* function(gint firstIndex, ... )gtk_tree_path_new_from_indices;
+	gchar* function(GtkTreePath* path)gtk_tree_path_to_string;
+	GtkTreePath* function()gtk_tree_path_new_first;
+	void function(GtkTreePath* path, gint index)gtk_tree_path_append_index;
+	void function(GtkTreePath* path, gint index)gtk_tree_path_prepend_index;
+	gint function(GtkTreePath* path)gtk_tree_path_get_depth;
+	gint* function(GtkTreePath* path)gtk_tree_path_get_indices;
+	void function(GtkTreePath* path)gtk_tree_path_free;
+	GtkTreePath* function(GtkTreePath* path)gtk_tree_path_copy;
+	gint function(GtkTreePath* a, GtkTreePath* b)gtk_tree_path_compare;
+	void function(GtkTreePath* path)gtk_tree_path_next;
+	gboolean function(GtkTreePath* path)gtk_tree_path_prev;
+	gboolean function(GtkTreePath* path)gtk_tree_path_up;
+	void function(GtkTreePath* path)gtk_tree_path_down;
+	gboolean function(GtkTreePath* path, GtkTreePath* descendant)gtk_tree_path_is_ancestor;
+	gboolean function(GtkTreePath* path, GtkTreePath* ancestor)gtk_tree_path_is_descendant;
+	
+	// gtk.TreeRowReference
+	
+	GtkTreeRowReference* function(GtkTreeModel* model, GtkTreePath* path)gtk_tree_row_reference_new;
+	GtkTreeRowReference* function(GObject* proxy, GtkTreeModel* model, GtkTreePath* path)gtk_tree_row_reference_new_proxy;
+	GtkTreeModel* function(GtkTreeRowReference* reference)gtk_tree_row_reference_get_model;
+	GtkTreePath* function(GtkTreeRowReference* reference)gtk_tree_row_reference_get_path;
+	gboolean function(GtkTreeRowReference* reference)gtk_tree_row_reference_valid;
+	void function(GtkTreeRowReference* reference)gtk_tree_row_reference_free;
+	GtkTreeRowReference* function(GtkTreeRowReference* reference)gtk_tree_row_reference_copy;
+	void function(GObject* proxy, GtkTreePath* path)gtk_tree_row_reference_inserted;
+	void function(GObject* proxy, GtkTreePath* path)gtk_tree_row_reference_deleted;
+	void function(GObject* proxy, GtkTreePath* path, GtkTreeIter* iter, gint* newOrder)gtk_tree_row_reference_reordered;
+	
+	// gtk.TreeIterError
+	
+	
+	// gtk.TreeSelection
+	
+	void function(GtkTreeSelection* selection, GtkSelectionMode type)gtk_tree_selection_set_mode;
+	GtkSelectionMode function(GtkTreeSelection* selection)gtk_tree_selection_get_mode;
+	void function(GtkTreeSelection* selection, GtkTreeSelectionFunc func, gpointer data, GtkDestroyNotify destroy)gtk_tree_selection_set_select_function;
+	gpointer function(GtkTreeSelection* selection)gtk_tree_selection_get_user_data;
+	GtkTreeView* function(GtkTreeSelection* selection)gtk_tree_selection_get_tree_view;
+	gboolean function(GtkTreeSelection* selection, GtkTreeModel** model, GtkTreeIter* iter)gtk_tree_selection_get_selected;
+	void function(GtkTreeSelection* selection, GtkTreeSelectionForeachFunc func, gpointer data)gtk_tree_selection_selected_foreach;
+	GList* function(GtkTreeSelection* selection, GtkTreeModel** model)gtk_tree_selection_get_selected_rows;
+	gint function(GtkTreeSelection* selection)gtk_tree_selection_count_selected_rows;
+	void function(GtkTreeSelection* selection, GtkTreePath* path)gtk_tree_selection_select_path;
+	void function(GtkTreeSelection* selection, GtkTreePath* path)gtk_tree_selection_unselect_path;
+	gboolean function(GtkTreeSelection* selection, GtkTreePath* path)gtk_tree_selection_path_is_selected;
+	void function(GtkTreeSelection* selection, GtkTreeIter* iter)gtk_tree_selection_select_iter;
+	void function(GtkTreeSelection* selection, GtkTreeIter* iter)gtk_tree_selection_unselect_iter;
+	gboolean function(GtkTreeSelection* selection, GtkTreeIter* iter)gtk_tree_selection_iter_is_selected;
+	void function(GtkTreeSelection* selection)gtk_tree_selection_select_all;
+	void function(GtkTreeSelection* selection)gtk_tree_selection_unselect_all;
+	void function(GtkTreeSelection* selection, GtkTreePath* startPath, GtkTreePath* endPath)gtk_tree_selection_select_range;
+	void function(GtkTreeSelection* selection, GtkTreePath* startPath, GtkTreePath* endPath)gtk_tree_selection_unselect_range;
+	
+	// gtk.TreeViewColumn
+	
+	GtkTreeViewColumn* function()gtk_tree_view_column_new;
+	GtkTreeViewColumn* function(gchar* title, GtkCellRenderer* cell, ... )gtk_tree_view_column_new_with_attributes;
+	void function(GtkTreeViewColumn* treeColumn, GtkCellRenderer* cell, gboolean expand)gtk_tree_view_column_pack_start;
+	void function(GtkTreeViewColumn* treeColumn, GtkCellRenderer* cell, gboolean expand)gtk_tree_view_column_pack_end;
+	void function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_clear;
+	GList* function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_get_cell_renderers;
+	void function(GtkTreeViewColumn* treeColumn, GtkCellRenderer* cellRenderer, gchar* attribute, gint column)gtk_tree_view_column_add_attribute;
+	void function(GtkTreeViewColumn* treeColumn, GtkCellRenderer* cellRenderer, ... )gtk_tree_view_column_set_attributes;
+	void function(GtkTreeViewColumn* treeColumn, GtkCellRenderer* cellRenderer, GtkTreeCellDataFunc func, gpointer funcData, GtkDestroyNotify destroy)gtk_tree_view_column_set_cell_data_func;
+	void function(GtkTreeViewColumn* treeColumn, GtkCellRenderer* cellRenderer)gtk_tree_view_column_clear_attributes;
+	void function(GtkTreeViewColumn* treeColumn, gint spacing)gtk_tree_view_column_set_spacing;
+	gint function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_get_spacing;
+	void function(GtkTreeViewColumn* treeColumn, gboolean visible)gtk_tree_view_column_set_visible;
+	gboolean function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_get_visible;
+	void function(GtkTreeViewColumn* treeColumn, gboolean resizable)gtk_tree_view_column_set_resizable;
+	gboolean function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_get_resizable;
+	void function(GtkTreeViewColumn* treeColumn, GtkTreeViewColumnSizing type)gtk_tree_view_column_set_sizing;
+	GtkTreeViewColumnSizing function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_get_sizing;
+	gint function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_get_width;
+	gint function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_get_fixed_width;
+	void function(GtkTreeViewColumn* treeColumn, gint fixedWidth)gtk_tree_view_column_set_fixed_width;
+	void function(GtkTreeViewColumn* treeColumn, gint minWidth)gtk_tree_view_column_set_min_width;
+	gint function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_get_min_width;
+	void function(GtkTreeViewColumn* treeColumn, gint maxWidth)gtk_tree_view_column_set_max_width;
+	gint function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_get_max_width;
+	void function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_clicked;
+	void function(GtkTreeViewColumn* treeColumn, gchar* title)gtk_tree_view_column_set_title;
+	gchar* function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_get_title;
+	void function(GtkTreeViewColumn* treeColumn, gboolean expand)gtk_tree_view_column_set_expand;
+	gboolean function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_get_expand;
+	void function(GtkTreeViewColumn* treeColumn, gboolean clickable)gtk_tree_view_column_set_clickable;
+	gboolean function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_get_clickable;
+	void function(GtkTreeViewColumn* treeColumn, GtkWidget* widget)gtk_tree_view_column_set_widget;
+	GtkWidget* function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_get_widget;
+	void function(GtkTreeViewColumn* treeColumn, gfloat xalign)gtk_tree_view_column_set_alignment;
+	gfloat function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_get_alignment;
+	void function(GtkTreeViewColumn* treeColumn, gboolean reorderable)gtk_tree_view_column_set_reorderable;
+	gboolean function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_get_reorderable;
+	void function(GtkTreeViewColumn* treeColumn, gint sortColumnId)gtk_tree_view_column_set_sort_column_id;
+	gint function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_get_sort_column_id;
+	void function(GtkTreeViewColumn* treeColumn, gboolean setting)gtk_tree_view_column_set_sort_indicator;
+	gboolean function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_get_sort_indicator;
+	void function(GtkTreeViewColumn* treeColumn, GtkSortType order)gtk_tree_view_column_set_sort_order;
+	GtkSortType function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_get_sort_order;
+	void function(GtkTreeViewColumn* treeColumn, GtkTreeModel* treeModel, GtkTreeIter* iter, gboolean isExpander, gboolean isExpanded)gtk_tree_view_column_cell_set_cell_data;
+	void function(GtkTreeViewColumn* treeColumn, GdkRectangle* cellArea, gint* xOffset, gint* yOffset, gint* width, gint* height)gtk_tree_view_column_cell_get_size;
+	gboolean function(GtkTreeViewColumn* treeColumn, GtkCellRenderer* cellRenderer, gint* startPos, gint* width)gtk_tree_view_column_cell_get_position;
+	gboolean function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_cell_is_visible;
+	void function(GtkTreeViewColumn* treeColumn, GtkCellRenderer* cell)gtk_tree_view_column_focus_cell;
+	void function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_queue_resize;
+	GtkWidget* function(GtkTreeViewColumn* treeColumn)gtk_tree_view_column_get_tree_view;
+	
+	// gtk.TreeView
+	
+	GtkWidget* function()gtk_tree_view_new;
+	gint function(GtkTreeView* treeView)gtk_tree_view_get_level_indentation;
+	gboolean function(GtkTreeView* treeView)gtk_tree_view_get_show_expanders;
+	void function(GtkTreeView* treeView, gint indentation)gtk_tree_view_set_level_indentation;
+	void function(GtkTreeView* treeView, gboolean enabled)gtk_tree_view_set_show_expanders;
+	GtkWidget* function(GtkTreeModel* model)gtk_tree_view_new_with_model;
+	GtkTreeModel* function(GtkTreeView* treeView)gtk_tree_view_get_model;
+	void function(GtkTreeView* treeView, GtkTreeModel* model)gtk_tree_view_set_model;
+	GtkTreeSelection* function(GtkTreeView* treeView)gtk_tree_view_get_selection;
+	GtkAdjustment* function(GtkTreeView* treeView)gtk_tree_view_get_hadjustment;
+	void function(GtkTreeView* treeView, GtkAdjustment* adjustment)gtk_tree_view_set_hadjustment;
+	GtkAdjustment* function(GtkTreeView* treeView)gtk_tree_view_get_vadjustment;
+	void function(GtkTreeView* treeView, GtkAdjustment* adjustment)gtk_tree_view_set_vadjustment;
+	gboolean function(GtkTreeView* treeView)gtk_tree_view_get_headers_visible;
+	void function(GtkTreeView* treeView, gboolean headersVisible)gtk_tree_view_set_headers_visible;
+	void function(GtkTreeView* treeView)gtk_tree_view_columns_autosize;
+	gboolean function(GtkTreeView* treeView)gtk_tree_view_get_headers_clickable;
+	void function(GtkTreeView* treeView, gboolean setting)gtk_tree_view_set_headers_clickable;
+	void function(GtkTreeView* treeView, gboolean setting)gtk_tree_view_set_rules_hint;
+	gboolean function(GtkTreeView* treeView)gtk_tree_view_get_rules_hint;
+	gint function(GtkTreeView* treeView, GtkTreeViewColumn* column)gtk_tree_view_append_column;
+	gint function(GtkTreeView* treeView, GtkTreeViewColumn* column)gtk_tree_view_remove_column;
+	gint function(GtkTreeView* treeView, GtkTreeViewColumn* column, gint position)gtk_tree_view_insert_column;
+	gint function(GtkTreeView* treeView, gint position, gchar* title, GtkCellRenderer* cell, ... )gtk_tree_view_insert_column_with_attributes;
+	gint function(GtkTreeView* treeView, gint position, gchar* title, GtkCellRenderer* cell, GtkTreeCellDataFunc func, gpointer data, GDestroyNotify dnotify)gtk_tree_view_insert_column_with_data_func;
+	GtkTreeViewColumn* function(GtkTreeView* treeView, gint n)gtk_tree_view_get_column;
+	GList* function(GtkTreeView* treeView)gtk_tree_view_get_columns;
+	void function(GtkTreeView* treeView, GtkTreeViewColumn* column, GtkTreeViewColumn* baseColumn)gtk_tree_view_move_column_after;
+	void function(GtkTreeView* treeView, GtkTreeViewColumn* column)gtk_tree_view_set_expander_column;
+	GtkTreeViewColumn* function(GtkTreeView* treeView)gtk_tree_view_get_expander_column;
+	void function(GtkTreeView* treeView, GtkTreeViewColumnDropFunc func, gpointer userData, GtkDestroyNotify destroy)gtk_tree_view_set_column_drag_function;
+	void function(GtkTreeView* treeView, gint treeX, gint treeY)gtk_tree_view_scroll_to_point;
+	void function(GtkTreeView* treeView, GtkTreePath* path, GtkTreeViewColumn* column, gboolean useAlign, gfloat rowAlign, gfloat colAlign)gtk_tree_view_scroll_to_cell;
+	void function(GtkTreeView* treeView, GtkTreePath* path, GtkTreeViewColumn* focusColumn, gboolean startEditing)gtk_tree_view_set_cursor;
+	void function(GtkTreeView* treeView, GtkTreePath* path, GtkTreeViewColumn* focusColumn, GtkCellRenderer* focusCell, gboolean startEditing)gtk_tree_view_set_cursor_on_cell;
+	void function(GtkTreeView* treeView, GtkTreePath** path, GtkTreeViewColumn** focusColumn)gtk_tree_view_get_cursor;
+	void function(GtkTreeView* treeView, GtkTreePath* path, GtkTreeViewColumn* column)gtk_tree_view_row_activated;
+	void function(GtkTreeView* treeView)gtk_tree_view_expand_all;
+	void function(GtkTreeView* treeView)gtk_tree_view_collapse_all;
+	void function(GtkTreeView* treeView, GtkTreePath* path)gtk_tree_view_expand_to_path;
+	gboolean function(GtkTreeView* treeView, GtkTreePath* path, gboolean openAll)gtk_tree_view_expand_row;
+	gboolean function(GtkTreeView* treeView, GtkTreePath* path)gtk_tree_view_collapse_row;
+	void function(GtkTreeView* treeView, GtkTreeViewMappingFunc func, gpointer data)gtk_tree_view_map_expanded_rows;
+	gboolean function(GtkTreeView* treeView, GtkTreePath* path)gtk_tree_view_row_expanded;
+	void function(GtkTreeView* treeView, gboolean reorderable)gtk_tree_view_set_reorderable;
+	gboolean function(GtkTreeView* treeView)gtk_tree_view_get_reorderable;
+	gboolean function(GtkTreeView* treeView, gint x, gint y, GtkTreePath** path, GtkTreeViewColumn** column, gint* cellX, gint* cellY)gtk_tree_view_get_path_at_pos;
+	void function(GtkTreeView* treeView, GtkTreePath* path, GtkTreeViewColumn* column, GdkRectangle* rect)gtk_tree_view_get_cell_area;
+	void function(GtkTreeView* treeView, GtkTreePath* path, GtkTreeViewColumn* column, GdkRectangle* rect)gtk_tree_view_get_background_area;
+	void function(GtkTreeView* treeView, GdkRectangle* visibleRect)gtk_tree_view_get_visible_rect;
+	gboolean function(GtkTreeView* treeView, GtkTreePath** startPath, GtkTreePath** endPath)gtk_tree_view_get_visible_range;
+	GdkWindow* function(GtkTreeView* treeView)gtk_tree_view_get_bin_window;
+	void function(GtkTreeView* treeView, gint wx, gint wy, gint* tx, gint* ty)gtk_tree_view_widget_to_tree_coords;
+	void function(GtkTreeView* treeView, gint tx, gint ty, gint* wx, gint* wy)gtk_tree_view_tree_to_widget_coords;
+	void function(GtkTreeView* treeView, gint bx, gint by, gint* tx, gint* ty)gtk_tree_view_convert_bin_window_to_tree_coords;
+	void function(GtkTreeView* treeView, gint bx, gint by, gint* wx, gint* wy)gtk_tree_view_convert_bin_window_to_widget_coords;
+	void function(GtkTreeView* treeView, gint tx, gint ty, gint* bx, gint* by)gtk_tree_view_convert_tree_to_bin_window_coords;
+	void function(GtkTreeView* treeView, gint tx, gint ty, gint* wx, gint* wy)gtk_tree_view_convert_tree_to_widget_coords;
+	void function(GtkTreeView* treeView, gint wx, gint wy, gint* bx, gint* by)gtk_tree_view_convert_widget_to_bin_window_coords;
+	void function(GtkTreeView* treeView, gint wx, gint wy, gint* tx, gint* ty)gtk_tree_view_convert_widget_to_tree_coords;
+	void function(GtkTreeView* treeView, GtkTargetEntry* targets, gint nTargets, GdkDragAction actions)gtk_tree_view_enable_model_drag_dest;
+	void function(GtkTreeView* treeView, GdkModifierType startButtonMask, GtkTargetEntry* targets, gint nTargets, GdkDragAction actions)gtk_tree_view_enable_model_drag_source;
+	void function(GtkTreeView* treeView)gtk_tree_view_unset_rows_drag_source;
+	void function(GtkTreeView* treeView)gtk_tree_view_unset_rows_drag_dest;
+	void function(GtkTreeView* treeView, GtkTreePath* path, GtkTreeViewDropPosition pos)gtk_tree_view_set_drag_dest_row;
+	void function(GtkTreeView* treeView, GtkTreePath** path, GtkTreeViewDropPosition* pos)gtk_tree_view_get_drag_dest_row;
+	gboolean function(GtkTreeView* treeView, gint dragX, gint dragY, GtkTreePath** path, GtkTreeViewDropPosition* pos)gtk_tree_view_get_dest_row_at_pos;
+	GdkPixmap* function(GtkTreeView* treeView, GtkTreePath* path)gtk_tree_view_create_row_drag_icon;
+	void function(GtkTreeView* treeView, gboolean enableSearch)gtk_tree_view_set_enable_search;
+	gboolean function(GtkTreeView* treeView)gtk_tree_view_get_enable_search;
+	gint function(GtkTreeView* treeView)gtk_tree_view_get_search_column;
+	void function(GtkTreeView* treeView, gint column)gtk_tree_view_set_search_column;
+	GtkTreeViewSearchEqualFunc function(GtkTreeView* treeView)gtk_tree_view_get_search_equal_func;
+	void function(GtkTreeView* treeView, GtkTreeViewSearchEqualFunc searchEqualFunc, gpointer searchUserData, GtkDestroyNotify searchDestroy)gtk_tree_view_set_search_equal_func;
+	GtkEntry* function(GtkTreeView* treeView)gtk_tree_view_get_search_entry;
+	void function(GtkTreeView* treeView, GtkEntry* entry)gtk_tree_view_set_search_entry;
+	GtkTreeViewSearchPositionFunc function(GtkTreeView* treeView)gtk_tree_view_get_search_position_func;
+	void function(GtkTreeView* treeView, GtkTreeViewSearchPositionFunc func, gpointer data, GDestroyNotify destroy)gtk_tree_view_set_search_position_func;
+	gboolean function(GtkTreeView* treeView)gtk_tree_view_get_fixed_height_mode;
+	void function(GtkTreeView* treeView, gboolean enable)gtk_tree_view_set_fixed_height_mode;
+	gboolean function(GtkTreeView* treeView)gtk_tree_view_get_hover_selection;
+	void function(GtkTreeView* treeView, gboolean hover)gtk_tree_view_set_hover_selection;
+	gboolean function(GtkTreeView* treeView)gtk_tree_view_get_hover_expand;
+	void function(GtkTreeView* treeView, gboolean expand)gtk_tree_view_set_hover_expand;
+	void function(GtkTreeView* treeView, GtkTreeDestroyCountFunc func, gpointer data, GtkDestroyNotify destroy)gtk_tree_view_set_destroy_count_func;
+	GtkTreeViewRowSeparatorFunc function(GtkTreeView* treeView)gtk_tree_view_get_row_separator_func;
+	void function(GtkTreeView* treeView, GtkTreeViewRowSeparatorFunc func, gpointer data, GtkDestroyNotify destroy)gtk_tree_view_set_row_separator_func;
+	gboolean function(GtkTreeView* treeView)gtk_tree_view_get_rubber_banding;
+	void function(GtkTreeView* treeView, gboolean enable)gtk_tree_view_set_rubber_banding;
+	gboolean function(GtkTreeView* treeView)gtk_tree_view_is_rubber_banding_active;
+	gboolean function(GtkTreeView* treeView)gtk_tree_view_get_enable_tree_lines;
+	void function(GtkTreeView* treeView, gboolean enabled)gtk_tree_view_set_enable_tree_lines;
+	GtkTreeViewGridLines function(GtkTreeView* treeView)gtk_tree_view_get_grid_lines;
+	void function(GtkTreeView* treeView, GtkTreeViewGridLines gridLines)gtk_tree_view_set_grid_lines;
+	void function(GtkTreeView* treeView, GtkTooltip* tooltip, GtkTreePath* path)gtk_tree_view_set_tooltip_row;
+	void function(GtkTreeView* treeView, GtkTooltip* tooltip, GtkTreePath* path, GtkTreeViewColumn* column, GtkCellRenderer* cell)gtk_tree_view_set_tooltip_cell;
+	gboolean function(GtkTreeView* treeView, gint* x, gint* y, gboolean keyboardTip, GtkTreeModel** model, GtkTreePath** path, GtkTreeIter* iter)gtk_tree_view_get_tooltip_context;
+	gint function(GtkTreeView* treeView)gtk_tree_view_get_tooltip_column;
+	void function(GtkTreeView* treeView, gint column)gtk_tree_view_set_tooltip_column;
+	
+	// gtk.TreeDragSource
+	
+	gboolean function(GtkTreeDragSource* dragSource, GtkTreePath* path)gtk_tree_drag_source_drag_data_delete;
+	gboolean function(GtkTreeDragSource* dragSource, GtkTreePath* path, GtkSelectionData* selectionData)gtk_tree_drag_source_drag_data_get;
+	gboolean function(GtkTreeDragSource* dragSource, GtkTreePath* path)gtk_tree_drag_source_row_draggable;
+	gboolean function(GtkTreeDragDest* dragDest, GtkTreePath* dest, GtkSelectionData* selectionData)gtk_tree_drag_dest_drag_data_received;
+	gboolean function(GtkTreeDragDest* dragDest, GtkTreePath* destPath, GtkSelectionData* selectionData)gtk_tree_drag_dest_row_drop_possible;
+	gboolean function(GtkSelectionData* selectionData, GtkTreeModel* treeModel, GtkTreePath* path)gtk_tree_set_row_drag_data;
+	gboolean function(GtkSelectionData* selectionData, GtkTreeModel** treeModel, GtkTreePath** path)gtk_tree_get_row_drag_data;
+	
+	// gtk.CellView
+	
+	GtkWidget* function()gtk_cell_view_new;
+	GtkWidget* function(gchar* text)gtk_cell_view_new_with_text;
+	GtkWidget* function(gchar* markup)gtk_cell_view_new_with_markup;
+	GtkWidget* function(GdkPixbuf* pixbuf)gtk_cell_view_new_with_pixbuf;
+	void function(GtkCellView* cellView, GtkTreeModel* model)gtk_cell_view_set_model;
+	void function(GtkCellView* cellView, GtkTreePath* path)gtk_cell_view_set_displayed_row;
+	GtkTreePath* function(GtkCellView* cellView)gtk_cell_view_get_displayed_row;
+	gboolean function(GtkCellView* cellView, GtkTreePath* path, GtkRequisition* requisition)gtk_cell_view_get_size_of_row;
+	void function(GtkCellView* cellView, GdkColor* color)gtk_cell_view_set_background_color;
+	GList* function(GtkCellView* cellView)gtk_cell_view_get_cell_renderers;
+	
+	// gtk.IconView
+	
+	GtkWidget* function()gtk_icon_view_new;
+	GtkWidget* function(GtkTreeModel* model)gtk_icon_view_new_with_model;
+	void function(GtkIconView* iconView, GtkTreeModel* model)gtk_icon_view_set_model;
+	GtkTreeModel* function(GtkIconView* iconView)gtk_icon_view_get_model;
+	void function(GtkIconView* iconView, gint column)gtk_icon_view_set_text_column;
+	gint function(GtkIconView* iconView)gtk_icon_view_get_text_column;
+	void function(GtkIconView* iconView, gint column)gtk_icon_view_set_markup_column;
+	gint function(GtkIconView* iconView)gtk_icon_view_get_markup_column;
+	void function(GtkIconView* iconView, gint column)gtk_icon_view_set_pixbuf_column;
+	gint function(GtkIconView* iconView)gtk_icon_view_get_pixbuf_column;
+	GtkTreePath* function(GtkIconView* iconView, gint x, gint y)gtk_icon_view_get_path_at_pos;
+	gboolean function(GtkIconView* iconView, gint x, gint y, GtkTreePath** path, GtkCellRenderer** cell)gtk_icon_view_get_item_at_pos;
+	void function(GtkIconView* iconView, gint wx, gint wy, gint* bx, gint* by)gtk_icon_view_convert_widget_to_bin_window_coords;
+	void function(GtkIconView* iconView, GtkTreePath* path, GtkCellRenderer* cell, gboolean startEditing)gtk_icon_view_set_cursor;
+	gboolean function(GtkIconView* iconView, GtkTreePath** path, GtkCellRenderer** cell)gtk_icon_view_get_cursor;
+	void function(GtkIconView* iconView, GtkIconViewForeachFunc func, gpointer data)gtk_icon_view_selected_foreach;
+	void function(GtkIconView* iconView, GtkSelectionMode mode)gtk_icon_view_set_selection_mode;
+	GtkSelectionMode function(GtkIconView* iconView)gtk_icon_view_get_selection_mode;
+	void function(GtkIconView* iconView, GtkOrientation orientation)gtk_icon_view_set_orientation;
+	GtkOrientation function(GtkIconView* iconView)gtk_icon_view_get_orientation;
+	void function(GtkIconView* iconView, gint columns)gtk_icon_view_set_columns;
+	gint function(GtkIconView* iconView)gtk_icon_view_get_columns;
+	void function(GtkIconView* iconView, gint itemWidth)gtk_icon_view_set_item_width;
+	gint function(GtkIconView* iconView)gtk_icon_view_get_item_width;
+	void function(GtkIconView* iconView, gint spacing)gtk_icon_view_set_spacing;
+	gint function(GtkIconView* iconView)gtk_icon_view_get_spacing;
+	void function(GtkIconView* iconView, gint rowSpacing)gtk_icon_view_set_row_spacing;
+	gint function(GtkIconView* iconView)gtk_icon_view_get_row_spacing;
+	void function(GtkIconView* iconView, gint columnSpacing)gtk_icon_view_set_column_spacing;
+	gint function(GtkIconView* iconView)gtk_icon_view_get_column_spacing;
+	void function(GtkIconView* iconView, gint margin)gtk_icon_view_set_margin;
+	gint function(GtkIconView* iconView)gtk_icon_view_get_margin;
+	void function(GtkIconView* iconView, GtkTreePath* path)gtk_icon_view_select_path;
+	void function(GtkIconView* iconView, GtkTreePath* path)gtk_icon_view_unselect_path;
+	gboolean function(GtkIconView* iconView, GtkTreePath* path)gtk_icon_view_path_is_selected;
+	GList* function(GtkIconView* iconView)gtk_icon_view_get_selected_items;
+	void function(GtkIconView* iconView)gtk_icon_view_select_all;
+	void function(GtkIconView* iconView)gtk_icon_view_unselect_all;
+	void function(GtkIconView* iconView, GtkTreePath* path)gtk_icon_view_item_activated;
+	void function(GtkIconView* iconView, GtkTreePath* path, gboolean useAlign, gfloat rowAlign, gfloat colAlign)gtk_icon_view_scroll_to_path;
+	gboolean function(GtkIconView* iconView, GtkTreePath** startPath, GtkTreePath** endPath)gtk_icon_view_get_visible_range;
+	void function(GtkIconView* iconView, GtkTooltip* tooltip, GtkTreePath* path)gtk_icon_view_set_tooltip_item;
+	void function(GtkIconView* iconView, GtkTooltip* tooltip, GtkTreePath* path, GtkCellRenderer* cell)gtk_icon_view_set_tooltip_cell;
+	gboolean function(GtkIconView* iconView, gint* x, gint* y, gboolean keyboardTip, GtkTreeModel** model, GtkTreePath** path, GtkTreeIter* iter)gtk_icon_view_get_tooltip_context;
+	void function(GtkIconView* iconView, gint column)gtk_icon_view_set_tooltip_column;
+	gint function(GtkIconView* iconView)gtk_icon_view_get_tooltip_column;
+	void function(GtkIconView* iconView, GdkModifierType startButtonMask, GtkTargetEntry* targets, gint nTargets, GdkDragAction actions)gtk_icon_view_enable_model_drag_source;
+	void function(GtkIconView* iconView, GtkTargetEntry* targets, gint nTargets, GdkDragAction actions)gtk_icon_view_enable_model_drag_dest;
+	void function(GtkIconView* iconView)gtk_icon_view_unset_model_drag_source;
+	void function(GtkIconView* iconView)gtk_icon_view_unset_model_drag_dest;
+	void function(GtkIconView* iconView, gboolean reorderable)gtk_icon_view_set_reorderable;
+	gboolean function(GtkIconView* iconView)gtk_icon_view_get_reorderable;
+	void function(GtkIconView* iconView, GtkTreePath* path, GtkIconViewDropPosition pos)gtk_icon_view_set_drag_dest_item;
+	void function(GtkIconView* iconView, GtkTreePath** path, GtkIconViewDropPosition* pos)gtk_icon_view_get_drag_dest_item;
+	gboolean function(GtkIconView* iconView, gint dragX, gint dragY, GtkTreePath** path, GtkIconViewDropPosition* pos)gtk_icon_view_get_dest_item_at_pos;
+	GdkPixmap* function(GtkIconView* iconView, GtkTreePath* path)gtk_icon_view_create_drag_icon;
+	
+	// gtk.TreeSortable
+	
+	void function(GtkTreeSortable* sortable)gtk_tree_sortable_sort_column_changed;
+	gboolean function(GtkTreeSortable* sortable, gint* sortColumnId, GtkSortType* order)gtk_tree_sortable_get_sort_column_id;
+	void function(GtkTreeSortable* sortable, gint sortColumnId, GtkSortType order)gtk_tree_sortable_set_sort_column_id;
+	void function(GtkTreeSortable* sortable, gint sortColumnId, GtkTreeIterCompareFunc sortFunc, gpointer userData, GtkDestroyNotify destroy)gtk_tree_sortable_set_sort_func;
+	void function(GtkTreeSortable* sortable, GtkTreeIterCompareFunc sortFunc, gpointer userData, GtkDestroyNotify destroy)gtk_tree_sortable_set_default_sort_func;
+	gboolean function(GtkTreeSortable* sortable)gtk_tree_sortable_has_default_sort_func;
+	
+	// gtk.TreeModelSort
+	
+	GtkTreeModel* function(GtkTreeModel* childModel)gtk_tree_model_sort_new_with_model;
+	GtkTreeModel* function(GtkTreeModelSort* treeModel)gtk_tree_model_sort_get_model;
+	GtkTreePath* function(GtkTreeModelSort* treeModelSort, GtkTreePath* childPath)gtk_tree_model_sort_convert_child_path_to_path;
+	void function(GtkTreeModelSort* treeModelSort, GtkTreeIter* sortIter, GtkTreeIter* childIter)gtk_tree_model_sort_convert_child_iter_to_iter;
+	GtkTreePath* function(GtkTreeModelSort* treeModelSort, GtkTreePath* sortedPath)gtk_tree_model_sort_convert_path_to_child_path;
+	void function(GtkTreeModelSort* treeModelSort, GtkTreeIter* childIter, GtkTreeIter* sortedIter)gtk_tree_model_sort_convert_iter_to_child_iter;
+	void function(GtkTreeModelSort* treeModelSort)gtk_tree_model_sort_reset_default_sort_func;
+	void function(GtkTreeModelSort* treeModelSort)gtk_tree_model_sort_clear_cache;
+	gboolean function(GtkTreeModelSort* treeModelSort, GtkTreeIter* iter)gtk_tree_model_sort_iter_is_valid;
+	
+	// gtk.TreeModelFilter
+	
+	GtkTreeModel* function(GtkTreeModel* childModel, GtkTreePath* root)gtk_tree_model_filter_new;
+	void function(GtkTreeModelFilter* filter, GtkTreeModelFilterVisibleFunc func, gpointer data, GtkDestroyNotify destroy)gtk_tree_model_filter_set_visible_func;
+	void function(GtkTreeModelFilter* filter, gint nColumns, GType* types, GtkTreeModelFilterModifyFunc func, gpointer data, GtkDestroyNotify destroy)gtk_tree_model_filter_set_modify_func;
+	void function(GtkTreeModelFilter* filter, gint column)gtk_tree_model_filter_set_visible_column;
+	GtkTreeModel* function(GtkTreeModelFilter* filter)gtk_tree_model_filter_get_model;
+	gboolean function(GtkTreeModelFilter* filter, GtkTreeIter* filterIter, GtkTreeIter* childIter)gtk_tree_model_filter_convert_child_iter_to_iter;
+	void function(GtkTreeModelFilter* filter, GtkTreeIter* childIter, GtkTreeIter* filterIter)gtk_tree_model_filter_convert_iter_to_child_iter;
+	GtkTreePath* function(GtkTreeModelFilter* filter, GtkTreePath* childPath)gtk_tree_model_filter_convert_child_path_to_path;
+	GtkTreePath* function(GtkTreeModelFilter* filter, GtkTreePath* filterPath)gtk_tree_model_filter_convert_path_to_child_path;
+	void function(GtkTreeModelFilter* filter)gtk_tree_model_filter_refilter;
+	void function(GtkTreeModelFilter* filter)gtk_tree_model_filter_clear_cache;
+	
+	// gtk.CellLayoutT
+	
+	
+	// gtk.CellLayoutT
+	
+	void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, gboolean expand)gtk_cell_layout_pack_start;
+	void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, gboolean expand)gtk_cell_layout_pack_end;
+	GList* function(GtkCellLayout* cellLayout)gtk_cell_layout_get_cells;
+	void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, gint position)gtk_cell_layout_reorder;
+	void function(GtkCellLayout* cellLayout)gtk_cell_layout_clear;
+	void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, ... )gtk_cell_layout_set_attributes;
+	void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, gchar* attribute, gint column)gtk_cell_layout_add_attribute;
+	void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, GtkCellLayoutDataFunc func, gpointer funcData, GDestroyNotify destroy)gtk_cell_layout_set_cell_data_func;
+	void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell)gtk_cell_layout_clear_attributes;
+	
+	// gtk.CellRenderer
+	
+	void function(GtkCellRenderer* cell, GtkWidget* widget, GdkRectangle* cellArea, gint* xOffset, gint* yOffset, gint* width, gint* height)gtk_cell_renderer_get_size;
+	void function(GtkCellRenderer* cell, GdkWindow* window, GtkWidget* widget, GdkRectangle* backgroundArea, GdkRectangle* cellArea, GdkRectangle* exposeArea, GtkCellRendererState flags)gtk_cell_renderer_render;
+	gboolean function(GtkCellRenderer* cell, GdkEvent* event, GtkWidget* widget, gchar* path, GdkRectangle* backgroundArea, GdkRectangle* cellArea, GtkCellRendererState flags)gtk_cell_renderer_activate;
+	GtkCellEditable* function(GtkCellRenderer* cell, GdkEvent* event, GtkWidget* widget, gchar* path, GdkRectangle* backgroundArea, GdkRectangle* cellArea, GtkCellRendererState flags)gtk_cell_renderer_start_editing;
+	void function(GtkCellRenderer* cell)gtk_cell_renderer_editing_canceled;
+	void function(GtkCellRenderer* cell, gboolean canceled)gtk_cell_renderer_stop_editing;
+	void function(GtkCellRenderer* cell, gint* width, gint* height)gtk_cell_renderer_get_fixed_size;
+	void function(GtkCellRenderer* cell, gint width, gint height)gtk_cell_renderer_set_fixed_size;
+	
+	// gtk.CellEditable
+	
+	void function(GtkCellEditable* cellEditable, GdkEvent* event)gtk_cell_editable_start_editing;
+	void function(GtkCellEditable* cellEditable)gtk_cell_editable_editing_done;
+	void function(GtkCellEditable* cellEditable)gtk_cell_editable_remove_widget;
+	
+	// gtk.CellRendererAccel
+	
+	GtkCellRenderer* function()gtk_cell_renderer_accel_new;
+	
+	// gtk.CellRendererCombo
+	
+	GtkCellRenderer* function()gtk_cell_renderer_combo_new;
+	
+	// gtk.CellRendererPixbuf
+	
+	GtkCellRenderer* function()gtk_cell_renderer_pixbuf_new;
+	
+	// gtk.CellRendererProgress
+	
+	GtkCellRenderer* function()gtk_cell_renderer_progress_new;
+	
+	// gtk.CellRendererSpin
+	
+	GtkCellRenderer* function()gtk_cell_renderer_spin_new;
+	
+	// gtk.CellRendererText
+	
+	GtkCellRenderer* function()gtk_cell_renderer_text_new;
+	void function(GtkCellRendererText* renderer, gint numberOfRows)gtk_cell_renderer_text_set_fixed_height_from_font;
+	
+	// gtk.CellRendererToggle
+	
+	GtkCellRenderer* function()gtk_cell_renderer_toggle_new;
+	gboolean function(GtkCellRendererToggle* toggle)gtk_cell_renderer_toggle_get_radio;
+	void function(GtkCellRendererToggle* toggle, gboolean radio)gtk_cell_renderer_toggle_set_radio;
+	gboolean function(GtkCellRendererToggle* toggle)gtk_cell_renderer_toggle_get_active;
+	void function(GtkCellRendererToggle* toggle, gboolean setting)gtk_cell_renderer_toggle_set_active;
+	
+	// gtk.
+	
+	
+	// gtk.ListStore
+	
+	GtkListStore* function(gint nColumns, ... )gtk_list_store_new;
+	GtkListStore* function(gint nColumns, GType* types)gtk_list_store_newv;
+	void function(GtkListStore* listStore, gint nColumns, GType* types)gtk_list_store_set_column_types;
+	void function(GtkListStore* listStore, GtkTreeIter* iter, ... )gtk_list_store_set;
+	void function(GtkListStore* listStore, GtkTreeIter* iter, va_list varArgs)gtk_list_store_set_valist;
+	void function(GtkListStore* listStore, GtkTreeIter* iter, gint column, GValue* value)gtk_list_store_set_value;
+	void function(GtkListStore* listStore, GtkTreeIter* iter, gint* columns, GValue* values, gint nValues)gtk_list_store_set_valuesv;
+	gboolean function(GtkListStore* listStore, GtkTreeIter* iter)gtk_list_store_remove;
+	void function(GtkListStore* listStore, GtkTreeIter* iter, gint position)gtk_list_store_insert;
+	void function(GtkListStore* listStore, GtkTreeIter* iter, GtkTreeIter* sibling)gtk_list_store_insert_before;
+	void function(GtkListStore* listStore, GtkTreeIter* iter, GtkTreeIter* sibling)gtk_list_store_insert_after;
+	void function(GtkListStore* listStore, GtkTreeIter* iter, gint position, ... )gtk_list_store_insert_with_values;
+	void function(GtkListStore* listStore, GtkTreeIter* iter, gint position, gint* columns, GValue* values, gint nValues)gtk_list_store_insert_with_valuesv;
+	void function(GtkListStore* listStore, GtkTreeIter* iter)gtk_list_store_prepend;
+	void function(GtkListStore* listStore, GtkTreeIter* iter)gtk_list_store_append;
+	void function(GtkListStore* listStore)gtk_list_store_clear;
+	gboolean function(GtkListStore* listStore, GtkTreeIter* iter)gtk_list_store_iter_is_valid;
+	void function(GtkListStore* store, gint* newOrder)gtk_list_store_reorder;
+	void function(GtkListStore* store, GtkTreeIter* a, GtkTreeIter* b)gtk_list_store_swap;
+	void function(GtkListStore* store, GtkTreeIter* iter, GtkTreeIter* position)gtk_list_store_move_before;
+	void function(GtkListStore* store, GtkTreeIter* iter, GtkTreeIter* position)gtk_list_store_move_after;
+	
+	// gtk.TreeStore
+	
+	GtkTreeStore* function(gint nColumns, ... )gtk_tree_store_new;
+	GtkTreeStore* function(gint nColumns, GType* types)gtk_tree_store_newv;
+	void function(GtkTreeStore* treeStore, gint nColumns, GType* types)gtk_tree_store_set_column_types;
+	void function(GtkTreeStore* treeStore, GtkTreeIter* iter, gint column, GValue* value)gtk_tree_store_set_value;
+	void function(GtkTreeStore* treeStore, GtkTreeIter* iter, ... )gtk_tree_store_set;
+	void function(GtkTreeStore* treeStore, GtkTreeIter* iter, va_list varArgs)gtk_tree_store_set_valist;
+	void function(GtkTreeStore* treeStore, GtkTreeIter* iter, gint* columns, GValue* values, gint nValues)gtk_tree_store_set_valuesv;
+	gboolean function(GtkTreeStore* treeStore, GtkTreeIter* iter)gtk_tree_store_remove;
+	void function(GtkTreeStore* treeStore, GtkTreeIter* iter, GtkTreeIter* parent, gint position)gtk_tree_store_insert;
+	void function(GtkTreeStore* treeStore, GtkTreeIter* iter, GtkTreeIter* parent, GtkTreeIter* sibling)gtk_tree_store_insert_before;
+	void function(GtkTreeStore* treeStore, GtkTreeIter* iter, GtkTreeIter* parent, GtkTreeIter* sibling)gtk_tree_store_insert_after;
+	void function(GtkTreeStore* treeStore, GtkTreeIter* iter, GtkTreeIter* parent, gint position, ... )gtk_tree_store_insert_with_values;
+	void function(GtkTreeStore* treeStore, GtkTreeIter* iter, GtkTreeIter* parent, gint position, gint* columns, GValue* values, gint nValues)gtk_tree_store_insert_with_valuesv;
+	void function(GtkTreeStore* treeStore, GtkTreeIter* iter, GtkTreeIter* parent)gtk_tree_store_prepend;
+	void function(GtkTreeStore* treeStore, GtkTreeIter* iter, GtkTreeIter* parent)gtk_tree_store_append;
+	gboolean function(GtkTreeStore* treeStore, GtkTreeIter* iter, GtkTreeIter* descendant)gtk_tree_store_is_ancestor;
+	gint function(GtkTreeStore* treeStore, GtkTreeIter* iter)gtk_tree_store_iter_depth;
+	void function(GtkTreeStore* treeStore)gtk_tree_store_clear;
+	gboolean function(GtkTreeStore* treeStore, GtkTreeIter* iter)gtk_tree_store_iter_is_valid;
+	void function(GtkTreeStore* treeStore, GtkTreeIter* parent, gint* newOrder)gtk_tree_store_reorder;
+	void function(GtkTreeStore* treeStore, GtkTreeIter* a, GtkTreeIter* b)gtk_tree_store_swap;
+	void function(GtkTreeStore* treeStore, GtkTreeIter* iter, GtkTreeIter* position)gtk_tree_store_move_before;
+	void function(GtkTreeStore* treeStore, GtkTreeIter* iter, GtkTreeIter* position)gtk_tree_store_move_after;
+	
+	// gtk.ComboBox
+	
+	GtkWidget* function()gtk_combo_box_new;
+	GtkWidget* function(GtkTreeModel* model)gtk_combo_box_new_with_model;
+	gint function(GtkComboBox* comboBox)gtk_combo_box_get_wrap_width;
+	void function(GtkComboBox* comboBox, gint width)gtk_combo_box_set_wrap_width;
+	gint function(GtkComboBox* comboBox)gtk_combo_box_get_row_span_column;
+	void function(GtkComboBox* comboBox, gint rowSpan)gtk_combo_box_set_row_span_column;
+	gint function(GtkComboBox* comboBox)gtk_combo_box_get_column_span_column;
+	void function(GtkComboBox* comboBox, gint columnSpan)gtk_combo_box_set_column_span_column;
+	gint function(GtkComboBox* comboBox)gtk_combo_box_get_active;
+	void function(GtkComboBox* comboBox, gint index)gtk_combo_box_set_active;
+	gboolean function(GtkComboBox* comboBox, GtkTreeIter* iter)gtk_combo_box_get_active_iter;
+	void function(GtkComboBox* comboBox, GtkTreeIter* iter)gtk_combo_box_set_active_iter;
+	GtkTreeModel* function(GtkComboBox* comboBox)gtk_combo_box_get_model;
+	void function(GtkComboBox* comboBox, GtkTreeModel* model)gtk_combo_box_set_model;
+	GtkWidget* function()gtk_combo_box_new_text;
+	void function(GtkComboBox* comboBox, gchar* text)gtk_combo_box_append_text;
+	void function(GtkComboBox* comboBox, gint position, gchar* text)gtk_combo_box_insert_text;
+	void function(GtkComboBox* comboBox, gchar* text)gtk_combo_box_prepend_text;
+	void function(GtkComboBox* comboBox, gint position)gtk_combo_box_remove_text;
+	gchar* function(GtkComboBox* comboBox)gtk_combo_box_get_active_text;
+	void function(GtkComboBox* comboBox)gtk_combo_box_popup;
+	void function(GtkComboBox* comboBox)gtk_combo_box_popdown;
+	AtkObject* function(GtkComboBox* comboBox)gtk_combo_box_get_popup_accessible;
+	GtkTreeViewRowSeparatorFunc function(GtkComboBox* comboBox)gtk_combo_box_get_row_separator_func;
+	void function(GtkComboBox* comboBox, GtkTreeViewRowSeparatorFunc func, gpointer data, GtkDestroyNotify destroy)gtk_combo_box_set_row_separator_func;
+	void function(GtkComboBox* comboBox, gboolean addTearoffs)gtk_combo_box_set_add_tearoffs;
+	gboolean function(GtkComboBox* comboBox)gtk_combo_box_get_add_tearoffs;
+	void function(GtkComboBox* comboBox, gchar* title)gtk_combo_box_set_title;
+	gchar* function(GtkComboBox* comboBox)gtk_combo_box_get_title;
+	void function(GtkComboBox* combo, gboolean focusOnClick)gtk_combo_box_set_focus_on_click;
+	gboolean function(GtkComboBox* combo)gtk_combo_box_get_focus_on_click;
+	
+	// gtk.ComboBoxEntry
+	
+	GtkWidget* function()gtk_combo_box_entry_new;
+	GtkWidget* function(GtkTreeModel* model, gint textColumn)gtk_combo_box_entry_new_with_model;
+	GtkWidget* function()gtk_combo_box_entry_new_text;
+	void function(GtkComboBoxEntry* entryBox, gint textColumn)gtk_combo_box_entry_set_text_column;
+	gint function(GtkComboBoxEntry* entryBox)gtk_combo_box_entry_get_text_column;
+	
+	// gtk.Menu
+	
+	GtkWidget* function()gtk_menu_new;
+	void function(GtkMenu* menu, GdkScreen* screen)gtk_menu_set_screen;
+	void function(GtkMenu* menu, GtkWidget* child, gint position)gtk_menu_reorder_child;
+	void function(GtkMenu* menu, GtkWidget* child, guint leftAttach, guint rightAttach, guint topAttach, guint bottomAttach)gtk_menu_attach;
+	void function(GtkMenu* menu, GtkWidget* parentMenuShell, GtkWidget* parentMenuItem, GtkMenuPositionFunc func, gpointer data, guint button, guint32 activateTime)gtk_menu_popup;
+	void function(GtkMenu* menu, GtkAccelGroup* accelGroup)gtk_menu_set_accel_group;
+	GtkAccelGroup* function(GtkMenu* menu)gtk_menu_get_accel_group;
+	void function(GtkMenu* menu, gchar* accelPath)gtk_menu_set_accel_path;
+	void function(GtkMenu* menu, gchar* title)gtk_menu_set_title;
+	gboolean function(GtkMenu* menu)gtk_menu_get_tearoff_state;
+	gchar* function(GtkMenu* menu)gtk_menu_get_title;
+	void function(GtkMenu* menu)gtk_menu_popdown;
+	void function(GtkMenu* menu)gtk_menu_reposition;
+	GtkWidget* function(GtkMenu* menu)gtk_menu_get_active;
+	void function(GtkMenu* menu, guint index)gtk_menu_set_active;
+	void function(GtkMenu* menu, gboolean tornOff)gtk_menu_set_tearoff_state;
+	void function(GtkMenu* menu, GtkWidget* attachWidget, GtkMenuDetachFunc detacher)gtk_menu_attach_to_widget;
+	void function(GtkMenu* menu)gtk_menu_detach;
+	GtkWidget* function(GtkMenu* menu)gtk_menu_get_attach_widget;
+	GList* function(GtkWidget* widget)gtk_menu_get_for_attach_widget;
+	void function(GtkMenu* menu, gint monitorNum)gtk_menu_set_monitor;
+	
+	// gtk.MenuBar
+	
+	GtkWidget* function()gtk_menu_bar_new;
+	void function(GtkMenuBar* menubar, GtkPackDirection packDir)gtk_menu_bar_set_pack_direction;
+	GtkPackDirection function(GtkMenuBar* menubar)gtk_menu_bar_get_pack_direction;
+	void function(GtkMenuBar* menubar, GtkPackDirection childPackDir)gtk_menu_bar_set_child_pack_direction;
+	GtkPackDirection function(GtkMenuBar* menubar)gtk_menu_bar_get_child_pack_direction;
+	
+	// gtk.MenuItem
+	
+	GtkWidget* function()gtk_menu_item_new;
+	GtkWidget* function(gchar* label)gtk_menu_item_new_with_label;
+	GtkWidget* function(gchar* label)gtk_menu_item_new_with_mnemonic;
+	void function(GtkMenuItem* menuItem, gboolean rightJustified)gtk_menu_item_set_right_justified;
+	void function(GtkMenuItem* menuItem, GtkWidget* submenu)gtk_menu_item_set_submenu;
+	void function(GtkMenuItem* menuItem, gchar* accelPath)gtk_menu_item_set_accel_path;
+	void function(GtkMenuItem* menuItem)gtk_menu_item_remove_submenu;
+	void function(GtkMenuItem* menuItem)gtk_menu_item_select;
+	void function(GtkMenuItem* menuItem)gtk_menu_item_deselect;
+	void function(GtkMenuItem* menuItem)gtk_menu_item_activate;
+	void function(GtkMenuItem* menuItem, gint* requisition)gtk_menu_item_toggle_size_request;
+	void function(GtkMenuItem* menuItem, gint allocation)gtk_menu_item_toggle_size_allocate;
+	gboolean function(GtkMenuItem* menuItem)gtk_menu_item_get_right_justified;
+	GtkWidget* function(GtkMenuItem* menuItem)gtk_menu_item_get_submenu;
+	
+	// gtk.ImageMenuItem
+	
+	void function(GtkImageMenuItem* imageMenuItem, GtkWidget* image)gtk_image_menu_item_set_image;
+	GtkWidget* function(GtkImageMenuItem* imageMenuItem)gtk_image_menu_item_get_image;
+	GtkWidget* function()gtk_image_menu_item_new;
+	GtkWidget* function(gchar* stockId, GtkAccelGroup* accelGroup)gtk_image_menu_item_new_from_stock;
+	GtkWidget* function(gchar* label)gtk_image_menu_item_new_with_label;
+	GtkWidget* function(gchar* label)gtk_image_menu_item_new_with_mnemonic;
+	
+	// gtk.RadioMenuItem
+	
+	GtkWidget* function(GSList* group)gtk_radio_menu_item_new;
+	GtkWidget* function(GSList* group, gchar* label)gtk_radio_menu_item_new_with_label;
+	GtkWidget* function(GSList* group, gchar* label)gtk_radio_menu_item_new_with_mnemonic;
+	GtkWidget* function(GtkRadioMenuItem* group)gtk_radio_menu_item_new_from_widget;
+	GtkWidget* function(GtkRadioMenuItem* group, gchar* label)gtk_radio_menu_item_new_with_label_from_widget;
+	GtkWidget* function(GtkRadioMenuItem* group, gchar* label)gtk_radio_menu_item_new_with_mnemonic_from_widget;
+	void function(GtkRadioMenuItem* radioMenuItem, GSList* group)gtk_radio_menu_item_set_group;
+	GSList* function(GtkRadioMenuItem* radioMenuItem)gtk_radio_menu_item_get_group;
+	
+	// gtk.CheckMenuItem
+	
+	GtkWidget* function()gtk_check_menu_item_new;
+	GtkWidget* function(gchar* label)gtk_check_menu_item_new_with_label;
+	GtkWidget* function(gchar* label)gtk_check_menu_item_new_with_mnemonic;
+	gboolean function(GtkCheckMenuItem* checkMenuItem)gtk_check_menu_item_get_active;
+	void function(GtkCheckMenuItem* checkMenuItem, gboolean isActive)gtk_check_menu_item_set_active;
+	void function(GtkCheckMenuItem* menuItem, gboolean always)gtk_check_menu_item_set_show_toggle;
+	void function(GtkCheckMenuItem* checkMenuItem)gtk_check_menu_item_toggled;
+	gboolean function(GtkCheckMenuItem* checkMenuItem)gtk_check_menu_item_get_inconsistent;
+	void function(GtkCheckMenuItem* checkMenuItem, gboolean setting)gtk_check_menu_item_set_inconsistent;
+	void function(GtkCheckMenuItem* checkMenuItem, gboolean drawAsRadio)gtk_check_menu_item_set_draw_as_radio;
+	gboolean function(GtkCheckMenuItem* checkMenuItem)gtk_check_menu_item_get_draw_as_radio;
+	
+	// gtk.SeparatorMenuItem
+	
+	GtkWidget* function()gtk_separator_menu_item_new;
+	
+	// gtk.TearoffMenuItem
+	
+	GtkWidget* function()gtk_tearoff_menu_item_new;
+	
+	// gtk.Toolbar
+	
+	GtkWidget* function()gtk_toolbar_new;
+	void function(GtkToolbar* toolbar, GtkToolItem* item, gint pos)gtk_toolbar_insert;
+	gint function(GtkToolbar* toolbar, GtkToolItem* item)gtk_toolbar_get_item_index;
+	gint function(GtkToolbar* toolbar)gtk_toolbar_get_n_items;
+	GtkToolItem* function(GtkToolbar* toolbar, gint n)gtk_toolbar_get_nth_item;
+	gint function(GtkToolbar* toolbar, gint x, gint y)gtk_toolbar_get_drop_index;
+	void function(GtkToolbar* toolbar, GtkToolItem* toolItem, gint index)gtk_toolbar_set_drop_highlight_item;
+	void function(GtkToolbar* toolbar, gboolean showArrow)gtk_toolbar_set_show_arrow;
+	void function(GtkToolbar* toolbar, GtkOrientation orientation)gtk_toolbar_set_orientation;
+	void function(GtkToolbar* toolbar, gboolean enable)gtk_toolbar_set_tooltips;
+	void function(GtkToolbar* toolbar)gtk_toolbar_unset_icon_size;
+	gboolean function(GtkToolbar* toolbar)gtk_toolbar_get_show_arrow;
+	GtkOrientation function(GtkToolbar* toolbar)gtk_toolbar_get_orientation;
+	GtkToolbarStyle function(GtkToolbar* toolbar)gtk_toolbar_get_style;
+	GtkIconSize function(GtkToolbar* toolbar)gtk_toolbar_get_icon_size;
+	gboolean function(GtkToolbar* toolbar)gtk_toolbar_get_tooltips;
+	GtkReliefStyle function(GtkToolbar* toolbar)gtk_toolbar_get_relief_style;
+	GtkWidget* function(GtkToolbar* toolbar, char* text, char* tooltipText, char* tooltipPrivateText, GtkWidget* icon, GtkSignalFunc callback, gpointer userData)gtk_toolbar_append_item;
+	GtkWidget* function(GtkToolbar* toolbar, char* text, char* tooltipText, char* tooltipPrivateText, GtkWidget* icon, GtkSignalFunc callback, gpointer userData)gtk_toolbar_prepend_item;
+	GtkWidget* function(GtkToolbar* toolbar, char* text, char* tooltipText, char* tooltipPrivateText, GtkWidget* icon, GtkSignalFunc callback, gpointer userData, gint position)gtk_toolbar_insert_item;
+	void function(GtkToolbar* toolbar)gtk_toolbar_append_space;
+	void function(GtkToolbar* toolbar)gtk_toolbar_prepend_space;
+	void function(GtkToolbar* toolbar, gint position)gtk_toolbar_insert_space;
+	GtkWidget* function(GtkToolbar* toolbar, GtkToolbarChildType type, GtkWidget* widget, char* text, char* tooltipText, char* tooltipPrivateText, GtkWidget* icon, GtkSignalFunc callback, gpointer userData)gtk_toolbar_append_element;
+	GtkWidget* function(GtkToolbar* toolbar, GtkToolbarChildType type, GtkWidget* widget, char* text, char* tooltipText, char* tooltipPrivateText, GtkWidget* icon, GtkSignalFunc callback, gpointer userData)gtk_toolbar_prepend_element;
+	GtkWidget* function(GtkToolbar* toolbar, GtkToolbarChildType type, GtkWidget* widget, char* text, char* tooltipText, char* tooltipPrivateText, GtkWidget* icon, GtkSignalFunc callback, gpointer userData, gint position)gtk_toolbar_insert_element;
+	void function(GtkToolbar* toolbar, GtkWidget* widget, char* tooltipText, char* tooltipPrivateText)gtk_toolbar_append_widget;
+	void function(GtkToolbar* toolbar, GtkWidget* widget, char* tooltipText, char* tooltipPrivateText)gtk_toolbar_prepend_widget;
+	void function(GtkToolbar* toolbar, GtkWidget* widget, char* tooltipText, char* tooltipPrivateText, gint position)gtk_toolbar_insert_widget;
+	void function(GtkToolbar* toolbar, GtkToolbarStyle style)gtk_toolbar_set_style;
+	GtkWidget* function(GtkToolbar* toolbar, gchar* stockId, char* tooltipText, char* tooltipPrivateText, GtkSignalFunc callback, gpointer userData, gint position)gtk_toolbar_insert_stock;
+	void function(GtkToolbar* toolbar, GtkIconSize iconSize)gtk_toolbar_set_icon_size;
+	void function(GtkToolbar* toolbar, gint position)gtk_toolbar_remove_space;
+	void function(GtkToolbar* toolbar)gtk_toolbar_unset_style;
+	
+	// gtk.ToolItem
+	
+	GtkToolItem* function()gtk_tool_item_new;
+	void function(GtkToolItem* toolItem, gboolean homogeneous)gtk_tool_item_set_homogeneous;
+	gboolean function(GtkToolItem* toolItem)gtk_tool_item_get_homogeneous;
+	void function(GtkToolItem* toolItem, gboolean expand)gtk_tool_item_set_expand;
+	gboolean function(GtkToolItem* toolItem)gtk_tool_item_get_expand;
+	void function(GtkToolItem* toolItem, GtkTooltips* tooltips, gchar* tipText, gchar* tipPrivate)gtk_tool_item_set_tooltip;
+	void function(GtkToolItem* toolItem, gchar* text)gtk_tool_item_set_tooltip_text;
+	void function(GtkToolItem* toolItem, gchar* markup)gtk_tool_item_set_tooltip_markup;
+	void function(GtkToolItem* toolItem, gboolean useDragWindow)gtk_tool_item_set_use_drag_window;
+	gboolean function(GtkToolItem* toolItem)gtk_tool_item_get_use_drag_window;
+	void function(GtkToolItem* toolItem, gboolean visibleHorizontal)gtk_tool_item_set_visible_horizontal;
+	gboolean function(GtkToolItem* toolItem)gtk_tool_item_get_visible_horizontal;
+	void function(GtkToolItem* toolItem, gboolean visibleVertical)gtk_tool_item_set_visible_vertical;
+	gboolean function(GtkToolItem* toolItem)gtk_tool_item_get_visible_vertical;
+	void function(GtkToolItem* toolItem, gboolean isImportant)gtk_tool_item_set_is_important;
+	gboolean function(GtkToolItem* toolItem)gtk_tool_item_get_is_important;
+	GtkIconSize function(GtkToolItem* toolItem)gtk_tool_item_get_icon_size;
+	GtkOrientation function(GtkToolItem* toolItem)gtk_tool_item_get_orientation;
+	GtkToolbarStyle function(GtkToolItem* toolItem)gtk_tool_item_get_toolbar_style;
+	GtkReliefStyle function(GtkToolItem* toolItem)gtk_tool_item_get_relief_style;
+	GtkWidget* function(GtkToolItem* toolItem)gtk_tool_item_retrieve_proxy_menu_item;
+	GtkWidget* function(GtkToolItem* toolItem, gchar* menuItemId)gtk_tool_item_get_proxy_menu_item;
+	void function(GtkToolItem* toolItem, gchar* menuItemId, GtkWidget* menuItem)gtk_tool_item_set_proxy_menu_item;
+	void function(GtkToolItem* toolItem)gtk_tool_item_rebuild_menu;
+	
+	// gtk.SeparatorToolItem
+	
+	GtkToolItem* function()gtk_separator_tool_item_new;
+	void function(GtkSeparatorToolItem* item, gboolean draw)gtk_separator_tool_item_set_draw;
+	gboolean function(GtkSeparatorToolItem* item)gtk_separator_tool_item_get_draw;
+	
+	// gtk.ToolButton
+	
+	GtkToolItem* function(GtkWidget* iconWidget, gchar* label)gtk_tool_button_new;
+	GtkToolItem* function(gchar* stockId)gtk_tool_button_new_from_stock;
+	void function(GtkToolButton* button, gchar* label)gtk_tool_button_set_label;
+	gchar* function(GtkToolButton* button)gtk_tool_button_get_label;
+	void function(GtkToolButton* button, gboolean useUnderline)gtk_tool_button_set_use_underline;
+	gboolean function(GtkToolButton* button)gtk_tool_button_get_use_underline;
+	void function(GtkToolButton* button, gchar* stockId)gtk_tool_button_set_stock_id;
+	gchar* function(GtkToolButton* button)gtk_tool_button_get_stock_id;
+	void function(GtkToolButton* button, gchar* iconName)gtk_tool_button_set_icon_name;
+	gchar* function(GtkToolButton* button)gtk_tool_button_get_icon_name;
+	void function(GtkToolButton* button, GtkWidget* iconWidget)gtk_tool_button_set_icon_widget;
+	GtkWidget* function(GtkToolButton* button)gtk_tool_button_get_icon_widget;
+	void function(GtkToolButton* button, GtkWidget* labelWidget)gtk_tool_button_set_label_widget;
+	GtkWidget* function(GtkToolButton* button)gtk_tool_button_get_label_widget;
+	
+	// gtk.MenuToolButton
+	
+	GtkToolItem* function(GtkWidget* iconWidget, gchar* label)gtk_menu_tool_button_new;
+	GtkToolItem* function(gchar* stockId)gtk_menu_tool_button_new_from_stock;
+	void function(GtkMenuToolButton* button, GtkWidget* menu)gtk_menu_tool_button_set_menu;
+	GtkWidget* function(GtkMenuToolButton* button)gtk_menu_tool_button_get_menu;
+	void function(GtkMenuToolButton* button, GtkTooltips* tooltips, gchar* tipText, gchar* tipPrivate)gtk_menu_tool_button_set_arrow_tooltip;
+	void function(GtkMenuToolButton* button, gchar* text)gtk_menu_tool_button_set_arrow_tooltip_text;
+	void function(GtkMenuToolButton* button, gchar* markup)gtk_menu_tool_button_set_arrow_tooltip_markup;
+	
+	// gtk.ToggleToolButton
+	
+	GtkToolItem* function()gtk_toggle_tool_button_new;
+	GtkToolItem* function(gchar* stockId)gtk_toggle_tool_button_new_from_stock;
+	void function(GtkToggleToolButton* button, gboolean isActive)gtk_toggle_tool_button_set_active;
+	gboolean function(GtkToggleToolButton* button)gtk_toggle_tool_button_get_active;
+	
+	// gtk.RadioToolButton
+	
+	GtkToolItem* function(GSList* group)gtk_radio_tool_button_new;
+	GtkToolItem* function(GSList* group, gchar* stockId)gtk_radio_tool_button_new_from_stock;
+	GtkToolItem* function(GtkRadioToolButton* group)gtk_radio_tool_button_new_from_widget;
+	GtkToolItem* function(GtkRadioToolButton* group, gchar* stockId)gtk_radio_tool_button_new_with_stock_from_widget;
+	GSList* function(GtkRadioToolButton* button)gtk_radio_tool_button_get_group;
+	void function(GtkRadioToolButton* button, GSList* group)gtk_radio_tool_button_set_group;
+	
+	// gtk.UIManager
+	
+	GtkUIManager* function()gtk_ui_manager_new;
+	void function(GtkUIManager* self, gboolean addTearoffs)gtk_ui_manager_set_add_tearoffs;
+	gboolean function(GtkUIManager* self)gtk_ui_manager_get_add_tearoffs;
+	void function(GtkUIManager* self, GtkActionGroup* actionGroup, gint pos)gtk_ui_manager_insert_action_group;
+	void function(GtkUIManager* self, GtkActionGroup* actionGroup)gtk_ui_manager_remove_action_group;
+	GList* function(GtkUIManager* self)gtk_ui_manager_get_action_groups;
+	GtkAccelGroup* function(GtkUIManager* self)gtk_ui_manager_get_accel_group;
+	GtkWidget* function(GtkUIManager* self, gchar* path)gtk_ui_manager_get_widget;
+	GSList* function(GtkUIManager* self, GtkUIManagerItemType types)gtk_ui_manager_get_toplevels;
+	GtkAction* function(GtkUIManager* self, gchar* path)gtk_ui_manager_get_action;
+	guint function(GtkUIManager* self, gchar* buffer, gssize length, GError** error)gtk_ui_manager_add_ui_from_string;
+	guint function(GtkUIManager* self, gchar* filename, GError** error)gtk_ui_manager_add_ui_from_file;
+	guint function(GtkUIManager* self)gtk_ui_manager_new_merge_id;
+	void function(GtkUIManager* self, guint mergeId, gchar* path, gchar* name, gchar* action, GtkUIManagerItemType type, gboolean top)gtk_ui_manager_add_ui;
+	void function(GtkUIManager* self, guint mergeId)gtk_ui_manager_remove_ui;
+	gchar* function(GtkUIManager* self)gtk_ui_manager_get_ui;
+	void function(GtkUIManager* self)gtk_ui_manager_ensure_update;
+	
+	// gtk.ActionGroup
+	
+	GtkActionGroup* function(gchar* name)gtk_action_group_new;
+	gchar* function(GtkActionGroup* actionGroup)gtk_action_group_get_name;
+	gboolean function(GtkActionGroup* actionGroup)gtk_action_group_get_sensitive;
+	void function(GtkActionGroup* actionGroup, gboolean sensitive)gtk_action_group_set_sensitive;
+	gboolean function(GtkActionGroup* actionGroup)gtk_action_group_get_visible;
+	void function(GtkActionGroup* actionGroup, gboolean visible)gtk_action_group_set_visible;
+	GtkAction* function(GtkActionGroup* actionGroup, gchar* actionName)gtk_action_group_get_action;
+	GList* function(GtkActionGroup* actionGroup)gtk_action_group_list_actions;
+	void function(GtkActionGroup* actionGroup, GtkAction* action)gtk_action_group_add_action;
+	void function(GtkActionGroup* actionGroup, GtkAction* action, gchar* accelerator)gtk_action_group_add_action_with_accel;
+	void function(GtkActionGroup* actionGroup, GtkAction* action)gtk_action_group_remove_action;
+	void function(GtkActionGroup* actionGroup, GtkActionEntry* entries, guint nEntries, gpointer userData)gtk_action_group_add_actions;
+	void function(GtkActionGroup* actionGroup, GtkActionEntry* entries, guint nEntries, gpointer userData, GDestroyNotify destroy)gtk_action_group_add_actions_full;
+	void function(GtkActionGroup* actionGroup, GtkToggleActionEntry* entries, guint nEntries, gpointer userData)gtk_action_group_add_toggle_actions;
+	void function(GtkActionGroup* actionGroup, GtkToggleActionEntry* entries, guint nEntries, gpointer userData, GDestroyNotify destroy)gtk_action_group_add_toggle_actions_full;
+	void function(GtkActionGroup* actionGroup, GtkRadioActionEntry* entries, guint nEntries, gint value, GCallback onChange, gpointer userData)gtk_action_group_add_radio_actions;
+	void function(GtkActionGroup* actionGroup, GtkRadioActionEntry* entries, guint nEntries, gint value, GCallback onChange, gpointer userData, GDestroyNotify destroy)gtk_action_group_add_radio_actions_full;
+	void function(GtkActionGroup* actionGroup, GtkTranslateFunc func, gpointer data, GtkDestroyNotify notify)gtk_action_group_set_translate_func;
+	void function(GtkActionGroup* actionGroup, gchar* domain)gtk_action_group_set_translation_domain;
+	gchar* function(GtkActionGroup* actionGroup, gchar* string)gtk_action_group_translate_string;
+	
+	// gtk.Action
+	
+	GtkAction* function(gchar* name, gchar* label, gchar* tooltip, gchar* stockId)gtk_action_new;
+	gchar* function(GtkAction* action)gtk_action_get_name;
+	gboolean function(GtkAction* action)gtk_action_is_sensitive;
+	gboolean function(GtkAction* action)gtk_action_get_sensitive;
+	void function(GtkAction* action, gboolean sensitive)gtk_action_set_sensitive;
+	gboolean function(GtkAction* action)gtk_action_is_visible;
+	gboolean function(GtkAction* action)gtk_action_get_visible;
+	void function(GtkAction* action, gboolean visible)gtk_action_set_visible;
+	void function(GtkAction* action)gtk_action_activate;
+	GtkWidget* function(GtkAction* action, GtkIconSize iconSize)gtk_action_create_icon;
+	GtkWidget* function(GtkAction* action)gtk_action_create_menu_item;
+	GtkWidget* function(GtkAction* action)gtk_action_create_tool_item;
+	GtkWidget* function(GtkAction* action)gtk_action_create_menu;
+	void function(GtkAction* action, GtkWidget* proxy)gtk_action_connect_proxy;
+	void function(GtkAction* action, GtkWidget* proxy)gtk_action_disconnect_proxy;
+	GSList* function(GtkAction* action)gtk_action_get_proxies;
+	void function(GtkAction* action)gtk_action_connect_accelerator;
+	void function(GtkAction* action)gtk_action_disconnect_accelerator;
+	void function(GtkAction* action, GtkWidget* proxy)gtk_action_block_activate_from;
+	void function(GtkAction* action, GtkWidget* proxy)gtk_action_unblock_activate_from;
+	gchar* function(GtkAction* action)gtk_action_get_accel_path;
+	void function(GtkAction* action, gchar* accelPath)gtk_action_set_accel_path;
+	GClosure* function(GtkAction* action)gtk_action_get_accel_closure;
+	void function(GtkAction* action, GtkAccelGroup* accelGroup)gtk_action_set_accel_group;
+	
+	// gtk.ToggleAction
+	
+	GtkToggleAction* function(gchar* name, gchar* label, gchar* tooltip, gchar* stockId)gtk_toggle_action_new;
+	void function(GtkToggleAction* action)gtk_toggle_action_toggled;
+	void function(GtkToggleAction* action, gboolean isActive)gtk_toggle_action_set_active;
+	gboolean function(GtkToggleAction* action)gtk_toggle_action_get_active;
+	void function(GtkToggleAction* action, gboolean drawAsRadio)gtk_toggle_action_set_draw_as_radio;
+	gboolean function(GtkToggleAction* action)gtk_toggle_action_get_draw_as_radio;
+	
+	// gtk.RadioAction
+	
+	GtkRadioAction* function(gchar* name, gchar* label, gchar* tooltip, gchar* stockId, gint value)gtk_radio_action_new;
+	GSList* function(GtkRadioAction* action)gtk_radio_action_get_group;
+	void function(GtkRadioAction* action, GSList* group)gtk_radio_action_set_group;
+	gint function(GtkRadioAction* action)gtk_radio_action_get_current_value;
+	void function(GtkRadioAction* action, gint currentValue)gtk_radio_action_set_current_value;
+	
+	// gtk.RecentAction
+	
+	GtkAction* function(gchar* name, gchar* label, gchar* tooltip, gchar* stockId)gtk_recent_action_new;
+	GtkAction* function(gchar* name, gchar* label, gchar* tooltip, gchar* stockId, GtkRecentManager* manager)gtk_recent_action_new_for_manager;
+	gboolean function(GtkRecentAction* action)gtk_recent_action_get_show_numbers;
+	void function(GtkRecentAction* action, gboolean showNumbers)gtk_recent_action_set_show_numbers;
+	
+	// gtk.ColorButton
+	
+	GtkWidget* function()gtk_color_button_new;
+	GtkWidget* function(GdkColor* color)gtk_color_button_new_with_color;
+	void function(GtkColorButton* colorButton, GdkColor* color)gtk_color_button_set_color;
+	void function(GtkColorButton* colorButton, GdkColor* color)gtk_color_button_get_color;
+	void function(GtkColorButton* colorButton, guint16 alpha)gtk_color_button_set_alpha;
+	guint16 function(GtkColorButton* colorButton)gtk_color_button_get_alpha;
+	void function(GtkColorButton* colorButton, gboolean useAlpha)gtk_color_button_set_use_alpha;
+	gboolean function(GtkColorButton* colorButton)gtk_color_button_get_use_alpha;
+	void function(GtkColorButton* colorButton, gchar* title)gtk_color_button_set_title;
+	gchar* function(GtkColorButton* colorButton)gtk_color_button_get_title;
+	
+	// gtk.ColorSelection
+	
+	GtkWidget* function()gtk_color_selection_new;
+	void function(GtkColorSelection* colorsel, GtkUpdateType policy)gtk_color_selection_set_update_policy;
+	void function(GtkColorSelection* colorsel, gboolean hasOpacity)gtk_color_selection_set_has_opacity_control;
+	gboolean function(GtkColorSelection* colorsel)gtk_color_selection_get_has_opacity_control;
+	void function(GtkColorSelection* colorsel, gboolean hasPalette)gtk_color_selection_set_has_palette;
+	gboolean function(GtkColorSelection* colorsel)gtk_color_selection_get_has_palette;
+	guint16 function(GtkColorSelection* colorsel)gtk_color_selection_get_current_alpha;
+	void function(GtkColorSelection* colorsel, guint16 alpha)gtk_color_selection_set_current_alpha;
+	void function(GtkColorSelection* colorsel, GdkColor* color)gtk_color_selection_get_current_color;
+	void function(GtkColorSelection* colorsel, GdkColor* color)gtk_color_selection_set_current_color;
+	guint16 function(GtkColorSelection* colorsel)gtk_color_selection_get_previous_alpha;
+	void function(GtkColorSelection* colorsel, guint16 alpha)gtk_color_selection_set_previous_alpha;
+	void function(GtkColorSelection* colorsel, GdkColor* color)gtk_color_selection_get_previous_color;
+	void function(GtkColorSelection* colorsel, GdkColor* color)gtk_color_selection_set_previous_color;
+	gboolean function(GtkColorSelection* colorsel)gtk_color_selection_is_adjusting;
+	gboolean function(gchar* str, GdkColor** colors, gint* nColors)gtk_color_selection_palette_from_string;
+	gchar* function(GdkColor* colors, gint nColors)gtk_color_selection_palette_to_string;
+	GtkColorSelectionChangePaletteFunc function(GtkColorSelectionChangePaletteFunc func)gtk_color_selection_set_change_palette_hook;
+	GtkColorSelectionChangePaletteWithScreenFunc function(GtkColorSelectionChangePaletteWithScreenFunc func)gtk_color_selection_set_change_palette_with_screen_hook;
+	void function(GtkColorSelection* colorsel, gdouble* color)gtk_color_selection_set_color;
+	void function(GtkColorSelection* colorsel, gdouble* color)gtk_color_selection_get_color;
+	
+	// gtk.ColorSelectionDialog
+	
+	GtkWidget* function(gchar* title)gtk_color_selection_dialog_new;
+	
+	// gtk.FileChooser
+	
+	void function(GtkFileChooser* chooser, GtkFileChooserAction action)gtk_file_chooser_set_action;
+	GtkFileChooserAction function(GtkFileChooser* chooser)gtk_file_chooser_get_action;
+	void function(GtkFileChooser* chooser, gboolean localOnly)gtk_file_chooser_set_local_only;
+	gboolean function(GtkFileChooser* chooser)gtk_file_chooser_get_local_only;
+	void function(GtkFileChooser* chooser, gboolean selectMultiple)gtk_file_chooser_set_select_multiple;
+	gboolean function(GtkFileChooser* chooser)gtk_file_chooser_get_select_multiple;
+	void function(GtkFileChooser* chooser, gboolean showHidden)gtk_file_chooser_set_show_hidden;
+	gboolean function(GtkFileChooser* chooser)gtk_file_chooser_get_show_hidden;
+	void function(GtkFileChooser* chooser, gboolean doOverwriteConfirmation)gtk_file_chooser_set_do_overwrite_confirmation;
+	gboolean function(GtkFileChooser* chooser)gtk_file_chooser_get_do_overwrite_confirmation;
+	void function(GtkFileChooser* chooser, gchar* name)gtk_file_chooser_set_current_name;
+	gchar* function(GtkFileChooser* chooser)gtk_file_chooser_get_filename;
+	gboolean function(GtkFileChooser* chooser, char* filename)gtk_file_chooser_set_filename;
+	gboolean function(GtkFileChooser* chooser, char* filename)gtk_file_chooser_select_filename;
+	void function(GtkFileChooser* chooser, char* filename)gtk_file_chooser_unselect_filename;
+	void function(GtkFileChooser* chooser)gtk_file_chooser_select_all;
+	void function(GtkFileChooser* chooser)gtk_file_chooser_unselect_all;
+	GSList* function(GtkFileChooser* chooser)gtk_file_chooser_get_filenames;
+	gboolean function(GtkFileChooser* chooser, gchar* filename)gtk_file_chooser_set_current_folder;
+	gchar* function(GtkFileChooser* chooser)gtk_file_chooser_get_current_folder;
+	gchar* function(GtkFileChooser* chooser)gtk_file_chooser_get_uri;
+	gboolean function(GtkFileChooser* chooser, char* uri)gtk_file_chooser_set_uri;
+	gboolean function(GtkFileChooser* chooser, char* uri)gtk_file_chooser_select_uri;
+	void function(GtkFileChooser* chooser, char* uri)gtk_file_chooser_unselect_uri;
+	GSList* function(GtkFileChooser* chooser)gtk_file_chooser_get_uris;
+	gboolean function(GtkFileChooser* chooser, gchar* uri)gtk_file_chooser_set_current_folder_uri;
+	gchar* function(GtkFileChooser* chooser)gtk_file_chooser_get_current_folder_uri;
+	void function(GtkFileChooser* chooser, GtkWidget* previewWidget)gtk_file_chooser_set_preview_widget;
+	GtkWidget* function(GtkFileChooser* chooser)gtk_file_chooser_get_preview_widget;
+	void function(GtkFileChooser* chooser, gboolean active)gtk_file_chooser_set_preview_widget_active;
+	gboolean function(GtkFileChooser* chooser)gtk_file_chooser_get_preview_widget_active;
+	void function(GtkFileChooser* chooser, gboolean useLabel)gtk_file_chooser_set_use_preview_label;
+	gboolean function(GtkFileChooser* chooser)gtk_file_chooser_get_use_preview_label;
+	char* function(GtkFileChooser* chooser)gtk_file_chooser_get_preview_filename;
+	char* function(GtkFileChooser* chooser)gtk_file_chooser_get_preview_uri;
+	void function(GtkFileChooser* chooser, GtkWidget* extraWidget)gtk_file_chooser_set_extra_widget;
+	GtkWidget* function(GtkFileChooser* chooser)gtk_file_chooser_get_extra_widget;
+	void function(GtkFileChooser* chooser, GtkFileFilter* filter)gtk_file_chooser_add_filter;
+	void function(GtkFileChooser* chooser, GtkFileFilter* filter)gtk_file_chooser_remove_filter;
+	GSList* function(GtkFileChooser* chooser)gtk_file_chooser_list_filters;
+	void function(GtkFileChooser* chooser, GtkFileFilter* filter)gtk_file_chooser_set_filter;
+	GtkFileFilter* function(GtkFileChooser* chooser)gtk_file_chooser_get_filter;
+	gboolean function(GtkFileChooser* chooser, char* folder, GError** error)gtk_file_chooser_add_shortcut_folder;
+	gboolean function(GtkFileChooser* chooser, char* folder, GError** error)gtk_file_chooser_remove_shortcut_folder;
+	GSList* function(GtkFileChooser* chooser)gtk_file_chooser_list_shortcut_folders;
+	gboolean function(GtkFileChooser* chooser, char* uri, GError** error)gtk_file_chooser_add_shortcut_folder_uri;
+	gboolean function(GtkFileChooser* chooser, char* uri, GError** error)gtk_file_chooser_remove_shortcut_folder_uri;
+	GSList* function(GtkFileChooser* chooser)gtk_file_chooser_list_shortcut_folder_uris;
+	
+	// gtk.FileChooserButton
+	
+	GtkWidget* function(gchar* title, GtkFileChooserAction action)gtk_file_chooser_button_new;
+	GtkWidget* function(gchar* title, GtkFileChooserAction action, gchar* backend)gtk_file_chooser_button_new_with_backend;
+	GtkWidget* function(GtkWidget* dialog)gtk_file_chooser_button_new_with_dialog;
+	gchar* function(GtkFileChooserButton* button)gtk_file_chooser_button_get_title;
+	void function(GtkFileChooserButton* button, gchar* title)gtk_file_chooser_button_set_title;
+	gint function(GtkFileChooserButton* button)gtk_file_chooser_button_get_width_chars;
+	void function(GtkFileChooserButton* button, gint nChars)gtk_file_chooser_button_set_width_chars;
+	gboolean function(GtkFileChooserButton* button)gtk_file_chooser_button_get_focus_on_click;
+	void function(GtkFileChooserButton* button, gboolean focusOnClick)gtk_file_chooser_button_set_focus_on_click;
+	
+	// gtk.FileChooserDialog
+	
+	GtkWidget* function(gchar* title, GtkWindow* parent, GtkFileChooserAction action, gchar* firstButtonText, ... )gtk_file_chooser_dialog_new;
+	GtkWidget* function(gchar* title, GtkWindow* parent, GtkFileChooserAction action, gchar* backend, gchar* firstButtonText, ... )gtk_file_chooser_dialog_new_with_backend;
+	
+	// gtk.FileChooserWidget
+	
+	GtkWidget* function(GtkFileChooserAction action)gtk_file_chooser_widget_new;
+	GtkWidget* function(GtkFileChooserAction action, gchar* backend)gtk_file_chooser_widget_new_with_backend;
+	
+	// gtk.FileFilter
+	
+	GtkFileFilter* function()gtk_file_filter_new;
+	void function(GtkFileFilter* filter, gchar* name)gtk_file_filter_set_name;
+	gchar* function(GtkFileFilter* filter)gtk_file_filter_get_name;
+	void function(GtkFileFilter* filter, gchar* mimeType)gtk_file_filter_add_mime_type;
+	void function(GtkFileFilter* filter, gchar* pattern)gtk_file_filter_add_pattern;
+	void function(GtkFileFilter* filter)gtk_file_filter_add_pixbuf_formats;
+	void function(GtkFileFilter* filter, GtkFileFilterFlags needed, GtkFileFilterFunc func, gpointer data, GDestroyNotify notify)gtk_file_filter_add_custom;
+	GtkFileFilterFlags function(GtkFileFilter* filter)gtk_file_filter_get_needed;
+	gboolean function(GtkFileFilter* filter, GtkFileFilterInfo* filterInfo)gtk_file_filter_filter;
+	
+	// gtk.FontButton
+	
+	GtkWidget* function()gtk_font_button_new;
+	GtkWidget* function(gchar* fontname)gtk_font_button_new_with_font;
+	gboolean function(GtkFontButton* fontButton, gchar* fontname)gtk_font_button_set_font_name;
+	gchar* function(GtkFontButton* fontButton)gtk_font_button_get_font_name;
+	void function(GtkFontButton* fontButton, gboolean showStyle)gtk_font_button_set_show_style;
+	gboolean function(GtkFontButton* fontButton)gtk_font_button_get_show_style;
+	void function(GtkFontButton* fontButton, gboolean showSize)gtk_font_button_set_show_size;
+	gboolean function(GtkFontButton* fontButton)gtk_font_button_get_show_size;
+	void function(GtkFontButton* fontButton, gboolean useFont)gtk_font_button_set_use_font;
+	gboolean function(GtkFontButton* fontButton)gtk_font_button_get_use_font;
+	void function(GtkFontButton* fontButton, gboolean useSize)gtk_font_button_set_use_size;
+	gboolean function(GtkFontButton* fontButton)gtk_font_button_get_use_size;
+	void function(GtkFontButton* fontButton, gchar* title)gtk_font_button_set_title;
+	gchar* function(GtkFontButton* fontButton)gtk_font_button_get_title;
+	
+	// gtk.FontSelection
+	
+	GtkWidget* function()gtk_font_selection_new;
+	GdkFont* function(GtkFontSelection* fontsel)gtk_font_selection_get_font;
+	gchar* function(GtkFontSelection* fontsel)gtk_font_selection_get_font_name;
+	gboolean function(GtkFontSelection* fontsel, gchar* fontname)gtk_font_selection_set_font_name;
+	gchar* function(GtkFontSelection* fontsel)gtk_font_selection_get_preview_text;
+	void function(GtkFontSelection* fontsel, gchar* text)gtk_font_selection_set_preview_text;
+	
+	// gtk.FontSelectionDialog
+	
+	GtkWidget* function(gchar* title)gtk_font_selection_dialog_new;
+	GdkFont* function(GtkFontSelectionDialog* fsd)gtk_font_selection_dialog_get_font;
+	gchar* function(GtkFontSelectionDialog* fsd)gtk_font_selection_dialog_get_font_name;
+	gboolean function(GtkFontSelectionDialog* fsd, gchar* fontname)gtk_font_selection_dialog_set_font_name;
+	gchar* function(GtkFontSelectionDialog* fsd)gtk_font_selection_dialog_get_preview_text;
+	void function(GtkFontSelectionDialog* fsd, gchar* text)gtk_font_selection_dialog_set_preview_text;
+	
+	// gtk.InputDialog
+	
+	GtkWidget* function()gtk_input_dialog_new;
+	
+	// gtk.Alignment
+	
+	GtkWidget* function(gfloat xalign, gfloat yalign, gfloat xscale, gfloat yscale)gtk_alignment_new;
+	void function(GtkAlignment* alignment, gfloat xalign, gfloat yalign, gfloat xscale, gfloat yscale)gtk_alignment_set;
+	void function(GtkAlignment* alignment, guint* paddingTop, guint* paddingBottom, guint* paddingLeft, guint* paddingRight)gtk_alignment_get_padding;
+	void function(GtkAlignment* alignment, guint paddingTop, guint paddingBottom, guint paddingLeft, guint paddingRight)gtk_alignment_set_padding;
+	
+	// gtk.AspectFrame
+	
+	GtkWidget* function(gchar* label, gfloat xalign, gfloat yalign, gfloat ratio, gboolean obeyChild)gtk_aspect_frame_new;
+	void function(GtkAspectFrame* aspectFrame, gfloat xalign, gfloat yalign, gfloat ratio, gboolean obeyChild)gtk_aspect_frame_set;
+	
+	// gtk.HBox
+	
+	GtkWidget* function(gboolean homogeneous, gint spacing)gtk_hbox_new;
+	
+	// gtk.VBox
+	
+	GtkWidget* function(gboolean homogeneous, gint spacing)gtk_vbox_new;
+	
+	// gtk.HButtonBox
+	
+	GtkWidget* function()gtk_hbutton_box_new;
+	gint function()gtk_hbutton_box_get_spacing_default;
+	GtkButtonBoxStyle function()gtk_hbutton_box_get_layout_default;
+	void function(gint spacing)gtk_hbutton_box_set_spacing_default;
+	void function(GtkButtonBoxStyle layout)gtk_hbutton_box_set_layout_default;
+	
+	// gtk.VButtonBox
+	
+	GtkWidget* function()gtk_vbutton_box_new;
+	gint function()gtk_vbutton_box_get_spacing_default;
+	void function(gint spacing)gtk_vbutton_box_set_spacing_default;
+	GtkButtonBoxStyle function()gtk_vbutton_box_get_layout_default;
+	void function(GtkButtonBoxStyle layout)gtk_vbutton_box_set_layout_default;
+	
+	// gtk.Fixed
+	
+	GtkWidget* function()gtk_fixed_new;
+	void function(GtkFixed* fixed, GtkWidget* widget, gint x, gint y)gtk_fixed_put;
+	void function(GtkFixed* fixed, GtkWidget* widget, gint x, gint y)gtk_fixed_move;
+	gboolean function(GtkFixed* fixed)gtk_fixed_get_has_window;
+	void function(GtkFixed* fixed, gboolean hasWindow)gtk_fixed_set_has_window;
+	
+	// gtk.HPaned
+	
+	GtkWidget* function()gtk_hpaned_new;
+	
+	// gtk.VPaned
+	
+	GtkWidget* function()gtk_vpaned_new;
+	
+	// gtk.Layout
+	
+	GtkWidget* function(GtkAdjustment* hadjustment, GtkAdjustment* vadjustment)gtk_layout_new;
+	void function(GtkLayout* layout, GtkWidget* childWidget, gint x, gint y)gtk_layout_put;
+	void function(GtkLayout* layout, GtkWidget* childWidget, gint x, gint y)gtk_layout_move;
+	void function(GtkLayout* layout, guint width, guint height)gtk_layout_set_size;
+	void function(GtkLayout* layout, guint* width, guint* height)gtk_layout_get_size;
+	void function(GtkLayout* layout)gtk_layout_freeze;
+	void function(GtkLayout* layout)gtk_layout_thaw;
+	GtkAdjustment* function(GtkLayout* layout)gtk_layout_get_hadjustment;
+	GtkAdjustment* function(GtkLayout* layout)gtk_layout_get_vadjustment;
+	void function(GtkLayout* layout, GtkAdjustment* adjustment)gtk_layout_set_hadjustment;
+	void function(GtkLayout* layout, GtkAdjustment* adjustment)gtk_layout_set_vadjustment;
+	
+	// gtk.Notebook
+	
+	GtkWidget* function()gtk_notebook_new;
+	gint function(GtkNotebook* notebook, GtkWidget* child, GtkWidget* tabLabel)gtk_notebook_append_page;
+	gint function(GtkNotebook* notebook, GtkWidget* child, GtkWidget* tabLabel, GtkWidget* menuLabel)gtk_notebook_append_page_menu;
+	gint function(GtkNotebook* notebook, GtkWidget* child, GtkWidget* tabLabel)gtk_notebook_prepend_page;
+	gint function(GtkNotebook* notebook, GtkWidget* child, GtkWidget* tabLabel, GtkWidget* menuLabel)gtk_notebook_prepend_page_menu;
+	gint function(GtkNotebook* notebook, GtkWidget* child, GtkWidget* tabLabel, gint position)gtk_notebook_insert_page;
+	gint function(GtkNotebook* notebook, GtkWidget* child, GtkWidget* tabLabel, GtkWidget* menuLabel, gint position)gtk_notebook_insert_page_menu;
+	void function(GtkNotebook* notebook, gint pageNum)gtk_notebook_remove_page;
+	gint function(GtkNotebook* notebook, GtkWidget* child)gtk_notebook_page_num;
+	void function(GtkNotebook* notebook)gtk_notebook_next_page;
+	void function(GtkNotebook* notebook)gtk_notebook_prev_page;
+	void function(GtkNotebook* notebook, GtkWidget* child, gint position)gtk_notebook_reorder_child;
+	void function(GtkNotebook* notebook, GtkPositionType pos)gtk_notebook_set_tab_pos;
+	void function(GtkNotebook* notebook, gboolean showTabs)gtk_notebook_set_show_tabs;
+	void function(GtkNotebook* notebook, gboolean showBorder)gtk_notebook_set_show_border;
+	void function(GtkNotebook* notebook, gboolean scrollable)gtk_notebook_set_scrollable;
+	void function(GtkNotebook* notebook, guint borderWidth)gtk_notebook_set_tab_border;
+	void function(GtkNotebook* notebook)gtk_notebook_popup_enable;
+	void function(GtkNotebook* notebook)gtk_notebook_popup_disable;
+	gint function(GtkNotebook* notebook)gtk_notebook_get_current_page;
+	GtkWidget* function(GtkNotebook* notebook, GtkWidget* child)gtk_notebook_get_menu_label;
+	GtkWidget* function(GtkNotebook* notebook, gint pageNum)gtk_notebook_get_nth_page;
+	gint function(GtkNotebook* notebook)gtk_notebook_get_n_pages;
+	GtkWidget* function(GtkNotebook* notebook, GtkWidget* child)gtk_notebook_get_tab_label;
+	void function(GtkNotebook* notebook, GtkWidget* child, gboolean* expand, gboolean* fill, GtkPackType* packType)gtk_notebook_query_tab_label_packing;
+	void function(GtkNotebook* notebook, gboolean homogeneous)gtk_notebook_set_homogeneous_tabs;
+	void function(GtkNotebook* notebook, GtkWidget* child, GtkWidget* menuLabel)gtk_notebook_set_menu_label;
+	void function(GtkNotebook* notebook, GtkWidget* child, gchar* menuText)gtk_notebook_set_menu_label_text;
+	void function(GtkNotebook* notebook, guint tabHborder)gtk_notebook_set_tab_hborder;
+	void function(GtkNotebook* notebook, GtkWidget* child, GtkWidget* tabLabel)gtk_notebook_set_tab_label;
+	void function(GtkNotebook* notebook, GtkWidget* child, gboolean expand, gboolean fill, GtkPackType packType)gtk_notebook_set_tab_label_packing;
+	void function(GtkNotebook* notebook, GtkWidget* child, gchar* tabText)gtk_notebook_set_tab_label_text;
+	void function(GtkNotebook* notebook, guint tabVborder)gtk_notebook_set_tab_vborder;
+	void function(GtkNotebook* notebook, GtkWidget* child, gboolean reorderable)gtk_notebook_set_tab_reorderable;
+	void function(GtkNotebook* notebook, GtkWidget* child, gboolean detachable)gtk_notebook_set_tab_detachable;
+	gchar* function(GtkNotebook* notebook, GtkWidget* child)gtk_notebook_get_menu_label_text;
+	gboolean function(GtkNotebook* notebook)gtk_notebook_get_scrollable;
+	gboolean function(GtkNotebook* notebook)gtk_notebook_get_show_border;
+	gboolean function(GtkNotebook* notebook)gtk_notebook_get_show_tabs;
+	gchar* function(GtkNotebook* notebook, GtkWidget* child)gtk_notebook_get_tab_label_text;
+	GtkPositionType function(GtkNotebook* notebook)gtk_notebook_get_tab_pos;
+	gboolean function(GtkNotebook* notebook, GtkWidget* child)gtk_notebook_get_tab_reorderable;
+	gboolean function(GtkNotebook* notebook, GtkWidget* child)gtk_notebook_get_tab_detachable;
+	void function(GtkNotebook* notebook, gint pageNum)gtk_notebook_set_current_page;
+	void function(GtkNotebook* notebook, gint groupId)gtk_notebook_set_group_id;
+	gint function(GtkNotebook* notebook)gtk_notebook_get_group_id;
+	void function(GtkNotebook* notebook, gpointer group)gtk_notebook_set_group;
+	gpointer function(GtkNotebook* notebook)gtk_notebook_get_group;
+	void function(GtkNotebookWindowCreationFunc func, gpointer data, GDestroyNotify destroy)gtk_notebook_set_window_creation_hook;
+	
+	// gtk.Table
+	
+	GtkWidget* function(guint rows, guint columns, gboolean homogeneous)gtk_table_new;
+	void function(GtkTable* table, guint rows, guint columns)gtk_table_resize;
+	void function(GtkTable* table, GtkWidget* child, guint leftAttach, guint rightAttach, guint topAttach, guint bottomAttach, GtkAttachOptions xoptions, GtkAttachOptions yoptions, guint xpadding, guint ypadding)gtk_table_attach;
+	void function(GtkTable* table, GtkWidget* widget, guint leftAttach, guint rightAttach, guint topAttach, guint bottomAttach)gtk_table_attach_defaults;
+	void function(GtkTable* table, guint row, guint spacing)gtk_table_set_row_spacing;
+	void function(GtkTable* table, guint column, guint spacing)gtk_table_set_col_spacing;
+	void function(GtkTable* table, guint spacing)gtk_table_set_row_spacings;
+	void function(GtkTable* table, guint spacing)gtk_table_set_col_spacings;
+	void function(GtkTable* table, gboolean homogeneous)gtk_table_set_homogeneous;
+	guint function(GtkTable* table)gtk_table_get_default_row_spacing;
+	gboolean function(GtkTable* table)gtk_table_get_homogeneous;
+	guint function(GtkTable* table, guint row)gtk_table_get_row_spacing;
+	guint function(GtkTable* table, guint column)gtk_table_get_col_spacing;
+	guint function(GtkTable* table)gtk_table_get_default_col_spacing;
+	
+	// gtk.Expander
+	
+	GtkWidget* function(gchar* label)gtk_expander_new;
+	GtkWidget* function(gchar* label)gtk_expander_new_with_mnemonic;
+	void function(GtkExpander* expander, gboolean expanded)gtk_expander_set_expanded;
+	gboolean function(GtkExpander* expander)gtk_expander_get_expanded;
+	void function(GtkExpander* expander, gint spacing)gtk_expander_set_spacing;
+	gint function(GtkExpander* expander)gtk_expander_get_spacing;
+	void function(GtkExpander* expander, gchar* label)gtk_expander_set_label;
+	gchar* function(GtkExpander* expander)gtk_expander_get_label;
+	void function(GtkExpander* expander, gboolean useUnderline)gtk_expander_set_use_underline;
+	gboolean function(GtkExpander* expander)gtk_expander_get_use_underline;
+	void function(GtkExpander* expander, gboolean useMarkup)gtk_expander_set_use_markup;
+	gboolean function(GtkExpander* expander)gtk_expander_get_use_markup;
+	void function(GtkExpander* expander, GtkWidget* labelWidget)gtk_expander_set_label_widget;
+	GtkWidget* function(GtkExpander* expander)gtk_expander_get_label_widget;
+	
+	// gtk.Frame
+	
+	GtkWidget* function(gchar* label)gtk_frame_new;
+	void function(GtkFrame* frame, gchar* label)gtk_frame_set_label;
+	void function(GtkFrame* frame, GtkWidget* labelWidget)gtk_frame_set_label_widget;
+	void function(GtkFrame* frame, gfloat xalign, gfloat yalign)gtk_frame_set_label_align;
+	void function(GtkFrame* frame, GtkShadowType type)gtk_frame_set_shadow_type;
+	gchar* function(GtkFrame* frame)gtk_frame_get_label;
+	void function(GtkFrame* frame, gfloat* xalign, gfloat* yalign)gtk_frame_get_label_align;
+	GtkWidget* function(GtkFrame* frame)gtk_frame_get_label_widget;
+	GtkShadowType function(GtkFrame* frame)gtk_frame_get_shadow_type;
+	
+	// gtk.HSeparator
+	
+	GtkWidget* function()gtk_hseparator_new;
+	
+	// gtk.VSeparator
+	
+	GtkWidget* function()gtk_vseparator_new;
+	
+	// gtk.HScrollbar
+	
+	GtkWidget* function(GtkAdjustment* adjustment)gtk_hscrollbar_new;
+	
+	// gtk.VScrollbar
+	
+	GtkWidget* function(GtkAdjustment* adjustment)gtk_vscrollbar_new;
+	
+	// gtk.ScrolledWindow
+	
+	GtkWidget* function(GtkAdjustment* hadjustment, GtkAdjustment* vadjustment)gtk_scrolled_window_new;
+	GtkAdjustment* function(GtkScrolledWindow* scrolledWindow)gtk_scrolled_window_get_hadjustment;
+	GtkAdjustment* function(GtkScrolledWindow* scrolledWindow)gtk_scrolled_window_get_vadjustment;
+	GtkWidget* function(GtkScrolledWindow* scrolledWindow)gtk_scrolled_window_get_hscrollbar;
+	GtkWidget* function(GtkScrolledWindow* scrolledWindow)gtk_scrolled_window_get_vscrollbar;
+	void function(GtkScrolledWindow* scrolledWindow, GtkPolicyType hscrollbarPolicy, GtkPolicyType vscrollbarPolicy)gtk_scrolled_window_set_policy;
+	void function(GtkScrolledWindow* scrolledWindow, GtkWidget* child)gtk_scrolled_window_add_with_viewport;
+	void function(GtkScrolledWindow* scrolledWindow, GtkCornerType windowPlacement)gtk_scrolled_window_set_placement;
+	void function(GtkScrolledWindow* scrolledWindow)gtk_scrolled_window_unset_placement;
+	void function(GtkScrolledWindow* scrolledWindow, GtkShadowType type)gtk_scrolled_window_set_shadow_type;
+	void function(GtkScrolledWindow* scrolledWindow, GtkAdjustment* hadjustment)gtk_scrolled_window_set_hadjustment;
+	void function(GtkScrolledWindow* scrolledWindow, GtkAdjustment* vadjustment)gtk_scrolled_window_set_vadjustment;
+	GtkCornerType function(GtkScrolledWindow* scrolledWindow)gtk_scrolled_window_get_placement;
+	void function(GtkScrolledWindow* scrolledWindow, GtkPolicyType* hscrollbarPolicy, GtkPolicyType* vscrollbarPolicy)gtk_scrolled_window_get_policy;
+	GtkShadowType function(GtkScrolledWindow* scrolledWindow)gtk_scrolled_window_get_shadow_type;
+	
+	// gtk.PrintOperation
+	
+	GtkPrintOperation* function()gtk_print_operation_new;
+	void function(GtkPrintOperation* op, gboolean allowAsync)gtk_print_operation_set_allow_async;
+	void function(GtkPrintOperation* op, GError** error)gtk_print_operation_get_error;
+	void function(GtkPrintOperation* op, GtkPageSetup* defaultPageSetup)gtk_print_operation_set_default_page_setup;
+	GtkPageSetup* function(GtkPrintOperation* op)gtk_print_operation_get_default_page_setup;
+	void function(GtkPrintOperation* op, GtkPrintSettings* printSettings)gtk_print_operation_set_print_settings;
+	GtkPrintSettings* function(GtkPrintOperation* op)gtk_print_operation_get_print_settings;
+	void function(GtkPrintOperation* op, gchar* jobName)gtk_print_operation_set_job_name;
+	void function(GtkPrintOperation* op, gint nPages)gtk_print_operation_set_n_pages;
+	void function(GtkPrintOperation* op, gint currentPage)gtk_print_operation_set_current_page;
+	void function(GtkPrintOperation* op, gboolean fullPage)gtk_print_operation_set_use_full_page;
+	void function(GtkPrintOperation* op, GtkUnit unit)gtk_print_operation_set_unit;
+	void function(GtkPrintOperation* op, gchar* filename)gtk_print_operation_set_export_filename;
+	void function(GtkPrintOperation* op, gboolean showProgress)gtk_print_operation_set_show_progress;
+	void function(GtkPrintOperation* op, gboolean trackStatus)gtk_print_operation_set_track_print_status;
+	void function(GtkPrintOperation* op, gchar* label)gtk_print_operation_set_custom_tab_label;
+	GtkPrintOperationResult function(GtkPrintOperation* op, GtkPrintOperationAction action, GtkWindow* parent, GError** error)gtk_print_operation_run;
+	void function(GtkPrintOperation* op)gtk_print_operation_cancel;
+	GtkPrintStatus function(GtkPrintOperation* op)gtk_print_operation_get_status;
+	gchar* function(GtkPrintOperation* op)gtk_print_operation_get_status_string;
+	gboolean function(GtkPrintOperation* op)gtk_print_operation_is_finished;
+	GtkPageSetup* function(GtkWindow* parent, GtkPageSetup* pageSetup, GtkPrintSettings* settings)gtk_print_run_page_setup_dialog;
+	void function(GtkWindow* parent, GtkPageSetup* pageSetup, GtkPrintSettings* settings, GtkPageSetupDoneFunc doneCb, gpointer data)gtk_print_run_page_setup_dialog_async;
+	
+	// gtk.PrintOperationPreviewT
+	
+	
+	// gtk.PrintOperationPreviewT
+	
+	void function(GtkPrintOperationPreview* preview)gtk_print_operation_preview_end_preview;
+	gboolean function(GtkPrintOperationPreview* preview, gint pageNr)gtk_print_operation_preview_is_selected;
+	void function(GtkPrintOperationPreview* preview, gint pageNr)gtk_print_operation_preview_render_page;
+	
+	// gtk.PrintContext
+	
+	cairo_t* function(GtkPrintContext* context)gtk_print_context_get_cairo_context;
+	void function(GtkPrintContext* context, cairo_t* cr, double dpiX, double dpiY)gtk_print_context_set_cairo_context;
+	GtkPageSetup* function(GtkPrintContext* context)gtk_print_context_get_page_setup;
+	gdouble function(GtkPrintContext* context)gtk_print_context_get_width;
+	gdouble function(GtkPrintContext* context)gtk_print_context_get_height;
+	gdouble function(GtkPrintContext* context)gtk_print_context_get_dpi_x;
+	gdouble function(GtkPrintContext* context)gtk_print_context_get_dpi_y;
+	PangoFontMap* function(GtkPrintContext* context)gtk_print_context_get_pango_fontmap;
+	PangoContext* function(GtkPrintContext* context)gtk_print_context_create_pango_context;
+	PangoLayout* function(GtkPrintContext* context)gtk_print_context_create_pango_layout;
+	
+	// gtk.PrintSettings
+	
+	GtkPrintSettings* function()gtk_print_settings_new;
+	GtkPrintSettings* function(GtkPrintSettings* other)gtk_print_settings_copy;
+	gboolean function(GtkPrintSettings* settings, gchar* key)gtk_print_settings_has_key;
+	gchar* function(GtkPrintSettings* settings, gchar* key)gtk_print_settings_get;
+	void function(GtkPrintSettings* settings, gchar* key, gchar* value)gtk_print_settings_set;
+	void function(GtkPrintSettings* settings, gchar* key)gtk_print_settings_unset;
+	void function(GtkPrintSettings* settings, GtkPrintSettingsFunc func, gpointer userData)gtk_print_settings_foreach;
+	gboolean function(GtkPrintSettings* settings, gchar* key)gtk_print_settings_get_bool;
+	void function(GtkPrintSettings* settings, gchar* key, gboolean value)gtk_print_settings_set_bool;
+	gdouble function(GtkPrintSettings* settings, gchar* key)gtk_print_settings_get_double;
+	gdouble function(GtkPrintSettings* settings, gchar* key, gdouble def)gtk_print_settings_get_double_with_default;
+	void function(GtkPrintSettings* settings, gchar* key, gdouble value)gtk_print_settings_set_double;
+	gdouble function(GtkPrintSettings* settings, gchar* key, GtkUnit unit)gtk_print_settings_get_length;
+	void function(GtkPrintSettings* settings, gchar* key, gdouble value, GtkUnit unit)gtk_print_settings_set_length;
+	gint function(GtkPrintSettings* settings, gchar* key)gtk_print_settings_get_int;
+	gint function(GtkPrintSettings* settings, gchar* key, gint def)gtk_print_settings_get_int_with_default;
+	void function(GtkPrintSettings* settings, gchar* key, gint value)gtk_print_settings_set_int;
+	gchar* function(GtkPrintSettings* settings)gtk_print_settings_get_printer;
+	void function(GtkPrintSettings* settings, gchar* printer)gtk_print_settings_set_printer;
+	GtkPageOrientation function(GtkPrintSettings* settings)gtk_print_settings_get_orientation;
+	void function(GtkPrintSettings* settings, GtkPageOrientation orientation)gtk_print_settings_set_orientation;
+	GtkPaperSize* function(GtkPrintSettings* settings)gtk_print_settings_get_paper_size;
+	void function(GtkPrintSettings* settings, GtkPaperSize* paperSize)gtk_print_settings_set_paper_size;
+	gdouble function(GtkPrintSettings* settings, GtkUnit unit)gtk_print_settings_get_paper_width;
+	void function(GtkPrintSettings* settings, gdouble width, GtkUnit unit)gtk_print_settings_set_paper_width;
+	gdouble function(GtkPrintSettings* settings, GtkUnit unit)gtk_print_settings_get_paper_height;
+	void function(GtkPrintSettings* settings, gdouble height, GtkUnit unit)gtk_print_settings_set_paper_height;
+	gboolean function(GtkPrintSettings* settings)gtk_print_settings_get_use_color;
+	void function(GtkPrintSettings* settings, gboolean useColor)gtk_print_settings_set_use_color;
+	gboolean function(GtkPrintSettings* settings)gtk_print_settings_get_collate;
+	void function(GtkPrintSettings* settings, gboolean collate)gtk_print_settings_set_collate;
+	gboolean function(GtkPrintSettings* settings)gtk_print_settings_get_reverse;
+	void function(GtkPrintSettings* settings, gboolean reverse)gtk_print_settings_set_reverse;
+	GtkPrintDuplex function(GtkPrintSettings* settings)gtk_print_settings_get_duplex;
+	void function(GtkPrintSettings* settings, GtkPrintDuplex duplex)gtk_print_settings_set_duplex;
+	GtkPrintQuality function(GtkPrintSettings* settings)gtk_print_settings_get_quality;
+	void function(GtkPrintSettings* settings, GtkPrintQuality quality)gtk_print_settings_set_quality;
+	gint function(GtkPrintSettings* settings)gtk_print_settings_get_n_copies;
+	void function(GtkPrintSettings* settings, gint numCopies)gtk_print_settings_set_n_copies;
+	gint function(GtkPrintSettings* settings)gtk_print_settings_get_number_up;
+	void function(GtkPrintSettings* settings, gint numberUp)gtk_print_settings_set_number_up;
+	gint function(GtkPrintSettings* settings)gtk_print_settings_get_resolution;
+	void function(GtkPrintSettings* settings, gint resolution)gtk_print_settings_set_resolution;
+	gdouble function(GtkPrintSettings* settings)gtk_print_settings_get_scale;
+	void function(GtkPrintSettings* settings, gdouble scale)gtk_print_settings_set_scale;
+	GtkPrintPages function(GtkPrintSettings* settings)gtk_print_settings_get_print_pages;
+	void function(GtkPrintSettings* settings, GtkPrintPages pages)gtk_print_settings_set_print_pages;
+	GtkPageRange* function(GtkPrintSettings* settings, gint* numRanges)gtk_print_settings_get_page_ranges;
+	void function(GtkPrintSettings* settings, GtkPageRange* pageRanges, gint numRanges)gtk_print_settings_set_page_ranges;
+	GtkPageSet function(GtkPrintSettings* settings)gtk_print_settings_get_page_set;
+	void function(GtkPrintSettings* settings, GtkPageSet pageSet)gtk_print_settings_set_page_set;
+	gchar* function(GtkPrintSettings* settings)gtk_print_settings_get_default_source;
+	void function(GtkPrintSettings* settings, gchar* defaultSource)gtk_print_settings_set_default_source;
+	gchar* function(GtkPrintSettings* settings)gtk_print_settings_get_media_type;
+	void function(GtkPrintSettings* settings, gchar* mediaType)gtk_print_settings_set_media_type;
+	gchar* function(GtkPrintSettings* settings)gtk_print_settings_get_dither;
+	void function(GtkPrintSettings* settings, gchar* dither)gtk_print_settings_set_dither;
+	gchar* function(GtkPrintSettings* settings)gtk_print_settings_get_finishings;
+	void function(GtkPrintSettings* settings, gchar* finishings)gtk_print_settings_set_finishings;
+	gchar* function(GtkPrintSettings* settings)gtk_print_settings_get_output_bin;
+	void function(GtkPrintSettings* settings, gchar* outputBin)gtk_print_settings_set_output_bin;
+	GtkPrintSettings* function(gchar* fileName, GError** error)gtk_print_settings_new_from_file;
+	GtkPrintSettings* function(GKeyFile* keyFile, gchar* groupName, GError** error)gtk_print_settings_new_from_key_file;
+	gboolean function(GtkPrintSettings* settings, gchar* fileName, GError** error)gtk_print_settings_to_file;
+	void function(GtkPrintSettings* settings, GKeyFile* keyFile, gchar* groupName)gtk_print_settings_to_key_file;
+	
+	// gtk.PageSetup
+	
+	GtkPageSetup* function()gtk_page_setup_new;
+	GtkPageSetup* function(GtkPageSetup* other)gtk_page_setup_copy;
+	GtkPageOrientation function(GtkPageSetup* setup)gtk_page_setup_get_orientation;
+	void function(GtkPageSetup* setup, GtkPageOrientation orientation)gtk_page_setup_set_orientation;
+	GtkPaperSize* function(GtkPageSetup* setup)gtk_page_setup_get_paper_size;
+	void function(GtkPageSetup* setup, GtkPaperSize* size)gtk_page_setup_set_paper_size;
+	gdouble function(GtkPageSetup* setup, GtkUnit unit)gtk_page_setup_get_top_margin;
+	void function(GtkPageSetup* setup, gdouble margin, GtkUnit unit)gtk_page_setup_set_top_margin;
+	gdouble function(GtkPageSetup* setup, GtkUnit unit)gtk_page_setup_get_bottom_margin;
+	void function(GtkPageSetup* setup, gdouble margin, GtkUnit unit)gtk_page_setup_set_bottom_margin;
+	gdouble function(GtkPageSetup* setup, GtkUnit unit)gtk_page_setup_get_left_margin;
+	void function(GtkPageSetup* setup, gdouble margin, GtkUnit unit)gtk_page_setup_set_left_margin;
+	gdouble function(GtkPageSetup* setup, GtkUnit unit)gtk_page_setup_get_right_margin;
+	void function(GtkPageSetup* setup, gdouble margin, GtkUnit unit)gtk_page_setup_set_right_margin;
+	void function(GtkPageSetup* setup, GtkPaperSize* size)gtk_page_setup_set_paper_size_and_default_margins;
+	gdouble function(GtkPageSetup* setup, GtkUnit unit)gtk_page_setup_get_paper_width;
+	gdouble function(GtkPageSetup* setup, GtkUnit unit)gtk_page_setup_get_paper_height;
+	gdouble function(GtkPageSetup* setup, GtkUnit unit)gtk_page_setup_get_page_width;
+	gdouble function(GtkPageSetup* setup, GtkUnit unit)gtk_page_setup_get_page_height;
+	GtkPageSetup* function(gchar* fileName, GError** error)gtk_page_setup_new_from_file;
+	GtkPageSetup* function(GKeyFile* keyFile, gchar* groupName, GError** error)gtk_page_setup_new_from_key_file;
+	gboolean function(GtkPageSetup* setup, char* fileName, GError** error)gtk_page_setup_to_file;
+	void function(GtkPageSetup* setup, GKeyFile* keyFile, gchar* groupName)gtk_page_setup_to_key_file;
+	
+	// gtk.PaperSize
+	
+	GtkPaperSize* function(gchar* name)gtk_paper_size_new;
+	GtkPaperSize* function(gchar* ppdName, gchar* ppdDisplayName, gdouble width, gdouble height)gtk_paper_size_new_from_ppd;
+	GtkPaperSize* function(gchar* name, gchar* displayName, gdouble width, gdouble height, GtkUnit unit)gtk_paper_size_new_custom;
+	GtkPaperSize* function(GtkPaperSize* other)gtk_paper_size_copy;
+	void function(GtkPaperSize* size)gtk_paper_size_free;
+	gboolean function(GtkPaperSize* size1, GtkPaperSize* size2)gtk_paper_size_is_equal;
+	GList* function(gboolean includeCustom)gtk_paper_size_get_paper_sizes;
+	gchar* function(GtkPaperSize* size)gtk_paper_size_get_name;
+	gchar* function(GtkPaperSize* size)gtk_paper_size_get_display_name;
+	gchar* function(GtkPaperSize* size)gtk_paper_size_get_ppd_name;
+	gdouble function(GtkPaperSize* size, GtkUnit unit)gtk_paper_size_get_width;
+	gdouble function(GtkPaperSize* size, GtkUnit unit)gtk_paper_size_get_height;
+	gboolean function(GtkPaperSize* size)gtk_paper_size_is_custom;
+	void function(GtkPaperSize* size, gdouble width, gdouble height, GtkUnit unit)gtk_paper_size_set_size;
+	gdouble function(GtkPaperSize* size, GtkUnit unit)gtk_paper_size_get_default_top_margin;
+	gdouble function(GtkPaperSize* size, GtkUnit unit)gtk_paper_size_get_default_bottom_margin;
+	gdouble function(GtkPaperSize* size, GtkUnit unit)gtk_paper_size_get_default_left_margin;
+	gdouble function(GtkPaperSize* size, GtkUnit unit)gtk_paper_size_get_default_right_margin;
+	gchar* function()gtk_paper_size_get_default;
+	GtkPaperSize* function(GKeyFile* keyFile, gchar* groupName, GError** error)gtk_paper_size_new_from_key_file;
+	void function(GtkPaperSize* size, GKeyFile* keyFile, gchar* groupName)gtk_paper_size_to_key_file;
+	
+	// gtk.Printer
+	
+	GtkPrinter* function(gchar* name, GtkPrintBackend* backend, gboolean virtual)gtk_printer_new;
+	GtkPrintBackend* function(GtkPrinter* printer)gtk_printer_get_backend;
+	gchar* function(GtkPrinter* printer)gtk_printer_get_name;
+	gchar* function(GtkPrinter* printer)gtk_printer_get_state_message;
+	gchar* function(GtkPrinter* printer)gtk_printer_get_description;
+	gchar* function(GtkPrinter* printer)gtk_printer_get_location;
+	gchar* function(GtkPrinter* printer)gtk_printer_get_icon_name;
+	gint function(GtkPrinter* printer)gtk_printer_get_job_count;
+	gboolean function(GtkPrinter* printer)gtk_printer_is_active;
+	gboolean function(GtkPrinter* printer)gtk_printer_is_virtual;
+	gboolean function(GtkPrinter* printer)gtk_printer_is_default;
+	gboolean function(GtkPrinter* printer)gtk_printer_accepts_ps;
+	gboolean function(GtkPrinter* printer)gtk_printer_accepts_pdf;
+	GList* function(GtkPrinter* printer)gtk_printer_list_papers;
+	gint function(GtkPrinter* a, GtkPrinter* b)gtk_printer_compare;
+	gboolean function(GtkPrinter* printer)gtk_printer_has_details;
+	void function(GtkPrinter* printer)gtk_printer_request_details;
+	GtkPrintCapabilities function(GtkPrinter* printer)gtk_printer_get_capabilities;
+	void function(GtkPrinterFunc func, gpointer data, GDestroyNotify destroy, gboolean wait)gtk_enumerate_printers;
+	
+	// gtk.PrintJob
+	
+	GtkPrintJob* function(gchar* title, GtkPrinter* printer, GtkPrintSettings* settings, GtkPageSetup* pageSetup)gtk_print_job_new;
+	GtkPrintSettings* function(GtkPrintJob* job)gtk_print_job_get_settings;
+	GtkPrinter* function(GtkPrintJob* job)gtk_print_job_get_printer;
+	gchar* function(GtkPrintJob* job)gtk_print_job_get_title;
+	GtkPrintStatus function(GtkPrintJob* job)gtk_print_job_get_status;
+	gboolean function(GtkPrintJob* job, gchar* filename, GError** error)gtk_print_job_set_source_file;
+	cairo_surface_t* function(GtkPrintJob* job, GError** error)gtk_print_job_get_surface;
+	void function(GtkPrintJob* job, GtkPrintJobCompleteFunc callback, gpointer userData, GDestroyNotify dnotify)gtk_print_job_send;
+	void function(GtkPrintJob* job, gboolean trackStatus)gtk_print_job_set_track_print_status;
+	gboolean function(GtkPrintJob* job)gtk_print_job_get_track_print_status;
+	
+	// gtk.PrintUnixDialog
+	
+	GtkWidget* function(gchar* title, GtkWindow* parent)gtk_print_unix_dialog_new;
+	void function(GtkPrintUnixDialog* dialog, GtkPageSetup* pageSetup)gtk_print_unix_dialog_set_page_setup;
+	GtkPageSetup* function(GtkPrintUnixDialog* dialog)gtk_print_unix_dialog_get_page_setup;
+	void function(GtkPrintUnixDialog* dialog, gint currentPage)gtk_print_unix_dialog_set_current_page;
+	gint function(GtkPrintUnixDialog* dialog)gtk_print_unix_dialog_get_current_page;
+	void function(GtkPrintUnixDialog* dialog, GtkPrintSettings* settings)gtk_print_unix_dialog_set_settings;
+	GtkPrintSettings* function(GtkPrintUnixDialog* dialog)gtk_print_unix_dialog_get_settings;
+	GtkPrinter* function(GtkPrintUnixDialog* dialog)gtk_print_unix_dialog_get_selected_printer;
+	void function(GtkPrintUnixDialog* dialog, GtkWidget* child, GtkWidget* tabLabel)gtk_print_unix_dialog_add_custom_tab;
+	void function(GtkPrintUnixDialog* dialog, GtkPrintCapabilities capabilities)gtk_print_unix_dialog_set_manual_capabilities;
+	
+	// gtk.PageSetupUnixDialog
+	
+	GtkWidget* function(gchar* title, GtkWindow* parent)gtk_page_setup_unix_dialog_new;
+	void function(GtkPageSetupUnixDialog* dialog, GtkPageSetup* pageSetup)gtk_page_setup_unix_dialog_set_page_setup;
+	GtkPageSetup* function(GtkPageSetupUnixDialog* dialog)gtk_page_setup_unix_dialog_get_page_setup;
+	void function(GtkPageSetupUnixDialog* dialog, GtkPrintSettings* printSettings)gtk_page_setup_unix_dialog_set_print_settings;
+	GtkPrintSettings* function(GtkPageSetupUnixDialog* dialog)gtk_page_setup_unix_dialog_get_print_settings;
+	
+	// gtk.Adjustment
+	
+	GtkObject* function(gdouble value, gdouble lower, gdouble upper, gdouble stepIncrement, gdouble pageIncrement, gdouble pageSize)gtk_adjustment_new;
+	gdouble function(GtkAdjustment* adjustment)gtk_adjustment_get_value;
+	void function(GtkAdjustment* adjustment, gdouble value)gtk_adjustment_set_value;
+	void function(GtkAdjustment* adjustment, gdouble lower, gdouble upper)gtk_adjustment_clamp_page;
+	void function(GtkAdjustment* adjustment)gtk_adjustment_changed;
+	void function(GtkAdjustment* adjustment)gtk_adjustment_value_changed;
+	
+	// gtk.Arrow
+	
+	GtkWidget* function(GtkArrowType arrowType, GtkShadowType shadowType)gtk_arrow_new;
+	void function(GtkArrow* arrow, GtkArrowType arrowType, GtkShadowType shadowType)gtk_arrow_set;
+	
+	// gtk.Calendar
+	
+	GtkWidget* function()gtk_calendar_new;
+	gboolean function(GtkCalendar* calendar, guint month, guint year)gtk_calendar_select_month;
+	void function(GtkCalendar* calendar, guint day)gtk_calendar_select_day;
+	gboolean function(GtkCalendar* calendar, guint day)gtk_calendar_mark_day;
+	gboolean function(GtkCalendar* calendar, guint day)gtk_calendar_unmark_day;
+	void function(GtkCalendar* calendar)gtk_calendar_clear_marks;
+	GtkCalendarDisplayOptions function(GtkCalendar* calendar)gtk_calendar_get_display_options;
+	void function(GtkCalendar* calendar, GtkCalendarDisplayOptions flags)gtk_calendar_set_display_options;
+	void function(GtkCalendar* calendar, GtkCalendarDisplayOptions flags)gtk_calendar_display_options;
+	void function(GtkCalendar* calendar, guint* year, guint* month, guint* day)gtk_calendar_get_date;
+	void function(GtkCalendar* calendar)gtk_calendar_freeze;
+	void function(GtkCalendar* calendar)gtk_calendar_thaw;
+	
+	// gtk.DrawingArea
+	
+	GtkWidget* function()gtk_drawing_area_new;
+	void function(GtkDrawingArea* darea, gint width, gint height)gtk_drawing_area_size;
+	
+	// gtk.EventBox
+	
+	GtkWidget* function()gtk_event_box_new;
+	void function(GtkEventBox* eventBox, gboolean aboveChild)gtk_event_box_set_above_child;
+	gboolean function(GtkEventBox* eventBox)gtk_event_box_get_above_child;
+	void function(GtkEventBox* eventBox, gboolean visibleWindow)gtk_event_box_set_visible_window;
+	gboolean function(GtkEventBox* eventBox)gtk_event_box_get_visible_window;
+	
+	// gtk.HandleBox
+	
+	GtkWidget* function()gtk_handle_box_new;
+	void function(GtkHandleBox* handleBox, GtkShadowType type)gtk_handle_box_set_shadow_type;
+	void function(GtkHandleBox* handleBox, GtkPositionType position)gtk_handle_box_set_handle_position;
+	void function(GtkHandleBox* handleBox, GtkPositionType edge)gtk_handle_box_set_snap_edge;
+	GtkPositionType function(GtkHandleBox* handleBox)gtk_handle_box_get_handle_position;
+	GtkShadowType function(GtkHandleBox* handleBox)gtk_handle_box_get_shadow_type;
+	GtkPositionType function(GtkHandleBox* handleBox)gtk_handle_box_get_snap_edge;
+	
+	// gtk.IMContextSimple
+	
+	GtkIMContext* function()gtk_im_context_simple_new;
+	void function(GtkIMContextSimple* contextSimple, guint16* data, gint maxSeqLen, gint nSeqs)gtk_im_context_simple_add_table;
+	
+	// gtk.IMMulticontext
+	
+	GtkIMContext* function()gtk_im_multicontext_new;
+	void function(GtkIMMulticontext* context, GtkMenuShell* menushell)gtk_im_multicontext_append_menuitems;
+	
+	// gtk.SizeGroup
+	
+	GtkSizeGroup* function(GtkSizeGroupMode mode)gtk_size_group_new;
+	void function(GtkSizeGroup* sizeGroup, GtkSizeGroupMode mode)gtk_size_group_set_mode;
+	GtkSizeGroupMode function(GtkSizeGroup* sizeGroup)gtk_size_group_get_mode;
+	void function(GtkSizeGroup* sizeGroup, gboolean ignoreHidden)gtk_size_group_set_ignore_hidden;
+	gboolean function(GtkSizeGroup* sizeGroup)gtk_size_group_get_ignore_hidden;
+	void function(GtkSizeGroup* sizeGroup, GtkWidget* widget)gtk_size_group_add_widget;
+	void function(GtkSizeGroup* sizeGroup, GtkWidget* widget)gtk_size_group_remove_widget;
+	GSList* function(GtkSizeGroup* sizeGroup)gtk_size_group_get_widgets;
+	
+	// gtk.Tooltip
+	
+	void function(GtkTooltip* tooltip, gchar* markup)gtk_tooltip_set_markup;
+	void function(GtkTooltip* tooltip, gchar* text)gtk_tooltip_set_text;
+	void function(GtkTooltip* tooltip, GdkPixbuf* pixbuf)gtk_tooltip_set_icon;
+	void function(GtkTooltip* tooltip, gchar* stockId, GtkIconSize size)gtk_tooltip_set_icon_from_stock;
+	void function(GtkTooltip* tooltip, GtkWidget* customWidget)gtk_tooltip_set_custom;
+	void function(GdkDisplay* display)gtk_tooltip_trigger_tooltip_query;
+	void function(GtkTooltip* tooltip, GdkRectangle* rect)gtk_tooltip_set_tip_area;
+	
+	// gtk.Viewport
+	
+	GtkWidget* function(GtkAdjustment* hadjustment, GtkAdjustment* vadjustment)gtk_viewport_new;
+	GtkAdjustment* function(GtkViewport* viewport)gtk_viewport_get_hadjustment;
+	GtkAdjustment* function(GtkViewport* viewport)gtk_viewport_get_vadjustment;
+	void function(GtkViewport* viewport, GtkAdjustment* adjustment)gtk_viewport_set_hadjustment;
+	void function(GtkViewport* viewport, GtkAdjustment* adjustment)gtk_viewport_set_vadjustment;
+	void function(GtkViewport* viewport, GtkShadowType type)gtk_viewport_set_shadow_type;
+	GtkShadowType function(GtkViewport* viewport)gtk_viewport_get_shadow_type;
+	
+	// gtk.Accessible
+	
+	void function(GtkAccessible* accessible)gtk_accessible_connect_widget_destroyed;
+	
+	// gtk.Bin
+	
+	GtkWidget* function(GtkBin* bin)gtk_bin_get_child;
+	
+	// gtk.Box
+	
+	void function(GtkBox* box, GtkWidget* child, gboolean expand, gboolean fill, guint padding)gtk_box_pack_start;
+	void function(GtkBox* box, GtkWidget* child, gboolean expand, gboolean fill, guint padding)gtk_box_pack_end;
+	void function(GtkBox* box, GtkWidget* widget)gtk_box_pack_start_defaults;
+	void function(GtkBox* box, GtkWidget* widget)gtk_box_pack_end_defaults;
+	gboolean function(GtkBox* box)gtk_box_get_homogeneous;
+	void function(GtkBox* box, gboolean homogeneous)gtk_box_set_homogeneous;
+	gint function(GtkBox* box)gtk_box_get_spacing;
+	void function(GtkBox* box, gint spacing)gtk_box_set_spacing;
+	void function(GtkBox* box, GtkWidget* child, gint position)gtk_box_reorder_child;
+	void function(GtkBox* box, GtkWidget* child, gboolean* expand, gboolean* fill, guint* padding, GtkPackType* packType)gtk_box_query_child_packing;
+	void function(GtkBox* box, GtkWidget* child, gboolean expand, gboolean fill, guint padding, GtkPackType packType)gtk_box_set_child_packing;
+	
+	// gtk.ButtonBox
+	
+	GtkButtonBoxStyle function(GtkButtonBox* widget)gtk_button_box_get_layout;
+	void function(GtkButtonBox* widget, gint* minWidth, gint* minHeight)gtk_button_box_get_child_size;
+	void function(GtkButtonBox* widget, gint* ipadX, gint* ipadY)gtk_button_box_get_child_ipadding;
+	gboolean function(GtkButtonBox* widget, GtkWidget* child)gtk_button_box_get_child_secondary;
+	void function(GtkButtonBox* widget, GtkButtonBoxStyle layoutStyle)gtk_button_box_set_layout;
+	void function(GtkButtonBox* widget, gint minWidth, gint minHeight)gtk_button_box_set_child_size;
+	void function(GtkButtonBox* widget, gint ipadX, gint ipadY)gtk_button_box_set_child_ipadding;
+	void function(GtkButtonBox* widget, GtkWidget* child, gboolean isSecondary)gtk_button_box_set_child_secondary;
+	
+	// gtk.Container
+	
+	void function(GtkContainer* container, GtkWidget* widget)gtk_container_add;
+	void function(GtkContainer* container, GtkWidget* widget)gtk_container_remove;
+	void function(GtkContainer* container, GtkWidget* widget, gchar* firstPropName, ... )gtk_container_add_with_properties;
+	GtkResizeMode function(GtkContainer* container)gtk_container_get_resize_mode;
+	void function(GtkContainer* container, GtkResizeMode resizeMode)gtk_container_set_resize_mode;
+	void function(GtkContainer* container)gtk_container_check_resize;
+	void function(GtkContainer* container, GtkCallback callback, gpointer callbackData)gtk_container_foreach;
+	void function(GtkContainer* container, GtkCallback callback, GtkCallbackMarshal marshal, gpointer callbackData, GtkDestroyNotify notify)gtk_container_foreach_full;
+	GList* function(GtkContainer* container)gtk_container_get_children;
+	void function(GtkContainer* container, gboolean needsRedraws)gtk_container_set_reallocate_redraws;
+	void function(GtkContainer* container, GtkWidget* child)gtk_container_set_focus_child;
+	GtkAdjustment* function(GtkContainer* container)gtk_container_get_focus_vadjustment;
+	void function(GtkContainer* container, GtkAdjustment* adjustment)gtk_container_set_focus_vadjustment;
+	GtkAdjustment* function(GtkContainer* container)gtk_container_get_focus_hadjustment;
+	void function(GtkContainer* container, GtkAdjustment* adjustment)gtk_container_set_focus_hadjustment;
+	void function(GtkContainer* container)gtk_container_resize_children;
+	GType function(GtkContainer* container)gtk_container_child_type;
+	void function(GtkContainer* container, GtkWidget* child, gchar* firstPropName, ... )gtk_container_child_get;
+	void function(GtkContainer* container, GtkWidget* child, gchar* firstPropName, ... )gtk_container_child_set;
+	void function(GtkContainer* container, GtkWidget* child, gchar* propertyName, GValue* value)gtk_container_child_get_property;
+	void function(GtkContainer* container, GtkWidget* child, gchar* propertyName, GValue* value)gtk_container_child_set_property;
+	void function(GtkContainer* container, GtkWidget* child, gchar* firstPropertyName, va_list varArgs)gtk_container_child_get_valist;
+	void function(GtkContainer* container, GtkWidget* child, gchar* firstPropertyName, va_list varArgs)gtk_container_child_set_valist;
+	void function(GtkContainer* container, GtkCallback callback, gpointer callbackData)gtk_container_forall;
+	guint function(GtkContainer* container)gtk_container_get_border_width;
+	void function(GtkContainer* container, guint borderWidth)gtk_container_set_border_width;
+	void function(GtkContainer* container, GtkWidget* child, GdkEventExpose* event)gtk_container_propagate_expose;
+	gboolean function(GtkContainer* container, GList** focusableWidgets)gtk_container_get_focus_chain;
+	void function(GtkContainer* container, GList* focusableWidgets)gtk_container_set_focus_chain;
+	void function(GtkContainer* container)gtk_container_unset_focus_chain;
+	GParamSpec* function(GObjectClass* cclass, gchar* propertyName)gtk_container_class_find_child_property;
+	void function(GtkContainerClass* cclass, guint propertyId, GParamSpec* pspec)gtk_container_class_install_child_property;
+	GParamSpec** function(GObjectClass* cclass, guint* nProperties)gtk_container_class_list_child_properties;
+	
+	// gtk.Item
+	
+	void function(GtkItem* item)gtk_item_select;
+	void function(GtkItem* item)gtk_item_deselect;
+	void function(GtkItem* item)gtk_item_toggle;
+	
+	// gtk.MenuShell
+	
+	void function(GtkMenuShell* menuShell, GtkWidget* child)gtk_menu_shell_append;
+	void function(GtkMenuShell* menuShell, GtkWidget* child)gtk_menu_shell_prepend;
+	void function(GtkMenuShell* menuShell, GtkWidget* child, gint position)gtk_menu_shell_insert;
+	void function(GtkMenuShell* menuShell)gtk_menu_shell_deactivate;
+	void function(GtkMenuShell* menuShell, GtkWidget* menuItem)gtk_menu_shell_select_item;
+	void function(GtkMenuShell* menuShell, gboolean searchSensitive)gtk_menu_shell_select_first;
+	void function(GtkMenuShell* menuShell)gtk_menu_shell_deselect;
+	void function(GtkMenuShell* menuShell, GtkWidget* menuItem, gboolean forceDeactivate)gtk_menu_shell_activate_item;
+	void function(GtkMenuShell* menuShell)gtk_menu_shell_cancel;
+	void function(GtkMenuShell* menuShell, gboolean takeFocus)gtk_menu_shell_set_take_focus;
+	gboolean function(GtkMenuShell* menuShell)gtk_menu_shell_get_take_focus;
+	
+	// gtk.Misc
+	
+	void function(GtkMisc* misc, gfloat xalign, gfloat yalign)gtk_misc_set_alignment;
+	void function(GtkMisc* misc, gint xpad, gint ypad)gtk_misc_set_padding;
+	void function(GtkMisc* misc, gfloat* xalign, gfloat* yalign)gtk_misc_get_alignment;
+	void function(GtkMisc* misc, gint* xpad, gint* ypad)gtk_misc_get_padding;
+	
+	// gtk.ObjectGtk
+	
+	GtkObject* function(GtkType type, gchar* firstPropertyName, ... )gtk_object_new;
+	void function(GtkObject* object)gtk_object_sink;
+	GtkObject* function(GtkObject* object)gtk_object_ref;
+	void function(GtkObject* object)gtk_object_unref;
+	void function(GtkObject* object, GtkDestroyNotify notify, gpointer data)gtk_object_weakref;
+	void function(GtkObject* object, GtkDestroyNotify notify, gpointer data)gtk_object_weakunref;
+	void function(GtkObject* object)gtk_object_destroy;
+	void function(GtkObject* object, gchar* firstPropertyName, ... )gtk_object_get;
+	void function(GtkObject* object, gchar* firstPropertyName, ... )gtk_object_set;
+	void function(GtkObject* object, gchar* key, gpointer data)gtk_object_set_data;
+	void function(GtkObject* object, gchar* key, gpointer data, GtkDestroyNotify destroy)gtk_object_set_data_full;
+	void function(GtkObject* object, gchar* key)gtk_object_remove_data;
+	gpointer function(GtkObject* object, gchar* key)gtk_object_get_data;
+	void function(GtkObject* object, gchar* key)gtk_object_remove_no_notify;
+	void function(GtkObject* object, gpointer data)gtk_object_set_user_data;
+	gpointer function(GtkObject* object)gtk_object_get_user_data;
+	void function(gchar* argName, GtkType argType, guint argFlags, guint argId)gtk_object_add_arg_type;
+	void function(GtkObject* object, GQuark dataId, gpointer data)gtk_object_set_data_by_id;
+	void function(GtkObject* object, GQuark dataId, gpointer data, GtkDestroyNotify destroy)gtk_object_set_data_by_id_full;
+	gpointer function(GtkObject* object, GQuark dataId)gtk_object_get_data_by_id;
+	void function(GtkObject* object, GQuark dataId)gtk_object_remove_data_by_id;
+	void function(GtkObject* object, GQuark keyId)gtk_object_remove_no_notify_by_id;
+	
+	// gtk.Paned
+	
+	void function(GtkPaned* paned, GtkWidget* child)gtk_paned_add1;
+	void function(GtkPaned* paned, GtkWidget* child)gtk_paned_add2;
+	void function(GtkPaned* paned, GtkWidget* child, gboolean resize, gboolean shrink)gtk_paned_pack1;
+	void function(GtkPaned* paned, GtkWidget* child, gboolean resize, gboolean shrink)gtk_paned_pack2;
+	GtkWidget* function(GtkPaned* paned)gtk_paned_get_child1;
+	GtkWidget* function(GtkPaned* paned)gtk_paned_get_child2;
+	void function(GtkPaned* paned, gint position)gtk_paned_set_position;
+	gint function(GtkPaned* paned)gtk_paned_get_position;
+	
+	// gtk.Range
+	
+	gdouble function(GtkRange* range)gtk_range_get_fill_level;
+	gboolean function(GtkRange* range)gtk_range_get_restrict_to_fill_level;
+	gboolean function(GtkRange* range)gtk_range_get_show_fill_level;
+	void function(GtkRange* range, gdouble fillLevel)gtk_range_set_fill_level;
+	void function(GtkRange* range, gboolean restrictToFillLevel)gtk_range_set_restrict_to_fill_level;
+	void function(GtkRange* range, gboolean showFillLevel)gtk_range_set_show_fill_level;
+	GtkAdjustment* function(GtkRange* range)gtk_range_get_adjustment;
+	void function(GtkRange* range, GtkUpdateType policy)gtk_range_set_update_policy;
+	void function(GtkRange* range, GtkAdjustment* adjustment)gtk_range_set_adjustment;
+	gboolean function(GtkRange* range)gtk_range_get_inverted;
+	void function(GtkRange* range, gboolean setting)gtk_range_set_inverted;
+	GtkUpdateType function(GtkRange* range)gtk_range_get_update_policy;
+	gdouble function(GtkRange* range)gtk_range_get_value;
+	void function(GtkRange* range, gdouble step, gdouble page)gtk_range_set_increments;
+	void function(GtkRange* range, gdouble min, gdouble max)gtk_range_set_range;
+	void function(GtkRange* range, gdouble value)gtk_range_set_value;
+	void function(GtkRange* range, GtkSensitivityType sensitivity)gtk_range_set_lower_stepper_sensitivity;
+	GtkSensitivityType function(GtkRange* range)gtk_range_get_lower_stepper_sensitivity;
+	void function(GtkRange* range, GtkSensitivityType sensitivity)gtk_range_set_upper_stepper_sensitivity;
+	GtkSensitivityType function(GtkRange* range)gtk_range_get_upper_stepper_sensitivity;
+	
+	// gtk.Scale
+	
+	void function(GtkScale* scale, gint digits)gtk_scale_set_digits;
+	void function(GtkScale* scale, gboolean drawValue)gtk_scale_set_draw_value;
+	void function(GtkScale* scale, GtkPositionType pos)gtk_scale_set_value_pos;
+	gint function(GtkScale* scale)gtk_scale_get_digits;
+	gboolean function(GtkScale* scale)gtk_scale_get_draw_value;
+	GtkPositionType function(GtkScale* scale)gtk_scale_get_value_pos;
+	PangoLayout* function(GtkScale* scale)gtk_scale_get_layout;
+	void function(GtkScale* scale, gint* x, gint* y)gtk_scale_get_layout_offsets;
+	
+	// gtk.Scrollbar
+	
+	
+	// gtk.Separator
+	
+	
+	// gtk.Widget
+	
+	GtkWidget* function(GType type, gchar* firstPropertyName, ... )gtk_widget_new;
+	void function(GtkWidget* widget)gtk_widget_unref;
+	void function(GtkWidget* widget)gtk_widget_destroy;
+	void function(GtkWidget* widget, GtkWidget** widgetPointer)gtk_widget_destroyed;
+	void function(GtkWidget* widget, gchar* firstPropertyName, ... )gtk_widget_set;
+	void function(GtkWidget* widget)gtk_widget_unparent;
+	void function(GtkWidget* widget)gtk_widget_show;
+	void function(GtkWidget* widget)gtk_widget_show_now;
+	void function(GtkWidget* widget)gtk_widget_hide;
+	void function(GtkWidget* widget)gtk_widget_show_all;
+	void function(GtkWidget* widget)gtk_widget_hide_all;
+	void function(GtkWidget* widget)gtk_widget_map;
+	void function(GtkWidget* widget)gtk_widget_unmap;
+	void function(GtkWidget* widget)gtk_widget_realize;
+	void function(GtkWidget* widget)gtk_widget_unrealize;
+	void function(GtkWidget* widget)gtk_widget_queue_draw;
+	void function(GtkWidget* widget)gtk_widget_queue_resize;
+	void function(GtkWidget* widget)gtk_widget_queue_resize_no_redraw;
+	void function(GtkWidget* widget, GdkRectangle* area)gtk_widget_draw;
+	void function(GtkWidget* widget, GtkRequisition* requisition)gtk_widget_size_request;
+	void function(GtkWidget* widget, GtkRequisition* requisition)gtk_widget_get_child_requisition;
+	void function(GtkWidget* widget, GtkAllocation* allocation)gtk_widget_size_allocate;
+	void function(GtkWidget* widget, gchar* accelSignal, GtkAccelGroup* accelGroup, guint accelKey, GdkModifierType accelMods, GtkAccelFlags accelFlags)gtk_widget_add_accelerator;
+	gboolean function(GtkWidget* widget, GtkAccelGroup* accelGroup, guint accelKey, GdkModifierType accelMods)gtk_widget_remove_accelerator;
+	void function(GtkWidget* widget, gchar* accelPath, GtkAccelGroup* accelGroup)gtk_widget_set_accel_path;
+	GList* function(GtkWidget* widget)gtk_widget_list_accel_closures;
+	gboolean function(GtkWidget* widget, guint signalId)gtk_widget_can_activate_accel;
+	gboolean function(GtkWidget* widget, GdkEvent* event)gtk_widget_event;
+	gboolean function(GtkWidget* widget)gtk_widget_activate;
+	void function(GtkWidget* widget, GtkWidget* newParent)gtk_widget_reparent;
+	gboolean function(GtkWidget* widget, GdkRectangle* area, GdkRectangle* intersection)gtk_widget_intersect;
+	gboolean function(GtkWidget* widget)gtk_widget_is_focus;
+	void function(GtkWidget* widget)gtk_widget_grab_focus;
+	void function(GtkWidget* widget)gtk_widget_grab_default;
+	void function(GtkWidget* widget, gchar* name)gtk_widget_set_name;
+	gchar* function(GtkWidget* widget)gtk_widget_get_name;
+	void function(GtkWidget* widget, GtkStateType state)gtk_widget_set_state;
+	void function(GtkWidget* widget, gboolean sensitive)gtk_widget_set_sensitive;
+	void function(GtkWidget* widget, GtkWidget* parent)gtk_widget_set_parent;
+	void function(GtkWidget* widget, GdkWindow* parentWindow)gtk_widget_set_parent_window;
+	GdkWindow* function(GtkWidget* widget)gtk_widget_get_parent_window;
+	void function(GtkWidget* widget, gint x, gint y)gtk_widget_set_uposition;
+	void function(GtkWidget* widget, gint width, gint height)gtk_widget_set_usize;
+	void function(GtkWidget* widget, gint events)gtk_widget_set_events;
+	void function(GtkWidget* widget, gint events)gtk_widget_add_events;
+	void function(GtkWidget* widget, GdkExtensionMode mode)gtk_widget_set_extension_events;
+	GdkExtensionMode function(GtkWidget* widget)gtk_widget_get_extension_events;
+	GtkWidget* function(GtkWidget* widget)gtk_widget_get_toplevel;
+	GtkWidget* function(GtkWidget* widget, GType widgetType)gtk_widget_get_ancestor;
+	GdkColormap* function(GtkWidget* widget)gtk_widget_get_colormap;
+	void function(GtkWidget* widget, GdkColormap* colormap)gtk_widget_set_colormap;
+	GdkVisual* function(GtkWidget* widget)gtk_widget_get_visual;
+	gint function(GtkWidget* widget)gtk_widget_get_events;
+	void function(GtkWidget* widget, gint* x, gint* y)gtk_widget_get_pointer;
+	gboolean function(GtkWidget* widget, GtkWidget* ancestor)gtk_widget_is_ancestor;
+	gboolean function(GtkWidget* srcWidget, GtkWidget* destWidget, gint srcX, gint srcY, gint* destX, gint* destY)gtk_widget_translate_coordinates;
+	gboolean function(GtkWidget* widget)gtk_widget_hide_on_delete;
+	void function(GtkWidget* widget, GtkStyle* style)gtk_widget_set_style;
+	void function(GtkWidget* widget)gtk_widget_ensure_style;
+	GtkStyle* function(GtkWidget* widget)gtk_widget_get_style;
+	void function(GtkWidget* widget)gtk_widget_reset_rc_styles;
+	void function(GdkColormap* cmap)gtk_widget_push_colormap;
+	void function()gtk_widget_pop_colormap;
+	void function(GdkColormap* colormap)gtk_widget_set_default_colormap;
+	GtkStyle* function()gtk_widget_get_default_style;
+	GdkColormap* function()gtk_widget_get_default_colormap;
+	GdkVisual* function()gtk_widget_get_default_visual;
+	void function(GtkWidget* widget, GtkTextDirection dir)gtk_widget_set_direction;
+	GtkTextDirection function(GtkWidget* widget)gtk_widget_get_direction;
+	void function(GtkTextDirection dir)gtk_widget_set_default_direction;
+	GtkTextDirection function()gtk_widget_get_default_direction;
+	void function(GtkWidget* widget, GdkBitmap* shapeMask, gint offsetX, gint offsetY)gtk_widget_shape_combine_mask;
+	void function(GtkWidget* widget, GdkBitmap* shapeMask, gint offsetX, gint offsetY)gtk_widget_input_shape_combine_mask;
+	void function(GtkWidget* widget, guint* pathLength, gchar** path, gchar** pathReversed)gtk_widget_path;
+	void function(GtkWidget* widget, guint* pathLength, gchar** path, gchar** pathReversed)gtk_widget_class_path;
+	gchar* function(GtkWidget* widget)gtk_widget_get_composite_name;
+	void function(GtkWidget* widget, GtkRcStyle* style)gtk_widget_modify_style;
+	GtkRcStyle* function(GtkWidget* widget)gtk_widget_get_modifier_style;
+	void function(GtkWidget* widget, GtkStateType state, GdkColor* color)gtk_widget_modify_fg;
+	void function(GtkWidget* widget, GtkStateType state, GdkColor* color)gtk_widget_modify_bg;
+	void function(GtkWidget* widget, GtkStateType state, GdkColor* color)gtk_widget_modify_text;
+	void function(GtkWidget* widget, GtkStateType state, GdkColor* color)gtk_widget_modify_base;
+	void function(GtkWidget* widget, PangoFontDescription* fontDesc)gtk_widget_modify_font;
+	void function(GtkWidget* widget, GdkColor* primary, GdkColor* secondary)gtk_widget_modify_cursor;
+	PangoContext* function(GtkWidget* widget)gtk_widget_create_pango_context;
+	PangoContext* function(GtkWidget* widget)gtk_widget_get_pango_context;
+	PangoLayout* function(GtkWidget* widget, gchar* text)gtk_widget_create_pango_layout;
+	GdkPixbuf* function(GtkWidget* widget, gchar* stockId, GtkIconSize size, gchar* detail)gtk_widget_render_icon;
+	void function()gtk_widget_pop_composite_child;
+	void function()gtk_widget_push_composite_child;
+	void function(GtkWidget* widget)gtk_widget_queue_clear;
+	void function(GtkWidget* widget, gint x, gint y, gint width, gint height)gtk_widget_queue_clear_area;
+	void function(GtkWidget* widget, gint x, gint y, gint width, gint height)gtk_widget_queue_draw_area;
+	void function(GtkWidget* widget)gtk_widget_reset_shapes;
+	void function(GtkWidget* widget, gboolean appPaintable)gtk_widget_set_app_paintable;
+	void function(GtkWidget* widget, gboolean doubleBuffered)gtk_widget_set_double_buffered;
+	void function(GtkWidget* widget, gboolean redrawOnAllocate)gtk_widget_set_redraw_on_allocate;
+	void function(GtkWidget* widget, gchar* name)gtk_widget_set_composite_name;
+	gboolean function(GtkWidget* widget, GtkAdjustment* hadjustment, GtkAdjustment* vadjustment)gtk_widget_set_scroll_adjustments;
+	gboolean function(GtkWidget* widget, gboolean groupCycling)gtk_widget_mnemonic_activate;
+	void function(GtkWidgetClass* klass, GParamSpec* pspec)gtk_widget_class_install_style_property;
+	void function(GtkWidgetClass* klass, GParamSpec* pspec, GtkRcPropertyParser parser)gtk_widget_class_install_style_property_parser;
+	GParamSpec* function(GtkWidgetClass* klass, gchar* propertyName)gtk_widget_class_find_style_property;
+	GParamSpec** function(GtkWidgetClass* klass, guint* nProperties)gtk_widget_class_list_style_properties;
+	GdkRegion* function(GtkWidget* widget, GdkRegion* region)gtk_widget_region_intersect;
+	gint function(GtkWidget* widget, GdkEvent* event)gtk_widget_send_expose;
+	void function(GtkWidget* widget, gchar* firstPropertyName, ... )gtk_widget_style_get;
+	void function(GtkWidget* widget, gchar* propertyName, GValue* value)gtk_widget_style_get_property;
+	void function(GtkWidget* widget, gchar* firstPropertyName, va_list varArgs)gtk_widget_style_get_valist;
+	AtkObject* function(GtkWidget* widget)gtk_widget_get_accessible;
+	gboolean function(GtkWidget* widget, GtkDirectionType direction)gtk_widget_child_focus;
+	void function(GtkWidget* widget, gchar* childProperty)gtk_widget_child_notify;
+	void function(GtkWidget* widget)gtk_widget_freeze_child_notify;
+	gboolean function(GtkWidget* widget)gtk_widget_get_child_visible;
+	GtkWidget* function(GtkWidget* widget)gtk_widget_get_parent;
+	GtkSettings* function(GtkWidget* widget)gtk_widget_get_settings;
+	GtkClipboard* function(GtkWidget* widget, GdkAtom selection)gtk_widget_get_clipboard;
+	GdkDisplay* function(GtkWidget* widget)gtk_widget_get_display;
+	GdkWindow* function(GtkWidget* widget)gtk_widget_get_root_window;
+	GdkScreen* function(GtkWidget* widget)gtk_widget_get_screen;
+	gboolean function(GtkWidget* widget)gtk_widget_has_screen;
+	void function(GtkWidget* widget, gint* width, gint* height)gtk_widget_get_size_request;
+	void function(GtkWidget* widget, gboolean isVisible)gtk_widget_set_child_visible;
+	void function(GtkWidget* widget, gint width, gint height)gtk_widget_set_size_request;
+	void function(GtkWidget* widget)gtk_widget_thaw_child_notify;
+	void function(GtkWidget* widget, gboolean noShowAll)gtk_widget_set_no_show_all;
+	gboolean function(GtkWidget* widget)gtk_widget_get_no_show_all;
+	GList* function(GtkWidget* widget)gtk_widget_list_mnemonic_labels;
+	void function(GtkWidget* widget, GtkWidget* label)gtk_widget_add_mnemonic_label;
+	void function(GtkWidget* widget, GtkWidget* label)gtk_widget_remove_mnemonic_label;
+	GtkAction* function(GtkWidget* widget)gtk_widget_get_action;
+	gboolean function(GtkWidget* widget)gtk_widget_is_composited;
+	void function(GtkWidget* widget)gtk_widget_error_bell;
+	gboolean function(GtkWidget* widget, GtkDirectionType direction)gtk_widget_keynav_failed;
+	gchar* function(GtkWidget* widget)gtk_widget_get_tooltip_markup;
+	void function(GtkWidget* widget, gchar* markup)gtk_widget_set_tooltip_markup;
+	gchar* function(GtkWidget* widget)gtk_widget_get_tooltip_text;
+	void function(GtkWidget* widget, gchar* text)gtk_widget_set_tooltip_text;
+	GtkWindow* function(GtkWidget* widget)gtk_widget_get_tooltip_window;
+	void function(GtkWidget* widget, GtkWindow* customWindow)gtk_widget_set_tooltip_window;
+	gboolean function(GtkWidget* widget)gtk_widget_get_has_tooltip;
+	void function(GtkWidget* widget, gboolean hasTooltip)gtk_widget_set_has_tooltip;
+	void function(GtkWidget* widget)gtk_widget_trigger_tooltip_query;
+	GtkRequisition* function(GtkRequisition* requisition)gtk_requisition_copy;
+	void function(GtkRequisition* requisition)gtk_requisition_free;
+	
+	// gtk.IMContext
+	
+	void function(GtkIMContext* context, GdkWindow* window)gtk_im_context_set_client_window;
+	void function(GtkIMContext* context, gchar** str, PangoAttrList** attrs, gint* cursorPos)gtk_im_context_get_preedit_string;
+	gboolean function(GtkIMContext* context, GdkEventKey* event)gtk_im_context_filter_keypress;
+	void function(GtkIMContext* context)gtk_im_context_focus_in;
+	void function(GtkIMContext* context)gtk_im_context_focus_out;
+	void function(GtkIMContext* context)gtk_im_context_reset;
+	void function(GtkIMContext* context, GdkRectangle* area)gtk_im_context_set_cursor_location;
+	void function(GtkIMContext* context, gboolean usePreedit)gtk_im_context_set_use_preedit;
+	void function(GtkIMContext* context, gchar* text, gint len, gint cursorIndex)gtk_im_context_set_surrounding;
+	gboolean function(GtkIMContext* context, gchar** text, gint* cursorIndex)gtk_im_context_get_surrounding;
+	gboolean function(GtkIMContext* context, gint offset, gint nChars)gtk_im_context_delete_surrounding;
+	
+	// gtk.Plug
+	
+	void function(GtkPlug* plug, GdkNativeWindow socketId)gtk_plug_construct;
+	void function(GtkPlug* plug, GdkDisplay* display, GdkNativeWindow socketId)gtk_plug_construct_for_display;
+	GtkWidget* function(GdkNativeWindow socketId)gtk_plug_new;
+	GtkWidget* function(GdkDisplay* display, GdkNativeWindow socketId)gtk_plug_new_for_display;
+	GdkNativeWindow function(GtkPlug* plug)gtk_plug_get_id;
+	
+	// gtk.Socket
+	
+	GtkWidget* function()gtk_socket_new;
+	void function(GtkSocket* socket, GdkNativeWindow wid)gtk_socket_steal;
+	void function(GtkSocket* socket, GdkNativeWindow windowId)gtk_socket_add_id;
+	GdkNativeWindow function(GtkSocket* socket)gtk_socket_get_id;
+	
+	// gtk.Curve
+	
+	GtkWidget* function()gtk_curve_new;
+	void function(GtkCurve* curve)gtk_curve_reset;
+	void function(GtkCurve* curve, gfloat gamma)gtk_curve_set_gamma;
+	void function(GtkCurve* curve, gfloat minX, gfloat maxX, gfloat minY, gfloat maxY)gtk_curve_set_range;
+	void function(GtkCurve* curve, int veclen, gfloat[] vector)gtk_curve_get_vector;
+	void function(GtkCurve* curve, int veclen, gfloat[] vector)gtk_curve_set_vector;
+	void function(GtkCurve* curve, GtkCurveType type)gtk_curve_set_curve_type;
+	
+	// gtk.GammaCurve
+	
+	GtkWidget* function()gtk_gamma_curve_new;
+	
+	// gtk.Ruler
+	
+	void function(GtkRuler* ruler, GtkMetricType metric)gtk_ruler_set_metric;
+	void function(GtkRuler* ruler, gdouble lower, gdouble upper, gdouble position, gdouble maxSize)gtk_ruler_set_range;
+	GtkMetricType function(GtkRuler* ruler)gtk_ruler_get_metric;
+	void function(GtkRuler* ruler, gdouble* lower, gdouble* upper, gdouble* position, gdouble* maxSize)gtk_ruler_get_range;
+	
+	// gtk.HRuler
+	
+	GtkWidget* function()gtk_hruler_new;
+	
+	// gtk.VRuler
+	
+	GtkWidget* function()gtk_vruler_new;
+	
+	// gtk.RecentManager
+	
+	GtkRecentManager* function()gtk_recent_manager_new;
+	GtkRecentManager* function()gtk_recent_manager_get_default;
+	GtkRecentManager* function(GdkScreen* screen)gtk_recent_manager_get_for_screen;
+	void function(GtkRecentManager* manager, GdkScreen* screen)gtk_recent_manager_set_screen;
+	gboolean function(GtkRecentManager* manager, gchar* uri)gtk_recent_manager_add_item;
+	gboolean function(GtkRecentManager* manager, gchar* uri, GtkRecentData* recentData)gtk_recent_manager_add_full;
+	gboolean function(GtkRecentManager* manager, gchar* uri, GError** error)gtk_recent_manager_remove_item;
+	GtkRecentInfo* function(GtkRecentManager* manager, gchar* uri, GError** error)gtk_recent_manager_lookup_item;
+	gboolean function(GtkRecentManager* manager, gchar* uri)gtk_recent_manager_has_item;
+	gboolean function(GtkRecentManager* manager, gchar* uri, gchar* newUri, GError** error)gtk_recent_manager_move_item;
+	gint function(GtkRecentManager* manager)gtk_recent_manager_get_limit;
+	void function(GtkRecentManager* manager, gint limit)gtk_recent_manager_set_limit;
+	GList* function(GtkRecentManager* manager)gtk_recent_manager_get_items;
+	gint function(GtkRecentManager* manager, GError** error)gtk_recent_manager_purge_items;
+	
+	// gtk.RecentInfo
+	
+	GtkRecentInfo* function(GtkRecentInfo* info)gtk_recent_info_ref;
+	void function(GtkRecentInfo* info)gtk_recent_info_unref;
+	gchar* function(GtkRecentInfo* info)gtk_recent_info_get_uri;
+	gchar* function(GtkRecentInfo* info)gtk_recent_info_get_display_name;
+	gchar* function(GtkRecentInfo* info)gtk_recent_info_get_description;
+	gchar* function(GtkRecentInfo* info)gtk_recent_info_get_mime_type;
+	time_t function(GtkRecentInfo* info)gtk_recent_info_get_added;
+	time_t function(GtkRecentInfo* info)gtk_recent_info_get_modified;
+	time_t function(GtkRecentInfo* info)gtk_recent_info_get_visited;
+	gboolean function(GtkRecentInfo* info)gtk_recent_info_get_private_hint;
+	gboolean function(GtkRecentInfo* info, gchar* appName, gchar** appExec, guint* count, time_t* time)gtk_recent_info_get_application_info;
+	gchar** function(GtkRecentInfo* info, gsize* length)gtk_recent_info_get_applications;
+	gchar* function(GtkRecentInfo* info)gtk_recent_info_last_application;
+	gchar** function(GtkRecentInfo* info, gsize* length)gtk_recent_info_get_groups;
+	gboolean function(GtkRecentInfo* info, gchar* groupName)gtk_recent_info_has_group;
+	gboolean function(GtkRecentInfo* info, gchar* appName)gtk_recent_info_has_application;
+	GdkPixbuf* function(GtkRecentInfo* info, gint size)gtk_recent_info_get_icon;
+	gchar* function(GtkRecentInfo* info)gtk_recent_info_get_short_name;
+	gchar* function(GtkRecentInfo* info)gtk_recent_info_get_uri_display;
+	gint function(GtkRecentInfo* info)gtk_recent_info_get_age;
+	gboolean function(GtkRecentInfo* info)gtk_recent_info_is_local;
+	gboolean function(GtkRecentInfo* info)gtk_recent_info_exists;
+	gboolean function(GtkRecentInfo* infoA, GtkRecentInfo* infoB)gtk_recent_info_match;
+	
+	// gtk.RecentChooserT
+	
+	
+	// gtk.RecentChooserT
+	
+	void function(GtkRecentChooser* chooser, gboolean showPrivate)gtk_recent_chooser_set_show_private;
+	gboolean function(GtkRecentChooser* chooser)gtk_recent_chooser_get_show_private;
+	void function(GtkRecentChooser* chooser, gboolean showNotFound)gtk_recent_chooser_set_show_not_found;
+	gboolean function(GtkRecentChooser* chooser)gtk_recent_chooser_get_show_not_found;
+	void function(GtkRecentChooser* chooser, gboolean showIcons)gtk_recent_chooser_set_show_icons;
+	gboolean function(GtkRecentChooser* chooser)gtk_recent_chooser_get_show_icons;
+	void function(GtkRecentChooser* chooser, gboolean selectMultiple)gtk_recent_chooser_set_select_multiple;
+	gboolean function(GtkRecentChooser* chooser)gtk_recent_chooser_get_select_multiple;
+	void function(GtkRecentChooser* chooser, gboolean localOnly)gtk_recent_chooser_set_local_only;
+	gboolean function(GtkRecentChooser* chooser)gtk_recent_chooser_get_local_only;
+	void function(GtkRecentChooser* chooser, gint limit)gtk_recent_chooser_set_limit;
+	gint function(GtkRecentChooser* chooser)gtk_recent_chooser_get_limit;
+	void function(GtkRecentChooser* chooser, gboolean showTips)gtk_recent_chooser_set_show_tips;
+	gboolean function(GtkRecentChooser* chooser)gtk_recent_chooser_get_show_tips;
+	void function(GtkRecentChooser* chooser, gboolean showNumbers)gtk_recent_chooser_set_show_numbers;
+	gboolean function(GtkRecentChooser* chooser)gtk_recent_chooser_get_show_numbers;
+	void function(GtkRecentChooser* chooser, GtkRecentSortType sortType)gtk_recent_chooser_set_sort_type;
+	GtkRecentSortType function(GtkRecentChooser* chooser)gtk_recent_chooser_get_sort_type;
+	void function(GtkRecentChooser* chooser, GtkRecentSortFunc sortFunc, gpointer sortData, GDestroyNotify dataDestroy)gtk_recent_chooser_set_sort_func;
+	gboolean function(GtkRecentChooser* chooser, gchar* uri, GError** error)gtk_recent_chooser_set_current_uri;
+	gchar* function(GtkRecentChooser* chooser)gtk_recent_chooser_get_current_uri;
+	GtkRecentInfo* function(GtkRecentChooser* chooser)gtk_recent_chooser_get_current_item;
+	gboolean function(GtkRecentChooser* chooser, gchar* uri, GError** error)gtk_recent_chooser_select_uri;
+	void function(GtkRecentChooser* chooser, gchar* uri)gtk_recent_chooser_unselect_uri;
+	void function(GtkRecentChooser* chooser)gtk_recent_chooser_select_all;
+	void function(GtkRecentChooser* chooser)gtk_recent_chooser_unselect_all;
+	GList* function(GtkRecentChooser* chooser)gtk_recent_chooser_get_items;
+	gchar** function(GtkRecentChooser* chooser, gsize* length)gtk_recent_chooser_get_uris;
+	void function(GtkRecentChooser* chooser, GtkRecentFilter* filter)gtk_recent_chooser_add_filter;
+	void function(GtkRecentChooser* chooser, GtkRecentFilter* filter)gtk_recent_chooser_remove_filter;
+	GSList* function(GtkRecentChooser* chooser)gtk_recent_chooser_list_filters;
+	void function(GtkRecentChooser* chooser, GtkRecentFilter* filter)gtk_recent_chooser_set_filter;
+	GtkRecentFilter* function(GtkRecentChooser* chooser)gtk_recent_chooser_get_filter;
+	
+	// gtk.RecentChooserDialog
+	
+	GtkWidget* function(gchar* title, GtkWindow* parent, gchar* firstButtonText, ... )gtk_recent_chooser_dialog_new;
+	GtkWidget* function(gchar* title, GtkWindow* parent, GtkRecentManager* manager, gchar* firstButtonText, ... )gtk_recent_chooser_dialog_new_for_manager;
+	
+	// gtk.RecentChooserMenu
+	
+	GtkWidget* function()gtk_recent_chooser_menu_new;
+	GtkWidget* function(GtkRecentManager* manager)gtk_recent_chooser_menu_new_for_manager;
+	gboolean function(GtkRecentChooserMenu* menu)gtk_recent_chooser_menu_get_show_numbers;
+	void function(GtkRecentChooserMenu* menu, gboolean showNumbers)gtk_recent_chooser_menu_set_show_numbers;
+	
+	// gtk.RecentChooserWidget
+	
+	GtkWidget* function()gtk_recent_chooser_widget_new;
+	GtkWidget* function(GtkRecentManager* manager)gtk_recent_chooser_widget_new_for_manager;
+	
+	// gtk.RecentFilter
+	
+	GtkRecentFilter* function()gtk_recent_filter_new;
+	gchar* function(GtkRecentFilter* filter)gtk_recent_filter_get_name;
+	void function(GtkRecentFilter* filter, gchar* name)gtk_recent_filter_set_name;
+	void function(GtkRecentFilter* filter, gchar* mimeType)gtk_recent_filter_add_mime_type;
+	void function(GtkRecentFilter* filter, gchar* pattern)gtk_recent_filter_add_pattern;
+	void function(GtkRecentFilter* filter)gtk_recent_filter_add_pixbuf_formats;
+	void function(GtkRecentFilter* filter, gchar* application)gtk_recent_filter_add_application;
+	void function(GtkRecentFilter* filter, gchar* group)gtk_recent_filter_add_group;
+	void function(GtkRecentFilter* filter, gint days)gtk_recent_filter_add_age;
+	void function(GtkRecentFilter* filter, GtkRecentFilterFlags needed, GtkRecentFilterFunc func, gpointer data, GDestroyNotify dataDestroy)gtk_recent_filter_add_custom;
+	GtkRecentFilterFlags function(GtkRecentFilter* filter)gtk_recent_filter_get_needed;
+	gboolean function(GtkRecentFilter* filter, GtkRecentFilterInfo* filterInfo)gtk_recent_filter_filter;
+	
+	// gtk.BuildableT
+	
+	
+	// gtk.BuildableT
+	
+	void function(GtkBuildable* buildable, gchar* name)gtk_buildable_set_name;
+	gchar* function(GtkBuildable* buildable)gtk_buildable_get_name;
+	void function(GtkBuildable* buildable, GtkBuilder* builder, GObject* child, gchar* type)gtk_buildable_add_child;
+	void function(GtkBuildable* buildable, GtkBuilder* builder, gchar* name, GValue* value)gtk_buildable_set_buildable_property;
+	GObject* function(GtkBuildable* buildable, GtkBuilder* builder, gchar* name)gtk_buildable_construct_child;
+	gboolean function(GtkBuildable* buildable, GtkBuilder* builder, GObject* child, gchar* tagname, GMarkupParser* parser, gpointer* data)gtk_buildable_custom_tag_start;
+	void function(GtkBuildable* buildable, GtkBuilder* builder, GObject* child, gchar* tagname, gpointer* data)gtk_buildable_custom_tag_end;
+	void function(GtkBuildable* buildable, GtkBuilder* builder, GObject* child, gchar* tagname, gpointer data)gtk_buildable_custom_finished;
+	void function(GtkBuildable* buildable, GtkBuilder* builder)gtk_buildable_parser_finished;
+	GObject* function(GtkBuildable* buildable, GtkBuilder* builder, gchar* childname)gtk_buildable_get_internal_child;
+	
+	// gtk.Builder
+	
+	GtkBuilder* function()gtk_builder_new;
+	guint function(GtkBuilder* builder, gchar* filename, GError** error)gtk_builder_add_from_file;
+	guint function(GtkBuilder* builder, gchar* buffer, gsize length, GError** error)gtk_builder_add_from_string;
+	GObject* function(GtkBuilder* builder, gchar* name)gtk_builder_get_object;
+	GSList* function(GtkBuilder* builder)gtk_builder_get_objects;
+	void function(GtkBuilder* builder, gpointer userData)gtk_builder_connect_signals;
+	void function(GtkBuilder* builder, GtkBuilderConnectFunc func, gpointer userData)gtk_builder_connect_signals_full;
+	void function(GtkBuilder* builder, gchar* domain)gtk_builder_set_translation_domain;
+	gchar* function(GtkBuilder* builder)gtk_builder_get_translation_domain;
+	GType function(GtkBuilder* builder, char* typeName)gtk_builder_get_type_from_name;
+	gboolean function(GtkBuilder* builder, GParamSpec* pspec, gchar* string, GValue* value, GError** error)gtk_builder_value_from_string;
+	gboolean function(GtkBuilder* builder, GType type, gchar* string, GValue* value, GError** error)gtk_builder_value_from_string_type;
+	
+	// gtk.FileSelection
+	
+	GtkWidget* function(gchar* title)gtk_file_selection_new;
+	void function(GtkFileSelection* filesel, gchar* filename)gtk_file_selection_set_filename;
+	gchar* function(GtkFileSelection* filesel)gtk_file_selection_get_filename;
+	void function(GtkFileSelection* filesel, gchar* pattern)gtk_file_selection_complete;
+	void function(GtkFileSelection* filesel)gtk_file_selection_show_fileop_buttons;
+	void function(GtkFileSelection* filesel)gtk_file_selection_hide_fileop_buttons;
+	gchar** function(GtkFileSelection* filesel)gtk_file_selection_get_selections;
+	void function(GtkFileSelection* filesel, gboolean selectMultiple)gtk_file_selection_set_select_multiple;
+	gboolean function(GtkFileSelection* filesel)gtk_file_selection_get_select_multiple;
+	
+	// gtk.ItemFactory
+	
+	GtkItemFactory* function(GType containerType, gchar* path, GtkAccelGroup* accelGroup)gtk_item_factory_new;
+	void function(GtkItemFactory* ifactory, GType containerType, gchar* path, GtkAccelGroup* accelGroup)gtk_item_factory_construct;
+	void function(GtkWidget* accelWidget, gchar* fullPath, GtkAccelGroup* accelGroup, guint keyval, GdkModifierType modifiers)gtk_item_factory_add_foreign;
+	GtkItemFactory* function(GtkWidget* widget)gtk_item_factory_from_widget;
+	gchar* function(GtkWidget* widget)gtk_item_factory_path_from_widget;
+	GtkWidget* function(GtkItemFactory* ifactory, gchar* path)gtk_item_factory_get_item;
+	GtkWidget* function(GtkItemFactory* ifactory, gchar* path)gtk_item_factory_get_widget;
+	GtkWidget* function(GtkItemFactory* ifactory, guint action)gtk_item_factory_get_widget_by_action;
+	GtkWidget* function(GtkItemFactory* ifactory, guint action)gtk_item_factory_get_item_by_action;
+	void function(GtkItemFactory* ifactory, GtkItemFactoryEntry* entry, gpointer callbackData, guint callbackType)gtk_item_factory_create_item;
+	void function(GtkItemFactory* ifactory, guint nEntries, GtkItemFactoryEntry* entries, gpointer callbackData)gtk_item_factory_create_items;
+	void function(GtkItemFactory* ifactory, guint nEntries, GtkItemFactoryEntry* entries, gpointer callbackData, guint callbackType)gtk_item_factory_create_items_ac;
+	void function(GtkItemFactory* ifactory, gchar* path)gtk_item_factory_delete_item;
+	void function(GtkItemFactory* ifactory, GtkItemFactoryEntry* entry)gtk_item_factory_delete_entry;
+	void function(GtkItemFactory* ifactory, guint nEntries, GtkItemFactoryEntry* entries)gtk_item_factory_delete_entries;
+	void function(GtkItemFactory* ifactory, guint x, guint y, guint mouseButton, guint32 time)gtk_item_factory_popup;
+	void function(GtkItemFactory* ifactory, gpointer popupData, GtkDestroyNotify destroy, guint x, guint y, guint mouseButton, guint32 time)gtk_item_factory_popup_with_data;
+	gpointer function(GtkItemFactory* ifactory)gtk_item_factory_popup_data;
+	gpointer function(GtkWidget* widget)gtk_item_factory_popup_data_from_widget;
+	GtkItemFactory* function(gchar* path)gtk_item_factory_from_path;
+	void function(gchar* ifactoryPath, gchar* path)gtk_item_factories_path_delete;
+	void function(GtkItemFactory* ifactory, GtkTranslateFunc func, gpointer data, GtkDestroyNotify notify)gtk_item_factory_set_translate_func;
+	
+	// gtk.Tooltips
+	
+	GtkTooltips* function()gtk_tooltips_new;
+	void function(GtkTooltips* tooltips)gtk_tooltips_enable;
+	void function(GtkTooltips* tooltips)gtk_tooltips_disable;
+	void function(GtkTooltips* tooltips, guint delay)gtk_tooltips_set_delay;
+	void function(GtkTooltips* tooltips, GtkWidget* widget, gchar* tipText, gchar* tipPrivate)gtk_tooltips_set_tip;
+	GtkTooltipsData* function(GtkWidget* widget)gtk_tooltips_data_get;
+	void function(GtkTooltips* tooltips)gtk_tooltips_force_window;
+	gboolean function(GtkWindow* tipWindow, GtkTooltips** tooltips, GtkWidget** currentWidget)gtk_tooltips_get_info_from_tip_window;
+	
+	// gtk.Progress
+	
+	void function(GtkProgress* progress, gboolean showText)gtk_progress_set_show_text;
+	void function(GtkProgress* progress, gfloat xAlign, gfloat yAlign)gtk_progress_set_text_alignment;
+	void function(GtkProgress* progress, gchar* format)gtk_progress_set_format_string;
+	void function(GtkProgress* progress, GtkAdjustment* adjustment)gtk_progress_set_adjustment;
+	void function(GtkProgress* progress, gdouble percentage)gtk_progress_set_percentage;
+	void function(GtkProgress* progress, gdouble value)gtk_progress_set_value;
+	gdouble function(GtkProgress* progress)gtk_progress_get_value;
+	void function(GtkProgress* progress, gboolean activityMode)gtk_progress_set_activity_mode;
+	gchar* function(GtkProgress* progress)gtk_progress_get_current_text;
+	gchar* function(GtkProgress* progress, gdouble value)gtk_progress_get_text_from_value;
+	gdouble function(GtkProgress* progress)gtk_progress_get_current_percentage;
+	gdouble function(GtkProgress* progress, gdouble value)gtk_progress_get_percentage_from_value;
+	void function(GtkProgress* progress, gdouble value, gdouble hmin, gdouble max)gtk_progress_configure;
+
+
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+Symbol[] gtkLinks = 
+[
+
+	{ "gtk_set_locale",  cast(void**)& gtk_set_locale},
+	{ "gtk_disable_setlocale",  cast(void**)& gtk_disable_setlocale},
+	{ "gtk_get_default_language",  cast(void**)& gtk_get_default_language},
+	{ "gtk_parse_args",  cast(void**)& gtk_parse_args},
+	{ "gtk_init",  cast(void**)& gtk_init},
+	{ "gtk_init_check",  cast(void**)& gtk_init_check},
+	{ "gtk_init_with_args",  cast(void**)& gtk_init_with_args},
+	{ "gtk_get_option_group",  cast(void**)& gtk_get_option_group},
+	{ "gtk_exit",  cast(void**)& gtk_exit},
+	{ "gtk_events_pending",  cast(void**)& gtk_events_pending},
+	{ "gtk_main",  cast(void**)& gtk_main},
+	{ "gtk_main_level",  cast(void**)& gtk_main_level},
+	{ "gtk_main_quit",  cast(void**)& gtk_main_quit},
+	{ "gtk_main_iteration",  cast(void**)& gtk_main_iteration},
+	{ "gtk_main_iteration_do",  cast(void**)& gtk_main_iteration_do},
+	{ "gtk_main_do_event",  cast(void**)& gtk_main_do_event},
+	{ "gtk_grab_add",  cast(void**)& gtk_grab_add},
+	{ "gtk_grab_get_current",  cast(void**)& gtk_grab_get_current},
+	{ "gtk_grab_remove",  cast(void**)& gtk_grab_remove},
+	{ "gtk_init_add",  cast(void**)& gtk_init_add},
+	{ "gtk_quit_add_destroy",  cast(void**)& gtk_quit_add_destroy},
+	{ "gtk_quit_add",  cast(void**)& gtk_quit_add},
+	{ "gtk_quit_add_full",  cast(void**)& gtk_quit_add_full},
+	{ "gtk_quit_remove",  cast(void**)& gtk_quit_remove},
+	{ "gtk_quit_remove_by_data",  cast(void**)& gtk_quit_remove_by_data},
+	{ "gtk_input_add_full",  cast(void**)& gtk_input_add_full},
+	{ "gtk_input_remove",  cast(void**)& gtk_input_remove},
+	{ "gtk_key_snooper_install",  cast(void**)& gtk_key_snooper_install},
+	{ "gtk_key_snooper_remove",  cast(void**)& gtk_key_snooper_remove},
+	{ "gtk_get_current_event",  cast(void**)& gtk_get_current_event},
+	{ "gtk_get_current_event_time",  cast(void**)& gtk_get_current_event_time},
+	{ "gtk_get_current_event_state",  cast(void**)& gtk_get_current_event_state},
+	{ "gtk_get_event_widget",  cast(void**)& gtk_get_event_widget},
+	{ "gtk_propagate_event",  cast(void**)& gtk_propagate_event},
+	{ "gtk_timeout_add_full",  cast(void**)& gtk_timeout_add_full},
+	{ "gtk_timeout_add",  cast(void**)& gtk_timeout_add},
+	{ "gtk_timeout_remove",  cast(void**)& gtk_timeout_remove},
+	{ "gtk_idle_add",  cast(void**)& gtk_idle_add},
+	{ "gtk_idle_add_priority",  cast(void**)& gtk_idle_add_priority},
+	{ "gtk_idle_add_full",  cast(void**)& gtk_idle_add_full},
+	{ "gtk_idle_remove",  cast(void**)& gtk_idle_remove},
+	{ "gtk_idle_remove_by_data",  cast(void**)& gtk_idle_remove_by_data},
+	{ "gtk_accel_group_new",  cast(void**)& gtk_accel_group_new},
+	{ "gtk_accel_group_connect",  cast(void**)& gtk_accel_group_connect},
+	{ "gtk_accel_group_connect_by_path",  cast(void**)& gtk_accel_group_connect_by_path},
+	{ "gtk_accel_group_disconnect",  cast(void**)& gtk_accel_group_disconnect},
+	{ "gtk_accel_group_disconnect_key",  cast(void**)& gtk_accel_group_disconnect_key},
+	{ "gtk_accel_group_query",  cast(void**)& gtk_accel_group_query},
+	{ "gtk_accel_group_activate",  cast(void**)& gtk_accel_group_activate},
+	{ "gtk_accel_group_lock",  cast(void**)& gtk_accel_group_lock},
+	{ "gtk_accel_group_unlock",  cast(void**)& gtk_accel_group_unlock},
+	{ "gtk_accel_group_from_accel_closure",  cast(void**)& gtk_accel_group_from_accel_closure},
+	{ "gtk_accel_groups_activate",  cast(void**)& gtk_accel_groups_activate},
+	{ "gtk_accel_groups_from_object",  cast(void**)& gtk_accel_groups_from_object},
+	{ "gtk_accel_group_find",  cast(void**)& gtk_accel_group_find},
+	{ "gtk_accelerator_valid",  cast(void**)& gtk_accelerator_valid},
+	{ "gtk_accelerator_parse",  cast(void**)& gtk_accelerator_parse},
+	{ "gtk_accelerator_name",  cast(void**)& gtk_accelerator_name},
+	{ "gtk_accelerator_get_label",  cast(void**)& gtk_accelerator_get_label},
+	{ "gtk_accelerator_set_default_mod_mask",  cast(void**)& gtk_accelerator_set_default_mod_mask},
+	{ "gtk_accelerator_get_default_mod_mask",  cast(void**)& gtk_accelerator_get_default_mod_mask},
+	{ "gtk_accel_map_add_entry",  cast(void**)& gtk_accel_map_add_entry},
+	{ "gtk_accel_map_lookup_entry",  cast(void**)& gtk_accel_map_lookup_entry},
+	{ "gtk_accel_map_change_entry",  cast(void**)& gtk_accel_map_change_entry},
+	{ "gtk_accel_map_load",  cast(void**)& gtk_accel_map_load},
+	{ "gtk_accel_map_save",  cast(void**)& gtk_accel_map_save},
+	{ "gtk_accel_map_foreach",  cast(void**)& gtk_accel_map_foreach},
+	{ "gtk_accel_map_load_fd",  cast(void**)& gtk_accel_map_load_fd},
+	{ "gtk_accel_map_save_fd",  cast(void**)& gtk_accel_map_save_fd},
+	{ "gtk_accel_map_load_scanner",  cast(void**)& gtk_accel_map_load_scanner},
+	{ "gtk_accel_map_add_filter",  cast(void**)& gtk_accel_map_add_filter},
+	{ "gtk_accel_map_foreach_unfiltered",  cast(void**)& gtk_accel_map_foreach_unfiltered},
+	{ "gtk_accel_map_get",  cast(void**)& gtk_accel_map_get},
+	{ "gtk_accel_map_lock_path",  cast(void**)& gtk_accel_map_lock_path},
+	{ "gtk_accel_map_unlock_path",  cast(void**)& gtk_accel_map_unlock_path},
+	{ "gtk_clipboard_get",  cast(void**)& gtk_clipboard_get},
+	{ "gtk_clipboard_get_for_display",  cast(void**)& gtk_clipboard_get_for_display},
+	{ "gtk_clipboard_get_display",  cast(void**)& gtk_clipboard_get_display},
+	{ "gtk_clipboard_set_with_data",  cast(void**)& gtk_clipboard_set_with_data},
+	{ "gtk_clipboard_set_with_owner",  cast(void**)& gtk_clipboard_set_with_owner},
+	{ "gtk_clipboard_get_owner",  cast(void**)& gtk_clipboard_get_owner},
+	{ "gtk_clipboard_clear",  cast(void**)& gtk_clipboard_clear},
+	{ "gtk_clipboard_set_text",  cast(void**)& gtk_clipboard_set_text},
+	{ "gtk_clipboard_set_image",  cast(void**)& gtk_clipboard_set_image},
+	{ "gtk_clipboard_request_contents",  cast(void**)& gtk_clipboard_request_contents},
+	{ "gtk_clipboard_request_text",  cast(void**)& gtk_clipboard_request_text},
+	{ "gtk_clipboard_request_image",  cast(void**)& gtk_clipboard_request_image},
+	{ "gtk_clipboard_request_targets",  cast(void**)& gtk_clipboard_request_targets},
+	{ "gtk_clipboard_request_rich_text",  cast(void**)& gtk_clipboard_request_rich_text},
+	{ "gtk_clipboard_wait_for_contents",  cast(void**)& gtk_clipboard_wait_for_contents},
+	{ "gtk_clipboard_wait_for_text",  cast(void**)& gtk_clipboard_wait_for_text},
+	{ "gtk_clipboard_wait_for_image",  cast(void**)& gtk_clipboard_wait_for_image},
+	{ "gtk_clipboard_wait_for_rich_text",  cast(void**)& gtk_clipboard_wait_for_rich_text},
+	{ "gtk_clipboard_wait_is_text_available",  cast(void**)& gtk_clipboard_wait_is_text_available},
+	{ "gtk_clipboard_wait_is_image_available",  cast(void**)& gtk_clipboard_wait_is_image_available},
+	{ "gtk_clipboard_wait_is_rich_text_available",  cast(void**)& gtk_clipboard_wait_is_rich_text_available},
+	{ "gtk_clipboard_wait_for_targets",  cast(void**)& gtk_clipboard_wait_for_targets},
+	{ "gtk_clipboard_wait_is_target_available",  cast(void**)& gtk_clipboard_wait_is_target_available},
+	{ "gtk_clipboard_set_can_store",  cast(void**)& gtk_clipboard_set_can_store},
+	{ "gtk_clipboard_store",  cast(void**)& gtk_clipboard_store},
+	{ "gtk_drag_dest_set",  cast(void**)& gtk_drag_dest_set},
+	{ "gtk_drag_dest_set_proxy",  cast(void**)& gtk_drag_dest_set_proxy},
+	{ "gtk_drag_dest_unset",  cast(void**)& gtk_drag_dest_unset},
+	{ "gtk_drag_dest_find_target",  cast(void**)& gtk_drag_dest_find_target},
+	{ "gtk_drag_dest_get_target_list",  cast(void**)& gtk_drag_dest_get_target_list},
+	{ "gtk_drag_dest_set_target_list",  cast(void**)& gtk_drag_dest_set_target_list},
+	{ "gtk_drag_dest_add_text_targets",  cast(void**)& gtk_drag_dest_add_text_targets},
+	{ "gtk_drag_dest_add_image_targets",  cast(void**)& gtk_drag_dest_add_image_targets},
+	{ "gtk_drag_dest_add_uri_targets",  cast(void**)& gtk_drag_dest_add_uri_targets},
+	{ "gtk_drag_dest_set_track_motion",  cast(void**)& gtk_drag_dest_set_track_motion},
+	{ "gtk_drag_dest_get_track_motion",  cast(void**)& gtk_drag_dest_get_track_motion},
+	{ "gtk_drag_finish",  cast(void**)& gtk_drag_finish},
+	{ "gtk_drag_get_data",  cast(void**)& gtk_drag_get_data},
+	{ "gtk_drag_get_source_widget",  cast(void**)& gtk_drag_get_source_widget},
+	{ "gtk_drag_highlight",  cast(void**)& gtk_drag_highlight},
+	{ "gtk_drag_unhighlight",  cast(void**)& gtk_drag_unhighlight},
+	{ "gtk_drag_begin",  cast(void**)& gtk_drag_begin},
+	{ "gtk_drag_set_icon_widget",  cast(void**)& gtk_drag_set_icon_widget},
+	{ "gtk_drag_set_icon_pixmap",  cast(void**)& gtk_drag_set_icon_pixmap},
+	{ "gtk_drag_set_icon_pixbuf",  cast(void**)& gtk_drag_set_icon_pixbuf},
+	{ "gtk_drag_set_icon_stock",  cast(void**)& gtk_drag_set_icon_stock},
+	{ "gtk_drag_set_icon_name",  cast(void**)& gtk_drag_set_icon_name},
+	{ "gtk_drag_set_icon_default",  cast(void**)& gtk_drag_set_icon_default},
+	{ "gtk_drag_set_default_icon",  cast(void**)& gtk_drag_set_default_icon},
+	{ "gtk_drag_check_threshold",  cast(void**)& gtk_drag_check_threshold},
+	{ "gtk_drag_source_set",  cast(void**)& gtk_drag_source_set},
+	{ "gtk_drag_source_set_icon",  cast(void**)& gtk_drag_source_set_icon},
+	{ "gtk_drag_source_set_icon_pixbuf",  cast(void**)& gtk_drag_source_set_icon_pixbuf},
+	{ "gtk_drag_source_set_icon_stock",  cast(void**)& gtk_drag_source_set_icon_stock},
+	{ "gtk_drag_source_set_icon_name",  cast(void**)& gtk_drag_source_set_icon_name},
+	{ "gtk_drag_source_unset",  cast(void**)& gtk_drag_source_unset},
+	{ "gtk_drag_source_set_target_list",  cast(void**)& gtk_drag_source_set_target_list},
+	{ "gtk_drag_source_get_target_list",  cast(void**)& gtk_drag_source_get_target_list},
+	{ "gtk_drag_source_add_text_targets",  cast(void**)& gtk_drag_source_add_text_targets},
+	{ "gtk_drag_source_add_image_targets",  cast(void**)& gtk_drag_source_add_image_targets},
+	{ "gtk_drag_source_add_uri_targets",  cast(void**)& gtk_drag_source_add_uri_targets},
+	{ "gtk_icon_theme_new",  cast(void**)& gtk_icon_theme_new},
+	{ "gtk_icon_theme_get_default",  cast(void**)& gtk_icon_theme_get_default},
+	{ "gtk_icon_theme_get_for_screen",  cast(void**)& gtk_icon_theme_get_for_screen},
+	{ "gtk_icon_theme_set_screen",  cast(void**)& gtk_icon_theme_set_screen},
+	{ "gtk_icon_theme_set_search_path",  cast(void**)& gtk_icon_theme_set_search_path},
+	{ "gtk_icon_theme_get_search_path",  cast(void**)& gtk_icon_theme_get_search_path},
+	{ "gtk_icon_theme_append_search_path",  cast(void**)& gtk_icon_theme_append_search_path},
+	{ "gtk_icon_theme_prepend_search_path",  cast(void**)& gtk_icon_theme_prepend_search_path},
+	{ "gtk_icon_theme_set_custom_theme",  cast(void**)& gtk_icon_theme_set_custom_theme},
+	{ "gtk_icon_theme_has_icon",  cast(void**)& gtk_icon_theme_has_icon},
+	{ "gtk_icon_theme_lookup_icon",  cast(void**)& gtk_icon_theme_lookup_icon},
+	{ "gtk_icon_theme_choose_icon",  cast(void**)& gtk_icon_theme_choose_icon},
+	{ "gtk_icon_theme_load_icon",  cast(void**)& gtk_icon_theme_load_icon},
+	{ "gtk_icon_theme_list_contexts",  cast(void**)& gtk_icon_theme_list_contexts},
+	{ "gtk_icon_theme_list_icons",  cast(void**)& gtk_icon_theme_list_icons},
+	{ "gtk_icon_theme_get_icon_sizes",  cast(void**)& gtk_icon_theme_get_icon_sizes},
+	{ "gtk_icon_theme_get_example_icon_name",  cast(void**)& gtk_icon_theme_get_example_icon_name},
+	{ "gtk_icon_theme_rescan_if_needed",  cast(void**)& gtk_icon_theme_rescan_if_needed},
+	{ "gtk_icon_theme_add_builtin_icon",  cast(void**)& gtk_icon_theme_add_builtin_icon},
+	{ "gtk_icon_info_copy",  cast(void**)& gtk_icon_info_copy},
+	{ "gtk_icon_info_free",  cast(void**)& gtk_icon_info_free},
+	{ "gtk_icon_info_get_base_size",  cast(void**)& gtk_icon_info_get_base_size},
+	{ "gtk_icon_info_get_filename",  cast(void**)& gtk_icon_info_get_filename},
+	{ "gtk_icon_info_get_builtin_pixbuf",  cast(void**)& gtk_icon_info_get_builtin_pixbuf},
+	{ "gtk_icon_info_load_icon",  cast(void**)& gtk_icon_info_load_icon},
+	{ "gtk_icon_info_set_raw_coordinates",  cast(void**)& gtk_icon_info_set_raw_coordinates},
+	{ "gtk_icon_info_get_embedded_rect",  cast(void**)& gtk_icon_info_get_embedded_rect},
+	{ "gtk_icon_info_get_attach_points",  cast(void**)& gtk_icon_info_get_attach_points},
+	{ "gtk_icon_info_get_display_name",  cast(void**)& gtk_icon_info_get_display_name},
+	{ "gtk_stock_add",  cast(void**)& gtk_stock_add},
+	{ "gtk_stock_add_static",  cast(void**)& gtk_stock_add_static},
+	{ "gtk_stock_item_copy",  cast(void**)& gtk_stock_item_copy},
+	{ "gtk_stock_item_free",  cast(void**)& gtk_stock_item_free},
+	{ "gtk_stock_list_ids",  cast(void**)& gtk_stock_list_ids},
+	{ "gtk_stock_lookup",  cast(void**)& gtk_stock_lookup},
+	{ "gtk_stock_set_translate_func",  cast(void**)& gtk_stock_set_translate_func},
+	{ "gtk_icon_source_copy",  cast(void**)& gtk_icon_source_copy},
+	{ "gtk_icon_source_free",  cast(void**)& gtk_icon_source_free},
+	{ "gtk_icon_factory_add",  cast(void**)& gtk_icon_factory_add},
+	{ "gtk_icon_factory_add_default",  cast(void**)& gtk_icon_factory_add_default},
+	{ "gtk_icon_factory_lookup",  cast(void**)& gtk_icon_factory_lookup},
+	{ "gtk_icon_factory_lookup_default",  cast(void**)& gtk_icon_factory_lookup_default},
+	{ "gtk_icon_factory_new",  cast(void**)& gtk_icon_factory_new},
+	{ "gtk_icon_factory_remove_default",  cast(void**)& gtk_icon_factory_remove_default},
+	{ "gtk_icon_set_add_source",  cast(void**)& gtk_icon_set_add_source},
+	{ "gtk_icon_set_copy",  cast(void**)& gtk_icon_set_copy},
+	{ "gtk_icon_set_new",  cast(void**)& gtk_icon_set_new},
+	{ "gtk_icon_set_new_from_pixbuf",  cast(void**)& gtk_icon_set_new_from_pixbuf},
+	{ "gtk_icon_set_ref",  cast(void**)& gtk_icon_set_ref},
+	{ "gtk_icon_set_render_icon",  cast(void**)& gtk_icon_set_render_icon},
+	{ "gtk_icon_set_unref",  cast(void**)& gtk_icon_set_unref},
+	{ "gtk_icon_size_lookup",  cast(void**)& gtk_icon_size_lookup},
+	{ "gtk_icon_size_lookup_for_settings",  cast(void**)& gtk_icon_size_lookup_for_settings},
+	{ "gtk_icon_size_register",  cast(void**)& gtk_icon_size_register},
+	{ "gtk_icon_size_register_alias",  cast(void**)& gtk_icon_size_register_alias},
+	{ "gtk_icon_size_from_name",  cast(void**)& gtk_icon_size_from_name},
+	{ "gtk_icon_size_get_name",  cast(void**)& gtk_icon_size_get_name},
+	{ "gtk_icon_set_get_sizes",  cast(void**)& gtk_icon_set_get_sizes},
+	{ "gtk_icon_source_get_direction",  cast(void**)& gtk_icon_source_get_direction},
+	{ "gtk_icon_source_get_direction_wildcarded",  cast(void**)& gtk_icon_source_get_direction_wildcarded},
+	{ "gtk_icon_source_get_filename",  cast(void**)& gtk_icon_source_get_filename},
+	{ "gtk_icon_source_get_pixbuf",  cast(void**)& gtk_icon_source_get_pixbuf},
+	{ "gtk_icon_source_get_icon_name",  cast(void**)& gtk_icon_source_get_icon_name},
+	{ "gtk_icon_source_get_size",  cast(void**)& gtk_icon_source_get_size},
+	{ "gtk_icon_source_get_size_wildcarded",  cast(void**)& gtk_icon_source_get_size_wildcarded},
+	{ "gtk_icon_source_get_state",  cast(void**)& gtk_icon_source_get_state},
+	{ "gtk_icon_source_get_state_wildcarded",  cast(void**)& gtk_icon_source_get_state_wildcarded},
+	{ "gtk_icon_source_new",  cast(void**)& gtk_icon_source_new},
+	{ "gtk_icon_source_set_direction",  cast(void**)& gtk_icon_source_set_direction},
+	{ "gtk_icon_source_set_direction_wildcarded",  cast(void**)& gtk_icon_source_set_direction_wildcarded},
+	{ "gtk_icon_source_set_filename",  cast(void**)& gtk_icon_source_set_filename},
+	{ "gtk_icon_source_set_pixbuf",  cast(void**)& gtk_icon_source_set_pixbuf},
+	{ "gtk_icon_source_set_icon_name",  cast(void**)& gtk_icon_source_set_icon_name},
+	{ "gtk_icon_source_set_size",  cast(void**)& gtk_icon_source_set_size},
+	{ "gtk_icon_source_set_size_wildcarded",  cast(void**)& gtk_icon_source_set_size_wildcarded},
+	{ "gtk_icon_source_set_state",  cast(void**)& gtk_icon_source_set_state},
+	{ "gtk_icon_source_set_state_wildcarded",  cast(void**)& gtk_icon_source_set_state_wildcarded},
+	{ "gtk_rc_scanner_new",  cast(void**)& gtk_rc_scanner_new},
+	{ "gtk_rc_get_style",  cast(void**)& gtk_rc_get_style},
+	{ "gtk_rc_get_style_by_paths",  cast(void**)& gtk_rc_get_style_by_paths},
+	{ "gtk_rc_add_widget_name_style",  cast(void**)& gtk_rc_add_widget_name_style},
+	{ "gtk_rc_add_widget_class_style",  cast(void**)& gtk_rc_add_widget_class_style},
+	{ "gtk_rc_add_class_style",  cast(void**)& gtk_rc_add_class_style},
+	{ "gtk_rc_parse",  cast(void**)& gtk_rc_parse},
+	{ "gtk_rc_parse_string",  cast(void**)& gtk_rc_parse_string},
+	{ "gtk_rc_reparse_all",  cast(void**)& gtk_rc_reparse_all},
+	{ "gtk_rc_reparse_all_for_settings",  cast(void**)& gtk_rc_reparse_all_for_settings},
+	{ "gtk_rc_reset_styles",  cast(void**)& gtk_rc_reset_styles},
+	{ "gtk_rc_add_default_file",  cast(void**)& gtk_rc_add_default_file},
+	{ "gtk_rc_get_default_files",  cast(void**)& gtk_rc_get_default_files},
+	{ "gtk_rc_set_default_files",  cast(void**)& gtk_rc_set_default_files},
+	{ "gtk_rc_parse_color",  cast(void**)& gtk_rc_parse_color},
+	{ "gtk_rc_parse_color_full",  cast(void**)& gtk_rc_parse_color_full},
+	{ "gtk_rc_parse_state",  cast(void**)& gtk_rc_parse_state},
+	{ "gtk_rc_parse_priority",  cast(void**)& gtk_rc_parse_priority},
+	{ "gtk_rc_find_module_in_path",  cast(void**)& gtk_rc_find_module_in_path},
+	{ "gtk_rc_find_pixmap_in_path",  cast(void**)& gtk_rc_find_pixmap_in_path},
+	{ "gtk_rc_get_module_dir",  cast(void**)& gtk_rc_get_module_dir},
+	{ "gtk_rc_get_im_module_path",  cast(void**)& gtk_rc_get_im_module_path},
+	{ "gtk_rc_get_im_module_file",  cast(void**)& gtk_rc_get_im_module_file},
+	{ "gtk_rc_get_theme_dir",  cast(void**)& gtk_rc_get_theme_dir},
+	{ "gtk_rc_style_new",  cast(void**)& gtk_rc_style_new},
+	{ "gtk_rc_style_copy",  cast(void**)& gtk_rc_style_copy},
+	{ "gtk_rc_style_ref",  cast(void**)& gtk_rc_style_ref},
+	{ "gtk_rc_style_unref",  cast(void**)& gtk_rc_style_unref},
+	{ "gtk_settings_get_default",  cast(void**)& gtk_settings_get_default},
+	{ "gtk_settings_get_for_screen",  cast(void**)& gtk_settings_get_for_screen},
+	{ "gtk_settings_install_property",  cast(void**)& gtk_settings_install_property},
+	{ "gtk_settings_install_property_parser",  cast(void**)& gtk_settings_install_property_parser},
+	{ "gtk_rc_property_parse_color",  cast(void**)& gtk_rc_property_parse_color},
+	{ "gtk_rc_property_parse_enum",  cast(void**)& gtk_rc_property_parse_enum},
+	{ "gtk_rc_property_parse_flags",  cast(void**)& gtk_rc_property_parse_flags},
+	{ "gtk_rc_property_parse_requisition",  cast(void**)& gtk_rc_property_parse_requisition},
+	{ "gtk_rc_property_parse_border",  cast(void**)& gtk_rc_property_parse_border},
+	{ "gtk_settings_set_property_value",  cast(void**)& gtk_settings_set_property_value},
+	{ "gtk_settings_set_string_property",  cast(void**)& gtk_settings_set_string_property},
+	{ "gtk_settings_set_long_property",  cast(void**)& gtk_settings_set_long_property},
+	{ "gtk_settings_set_double_property",  cast(void**)& gtk_settings_set_double_property},
+	{ "gtk_binding_entry_add_signall",  cast(void**)& gtk_binding_entry_add_signall},
+	{ "gtk_binding_entry_clear",  cast(void**)& gtk_binding_entry_clear},
+	{ "gtk_binding_parse_binding",  cast(void**)& gtk_binding_parse_binding},
+	{ "gtk_binding_set_new",  cast(void**)& gtk_binding_set_new},
+	{ "gtk_binding_set_by_class",  cast(void**)& gtk_binding_set_by_class},
+	{ "gtk_binding_set_find",  cast(void**)& gtk_binding_set_find},
+	{ "gtk_bindings_activate",  cast(void**)& gtk_bindings_activate},
+	{ "gtk_bindings_activate_event",  cast(void**)& gtk_bindings_activate_event},
+	{ "gtk_binding_set_activate",  cast(void**)& gtk_binding_set_activate},
+	{ "gtk_binding_entry_add_signal",  cast(void**)& gtk_binding_entry_add_signal},
+	{ "gtk_binding_entry_skip",  cast(void**)& gtk_binding_entry_skip},
+	{ "gtk_binding_entry_remove",  cast(void**)& gtk_binding_entry_remove},
+	{ "gtk_binding_set_add_path",  cast(void**)& gtk_binding_set_add_path},
+	{ "gtk_gc_get",  cast(void**)& gtk_gc_get},
+	{ "gtk_gc_release",  cast(void**)& gtk_gc_release},
+	{ "gtk_style_new",  cast(void**)& gtk_style_new},
+	{ "gtk_style_copy",  cast(void**)& gtk_style_copy},
+	{ "gtk_style_attach",  cast(void**)& gtk_style_attach},
+	{ "gtk_style_detach",  cast(void**)& gtk_style_detach},
+	{ "gtk_style_ref",  cast(void**)& gtk_style_ref},
+	{ "gtk_style_unref",  cast(void**)& gtk_style_unref},
+	{ "gtk_style_set_background",  cast(void**)& gtk_style_set_background},
+	{ "gtk_style_apply_default_background",  cast(void**)& gtk_style_apply_default_background},
+	{ "gtk_style_lookup_color",  cast(void**)& gtk_style_lookup_color},
+	{ "gtk_style_lookup_icon_set",  cast(void**)& gtk_style_lookup_icon_set},
+	{ "gtk_style_render_icon",  cast(void**)& gtk_style_render_icon},
+	{ "gtk_style_get_font",  cast(void**)& gtk_style_get_font},
+	{ "gtk_style_set_font",  cast(void**)& gtk_style_set_font},
+	{ "gtk_draw_hline",  cast(void**)& gtk_draw_hline},
+	{ "gtk_draw_vline",  cast(void**)& gtk_draw_vline},
+	{ "gtk_draw_shadow",  cast(void**)& gtk_draw_shadow},
+	{ "gtk_draw_polygon",  cast(void**)& gtk_draw_polygon},
+	{ "gtk_draw_arrow",  cast(void**)& gtk_draw_arrow},
+	{ "gtk_draw_diamond",  cast(void**)& gtk_draw_diamond},
+	{ "gtk_draw_string",  cast(void**)& gtk_draw_string},
+	{ "gtk_draw_box",  cast(void**)& gtk_draw_box},
+	{ "gtk_draw_box_gap",  cast(void**)& gtk_draw_box_gap},
+	{ "gtk_draw_check",  cast(void**)& gtk_draw_check},
+	{ "gtk_draw_extension",  cast(void**)& gtk_draw_extension},
+	{ "gtk_draw_flat_box",  cast(void**)& gtk_draw_flat_box},
+	{ "gtk_draw_focus",  cast(void**)& gtk_draw_focus},
+	{ "gtk_draw_handle",  cast(void**)& gtk_draw_handle},
+	{ "gtk_draw_option",  cast(void**)& gtk_draw_option},
+	{ "gtk_draw_shadow_gap",  cast(void**)& gtk_draw_shadow_gap},
+	{ "gtk_draw_slider",  cast(void**)& gtk_draw_slider},
+	{ "gtk_draw_tab",  cast(void**)& gtk_draw_tab},
+	{ "gtk_draw_expander",  cast(void**)& gtk_draw_expander},
+	{ "gtk_draw_layout",  cast(void**)& gtk_draw_layout},
+	{ "gtk_draw_resize_grip",  cast(void**)& gtk_draw_resize_grip},
+	{ "gtk_paint_arrow",  cast(void**)& gtk_paint_arrow},
+	{ "gtk_paint_box",  cast(void**)& gtk_paint_box},
+	{ "gtk_paint_box_gap",  cast(void**)& gtk_paint_box_gap},
+	{ "gtk_paint_check",  cast(void**)& gtk_paint_check},
+	{ "gtk_paint_diamond",  cast(void**)& gtk_paint_diamond},
+	{ "gtk_paint_extension",  cast(void**)& gtk_paint_extension},
+	{ "gtk_paint_flat_box",  cast(void**)& gtk_paint_flat_box},
+	{ "gtk_paint_focus",  cast(void**)& gtk_paint_focus},
+	{ "gtk_paint_handle",  cast(void**)& gtk_paint_handle},
+	{ "gtk_paint_hline",  cast(void**)& gtk_paint_hline},
+	{ "gtk_paint_option",  cast(void**)& gtk_paint_option},
+	{ "gtk_paint_polygon",  cast(void**)& gtk_paint_polygon},
+	{ "gtk_paint_shadow",  cast(void**)& gtk_paint_shadow},
+	{ "gtk_paint_shadow_gap",  cast(void**)& gtk_paint_shadow_gap},
+	{ "gtk_paint_slider",  cast(void**)& gtk_paint_slider},
+	{ "gtk_paint_string",  cast(void**)& gtk_paint_string},
+	{ "gtk_paint_tab",  cast(void**)& gtk_paint_tab},
+	{ "gtk_paint_vline",  cast(void**)& gtk_paint_vline},
+	{ "gtk_paint_expander",  cast(void**)& gtk_paint_expander},
+	{ "gtk_paint_layout",  cast(void**)& gtk_paint_layout},
+	{ "gtk_paint_resize_grip",  cast(void**)& gtk_paint_resize_grip},
+	{ "gtk_draw_insertion_cursor",  cast(void**)& gtk_draw_insertion_cursor},
+	{ "gtk_border_copy",  cast(void**)& gtk_border_copy},
+	{ "gtk_border_free",  cast(void**)& gtk_border_free},
+	{ "gtk_target_list_new",  cast(void**)& gtk_target_list_new},
+	{ "gtk_target_list_ref",  cast(void**)& gtk_target_list_ref},
+	{ "gtk_target_list_unref",  cast(void**)& gtk_target_list_unref},
+	{ "gtk_target_list_add",  cast(void**)& gtk_target_list_add},
+	{ "gtk_target_list_add_table",  cast(void**)& gtk_target_list_add_table},
+	{ "gtk_target_list_add_text_targets",  cast(void**)& gtk_target_list_add_text_targets},
+	{ "gtk_target_list_add_image_targets",  cast(void**)& gtk_target_list_add_image_targets},
+	{ "gtk_target_list_add_uri_targets",  cast(void**)& gtk_target_list_add_uri_targets},
+	{ "gtk_target_list_add_rich_text_targets",  cast(void**)& gtk_target_list_add_rich_text_targets},
+	{ "gtk_target_list_remove",  cast(void**)& gtk_target_list_remove},
+	{ "gtk_target_list_find",  cast(void**)& gtk_target_list_find},
+	{ "gtk_target_table_free",  cast(void**)& gtk_target_table_free},
+	{ "gtk_target_table_new_from_list",  cast(void**)& gtk_target_table_new_from_list},
+	{ "gtk_selection_owner_set",  cast(void**)& gtk_selection_owner_set},
+	{ "gtk_selection_owner_set_for_display",  cast(void**)& gtk_selection_owner_set_for_display},
+	{ "gtk_selection_add_target",  cast(void**)& gtk_selection_add_target},
+	{ "gtk_selection_add_targets",  cast(void**)& gtk_selection_add_targets},
+	{ "gtk_selection_clear_targets",  cast(void**)& gtk_selection_clear_targets},
+	{ "gtk_selection_convert",  cast(void**)& gtk_selection_convert},
+	{ "gtk_selection_data_set",  cast(void**)& gtk_selection_data_set},
+	{ "gtk_selection_data_set_text",  cast(void**)& gtk_selection_data_set_text},
+	{ "gtk_selection_data_get_text",  cast(void**)& gtk_selection_data_get_text},
+	{ "gtk_selection_data_set_pixbuf",  cast(void**)& gtk_selection_data_set_pixbuf},
+	{ "gtk_selection_data_get_pixbuf",  cast(void**)& gtk_selection_data_get_pixbuf},
+	{ "gtk_selection_data_set_uris",  cast(void**)& gtk_selection_data_set_uris},
+	{ "gtk_selection_data_get_uris",  cast(void**)& gtk_selection_data_get_uris},
+	{ "gtk_selection_data_get_targets",  cast(void**)& gtk_selection_data_get_targets},
+	{ "gtk_selection_data_targets_include_image",  cast(void**)& gtk_selection_data_targets_include_image},
+	{ "gtk_selection_data_targets_include_text",  cast(void**)& gtk_selection_data_targets_include_text},
+	{ "gtk_selection_data_targets_include_uri",  cast(void**)& gtk_selection_data_targets_include_uri},
+	{ "gtk_selection_data_targets_include_rich_text",  cast(void**)& gtk_selection_data_targets_include_rich_text},
+	{ "gtk_targets_include_image",  cast(void**)& gtk_targets_include_image},
+	{ "gtk_targets_include_text",  cast(void**)& gtk_targets_include_text},
+	{ "gtk_targets_include_uri",  cast(void**)& gtk_targets_include_uri},
+	{ "gtk_targets_include_rich_text",  cast(void**)& gtk_targets_include_rich_text},
+	{ "gtk_selection_remove_all",  cast(void**)& gtk_selection_remove_all},
+	{ "gtk_selection_clear",  cast(void**)& gtk_selection_clear},
+	{ "gtk_selection_data_copy",  cast(void**)& gtk_selection_data_copy},
+	{ "gtk_selection_data_free",  cast(void**)& gtk_selection_data_free},
+	{ "gtk_check_version",  cast(void**)& gtk_check_version},
+	{ "gtk_signal_new",  cast(void**)& gtk_signal_new},
+	{ "gtk_signal_newv",  cast(void**)& gtk_signal_newv},
+	{ "gtk_signal_emit",  cast(void**)& gtk_signal_emit},
+	{ "gtk_signal_emit_by_name",  cast(void**)& gtk_signal_emit_by_name},
+	{ "gtk_signal_emitv",  cast(void**)& gtk_signal_emitv},
+	{ "gtk_signal_emitv_by_name",  cast(void**)& gtk_signal_emitv_by_name},
+	{ "gtk_signal_emit_stop_by_name",  cast(void**)& gtk_signal_emit_stop_by_name},
+	{ "gtk_signal_connect_full",  cast(void**)& gtk_signal_connect_full},
+	{ "gtk_signal_connect_while_alive",  cast(void**)& gtk_signal_connect_while_alive},
+	{ "gtk_signal_connect_object_while_alive",  cast(void**)& gtk_signal_connect_object_while_alive},
+	{ "gtk_type_init",  cast(void**)& gtk_type_init},
+	{ "gtk_type_unique",  cast(void**)& gtk_type_unique},
+	{ "gtk_type_class",  cast(void**)& gtk_type_class},
+	{ "gtk_type_new",  cast(void**)& gtk_type_new},
+	{ "gtk_type_enum_get_values",  cast(void**)& gtk_type_enum_get_values},
+	{ "gtk_type_flags_get_values",  cast(void**)& gtk_type_flags_get_values},
+	{ "gtk_type_enum_find_value",  cast(void**)& gtk_type_enum_find_value},
+	{ "gtk_type_flags_find_value",  cast(void**)& gtk_type_flags_find_value},
+	{ "gtk_dialog_new",  cast(void**)& gtk_dialog_new},
+	{ "gtk_dialog_new_with_buttons",  cast(void**)& gtk_dialog_new_with_buttons},
+	{ "gtk_dialog_run",  cast(void**)& gtk_dialog_run},
+	{ "gtk_dialog_response",  cast(void**)& gtk_dialog_response},
+	{ "gtk_dialog_add_button",  cast(void**)& gtk_dialog_add_button},
+	{ "gtk_dialog_add_buttons",  cast(void**)& gtk_dialog_add_buttons},
+	{ "gtk_dialog_add_action_widget",  cast(void**)& gtk_dialog_add_action_widget},
+	{ "gtk_dialog_get_has_separator",  cast(void**)& gtk_dialog_get_has_separator},
+	{ "gtk_dialog_set_default_response",  cast(void**)& gtk_dialog_set_default_response},
+	{ "gtk_dialog_set_has_separator",  cast(void**)& gtk_dialog_set_has_separator},
+	{ "gtk_dialog_set_response_sensitive",  cast(void**)& gtk_dialog_set_response_sensitive},
+	{ "gtk_dialog_get_response_for_widget",  cast(void**)& gtk_dialog_get_response_for_widget},
+	{ "gtk_alternative_dialog_button_order",  cast(void**)& gtk_alternative_dialog_button_order},
+	{ "gtk_dialog_set_alternative_button_order",  cast(void**)& gtk_dialog_set_alternative_button_order},
+	{ "gtk_dialog_set_alternative_button_order_from_array",  cast(void**)& gtk_dialog_set_alternative_button_order_from_array},
+	{ "gtk_invisible_new",  cast(void**)& gtk_invisible_new},
+	{ "gtk_invisible_new_for_screen",  cast(void**)& gtk_invisible_new_for_screen},
+	{ "gtk_invisible_set_screen",  cast(void**)& gtk_invisible_set_screen},
+	{ "gtk_invisible_get_screen",  cast(void**)& gtk_invisible_get_screen},
+	{ "gtk_message_dialog_new",  cast(void**)& gtk_message_dialog_new},
+	{ "gtk_message_dialog_new_with_markup",  cast(void**)& gtk_message_dialog_new_with_markup},
+	{ "gtk_message_dialog_set_markup",  cast(void**)& gtk_message_dialog_set_markup},
+	{ "gtk_message_dialog_set_image",  cast(void**)& gtk_message_dialog_set_image},
+	{ "gtk_message_dialog_format_secondary_text",  cast(void**)& gtk_message_dialog_format_secondary_text},
+	{ "gtk_message_dialog_format_secondary_markup",  cast(void**)& gtk_message_dialog_format_secondary_markup},
+	{ "gtk_window_new",  cast(void**)& gtk_window_new},
+	{ "gtk_window_set_title",  cast(void**)& gtk_window_set_title},
+	{ "gtk_window_set_wmclass",  cast(void**)& gtk_window_set_wmclass},
+	{ "gtk_window_set_policy",  cast(void**)& gtk_window_set_policy},
+	{ "gtk_window_set_resizable",  cast(void**)& gtk_window_set_resizable},
+	{ "gtk_window_get_resizable",  cast(void**)& gtk_window_get_resizable},
+	{ "gtk_window_add_accel_group",  cast(void**)& gtk_window_add_accel_group},
+	{ "gtk_window_remove_accel_group",  cast(void**)& gtk_window_remove_accel_group},
+	{ "gtk_window_activate_focus",  cast(void**)& gtk_window_activate_focus},
+	{ "gtk_window_activate_default",  cast(void**)& gtk_window_activate_default},
+	{ "gtk_window_set_modal",  cast(void**)& gtk_window_set_modal},
+	{ "gtk_window_set_default_size",  cast(void**)& gtk_window_set_default_size},
+	{ "gtk_window_set_geometry_hints",  cast(void**)& gtk_window_set_geometry_hints},
+	{ "gtk_window_set_gravity",  cast(void**)& gtk_window_set_gravity},
+	{ "gtk_window_get_gravity",  cast(void**)& gtk_window_get_gravity},
+	{ "gtk_window_set_position",  cast(void**)& gtk_window_set_position},
+	{ "gtk_window_set_transient_for",  cast(void**)& gtk_window_set_transient_for},
+	{ "gtk_window_set_destroy_with_parent",  cast(void**)& gtk_window_set_destroy_with_parent},
+	{ "gtk_window_set_screen",  cast(void**)& gtk_window_set_screen},
+	{ "gtk_window_get_screen",  cast(void**)& gtk_window_get_screen},
+	{ "gtk_window_is_active",  cast(void**)& gtk_window_is_active},
+	{ "gtk_window_has_toplevel_focus",  cast(void**)& gtk_window_has_toplevel_focus},
+	{ "gtk_window_list_toplevels",  cast(void**)& gtk_window_list_toplevels},
+	{ "gtk_window_add_mnemonic",  cast(void**)& gtk_window_add_mnemonic},
+	{ "gtk_window_remove_mnemonic",  cast(void**)& gtk_window_remove_mnemonic},
+	{ "gtk_window_mnemonic_activate",  cast(void**)& gtk_window_mnemonic_activate},
+	{ "gtk_window_activate_key",  cast(void**)& gtk_window_activate_key},
+	{ "gtk_window_propagate_key_event",  cast(void**)& gtk_window_propagate_key_event},
+	{ "gtk_window_get_focus",  cast(void**)& gtk_window_get_focus},
+	{ "gtk_window_set_focus",  cast(void**)& gtk_window_set_focus},
+	{ "gtk_window_set_default",  cast(void**)& gtk_window_set_default},
+	{ "gtk_window_present",  cast(void**)& gtk_window_present},
+	{ "gtk_window_present_with_time",  cast(void**)& gtk_window_present_with_time},
+	{ "gtk_window_iconify",  cast(void**)& gtk_window_iconify},
+	{ "gtk_window_deiconify",  cast(void**)& gtk_window_deiconify},
+	{ "gtk_window_stick",  cast(void**)& gtk_window_stick},
+	{ "gtk_window_unstick",  cast(void**)& gtk_window_unstick},
+	{ "gtk_window_maximize",  cast(void**)& gtk_window_maximize},
+	{ "gtk_window_unmaximize",  cast(void**)& gtk_window_unmaximize},
+	{ "gtk_window_fullscreen",  cast(void**)& gtk_window_fullscreen},
+	{ "gtk_window_unfullscreen",  cast(void**)& gtk_window_unfullscreen},
+	{ "gtk_window_set_keep_above",  cast(void**)& gtk_window_set_keep_above},
+	{ "gtk_window_set_keep_below",  cast(void**)& gtk_window_set_keep_below},
+	{ "gtk_window_begin_resize_drag",  cast(void**)& gtk_window_begin_resize_drag},
+	{ "gtk_window_begin_move_drag",  cast(void**)& gtk_window_begin_move_drag},
+	{ "gtk_window_set_decorated",  cast(void**)& gtk_window_set_decorated},
+	{ "gtk_window_set_deletable",  cast(void**)& gtk_window_set_deletable},
+	{ "gtk_window_set_frame_dimensions",  cast(void**)& gtk_window_set_frame_dimensions},
+	{ "gtk_window_set_has_frame",  cast(void**)& gtk_window_set_has_frame},
+	{ "gtk_window_set_mnemonic_modifier",  cast(void**)& gtk_window_set_mnemonic_modifier},
+	{ "gtk_window_set_role",  cast(void**)& gtk_window_set_role},
+	{ "gtk_window_set_type_hint",  cast(void**)& gtk_window_set_type_hint},
+	{ "gtk_window_set_skip_taskbar_hint",  cast(void**)& gtk_window_set_skip_taskbar_hint},
+	{ "gtk_window_set_skip_pager_hint",  cast(void**)& gtk_window_set_skip_pager_hint},
+	{ "gtk_window_set_urgency_hint",  cast(void**)& gtk_window_set_urgency_hint},
+	{ "gtk_window_set_accept_focus",  cast(void**)& gtk_window_set_accept_focus},
+	{ "gtk_window_set_focus_on_map",  cast(void**)& gtk_window_set_focus_on_map},
+	{ "gtk_window_set_startup_id",  cast(void**)& gtk_window_set_startup_id},
+	{ "gtk_window_get_decorated",  cast(void**)& gtk_window_get_decorated},
+	{ "gtk_window_get_deletable",  cast(void**)& gtk_window_get_deletable},
+	{ "gtk_window_get_default_icon_list",  cast(void**)& gtk_window_get_default_icon_list},
+	{ "gtk_window_get_default_size",  cast(void**)& gtk_window_get_default_size},
+	{ "gtk_window_get_destroy_with_parent",  cast(void**)& gtk_window_get_destroy_with_parent},
+	{ "gtk_window_get_frame_dimensions",  cast(void**)& gtk_window_get_frame_dimensions},
+	{ "gtk_window_get_has_frame",  cast(void**)& gtk_window_get_has_frame},
+	{ "gtk_window_get_icon",  cast(void**)& gtk_window_get_icon},
+	{ "gtk_window_get_icon_list",  cast(void**)& gtk_window_get_icon_list},
+	{ "gtk_window_get_icon_name",  cast(void**)& gtk_window_get_icon_name},
+	{ "gtk_window_get_mnemonic_modifier",  cast(void**)& gtk_window_get_mnemonic_modifier},
+	{ "gtk_window_get_modal",  cast(void**)& gtk_window_get_modal},
+	{ "gtk_window_get_position",  cast(void**)& gtk_window_get_position},
+	{ "gtk_window_get_role",  cast(void**)& gtk_window_get_role},
+	{ "gtk_window_get_size",  cast(void**)& gtk_window_get_size},
+	{ "gtk_window_get_title",  cast(void**)& gtk_window_get_title},
+	{ "gtk_window_get_transient_for",  cast(void**)& gtk_window_get_transient_for},
+	{ "gtk_window_get_type_hint",  cast(void**)& gtk_window_get_type_hint},
+	{ "gtk_window_get_skip_taskbar_hint",  cast(void**)& gtk_window_get_skip_taskbar_hint},
+	{ "gtk_window_get_skip_pager_hint",  cast(void**)& gtk_window_get_skip_pager_hint},
+	{ "gtk_window_get_urgency_hint",  cast(void**)& gtk_window_get_urgency_hint},
+	{ "gtk_window_get_accept_focus",  cast(void**)& gtk_window_get_accept_focus},
+	{ "gtk_window_get_focus_on_map",  cast(void**)& gtk_window_get_focus_on_map},
+	{ "gtk_window_get_group",  cast(void**)& gtk_window_get_group},
+	{ "gtk_window_move",  cast(void**)& gtk_window_move},
+	{ "gtk_window_parse_geometry",  cast(void**)& gtk_window_parse_geometry},
+	{ "gtk_window_reshow_with_initial_size",  cast(void**)& gtk_window_reshow_with_initial_size},
+	{ "gtk_window_resize",  cast(void**)& gtk_window_resize},
+	{ "gtk_window_set_default_icon_list",  cast(void**)& gtk_window_set_default_icon_list},
+	{ "gtk_window_set_default_icon",  cast(void**)& gtk_window_set_default_icon},
+	{ "gtk_window_set_default_icon_from_file",  cast(void**)& gtk_window_set_default_icon_from_file},
+	{ "gtk_window_set_default_icon_name",  cast(void**)& gtk_window_set_default_icon_name},
+	{ "gtk_window_set_icon",  cast(void**)& gtk_window_set_icon},
+	{ "gtk_window_set_icon_list",  cast(void**)& gtk_window_set_icon_list},
+	{ "gtk_window_set_icon_from_file",  cast(void**)& gtk_window_set_icon_from_file},
+	{ "gtk_window_set_icon_name",  cast(void**)& gtk_window_set_icon_name},
+	{ "gtk_window_set_auto_startup_notification",  cast(void**)& gtk_window_set_auto_startup_notification},
+	{ "gtk_window_get_opacity",  cast(void**)& gtk_window_get_opacity},
+	{ "gtk_window_set_opacity",  cast(void**)& gtk_window_set_opacity},
+	{ "gtk_window_group_new",  cast(void**)& gtk_window_group_new},
+	{ "gtk_window_group_add_window",  cast(void**)& gtk_window_group_add_window},
+	{ "gtk_window_group_remove_window",  cast(void**)& gtk_window_group_remove_window},
+	{ "gtk_about_dialog_new",  cast(void**)& gtk_about_dialog_new},
+	{ "gtk_about_dialog_get_name",  cast(void**)& gtk_about_dialog_get_name},
+	{ "gtk_about_dialog_set_name",  cast(void**)& gtk_about_dialog_set_name},
+	{ "gtk_about_dialog_get_program_name",  cast(void**)& gtk_about_dialog_get_program_name},
+	{ "gtk_about_dialog_set_program_name",  cast(void**)& gtk_about_dialog_set_program_name},
+	{ "gtk_about_dialog_get_version",  cast(void**)& gtk_about_dialog_get_version},
+	{ "gtk_about_dialog_set_version",  cast(void**)& gtk_about_dialog_set_version},
+	{ "gtk_about_dialog_get_copyright",  cast(void**)& gtk_about_dialog_get_copyright},
+	{ "gtk_about_dialog_set_copyright",  cast(void**)& gtk_about_dialog_set_copyright},
+	{ "gtk_about_dialog_get_comments",  cast(void**)& gtk_about_dialog_get_comments},
+	{ "gtk_about_dialog_set_comments",  cast(void**)& gtk_about_dialog_set_comments},
+	{ "gtk_about_dialog_get_license",  cast(void**)& gtk_about_dialog_get_license},
+	{ "gtk_about_dialog_set_license",  cast(void**)& gtk_about_dialog_set_license},
+	{ "gtk_about_dialog_get_wrap_license",  cast(void**)& gtk_about_dialog_get_wrap_license},
+	{ "gtk_about_dialog_set_wrap_license",  cast(void**)& gtk_about_dialog_set_wrap_license},
+	{ "gtk_about_dialog_get_website",  cast(void**)& gtk_about_dialog_get_website},
+	{ "gtk_about_dialog_set_website",  cast(void**)& gtk_about_dialog_set_website},
+	{ "gtk_about_dialog_get_website_label",  cast(void**)& gtk_about_dialog_get_website_label},
+	{ "gtk_about_dialog_set_website_label",  cast(void**)& gtk_about_dialog_set_website_label},
+	{ "gtk_about_dialog_get_authors",  cast(void**)& gtk_about_dialog_get_authors},
+	{ "gtk_about_dialog_set_authors",  cast(void**)& gtk_about_dialog_set_authors},
+	{ "gtk_about_dialog_get_artists",  cast(void**)& gtk_about_dialog_get_artists},
+	{ "gtk_about_dialog_set_artists",  cast(void**)& gtk_about_dialog_set_artists},
+	{ "gtk_about_dialog_get_documenters",  cast(void**)& gtk_about_dialog_get_documenters},
+	{ "gtk_about_dialog_set_documenters",  cast(void**)& gtk_about_dialog_set_documenters},
+	{ "gtk_about_dialog_get_translator_credits",  cast(void**)& gtk_about_dialog_get_translator_credits},
+	{ "gtk_about_dialog_set_translator_credits",  cast(void**)& gtk_about_dialog_set_translator_credits},
+	{ "gtk_about_dialog_get_logo",  cast(void**)& gtk_about_dialog_get_logo},
+	{ "gtk_about_dialog_set_logo",  cast(void**)& gtk_about_dialog_set_logo},
+	{ "gtk_about_dialog_get_logo_icon_name",  cast(void**)& gtk_about_dialog_get_logo_icon_name},
+	{ "gtk_about_dialog_set_logo_icon_name",  cast(void**)& gtk_about_dialog_set_logo_icon_name},
+	{ "gtk_about_dialog_set_email_hook",  cast(void**)& gtk_about_dialog_set_email_hook},
+	{ "gtk_about_dialog_set_url_hook",  cast(void**)& gtk_about_dialog_set_url_hook},
+	{ "gtk_show_about_dialog",  cast(void**)& gtk_show_about_dialog},
+	{ "gtk_assistant_new",  cast(void**)& gtk_assistant_new},
+	{ "gtk_assistant_get_current_page",  cast(void**)& gtk_assistant_get_current_page},
+	{ "gtk_assistant_set_current_page",  cast(void**)& gtk_assistant_set_current_page},
+	{ "gtk_assistant_get_n_pages",  cast(void**)& gtk_assistant_get_n_pages},
+	{ "gtk_assistant_get_nth_page",  cast(void**)& gtk_assistant_get_nth_page},
+	{ "gtk_assistant_prepend_page",  cast(void**)& gtk_assistant_prepend_page},
+	{ "gtk_assistant_append_page",  cast(void**)& gtk_assistant_append_page},
+	{ "gtk_assistant_insert_page",  cast(void**)& gtk_assistant_insert_page},
+	{ "gtk_assistant_set_forward_page_func",  cast(void**)& gtk_assistant_set_forward_page_func},
+	{ "gtk_assistant_set_page_type",  cast(void**)& gtk_assistant_set_page_type},
+	{ "gtk_assistant_get_page_type",  cast(void**)& gtk_assistant_get_page_type},
+	{ "gtk_assistant_set_page_title",  cast(void**)& gtk_assistant_set_page_title},
+	{ "gtk_assistant_get_page_title",  cast(void**)& gtk_assistant_get_page_title},
+	{ "gtk_assistant_set_page_header_image",  cast(void**)& gtk_assistant_set_page_header_image},
+	{ "gtk_assistant_get_page_header_image",  cast(void**)& gtk_assistant_get_page_header_image},
+	{ "gtk_assistant_set_page_side_image",  cast(void**)& gtk_assistant_set_page_side_image},
+	{ "gtk_assistant_get_page_side_image",  cast(void**)& gtk_assistant_get_page_side_image},
+	{ "gtk_assistant_set_page_complete",  cast(void**)& gtk_assistant_set_page_complete},
+	{ "gtk_assistant_get_page_complete",  cast(void**)& gtk_assistant_get_page_complete},
+	{ "gtk_assistant_add_action_widget",  cast(void**)& gtk_assistant_add_action_widget},
+	{ "gtk_assistant_remove_action_widget",  cast(void**)& gtk_assistant_remove_action_widget},
+	{ "gtk_assistant_update_buttons_state",  cast(void**)& gtk_assistant_update_buttons_state},
+	{ "gtk_accel_label_new",  cast(void**)& gtk_accel_label_new},
+	{ "gtk_accel_label_set_accel_closure",  cast(void**)& gtk_accel_label_set_accel_closure},
+	{ "gtk_accel_label_get_accel_widget",  cast(void**)& gtk_accel_label_get_accel_widget},
+	{ "gtk_accel_label_set_accel_widget",  cast(void**)& gtk_accel_label_set_accel_widget},
+	{ "gtk_accel_label_get_accel_width",  cast(void**)& gtk_accel_label_get_accel_width},
+	{ "gtk_accel_label_refetch",  cast(void**)& gtk_accel_label_refetch},
+	{ "gtk_image_get_icon_set",  cast(void**)& gtk_image_get_icon_set},
+	{ "gtk_image_get_image",  cast(void**)& gtk_image_get_image},
+	{ "gtk_image_get_pixbuf",  cast(void**)& gtk_image_get_pixbuf},
+	{ "gtk_image_get_pixmap",  cast(void**)& gtk_image_get_pixmap},
+	{ "gtk_image_get_stock",  cast(void**)& gtk_image_get_stock},
+	{ "gtk_image_get_animation",  cast(void**)& gtk_image_get_animation},
+	{ "gtk_image_get_icon_name",  cast(void**)& gtk_image_get_icon_name},
+	{ "gtk_image_get_storage_type",  cast(void**)& gtk_image_get_storage_type},
+	{ "gtk_image_new_from_file",  cast(void**)& gtk_image_new_from_file},
+	{ "gtk_image_new_from_icon_set",  cast(void**)& gtk_image_new_from_icon_set},
+	{ "gtk_image_new_from_image",  cast(void**)& gtk_image_new_from_image},
+	{ "gtk_image_new_from_pixbuf",  cast(void**)& gtk_image_new_from_pixbuf},
+	{ "gtk_image_new_from_pixmap",  cast(void**)& gtk_image_new_from_pixmap},
+	{ "gtk_image_new_from_stock",  cast(void**)& gtk_image_new_from_stock},
+	{ "gtk_image_new_from_animation",  cast(void**)& gtk_image_new_from_animation},
+	{ "gtk_image_new_from_icon_name",  cast(void**)& gtk_image_new_from_icon_name},
+	{ "gtk_image_set_from_file",  cast(void**)& gtk_image_set_from_file},
+	{ "gtk_image_set_from_icon_set",  cast(void**)& gtk_image_set_from_icon_set},
+	{ "gtk_image_set_from_image",  cast(void**)& gtk_image_set_from_image},
+	{ "gtk_image_set_from_pixbuf",  cast(void**)& gtk_image_set_from_pixbuf},
+	{ "gtk_image_set_from_pixmap",  cast(void**)& gtk_image_set_from_pixmap},
+	{ "gtk_image_set_from_stock",  cast(void**)& gtk_image_set_from_stock},
+	{ "gtk_image_set_from_animation",  cast(void**)& gtk_image_set_from_animation},
+	{ "gtk_image_set_from_icon_name",  cast(void**)& gtk_image_set_from_icon_name},
+	{ "gtk_image_clear",  cast(void**)& gtk_image_clear},
+	{ "gtk_image_new",  cast(void**)& gtk_image_new},
+	{ "gtk_image_set",  cast(void**)& gtk_image_set},
+	{ "gtk_image_get",  cast(void**)& gtk_image_get},
+	{ "gtk_image_set_pixel_size",  cast(void**)& gtk_image_set_pixel_size},
+	{ "gtk_image_get_pixel_size",  cast(void**)& gtk_image_get_pixel_size},
+	{ "gtk_label_new",  cast(void**)& gtk_label_new},
+	{ "gtk_label_set_text",  cast(void**)& gtk_label_set_text},
+	{ "gtk_label_set_attributes",  cast(void**)& gtk_label_set_attributes},
+	{ "gtk_label_set_markup",  cast(void**)& gtk_label_set_markup},
+	{ "gtk_label_set_markup_with_mnemonic",  cast(void**)& gtk_label_set_markup_with_mnemonic},
+	{ "gtk_label_set_pattern",  cast(void**)& gtk_label_set_pattern},
+	{ "gtk_label_set_justify",  cast(void**)& gtk_label_set_justify},
+	{ "gtk_label_set_ellipsize",  cast(void**)& gtk_label_set_ellipsize},
+	{ "gtk_label_set_width_chars",  cast(void**)& gtk_label_set_width_chars},
+	{ "gtk_label_set_max_width_chars",  cast(void**)& gtk_label_set_max_width_chars},
+	{ "gtk_label_get",  cast(void**)& gtk_label_get},
+	{ "gtk_label_parse_uline",  cast(void**)& gtk_label_parse_uline},
+	{ "gtk_label_set_line_wrap",  cast(void**)& gtk_label_set_line_wrap},
+	{ "gtk_label_set_line_wrap_mode",  cast(void**)& gtk_label_set_line_wrap_mode},
+	{ "gtk_label_get_layout_offsets",  cast(void**)& gtk_label_get_layout_offsets},
+	{ "gtk_label_get_mnemonic_keyval",  cast(void**)& gtk_label_get_mnemonic_keyval},
+	{ "gtk_label_get_selectable",  cast(void**)& gtk_label_get_selectable},
+	{ "gtk_label_get_text",  cast(void**)& gtk_label_get_text},
+	{ "gtk_label_new_with_mnemonic",  cast(void**)& gtk_label_new_with_mnemonic},
+	{ "gtk_label_select_region",  cast(void**)& gtk_label_select_region},
+	{ "gtk_label_set_mnemonic_widget",  cast(void**)& gtk_label_set_mnemonic_widget},
+	{ "gtk_label_set_selectable",  cast(void**)& gtk_label_set_selectable},
+	{ "gtk_label_set_text_with_mnemonic",  cast(void**)& gtk_label_set_text_with_mnemonic},
+	{ "gtk_label_get_attributes",  cast(void**)& gtk_label_get_attributes},
+	{ "gtk_label_get_justify",  cast(void**)& gtk_label_get_justify},
+	{ "gtk_label_get_ellipsize",  cast(void**)& gtk_label_get_ellipsize},
+	{ "gtk_label_get_width_chars",  cast(void**)& gtk_label_get_width_chars},
+	{ "gtk_label_get_max_width_chars",  cast(void**)& gtk_label_get_max_width_chars},
+	{ "gtk_label_get_label",  cast(void**)& gtk_label_get_label},
+	{ "gtk_label_get_layout",  cast(void**)& gtk_label_get_layout},
+	{ "gtk_label_get_line_wrap",  cast(void**)& gtk_label_get_line_wrap},
+	{ "gtk_label_get_line_wrap_mode",  cast(void**)& gtk_label_get_line_wrap_mode},
+	{ "gtk_label_get_mnemonic_widget",  cast(void**)& gtk_label_get_mnemonic_widget},
+	{ "gtk_label_get_selection_bounds",  cast(void**)& gtk_label_get_selection_bounds},
+	{ "gtk_label_get_use_markup",  cast(void**)& gtk_label_get_use_markup},
+	{ "gtk_label_get_use_underline",  cast(void**)& gtk_label_get_use_underline},
+	{ "gtk_label_get_single_line_mode",  cast(void**)& gtk_label_get_single_line_mode},
+	{ "gtk_label_get_angle",  cast(void**)& gtk_label_get_angle},
+	{ "gtk_label_set_label",  cast(void**)& gtk_label_set_label},
+	{ "gtk_label_set_use_markup",  cast(void**)& gtk_label_set_use_markup},
+	{ "gtk_label_set_use_underline",  cast(void**)& gtk_label_set_use_underline},
+	{ "gtk_label_set_single_line_mode",  cast(void**)& gtk_label_set_single_line_mode},
+	{ "gtk_label_set_angle",  cast(void**)& gtk_label_set_angle},
+	{ "gtk_progress_bar_new",  cast(void**)& gtk_progress_bar_new},
+	{ "gtk_progress_bar_pulse",  cast(void**)& gtk_progress_bar_pulse},
+	{ "gtk_progress_bar_set_text",  cast(void**)& gtk_progress_bar_set_text},
+	{ "gtk_progress_bar_set_fraction",  cast(void**)& gtk_progress_bar_set_fraction},
+	{ "gtk_progress_bar_set_pulse_step",  cast(void**)& gtk_progress_bar_set_pulse_step},
+	{ "gtk_progress_bar_set_orientation",  cast(void**)& gtk_progress_bar_set_orientation},
+	{ "gtk_progress_bar_set_ellipsize",  cast(void**)& gtk_progress_bar_set_ellipsize},
+	{ "gtk_progress_bar_get_text",  cast(void**)& gtk_progress_bar_get_text},
+	{ "gtk_progress_bar_get_fraction",  cast(void**)& gtk_progress_bar_get_fraction},
+	{ "gtk_progress_bar_get_pulse_step",  cast(void**)& gtk_progress_bar_get_pulse_step},
+	{ "gtk_progress_bar_get_orientation",  cast(void**)& gtk_progress_bar_get_orientation},
+	{ "gtk_progress_bar_get_ellipsize",  cast(void**)& gtk_progress_bar_get_ellipsize},
+	{ "gtk_progress_bar_new_with_adjustment",  cast(void**)& gtk_progress_bar_new_with_adjustment},
+	{ "gtk_progress_bar_set_bar_style",  cast(void**)& gtk_progress_bar_set_bar_style},
+	{ "gtk_progress_bar_set_discrete_blocks",  cast(void**)& gtk_progress_bar_set_discrete_blocks},
+	{ "gtk_progress_bar_set_activity_step",  cast(void**)& gtk_progress_bar_set_activity_step},
+	{ "gtk_progress_bar_set_activity_blocks",  cast(void**)& gtk_progress_bar_set_activity_blocks},
+	{ "gtk_progress_bar_update",  cast(void**)& gtk_progress_bar_update},
+	{ "gtk_statusbar_new",  cast(void**)& gtk_statusbar_new},
+	{ "gtk_statusbar_get_context_id",  cast(void**)& gtk_statusbar_get_context_id},
+	{ "gtk_statusbar_push",  cast(void**)& gtk_statusbar_push},
+	{ "gtk_statusbar_pop",  cast(void**)& gtk_statusbar_pop},
+	{ "gtk_statusbar_remove",  cast(void**)& gtk_statusbar_remove},
+	{ "gtk_statusbar_set_has_resize_grip",  cast(void**)& gtk_statusbar_set_has_resize_grip},
+	{ "gtk_statusbar_get_has_resize_grip",  cast(void**)& gtk_statusbar_get_has_resize_grip},
+	{ "gtk_status_icon_new",  cast(void**)& gtk_status_icon_new},
+	{ "gtk_status_icon_new_from_pixbuf",  cast(void**)& gtk_status_icon_new_from_pixbuf},
+	{ "gtk_status_icon_new_from_file",  cast(void**)& gtk_status_icon_new_from_file},
+	{ "gtk_status_icon_new_from_stock",  cast(void**)& gtk_status_icon_new_from_stock},
+	{ "gtk_status_icon_new_from_icon_name",  cast(void**)& gtk_status_icon_new_from_icon_name},
+	{ "gtk_status_icon_set_from_pixbuf",  cast(void**)& gtk_status_icon_set_from_pixbuf},
+	{ "gtk_status_icon_set_from_file",  cast(void**)& gtk_status_icon_set_from_file},
+	{ "gtk_status_icon_set_from_stock",  cast(void**)& gtk_status_icon_set_from_stock},
+	{ "gtk_status_icon_set_from_icon_name",  cast(void**)& gtk_status_icon_set_from_icon_name},
+	{ "gtk_status_icon_get_storage_type",  cast(void**)& gtk_status_icon_get_storage_type},
+	{ "gtk_status_icon_get_pixbuf",  cast(void**)& gtk_status_icon_get_pixbuf},
+	{ "gtk_status_icon_get_stock",  cast(void**)& gtk_status_icon_get_stock},
+	{ "gtk_status_icon_get_icon_name",  cast(void**)& gtk_status_icon_get_icon_name},
+	{ "gtk_status_icon_get_size",  cast(void**)& gtk_status_icon_get_size},
+	{ "gtk_status_icon_set_screen",  cast(void**)& gtk_status_icon_set_screen},
+	{ "gtk_status_icon_get_screen",  cast(void**)& gtk_status_icon_get_screen},
+	{ "gtk_status_icon_set_tooltip",  cast(void**)& gtk_status_icon_set_tooltip},
+	{ "gtk_status_icon_set_visible",  cast(void**)& gtk_status_icon_set_visible},
+	{ "gtk_status_icon_get_visible",  cast(void**)& gtk_status_icon_get_visible},
+	{ "gtk_status_icon_set_blinking",  cast(void**)& gtk_status_icon_set_blinking},
+	{ "gtk_status_icon_get_blinking",  cast(void**)& gtk_status_icon_get_blinking},
+	{ "gtk_status_icon_is_embedded",  cast(void**)& gtk_status_icon_is_embedded},
+	{ "gtk_status_icon_position_menu",  cast(void**)& gtk_status_icon_position_menu},
+	{ "gtk_status_icon_get_geometry",  cast(void**)& gtk_status_icon_get_geometry},
+	{ "gtk_button_new",  cast(void**)& gtk_button_new},
+	{ "gtk_button_new_with_label",  cast(void**)& gtk_button_new_with_label},
+	{ "gtk_button_new_with_mnemonic",  cast(void**)& gtk_button_new_with_mnemonic},
+	{ "gtk_button_new_from_stock",  cast(void**)& gtk_button_new_from_stock},
+	{ "gtk_button_pressed",  cast(void**)& gtk_button_pressed},
+	{ "gtk_button_released",  cast(void**)& gtk_button_released},
+	{ "gtk_button_clicked",  cast(void**)& gtk_button_clicked},
+	{ "gtk_button_enter",  cast(void**)& gtk_button_enter},
+	{ "gtk_button_leave",  cast(void**)& gtk_button_leave},
+	{ "gtk_button_set_relief",  cast(void**)& gtk_button_set_relief},
+	{ "gtk_button_get_relief",  cast(void**)& gtk_button_get_relief},
+	{ "gtk_button_get_label",  cast(void**)& gtk_button_get_label},
+	{ "gtk_button_set_label",  cast(void**)& gtk_button_set_label},
+	{ "gtk_button_get_use_stock",  cast(void**)& gtk_button_get_use_stock},
+	{ "gtk_button_set_use_stock",  cast(void**)& gtk_button_set_use_stock},
+	{ "gtk_button_get_use_underline",  cast(void**)& gtk_button_get_use_underline},
+	{ "gtk_button_set_use_underline",  cast(void**)& gtk_button_set_use_underline},
+	{ "gtk_button_set_focus_on_click",  cast(void**)& gtk_button_set_focus_on_click},
+	{ "gtk_button_get_focus_on_click",  cast(void**)& gtk_button_get_focus_on_click},
+	{ "gtk_button_set_alignment",  cast(void**)& gtk_button_set_alignment},
+	{ "gtk_button_get_alignment",  cast(void**)& gtk_button_get_alignment},
+	{ "gtk_button_set_image",  cast(void**)& gtk_button_set_image},
+	{ "gtk_button_get_image",  cast(void**)& gtk_button_get_image},
+	{ "gtk_button_set_image_position",  cast(void**)& gtk_button_set_image_position},
+	{ "gtk_button_get_image_position",  cast(void**)& gtk_button_get_image_position},
+	{ "gtk_check_button_new",  cast(void**)& gtk_check_button_new},
+	{ "gtk_check_button_new_with_label",  cast(void**)& gtk_check_button_new_with_label},
+	{ "gtk_check_button_new_with_mnemonic",  cast(void**)& gtk_check_button_new_with_mnemonic},
+	{ "gtk_radio_button_new",  cast(void**)& gtk_radio_button_new},
+	{ "gtk_radio_button_new_from_widget",  cast(void**)& gtk_radio_button_new_from_widget},
+	{ "gtk_radio_button_new_with_label",  cast(void**)& gtk_radio_button_new_with_label},
+	{ "gtk_radio_button_new_with_label_from_widget",  cast(void**)& gtk_radio_button_new_with_label_from_widget},
+	{ "gtk_radio_button_new_with_mnemonic",  cast(void**)& gtk_radio_button_new_with_mnemonic},
+	{ "gtk_radio_button_new_with_mnemonic_from_widget",  cast(void**)& gtk_radio_button_new_with_mnemonic_from_widget},
+	{ "gtk_radio_button_set_group",  cast(void**)& gtk_radio_button_set_group},
+	{ "gtk_radio_button_get_group",  cast(void**)& gtk_radio_button_get_group},
+	{ "gtk_toggle_button_new",  cast(void**)& gtk_toggle_button_new},
+	{ "gtk_toggle_button_new_with_label",  cast(void**)& gtk_toggle_button_new_with_label},
+	{ "gtk_toggle_button_new_with_mnemonic",  cast(void**)& gtk_toggle_button_new_with_mnemonic},
+	{ "gtk_toggle_button_set_mode",  cast(void**)& gtk_toggle_button_set_mode},
+	{ "gtk_toggle_button_get_mode",  cast(void**)& gtk_toggle_button_get_mode},
+	{ "gtk_toggle_button_toggled",  cast(void**)& gtk_toggle_button_toggled},
+	{ "gtk_toggle_button_get_active",  cast(void**)& gtk_toggle_button_get_active},
+	{ "gtk_toggle_button_set_active",  cast(void**)& gtk_toggle_button_set_active},
+	{ "gtk_toggle_button_get_inconsistent",  cast(void**)& gtk_toggle_button_get_inconsistent},
+	{ "gtk_toggle_button_set_inconsistent",  cast(void**)& gtk_toggle_button_set_inconsistent},
+	{ "gtk_link_button_new",  cast(void**)& gtk_link_button_new},
+	{ "gtk_link_button_new_with_label",  cast(void**)& gtk_link_button_new_with_label},
+	{ "gtk_link_button_get_uri",  cast(void**)& gtk_link_button_get_uri},
+	{ "gtk_link_button_set_uri",  cast(void**)& gtk_link_button_set_uri},
+	{ "gtk_link_button_set_uri_hook",  cast(void**)& gtk_link_button_set_uri_hook},
+	{ "gtk_scale_button_new",  cast(void**)& gtk_scale_button_new},
+	{ "gtk_scale_button_set_adjustment",  cast(void**)& gtk_scale_button_set_adjustment},
+	{ "gtk_scale_button_set_icons",  cast(void**)& gtk_scale_button_set_icons},
+	{ "gtk_scale_button_set_value",  cast(void**)& gtk_scale_button_set_value},
+	{ "gtk_scale_button_get_adjustment",  cast(void**)& gtk_scale_button_get_adjustment},
+	{ "gtk_scale_button_get_value",  cast(void**)& gtk_scale_button_get_value},
+	{ "gtk_volume_button_new",  cast(void**)& gtk_volume_button_new},
+	{ "gtk_entry_new",  cast(void**)& gtk_entry_new},
+	{ "gtk_entry_new_with_max_length",  cast(void**)& gtk_entry_new_with_max_length},
+	{ "gtk_entry_set_text",  cast(void**)& gtk_entry_set_text},
+	{ "gtk_entry_append_text",  cast(void**)& gtk_entry_append_text},
+	{ "gtk_entry_prepend_text",  cast(void**)& gtk_entry_prepend_text},
+	{ "gtk_entry_set_position",  cast(void**)& gtk_entry_set_position},
+	{ "gtk_entry_get_text",  cast(void**)& gtk_entry_get_text},
+	{ "gtk_entry_select_region",  cast(void**)& gtk_entry_select_region},
+	{ "gtk_entry_set_visibility",  cast(void**)& gtk_entry_set_visibility},
+	{ "gtk_entry_set_invisible_char",  cast(void**)& gtk_entry_set_invisible_char},
+	{ "gtk_entry_set_editable",  cast(void**)& gtk_entry_set_editable},
+	{ "gtk_entry_set_max_length",  cast(void**)& gtk_entry_set_max_length},
+	{ "gtk_entry_get_activates_default",  cast(void**)& gtk_entry_get_activates_default},
+	{ "gtk_entry_get_has_frame",  cast(void**)& gtk_entry_get_has_frame},
+	{ "gtk_entry_get_inner_border",  cast(void**)& gtk_entry_get_inner_border},
+	{ "gtk_entry_get_width_chars",  cast(void**)& gtk_entry_get_width_chars},
+	{ "gtk_entry_set_activates_default",  cast(void**)& gtk_entry_set_activates_default},
+	{ "gtk_entry_set_has_frame",  cast(void**)& gtk_entry_set_has_frame},
+	{ "gtk_entry_set_inner_border",  cast(void**)& gtk_entry_set_inner_border},
+	{ "gtk_entry_set_width_chars",  cast(void**)& gtk_entry_set_width_chars},
+	{ "gtk_entry_get_invisible_char",  cast(void**)& gtk_entry_get_invisible_char},
+	{ "gtk_entry_set_alignment",  cast(void**)& gtk_entry_set_alignment},
+	{ "gtk_entry_get_alignment",  cast(void**)& gtk_entry_get_alignment},
+	{ "gtk_entry_get_layout",  cast(void**)& gtk_entry_get_layout},
+	{ "gtk_entry_get_layout_offsets",  cast(void**)& gtk_entry_get_layout_offsets},
+	{ "gtk_entry_layout_index_to_text_index",  cast(void**)& gtk_entry_layout_index_to_text_index},
+	{ "gtk_entry_text_index_to_layout_index",  cast(void**)& gtk_entry_text_index_to_layout_index},
+	{ "gtk_entry_get_max_length",  cast(void**)& gtk_entry_get_max_length},
+	{ "gtk_entry_get_visibility",  cast(void**)& gtk_entry_get_visibility},
+	{ "gtk_entry_set_completion",  cast(void**)& gtk_entry_set_completion},
+	{ "gtk_entry_get_completion",  cast(void**)& gtk_entry_get_completion},
+	{ "gtk_entry_set_cursor_hadjustment",  cast(void**)& gtk_entry_set_cursor_hadjustment},
+	{ "gtk_entry_get_cursor_hadjustment",  cast(void**)& gtk_entry_get_cursor_hadjustment},
+	{ "gtk_entry_completion_new",  cast(void**)& gtk_entry_completion_new},
+	{ "gtk_entry_completion_get_entry",  cast(void**)& gtk_entry_completion_get_entry},
+	{ "gtk_entry_completion_set_model",  cast(void**)& gtk_entry_completion_set_model},
+	{ "gtk_entry_completion_get_model",  cast(void**)& gtk_entry_completion_get_model},
+	{ "gtk_entry_completion_set_match_func",  cast(void**)& gtk_entry_completion_set_match_func},
+	{ "gtk_entry_completion_set_minimum_key_length",  cast(void**)& gtk_entry_completion_set_minimum_key_length},
+	{ "gtk_entry_completion_get_minimum_key_length",  cast(void**)& gtk_entry_completion_get_minimum_key_length},
+	{ "gtk_entry_completion_complete",  cast(void**)& gtk_entry_completion_complete},
+	{ "gtk_entry_completion_get_completion_prefix",  cast(void**)& gtk_entry_completion_get_completion_prefix},
+	{ "gtk_entry_completion_insert_prefix",  cast(void**)& gtk_entry_completion_insert_prefix},
+	{ "gtk_entry_completion_insert_action_text",  cast(void**)& gtk_entry_completion_insert_action_text},
+	{ "gtk_entry_completion_insert_action_markup",  cast(void**)& gtk_entry_completion_insert_action_markup},
+	{ "gtk_entry_completion_delete_action",  cast(void**)& gtk_entry_completion_delete_action},
+	{ "gtk_entry_completion_set_text_column",  cast(void**)& gtk_entry_completion_set_text_column},
+	{ "gtk_entry_completion_get_text_column",  cast(void**)& gtk_entry_completion_get_text_column},
+	{ "gtk_entry_completion_set_inline_completion",  cast(void**)& gtk_entry_completion_set_inline_completion},
+	{ "gtk_entry_completion_get_inline_completion",  cast(void**)& gtk_entry_completion_get_inline_completion},
+	{ "gtk_entry_completion_set_inline_selection",  cast(void**)& gtk_entry_completion_set_inline_selection},
+	{ "gtk_entry_completion_get_inline_selection",  cast(void**)& gtk_entry_completion_get_inline_selection},
+	{ "gtk_entry_completion_set_popup_completion",  cast(void**)& gtk_entry_completion_set_popup_completion},
+	{ "gtk_entry_completion_get_popup_completion",  cast(void**)& gtk_entry_completion_get_popup_completion},
+	{ "gtk_entry_completion_set_popup_set_width",  cast(void**)& gtk_entry_completion_set_popup_set_width},
+	{ "gtk_entry_completion_get_popup_set_width",  cast(void**)& gtk_entry_completion_get_popup_set_width},
+	{ "gtk_entry_completion_set_popup_single_match",  cast(void**)& gtk_entry_completion_set_popup_single_match},
+	{ "gtk_entry_completion_get_popup_single_match",  cast(void**)& gtk_entry_completion_get_popup_single_match},
+	{ "gtk_hscale_new",  cast(void**)& gtk_hscale_new},
+	{ "gtk_hscale_new_with_range",  cast(void**)& gtk_hscale_new_with_range},
+	{ "gtk_vscale_new",  cast(void**)& gtk_vscale_new},
+	{ "gtk_vscale_new_with_range",  cast(void**)& gtk_vscale_new_with_range},
+	{ "gtk_spin_button_configure",  cast(void**)& gtk_spin_button_configure},
+	{ "gtk_spin_button_new",  cast(void**)& gtk_spin_button_new},
+	{ "gtk_spin_button_new_with_range",  cast(void**)& gtk_spin_button_new_with_range},
+	{ "gtk_spin_button_set_adjustment",  cast(void**)& gtk_spin_button_set_adjustment},
+	{ "gtk_spin_button_get_adjustment",  cast(void**)& gtk_spin_button_get_adjustment},
+	{ "gtk_spin_button_set_digits",  cast(void**)& gtk_spin_button_set_digits},
+	{ "gtk_spin_button_set_increments",  cast(void**)& gtk_spin_button_set_increments},
+	{ "gtk_spin_button_set_range",  cast(void**)& gtk_spin_button_set_range},
+	{ "gtk_spin_button_get_value_as_int",  cast(void**)& gtk_spin_button_get_value_as_int},
+	{ "gtk_spin_button_set_value",  cast(void**)& gtk_spin_button_set_value},
+	{ "gtk_spin_button_set_update_policy",  cast(void**)& gtk_spin_button_set_update_policy},
+	{ "gtk_spin_button_set_numeric",  cast(void**)& gtk_spin_button_set_numeric},
+	{ "gtk_spin_button_spin",  cast(void**)& gtk_spin_button_spin},
+	{ "gtk_spin_button_set_wrap",  cast(void**)& gtk_spin_button_set_wrap},
+	{ "gtk_spin_button_set_snap_to_ticks",  cast(void**)& gtk_spin_button_set_snap_to_ticks},
+	{ "gtk_spin_button_update",  cast(void**)& gtk_spin_button_update},
+	{ "gtk_spin_button_get_digits",  cast(void**)& gtk_spin_button_get_digits},
+	{ "gtk_spin_button_get_increments",  cast(void**)& gtk_spin_button_get_increments},
+	{ "gtk_spin_button_get_numeric",  cast(void**)& gtk_spin_button_get_numeric},
+	{ "gtk_spin_button_get_range",  cast(void**)& gtk_spin_button_get_range},
+	{ "gtk_spin_button_get_snap_to_ticks",  cast(void**)& gtk_spin_button_get_snap_to_ticks},
+	{ "gtk_spin_button_get_update_policy",  cast(void**)& gtk_spin_button_get_update_policy},
+	{ "gtk_spin_button_get_value",  cast(void**)& gtk_spin_button_get_value},
+	{ "gtk_spin_button_get_wrap",  cast(void**)& gtk_spin_button_get_wrap},
+	{ "gtk_editable_select_region",  cast(void**)& gtk_editable_select_region},
+	{ "gtk_editable_get_selection_bounds",  cast(void**)& gtk_editable_get_selection_bounds},
+	{ "gtk_editable_insert_text",  cast(void**)& gtk_editable_insert_text},
+	{ "gtk_editable_delete_text",  cast(void**)& gtk_editable_delete_text},
+	{ "gtk_editable_get_chars",  cast(void**)& gtk_editable_get_chars},
+	{ "gtk_editable_cut_clipboard",  cast(void**)& gtk_editable_cut_clipboard},
+	{ "gtk_editable_copy_clipboard",  cast(void**)& gtk_editable_copy_clipboard},
+	{ "gtk_editable_paste_clipboard",  cast(void**)& gtk_editable_paste_clipboard},
+	{ "gtk_editable_delete_selection",  cast(void**)& gtk_editable_delete_selection},
+	{ "gtk_editable_set_position",  cast(void**)& gtk_editable_set_position},
+	{ "gtk_editable_get_position",  cast(void**)& gtk_editable_get_position},
+	{ "gtk_editable_set_editable",  cast(void**)& gtk_editable_set_editable},
+	{ "gtk_editable_get_editable",  cast(void**)& gtk_editable_get_editable},
+	{ "gtk_text_iter_get_buffer",  cast(void**)& gtk_text_iter_get_buffer},
+	{ "gtk_text_iter_copy",  cast(void**)& gtk_text_iter_copy},
+	{ "gtk_text_iter_free",  cast(void**)& gtk_text_iter_free},
+	{ "gtk_text_iter_get_offset",  cast(void**)& gtk_text_iter_get_offset},
+	{ "gtk_text_iter_get_line",  cast(void**)& gtk_text_iter_get_line},
+	{ "gtk_text_iter_get_line_offset",  cast(void**)& gtk_text_iter_get_line_offset},
+	{ "gtk_text_iter_get_line_index",  cast(void**)& gtk_text_iter_get_line_index},
+	{ "gtk_text_iter_get_visible_line_index",  cast(void**)& gtk_text_iter_get_visible_line_index},
+	{ "gtk_text_iter_get_visible_line_offset",  cast(void**)& gtk_text_iter_get_visible_line_offset},
+	{ "gtk_text_iter_get_char",  cast(void**)& gtk_text_iter_get_char},
+	{ "gtk_text_iter_get_slice",  cast(void**)& gtk_text_iter_get_slice},
+	{ "gtk_text_iter_get_text",  cast(void**)& gtk_text_iter_get_text},
+	{ "gtk_text_iter_get_visible_slice",  cast(void**)& gtk_text_iter_get_visible_slice},
+	{ "gtk_text_iter_get_visible_text",  cast(void**)& gtk_text_iter_get_visible_text},
+	{ "gtk_text_iter_get_pixbuf",  cast(void**)& gtk_text_iter_get_pixbuf},
+	{ "gtk_text_iter_get_marks",  cast(void**)& gtk_text_iter_get_marks},
+	{ "gtk_text_iter_get_toggled_tags",  cast(void**)& gtk_text_iter_get_toggled_tags},
+	{ "gtk_text_iter_get_child_anchor",  cast(void**)& gtk_text_iter_get_child_anchor},
+	{ "gtk_text_iter_begins_tag",  cast(void**)& gtk_text_iter_begins_tag},
+	{ "gtk_text_iter_ends_tag",  cast(void**)& gtk_text_iter_ends_tag},
+	{ "gtk_text_iter_toggles_tag",  cast(void**)& gtk_text_iter_toggles_tag},
+	{ "gtk_text_iter_has_tag",  cast(void**)& gtk_text_iter_has_tag},
+	{ "gtk_text_iter_get_tags",  cast(void**)& gtk_text_iter_get_tags},
+	{ "gtk_text_iter_editable",  cast(void**)& gtk_text_iter_editable},
+	{ "gtk_text_iter_can_insert",  cast(void**)& gtk_text_iter_can_insert},
+	{ "gtk_text_iter_starts_word",  cast(void**)& gtk_text_iter_starts_word},
+	{ "gtk_text_iter_ends_word",  cast(void**)& gtk_text_iter_ends_word},
+	{ "gtk_text_iter_inside_word",  cast(void**)& gtk_text_iter_inside_word},
+	{ "gtk_text_iter_starts_line",  cast(void**)& gtk_text_iter_starts_line},
+	{ "gtk_text_iter_ends_line",  cast(void**)& gtk_text_iter_ends_line},
+	{ "gtk_text_iter_starts_sentence",  cast(void**)& gtk_text_iter_starts_sentence},
+	{ "gtk_text_iter_ends_sentence",  cast(void**)& gtk_text_iter_ends_sentence},
+	{ "gtk_text_iter_inside_sentence",  cast(void**)& gtk_text_iter_inside_sentence},
+	{ "gtk_text_iter_is_cursor_position",  cast(void**)& gtk_text_iter_is_cursor_position},
+	{ "gtk_text_iter_get_chars_in_line",  cast(void**)& gtk_text_iter_get_chars_in_line},
+	{ "gtk_text_iter_get_bytes_in_line",  cast(void**)& gtk_text_iter_get_bytes_in_line},
+	{ "gtk_text_iter_get_attributes",  cast(void**)& gtk_text_iter_get_attributes},
+	{ "gtk_text_iter_get_language",  cast(void**)& gtk_text_iter_get_language},
+	{ "gtk_text_iter_is_end",  cast(void**)& gtk_text_iter_is_end},
+	{ "gtk_text_iter_is_start",  cast(void**)& gtk_text_iter_is_start},
+	{ "gtk_text_iter_forward_char",  cast(void**)& gtk_text_iter_forward_char},
+	{ "gtk_text_iter_backward_char",  cast(void**)& gtk_text_iter_backward_char},
+	{ "gtk_text_iter_forward_chars",  cast(void**)& gtk_text_iter_forward_chars},
+	{ "gtk_text_iter_backward_chars",  cast(void**)& gtk_text_iter_backward_chars},
+	{ "gtk_text_iter_forward_line",  cast(void**)& gtk_text_iter_forward_line},
+	{ "gtk_text_iter_backward_line",  cast(void**)& gtk_text_iter_backward_line},
+	{ "gtk_text_iter_forward_lines",  cast(void**)& gtk_text_iter_forward_lines},
+	{ "gtk_text_iter_backward_lines",  cast(void**)& gtk_text_iter_backward_lines},
+	{ "gtk_text_iter_forward_word_ends",  cast(void**)& gtk_text_iter_forward_word_ends},
+	{ "gtk_text_iter_backward_word_starts",  cast(void**)& gtk_text_iter_backward_word_starts},
+	{ "gtk_text_iter_forward_word_end",  cast(void**)& gtk_text_iter_forward_word_end},
+	{ "gtk_text_iter_backward_word_start",  cast(void**)& gtk_text_iter_backward_word_start},
+	{ "gtk_text_iter_forward_cursor_position",  cast(void**)& gtk_text_iter_forward_cursor_position},
+	{ "gtk_text_iter_backward_cursor_position",  cast(void**)& gtk_text_iter_backward_cursor_position},
+	{ "gtk_text_iter_forward_cursor_positions",  cast(void**)& gtk_text_iter_forward_cursor_positions},
+	{ "gtk_text_iter_backward_cursor_positions",  cast(void**)& gtk_text_iter_backward_cursor_positions},
+	{ "gtk_text_iter_backward_sentence_start",  cast(void**)& gtk_text_iter_backward_sentence_start},
+	{ "gtk_text_iter_backward_sentence_starts",  cast(void**)& gtk_text_iter_backward_sentence_starts},
+	{ "gtk_text_iter_forward_sentence_end",  cast(void**)& gtk_text_iter_forward_sentence_end},
+	{ "gtk_text_iter_forward_sentence_ends",  cast(void**)& gtk_text_iter_forward_sentence_ends},
+	{ "gtk_text_iter_forward_visible_word_ends",  cast(void**)& gtk_text_iter_forward_visible_word_ends},
+	{ "gtk_text_iter_backward_visible_word_starts",  cast(void**)& gtk_text_iter_backward_visible_word_starts},
+	{ "gtk_text_iter_forward_visible_word_end",  cast(void**)& gtk_text_iter_forward_visible_word_end},
+	{ "gtk_text_iter_backward_visible_word_start",  cast(void**)& gtk_text_iter_backward_visible_word_start},
+	{ "gtk_text_iter_forward_visible_cursor_position",  cast(void**)& gtk_text_iter_forward_visible_cursor_position},
+	{ "gtk_text_iter_backward_visible_cursor_position",  cast(void**)& gtk_text_iter_backward_visible_cursor_position},
+	{ "gtk_text_iter_forward_visible_cursor_positions",  cast(void**)& gtk_text_iter_forward_visible_cursor_positions},
+	{ "gtk_text_iter_backward_visible_cursor_positions",  cast(void**)& gtk_text_iter_backward_visible_cursor_positions},
+	{ "gtk_text_iter_forward_visible_line",  cast(void**)& gtk_text_iter_forward_visible_line},
+	{ "gtk_text_iter_backward_visible_line",  cast(void**)& gtk_text_iter_backward_visible_line},
+	{ "gtk_text_iter_forward_visible_lines",  cast(void**)& gtk_text_iter_forward_visible_lines},
+	{ "gtk_text_iter_backward_visible_lines",  cast(void**)& gtk_text_iter_backward_visible_lines},
+	{ "gtk_text_iter_set_offset",  cast(void**)& gtk_text_iter_set_offset},
+	{ "gtk_text_iter_set_line",  cast(void**)& gtk_text_iter_set_line},
+	{ "gtk_text_iter_set_line_offset",  cast(void**)& gtk_text_iter_set_line_offset},
+	{ "gtk_text_iter_set_line_index",  cast(void**)& gtk_text_iter_set_line_index},
+	{ "gtk_text_iter_set_visible_line_index",  cast(void**)& gtk_text_iter_set_visible_line_index},
+	{ "gtk_text_iter_set_visible_line_offset",  cast(void**)& gtk_text_iter_set_visible_line_offset},
+	{ "gtk_text_iter_forward_to_end",  cast(void**)& gtk_text_iter_forward_to_end},
+	{ "gtk_text_iter_forward_to_line_end",  cast(void**)& gtk_text_iter_forward_to_line_end},
+	{ "gtk_text_iter_forward_to_tag_toggle",  cast(void**)& gtk_text_iter_forward_to_tag_toggle},
+	{ "gtk_text_iter_backward_to_tag_toggle",  cast(void**)& gtk_text_iter_backward_to_tag_toggle},
+	{ "gtk_text_iter_forward_find_char",  cast(void**)& gtk_text_iter_forward_find_char},
+	{ "gtk_text_iter_backward_find_char",  cast(void**)& gtk_text_iter_backward_find_char},
+	{ "gtk_text_iter_forward_search",  cast(void**)& gtk_text_iter_forward_search},
+	{ "gtk_text_iter_backward_search",  cast(void**)& gtk_text_iter_backward_search},
+	{ "gtk_text_iter_equal",  cast(void**)& gtk_text_iter_equal},
+	{ "gtk_text_iter_compare",  cast(void**)& gtk_text_iter_compare},
+	{ "gtk_text_iter_in_range",  cast(void**)& gtk_text_iter_in_range},
+	{ "gtk_text_iter_order",  cast(void**)& gtk_text_iter_order},
+	{ "gtk_text_mark_new",  cast(void**)& gtk_text_mark_new},
+	{ "gtk_text_mark_set_visible",  cast(void**)& gtk_text_mark_set_visible},
+	{ "gtk_text_mark_get_visible",  cast(void**)& gtk_text_mark_get_visible},
+	{ "gtk_text_mark_get_deleted",  cast(void**)& gtk_text_mark_get_deleted},
+	{ "gtk_text_mark_get_name",  cast(void**)& gtk_text_mark_get_name},
+	{ "gtk_text_mark_get_buffer",  cast(void**)& gtk_text_mark_get_buffer},
+	{ "gtk_text_mark_get_left_gravity",  cast(void**)& gtk_text_mark_get_left_gravity},
+	{ "gtk_text_buffer_new",  cast(void**)& gtk_text_buffer_new},
+	{ "gtk_text_buffer_get_line_count",  cast(void**)& gtk_text_buffer_get_line_count},
+	{ "gtk_text_buffer_get_char_count",  cast(void**)& gtk_text_buffer_get_char_count},
+	{ "gtk_text_buffer_get_tag_table",  cast(void**)& gtk_text_buffer_get_tag_table},
+	{ "gtk_text_buffer_insert",  cast(void**)& gtk_text_buffer_insert},
+	{ "gtk_text_buffer_insert_at_cursor",  cast(void**)& gtk_text_buffer_insert_at_cursor},
+	{ "gtk_text_buffer_insert_interactive",  cast(void**)& gtk_text_buffer_insert_interactive},
+	{ "gtk_text_buffer_insert_interactive_at_cursor",  cast(void**)& gtk_text_buffer_insert_interactive_at_cursor},
+	{ "gtk_text_buffer_insert_range",  cast(void**)& gtk_text_buffer_insert_range},
+	{ "gtk_text_buffer_insert_range_interactive",  cast(void**)& gtk_text_buffer_insert_range_interactive},
+	{ "gtk_text_buffer_insert_with_tags",  cast(void**)& gtk_text_buffer_insert_with_tags},
+	{ "gtk_text_buffer_insert_with_tags_by_name",  cast(void**)& gtk_text_buffer_insert_with_tags_by_name},
+	{ "gtk_text_buffer_delete",  cast(void**)& gtk_text_buffer_delete},
+	{ "gtk_text_buffer_delete_interactive",  cast(void**)& gtk_text_buffer_delete_interactive},
+	{ "gtk_text_buffer_backspace",  cast(void**)& gtk_text_buffer_backspace},
+	{ "gtk_text_buffer_set_text",  cast(void**)& gtk_text_buffer_set_text},
+	{ "gtk_text_buffer_get_text",  cast(void**)& gtk_text_buffer_get_text},
+	{ "gtk_text_buffer_get_slice",  cast(void**)& gtk_text_buffer_get_slice},
+	{ "gtk_text_buffer_insert_pixbuf",  cast(void**)& gtk_text_buffer_insert_pixbuf},
+	{ "gtk_text_buffer_insert_child_anchor",  cast(void**)& gtk_text_buffer_insert_child_anchor},
+	{ "gtk_text_buffer_create_child_anchor",  cast(void**)& gtk_text_buffer_create_child_anchor},
+	{ "gtk_text_buffer_create_mark",  cast(void**)& gtk_text_buffer_create_mark},
+	{ "gtk_text_buffer_move_mark",  cast(void**)& gtk_text_buffer_move_mark},
+	{ "gtk_text_buffer_move_mark_by_name",  cast(void**)& gtk_text_buffer_move_mark_by_name},
+	{ "gtk_text_buffer_add_mark",  cast(void**)& gtk_text_buffer_add_mark},
+	{ "gtk_text_buffer_delete_mark",  cast(void**)& gtk_text_buffer_delete_mark},
+	{ "gtk_text_buffer_delete_mark_by_name",  cast(void**)& gtk_text_buffer_delete_mark_by_name},
+	{ "gtk_text_buffer_get_mark",  cast(void**)& gtk_text_buffer_get_mark},
+	{ "gtk_text_buffer_get_insert",  cast(void**)& gtk_text_buffer_get_insert},
+	{ "gtk_text_buffer_get_selection_bound",  cast(void**)& gtk_text_buffer_get_selection_bound},
+	{ "gtk_text_buffer_get_has_selection",  cast(void**)& gtk_text_buffer_get_has_selection},
+	{ "gtk_text_buffer_place_cursor",  cast(void**)& gtk_text_buffer_place_cursor},
+	{ "gtk_text_buffer_select_range",  cast(void**)& gtk_text_buffer_select_range},
+	{ "gtk_text_buffer_apply_tag",  cast(void**)& gtk_text_buffer_apply_tag},
+	{ "gtk_text_buffer_remove_tag",  cast(void**)& gtk_text_buffer_remove_tag},
+	{ "gtk_text_buffer_apply_tag_by_name",  cast(void**)& gtk_text_buffer_apply_tag_by_name},
+	{ "gtk_text_buffer_remove_tag_by_name",  cast(void**)& gtk_text_buffer_remove_tag_by_name},
+	{ "gtk_text_buffer_remove_all_tags",  cast(void**)& gtk_text_buffer_remove_all_tags},
+	{ "gtk_text_buffer_create_tag",  cast(void**)& gtk_text_buffer_create_tag},
+	{ "gtk_text_buffer_get_iter_at_line_offset",  cast(void**)& gtk_text_buffer_get_iter_at_line_offset},
+	{ "gtk_text_buffer_get_iter_at_offset",  cast(void**)& gtk_text_buffer_get_iter_at_offset},
+	{ "gtk_text_buffer_get_iter_at_line",  cast(void**)& gtk_text_buffer_get_iter_at_line},
+	{ "gtk_text_buffer_get_iter_at_line_index",  cast(void**)& gtk_text_buffer_get_iter_at_line_index},
+	{ "gtk_text_buffer_get_iter_at_mark",  cast(void**)& gtk_text_buffer_get_iter_at_mark},
+	{ "gtk_text_buffer_get_iter_at_child_anchor",  cast(void**)& gtk_text_buffer_get_iter_at_child_anchor},
+	{ "gtk_text_buffer_get_start_iter",  cast(void**)& gtk_text_buffer_get_start_iter},
+	{ "gtk_text_buffer_get_end_iter",  cast(void**)& gtk_text_buffer_get_end_iter},
+	{ "gtk_text_buffer_get_bounds",  cast(void**)& gtk_text_buffer_get_bounds},
+	{ "gtk_text_buffer_get_modified",  cast(void**)& gtk_text_buffer_get_modified},
+	{ "gtk_text_buffer_set_modified",  cast(void**)& gtk_text_buffer_set_modified},
+	{ "gtk_text_buffer_delete_selection",  cast(void**)& gtk_text_buffer_delete_selection},
+	{ "gtk_text_buffer_paste_clipboard",  cast(void**)& gtk_text_buffer_paste_clipboard},
+	{ "gtk_text_buffer_copy_clipboard",  cast(void**)& gtk_text_buffer_copy_clipboard},
+	{ "gtk_text_buffer_cut_clipboard",  cast(void**)& gtk_text_buffer_cut_clipboard},
+	{ "gtk_text_buffer_get_selection_bounds",  cast(void**)& gtk_text_buffer_get_selection_bounds},
+	{ "gtk_text_buffer_begin_user_action",  cast(void**)& gtk_text_buffer_begin_user_action},
+	{ "gtk_text_buffer_end_user_action",  cast(void**)& gtk_text_buffer_end_user_action},
+	{ "gtk_text_buffer_add_selection_clipboard",  cast(void**)& gtk_text_buffer_add_selection_clipboard},
+	{ "gtk_text_buffer_remove_selection_clipboard",  cast(void**)& gtk_text_buffer_remove_selection_clipboard},
+	{ "gtk_text_buffer_deserialize",  cast(void**)& gtk_text_buffer_deserialize},
+	{ "gtk_text_buffer_deserialize_get_can_create_tags",  cast(void**)& gtk_text_buffer_deserialize_get_can_create_tags},
+	{ "gtk_text_buffer_deserialize_set_can_create_tags",  cast(void**)& gtk_text_buffer_deserialize_set_can_create_tags},
+	{ "gtk_text_buffer_get_copy_target_list",  cast(void**)& gtk_text_buffer_get_copy_target_list},
+	{ "gtk_text_buffer_get_deserialize_formats",  cast(void**)& gtk_text_buffer_get_deserialize_formats},
+	{ "gtk_text_buffer_get_paste_target_list",  cast(void**)& gtk_text_buffer_get_paste_target_list},
+	{ "gtk_text_buffer_get_serialize_formats",  cast(void**)& gtk_text_buffer_get_serialize_formats},
+	{ "gtk_text_buffer_register_deserialize_format",  cast(void**)& gtk_text_buffer_register_deserialize_format},
+	{ "gtk_text_buffer_register_deserialize_tagset",  cast(void**)& gtk_text_buffer_register_deserialize_tagset},
+	{ "gtk_text_buffer_register_serialize_format",  cast(void**)& gtk_text_buffer_register_serialize_format},
+	{ "gtk_text_buffer_register_serialize_tagset",  cast(void**)& gtk_text_buffer_register_serialize_tagset},
+	{ "gtk_text_buffer_serialize",  cast(void**)& gtk_text_buffer_serialize},
+	{ "gtk_text_buffer_unregister_deserialize_format",  cast(void**)& gtk_text_buffer_unregister_deserialize_format},
+	{ "gtk_text_buffer_unregister_serialize_format",  cast(void**)& gtk_text_buffer_unregister_serialize_format},
+	{ "gtk_text_tag_new",  cast(void**)& gtk_text_tag_new},
+	{ "gtk_text_tag_get_priority",  cast(void**)& gtk_text_tag_get_priority},
+	{ "gtk_text_tag_set_priority",  cast(void**)& gtk_text_tag_set_priority},
+	{ "gtk_text_tag_event",  cast(void**)& gtk_text_tag_event},
+	{ "gtk_text_attributes_new",  cast(void**)& gtk_text_attributes_new},
+	{ "gtk_text_attributes_copy",  cast(void**)& gtk_text_attributes_copy},
+	{ "gtk_text_attributes_copy_values",  cast(void**)& gtk_text_attributes_copy_values},
+	{ "gtk_text_attributes_unref",  cast(void**)& gtk_text_attributes_unref},
+	{ "gtk_text_attributes_ref",  cast(void**)& gtk_text_attributes_ref},
+	{ "gtk_text_tag_table_new",  cast(void**)& gtk_text_tag_table_new},
+	{ "gtk_text_tag_table_add",  cast(void**)& gtk_text_tag_table_add},
+	{ "gtk_text_tag_table_remove",  cast(void**)& gtk_text_tag_table_remove},
+	{ "gtk_text_tag_table_lookup",  cast(void**)& gtk_text_tag_table_lookup},
+	{ "gtk_text_tag_table_foreach",  cast(void**)& gtk_text_tag_table_foreach},
+	{ "gtk_text_tag_table_get_size",  cast(void**)& gtk_text_tag_table_get_size},
+	{ "gtk_text_view_new",  cast(void**)& gtk_text_view_new},
+	{ "gtk_text_view_new_with_buffer",  cast(void**)& gtk_text_view_new_with_buffer},
+	{ "gtk_text_view_set_buffer",  cast(void**)& gtk_text_view_set_buffer},
+	{ "gtk_text_view_get_buffer",  cast(void**)& gtk_text_view_get_buffer},
+	{ "gtk_text_view_scroll_to_mark",  cast(void**)& gtk_text_view_scroll_to_mark},
+	{ "gtk_text_view_scroll_to_iter",  cast(void**)& gtk_text_view_scroll_to_iter},
+	{ "gtk_text_view_scroll_mark_onscreen",  cast(void**)& gtk_text_view_scroll_mark_onscreen},
+	{ "gtk_text_view_move_mark_onscreen",  cast(void**)& gtk_text_view_move_mark_onscreen},
+	{ "gtk_text_view_place_cursor_onscreen",  cast(void**)& gtk_text_view_place_cursor_onscreen},
+	{ "gtk_text_view_get_visible_rect",  cast(void**)& gtk_text_view_get_visible_rect},
+	{ "gtk_text_view_get_iter_location",  cast(void**)& gtk_text_view_get_iter_location},
+	{ "gtk_text_view_get_line_at_y",  cast(void**)& gtk_text_view_get_line_at_y},
+	{ "gtk_text_view_get_line_yrange",  cast(void**)& gtk_text_view_get_line_yrange},
+	{ "gtk_text_view_get_iter_at_location",  cast(void**)& gtk_text_view_get_iter_at_location},
+	{ "gtk_text_view_get_iter_at_position",  cast(void**)& gtk_text_view_get_iter_at_position},
+	{ "gtk_text_view_buffer_to_window_coords",  cast(void**)& gtk_text_view_buffer_to_window_coords},
+	{ "gtk_text_view_window_to_buffer_coords",  cast(void**)& gtk_text_view_window_to_buffer_coords},
+	{ "gtk_text_view_get_window",  cast(void**)& gtk_text_view_get_window},
+	{ "gtk_text_view_get_window_type",  cast(void**)& gtk_text_view_get_window_type},
+	{ "gtk_text_view_set_border_window_size",  cast(void**)& gtk_text_view_set_border_window_size},
+	{ "gtk_text_view_get_border_window_size",  cast(void**)& gtk_text_view_get_border_window_size},
+	{ "gtk_text_view_forward_display_line",  cast(void**)& gtk_text_view_forward_display_line},
+	{ "gtk_text_view_backward_display_line",  cast(void**)& gtk_text_view_backward_display_line},
+	{ "gtk_text_view_forward_display_line_end",  cast(void**)& gtk_text_view_forward_display_line_end},
+	{ "gtk_text_view_backward_display_line_start",  cast(void**)& gtk_text_view_backward_display_line_start},
+	{ "gtk_text_view_starts_display_line",  cast(void**)& gtk_text_view_starts_display_line},
+	{ "gtk_text_view_move_visually",  cast(void**)& gtk_text_view_move_visually},
+	{ "gtk_text_view_add_child_at_anchor",  cast(void**)& gtk_text_view_add_child_at_anchor},
+	{ "gtk_text_view_add_child_in_window",  cast(void**)& gtk_text_view_add_child_in_window},
+	{ "gtk_text_view_move_child",  cast(void**)& gtk_text_view_move_child},
+	{ "gtk_text_view_set_wrap_mode",  cast(void**)& gtk_text_view_set_wrap_mode},
+	{ "gtk_text_view_get_wrap_mode",  cast(void**)& gtk_text_view_get_wrap_mode},
+	{ "gtk_text_view_set_editable",  cast(void**)& gtk_text_view_set_editable},
+	{ "gtk_text_view_get_editable",  cast(void**)& gtk_text_view_get_editable},
+	{ "gtk_text_view_set_cursor_visible",  cast(void**)& gtk_text_view_set_cursor_visible},
+	{ "gtk_text_view_get_cursor_visible",  cast(void**)& gtk_text_view_get_cursor_visible},
+	{ "gtk_text_view_set_overwrite",  cast(void**)& gtk_text_view_set_overwrite},
+	{ "gtk_text_view_get_overwrite",  cast(void**)& gtk_text_view_get_overwrite},
+	{ "gtk_text_view_set_pixels_above_lines",  cast(void**)& gtk_text_view_set_pixels_above_lines},
+	{ "gtk_text_view_get_pixels_above_lines",  cast(void**)& gtk_text_view_get_pixels_above_lines},
+	{ "gtk_text_view_set_pixels_below_lines",  cast(void**)& gtk_text_view_set_pixels_below_lines},
+	{ "gtk_text_view_get_pixels_below_lines",  cast(void**)& gtk_text_view_get_pixels_below_lines},
+	{ "gtk_text_view_set_pixels_inside_wrap",  cast(void**)& gtk_text_view_set_pixels_inside_wrap},
+	{ "gtk_text_view_get_pixels_inside_wrap",  cast(void**)& gtk_text_view_get_pixels_inside_wrap},
+	{ "gtk_text_view_set_justification",  cast(void**)& gtk_text_view_set_justification},
+	{ "gtk_text_view_get_justification",  cast(void**)& gtk_text_view_get_justification},
+	{ "gtk_text_view_set_left_margin",  cast(void**)& gtk_text_view_set_left_margin},
+	{ "gtk_text_view_get_left_margin",  cast(void**)& gtk_text_view_get_left_margin},
+	{ "gtk_text_view_set_right_margin",  cast(void**)& gtk_text_view_set_right_margin},
+	{ "gtk_text_view_get_right_margin",  cast(void**)& gtk_text_view_get_right_margin},
+	{ "gtk_text_view_set_indent",  cast(void**)& gtk_text_view_set_indent},
+	{ "gtk_text_view_get_indent",  cast(void**)& gtk_text_view_get_indent},
+	{ "gtk_text_view_set_tabs",  cast(void**)& gtk_text_view_set_tabs},
+	{ "gtk_text_view_get_tabs",  cast(void**)& gtk_text_view_get_tabs},
+	{ "gtk_text_view_set_accepts_tab",  cast(void**)& gtk_text_view_set_accepts_tab},
+	{ "gtk_text_view_get_accepts_tab",  cast(void**)& gtk_text_view_get_accepts_tab},
+	{ "gtk_text_view_get_default_attributes",  cast(void**)& gtk_text_view_get_default_attributes},
+	{ "gtk_text_child_anchor_new",  cast(void**)& gtk_text_child_anchor_new},
+	{ "gtk_text_child_anchor_get_widgets",  cast(void**)& gtk_text_child_anchor_get_widgets},
+	{ "gtk_text_child_anchor_get_deleted",  cast(void**)& gtk_text_child_anchor_get_deleted},
+	{ "gtk_tree_model_get_flags",  cast(void**)& gtk_tree_model_get_flags},
+	{ "gtk_tree_model_get_n_columns",  cast(void**)& gtk_tree_model_get_n_columns},
+	{ "gtk_tree_model_get_column_type",  cast(void**)& gtk_tree_model_get_column_type},
+	{ "gtk_tree_model_get_iter",  cast(void**)& gtk_tree_model_get_iter},
+	{ "gtk_tree_model_get_iter_from_string",  cast(void**)& gtk_tree_model_get_iter_from_string},
+	{ "gtk_tree_model_get_iter_first",  cast(void**)& gtk_tree_model_get_iter_first},
+	{ "gtk_tree_model_get_path",  cast(void**)& gtk_tree_model_get_path},
+	{ "gtk_tree_model_get_value",  cast(void**)& gtk_tree_model_get_value},
+	{ "gtk_tree_model_iter_next",  cast(void**)& gtk_tree_model_iter_next},
+	{ "gtk_tree_model_iter_children",  cast(void**)& gtk_tree_model_iter_children},
+	{ "gtk_tree_model_iter_has_child",  cast(void**)& gtk_tree_model_iter_has_child},
+	{ "gtk_tree_model_iter_n_children",  cast(void**)& gtk_tree_model_iter_n_children},
+	{ "gtk_tree_model_iter_nth_child",  cast(void**)& gtk_tree_model_iter_nth_child},
+	{ "gtk_tree_model_iter_parent",  cast(void**)& gtk_tree_model_iter_parent},
+	{ "gtk_tree_model_get_string_from_iter",  cast(void**)& gtk_tree_model_get_string_from_iter},
+	{ "gtk_tree_model_ref_node",  cast(void**)& gtk_tree_model_ref_node},
+	{ "gtk_tree_model_unref_node",  cast(void**)& gtk_tree_model_unref_node},
+	{ "gtk_tree_model_get",  cast(void**)& gtk_tree_model_get},
+	{ "gtk_tree_model_get_valist",  cast(void**)& gtk_tree_model_get_valist},
+	{ "gtk_tree_model_foreach",  cast(void**)& gtk_tree_model_foreach},
+	{ "gtk_tree_model_row_changed",  cast(void**)& gtk_tree_model_row_changed},
+	{ "gtk_tree_model_row_inserted",  cast(void**)& gtk_tree_model_row_inserted},
+	{ "gtk_tree_model_row_has_child_toggled",  cast(void**)& gtk_tree_model_row_has_child_toggled},
+	{ "gtk_tree_model_row_deleted",  cast(void**)& gtk_tree_model_row_deleted},
+	{ "gtk_tree_model_rows_reordered",  cast(void**)& gtk_tree_model_rows_reordered},
+	{ "gtk_tree_iter_copy",  cast(void**)& gtk_tree_iter_copy},
+	{ "gtk_tree_iter_free",  cast(void**)& gtk_tree_iter_free},
+	{ "gtk_tree_path_new",  cast(void**)& gtk_tree_path_new},
+	{ "gtk_tree_path_new_from_string",  cast(void**)& gtk_tree_path_new_from_string},
+	{ "gtk_tree_path_new_from_indices",  cast(void**)& gtk_tree_path_new_from_indices},
+	{ "gtk_tree_path_to_string",  cast(void**)& gtk_tree_path_to_string},
+	{ "gtk_tree_path_new_first",  cast(void**)& gtk_tree_path_new_first},
+	{ "gtk_tree_path_append_index",  cast(void**)& gtk_tree_path_append_index},
+	{ "gtk_tree_path_prepend_index",  cast(void**)& gtk_tree_path_prepend_index},
+	{ "gtk_tree_path_get_depth",  cast(void**)& gtk_tree_path_get_depth},
+	{ "gtk_tree_path_get_indices",  cast(void**)& gtk_tree_path_get_indices},
+	{ "gtk_tree_path_free",  cast(void**)& gtk_tree_path_free},
+	{ "gtk_tree_path_copy",  cast(void**)& gtk_tree_path_copy},
+	{ "gtk_tree_path_compare",  cast(void**)& gtk_tree_path_compare},
+	{ "gtk_tree_path_next",  cast(void**)& gtk_tree_path_next},
+	{ "gtk_tree_path_prev",  cast(void**)& gtk_tree_path_prev},
+	{ "gtk_tree_path_up",  cast(void**)& gtk_tree_path_up},
+	{ "gtk_tree_path_down",  cast(void**)& gtk_tree_path_down},
+	{ "gtk_tree_path_is_ancestor",  cast(void**)& gtk_tree_path_is_ancestor},
+	{ "gtk_tree_path_is_descendant",  cast(void**)& gtk_tree_path_is_descendant},
+	{ "gtk_tree_row_reference_new",  cast(void**)& gtk_tree_row_reference_new},
+	{ "gtk_tree_row_reference_new_proxy",  cast(void**)& gtk_tree_row_reference_new_proxy},
+	{ "gtk_tree_row_reference_get_model",  cast(void**)& gtk_tree_row_reference_get_model},
+	{ "gtk_tree_row_reference_get_path",  cast(void**)& gtk_tree_row_reference_get_path},
+	{ "gtk_tree_row_reference_valid",  cast(void**)& gtk_tree_row_reference_valid},
+	{ "gtk_tree_row_reference_free",  cast(void**)& gtk_tree_row_reference_free},
+	{ "gtk_tree_row_reference_copy",  cast(void**)& gtk_tree_row_reference_copy},
+	{ "gtk_tree_row_reference_inserted",  cast(void**)& gtk_tree_row_reference_inserted},
+	{ "gtk_tree_row_reference_deleted",  cast(void**)& gtk_tree_row_reference_deleted},
+	{ "gtk_tree_row_reference_reordered",  cast(void**)& gtk_tree_row_reference_reordered},
+	{ "gtk_tree_selection_set_mode",  cast(void**)& gtk_tree_selection_set_mode},
+	{ "gtk_tree_selection_get_mode",  cast(void**)& gtk_tree_selection_get_mode},
+	{ "gtk_tree_selection_set_select_function",  cast(void**)& gtk_tree_selection_set_select_function},
+	{ "gtk_tree_selection_get_user_data",  cast(void**)& gtk_tree_selection_get_user_data},
+	{ "gtk_tree_selection_get_tree_view",  cast(void**)& gtk_tree_selection_get_tree_view},
+	{ "gtk_tree_selection_get_selected",  cast(void**)& gtk_tree_selection_get_selected},
+	{ "gtk_tree_selection_selected_foreach",  cast(void**)& gtk_tree_selection_selected_foreach},
+	{ "gtk_tree_selection_get_selected_rows",  cast(void**)& gtk_tree_selection_get_selected_rows},
+	{ "gtk_tree_selection_count_selected_rows",  cast(void**)& gtk_tree_selection_count_selected_rows},
+	{ "gtk_tree_selection_select_path",  cast(void**)& gtk_tree_selection_select_path},
+	{ "gtk_tree_selection_unselect_path",  cast(void**)& gtk_tree_selection_unselect_path},
+	{ "gtk_tree_selection_path_is_selected",  cast(void**)& gtk_tree_selection_path_is_selected},
+	{ "gtk_tree_selection_select_iter",  cast(void**)& gtk_tree_selection_select_iter},
+	{ "gtk_tree_selection_unselect_iter",  cast(void**)& gtk_tree_selection_unselect_iter},
+	{ "gtk_tree_selection_iter_is_selected",  cast(void**)& gtk_tree_selection_iter_is_selected},
+	{ "gtk_tree_selection_select_all",  cast(void**)& gtk_tree_selection_select_all},
+	{ "gtk_tree_selection_unselect_all",  cast(void**)& gtk_tree_selection_unselect_all},
+	{ "gtk_tree_selection_select_range",  cast(void**)& gtk_tree_selection_select_range},
+	{ "gtk_tree_selection_unselect_range",  cast(void**)& gtk_tree_selection_unselect_range},
+	{ "gtk_tree_view_column_new",  cast(void**)& gtk_tree_view_column_new},
+	{ "gtk_tree_view_column_new_with_attributes",  cast(void**)& gtk_tree_view_column_new_with_attributes},
+	{ "gtk_tree_view_column_pack_start",  cast(void**)& gtk_tree_view_column_pack_start},
+	{ "gtk_tree_view_column_pack_end",  cast(void**)& gtk_tree_view_column_pack_end},
+	{ "gtk_tree_view_column_clear",  cast(void**)& gtk_tree_view_column_clear},
+	{ "gtk_tree_view_column_get_cell_renderers",  cast(void**)& gtk_tree_view_column_get_cell_renderers},
+	{ "gtk_tree_view_column_add_attribute",  cast(void**)& gtk_tree_view_column_add_attribute},
+	{ "gtk_tree_view_column_set_attributes",  cast(void**)& gtk_tree_view_column_set_attributes},
+	{ "gtk_tree_view_column_set_cell_data_func",  cast(void**)& gtk_tree_view_column_set_cell_data_func},
+	{ "gtk_tree_view_column_clear_attributes",  cast(void**)& gtk_tree_view_column_clear_attributes},
+	{ "gtk_tree_view_column_set_spacing",  cast(void**)& gtk_tree_view_column_set_spacing},
+	{ "gtk_tree_view_column_get_spacing",  cast(void**)& gtk_tree_view_column_get_spacing},
+	{ "gtk_tree_view_column_set_visible",  cast(void**)& gtk_tree_view_column_set_visible},
+	{ "gtk_tree_view_column_get_visible",  cast(void**)& gtk_tree_view_column_get_visible},
+	{ "gtk_tree_view_column_set_resizable",  cast(void**)& gtk_tree_view_column_set_resizable},
+	{ "gtk_tree_view_column_get_resizable",  cast(void**)& gtk_tree_view_column_get_resizable},
+	{ "gtk_tree_view_column_set_sizing",  cast(void**)& gtk_tree_view_column_set_sizing},
+	{ "gtk_tree_view_column_get_sizing",  cast(void**)& gtk_tree_view_column_get_sizing},
+	{ "gtk_tree_view_column_get_width",  cast(void**)& gtk_tree_view_column_get_width},
+	{ "gtk_tree_view_column_get_fixed_width",  cast(void**)& gtk_tree_view_column_get_fixed_width},
+	{ "gtk_tree_view_column_set_fixed_width",  cast(void**)& gtk_tree_view_column_set_fixed_width},
+	{ "gtk_tree_view_column_set_min_width",  cast(void**)& gtk_tree_view_column_set_min_width},
+	{ "gtk_tree_view_column_get_min_width",  cast(void**)& gtk_tree_view_column_get_min_width},
+	{ "gtk_tree_view_column_set_max_width",  cast(void**)& gtk_tree_view_column_set_max_width},
+	{ "gtk_tree_view_column_get_max_width",  cast(void**)& gtk_tree_view_column_get_max_width},
+	{ "gtk_tree_view_column_clicked",  cast(void**)& gtk_tree_view_column_clicked},
+	{ "gtk_tree_view_column_set_title",  cast(void**)& gtk_tree_view_column_set_title},
+	{ "gtk_tree_view_column_get_title",  cast(void**)& gtk_tree_view_column_get_title},
+	{ "gtk_tree_view_column_set_expand",  cast(void**)& gtk_tree_view_column_set_expand},
+	{ "gtk_tree_view_column_get_expand",  cast(void**)& gtk_tree_view_column_get_expand},
+	{ "gtk_tree_view_column_set_clickable",  cast(void**)& gtk_tree_view_column_set_clickable},
+	{ "gtk_tree_view_column_get_clickable",  cast(void**)& gtk_tree_view_column_get_clickable},
+	{ "gtk_tree_view_column_set_widget",  cast(void**)& gtk_tree_view_column_set_widget},
+	{ "gtk_tree_view_column_get_widget",  cast(void**)& gtk_tree_view_column_get_widget},
+	{ "gtk_tree_view_column_set_alignment",  cast(void**)& gtk_tree_view_column_set_alignment},
+	{ "gtk_tree_view_column_get_alignment",  cast(void**)& gtk_tree_view_column_get_alignment},
+	{ "gtk_tree_view_column_set_reorderable",  cast(void**)& gtk_tree_view_column_set_reorderable},
+	{ "gtk_tree_view_column_get_reorderable",  cast(void**)& gtk_tree_view_column_get_reorderable},
+	{ "gtk_tree_view_column_set_sort_column_id",  cast(void**)& gtk_tree_view_column_set_sort_column_id},
+	{ "gtk_tree_view_column_get_sort_column_id",  cast(void**)& gtk_tree_view_column_get_sort_column_id},
+	{ "gtk_tree_view_column_set_sort_indicator",  cast(void**)& gtk_tree_view_column_set_sort_indicator},
+	{ "gtk_tree_view_column_get_sort_indicator",  cast(void**)& gtk_tree_view_column_get_sort_indicator},
+	{ "gtk_tree_view_column_set_sort_order",  cast(void**)& gtk_tree_view_column_set_sort_order},
+	{ "gtk_tree_view_column_get_sort_order",  cast(void**)& gtk_tree_view_column_get_sort_order},
+	{ "gtk_tree_view_column_cell_set_cell_data",  cast(void**)& gtk_tree_view_column_cell_set_cell_data},
+	{ "gtk_tree_view_column_cell_get_size",  cast(void**)& gtk_tree_view_column_cell_get_size},
+	{ "gtk_tree_view_column_cell_get_position",  cast(void**)& gtk_tree_view_column_cell_get_position},
+	{ "gtk_tree_view_column_cell_is_visible",  cast(void**)& gtk_tree_view_column_cell_is_visible},
+	{ "gtk_tree_view_column_focus_cell",  cast(void**)& gtk_tree_view_column_focus_cell},
+	{ "gtk_tree_view_column_queue_resize",  cast(void**)& gtk_tree_view_column_queue_resize},
+	{ "gtk_tree_view_column_get_tree_view",  cast(void**)& gtk_tree_view_column_get_tree_view},
+	{ "gtk_tree_view_new",  cast(void**)& gtk_tree_view_new},
+	{ "gtk_tree_view_get_level_indentation",  cast(void**)& gtk_tree_view_get_level_indentation},
+	{ "gtk_tree_view_get_show_expanders",  cast(void**)& gtk_tree_view_get_show_expanders},
+	{ "gtk_tree_view_set_level_indentation",  cast(void**)& gtk_tree_view_set_level_indentation},
+	{ "gtk_tree_view_set_show_expanders",  cast(void**)& gtk_tree_view_set_show_expanders},
+	{ "gtk_tree_view_new_with_model",  cast(void**)& gtk_tree_view_new_with_model},
+	{ "gtk_tree_view_get_model",  cast(void**)& gtk_tree_view_get_model},
+	{ "gtk_tree_view_set_model",  cast(void**)& gtk_tree_view_set_model},
+	{ "gtk_tree_view_get_selection",  cast(void**)& gtk_tree_view_get_selection},
+	{ "gtk_tree_view_get_hadjustment",  cast(void**)& gtk_tree_view_get_hadjustment},
+	{ "gtk_tree_view_set_hadjustment",  cast(void**)& gtk_tree_view_set_hadjustment},
+	{ "gtk_tree_view_get_vadjustment",  cast(void**)& gtk_tree_view_get_vadjustment},
+	{ "gtk_tree_view_set_vadjustment",  cast(void**)& gtk_tree_view_set_vadjustment},
+	{ "gtk_tree_view_get_headers_visible",  cast(void**)& gtk_tree_view_get_headers_visible},
+	{ "gtk_tree_view_set_headers_visible",  cast(void**)& gtk_tree_view_set_headers_visible},
+	{ "gtk_tree_view_columns_autosize",  cast(void**)& gtk_tree_view_columns_autosize},
+	{ "gtk_tree_view_get_headers_clickable",  cast(void**)& gtk_tree_view_get_headers_clickable},
+	{ "gtk_tree_view_set_headers_clickable",  cast(void**)& gtk_tree_view_set_headers_clickable},
+	{ "gtk_tree_view_set_rules_hint",  cast(void**)& gtk_tree_view_set_rules_hint},
+	{ "gtk_tree_view_get_rules_hint",  cast(void**)& gtk_tree_view_get_rules_hint},
+	{ "gtk_tree_view_append_column",  cast(void**)& gtk_tree_view_append_column},
+	{ "gtk_tree_view_remove_column",  cast(void**)& gtk_tree_view_remove_column},
+	{ "gtk_tree_view_insert_column",  cast(void**)& gtk_tree_view_insert_column},
+	{ "gtk_tree_view_insert_column_with_attributes",  cast(void**)& gtk_tree_view_insert_column_with_attributes},
+	{ "gtk_tree_view_insert_column_with_data_func",  cast(void**)& gtk_tree_view_insert_column_with_data_func},
+	{ "gtk_tree_view_get_column",  cast(void**)& gtk_tree_view_get_column},
+	{ "gtk_tree_view_get_columns",  cast(void**)& gtk_tree_view_get_columns},
+	{ "gtk_tree_view_move_column_after",  cast(void**)& gtk_tree_view_move_column_after},
+	{ "gtk_tree_view_set_expander_column",  cast(void**)& gtk_tree_view_set_expander_column},
+	{ "gtk_tree_view_get_expander_column",  cast(void**)& gtk_tree_view_get_expander_column},
+	{ "gtk_tree_view_set_column_drag_function",  cast(void**)& gtk_tree_view_set_column_drag_function},
+	{ "gtk_tree_view_scroll_to_point",  cast(void**)& gtk_tree_view_scroll_to_point},
+	{ "gtk_tree_view_scroll_to_cell",  cast(void**)& gtk_tree_view_scroll_to_cell},
+	{ "gtk_tree_view_set_cursor",  cast(void**)& gtk_tree_view_set_cursor},
+	{ "gtk_tree_view_set_cursor_on_cell",  cast(void**)& gtk_tree_view_set_cursor_on_cell},
+	{ "gtk_tree_view_get_cursor",  cast(void**)& gtk_tree_view_get_cursor},
+	{ "gtk_tree_view_row_activated",  cast(void**)& gtk_tree_view_row_activated},
+	{ "gtk_tree_view_expand_all",  cast(void**)& gtk_tree_view_expand_all},
+	{ "gtk_tree_view_collapse_all",  cast(void**)& gtk_tree_view_collapse_all},
+	{ "gtk_tree_view_expand_to_path",  cast(void**)& gtk_tree_view_expand_to_path},
+	{ "gtk_tree_view_expand_row",  cast(void**)& gtk_tree_view_expand_row},
+	{ "gtk_tree_view_collapse_row",  cast(void**)& gtk_tree_view_collapse_row},
+	{ "gtk_tree_view_map_expanded_rows",  cast(void**)& gtk_tree_view_map_expanded_rows},
+	{ "gtk_tree_view_row_expanded",  cast(void**)& gtk_tree_view_row_expanded},
+	{ "gtk_tree_view_set_reorderable",  cast(void**)& gtk_tree_view_set_reorderable},
+	{ "gtk_tree_view_get_reorderable",  cast(void**)& gtk_tree_view_get_reorderable},
+	{ "gtk_tree_view_get_path_at_pos",  cast(void**)& gtk_tree_view_get_path_at_pos},
+	{ "gtk_tree_view_get_cell_area",  cast(void**)& gtk_tree_view_get_cell_area},
+	{ "gtk_tree_view_get_background_area",  cast(void**)& gtk_tree_view_get_background_area},
+	{ "gtk_tree_view_get_visible_rect",  cast(void**)& gtk_tree_view_get_visible_rect},
+	{ "gtk_tree_view_get_visible_range",  cast(void**)& gtk_tree_view_get_visible_range},
+	{ "gtk_tree_view_get_bin_window",  cast(void**)& gtk_tree_view_get_bin_window},
+	{ "gtk_tree_view_widget_to_tree_coords",  cast(void**)& gtk_tree_view_widget_to_tree_coords},
+	{ "gtk_tree_view_tree_to_widget_coords",  cast(void**)& gtk_tree_view_tree_to_widget_coords},
+	{ "gtk_tree_view_convert_bin_window_to_tree_coords",  cast(void**)& gtk_tree_view_convert_bin_window_to_tree_coords},
+	{ "gtk_tree_view_convert_bin_window_to_widget_coords",  cast(void**)& gtk_tree_view_convert_bin_window_to_widget_coords},
+	{ "gtk_tree_view_convert_tree_to_bin_window_coords",  cast(void**)& gtk_tree_view_convert_tree_to_bin_window_coords},
+	{ "gtk_tree_view_convert_tree_to_widget_coords",  cast(void**)& gtk_tree_view_convert_tree_to_widget_coords},
+	{ "gtk_tree_view_convert_widget_to_bin_window_coords",  cast(void**)& gtk_tree_view_convert_widget_to_bin_window_coords},
+	{ "gtk_tree_view_convert_widget_to_tree_coords",  cast(void**)& gtk_tree_view_convert_widget_to_tree_coords},
+	{ "gtk_tree_view_enable_model_drag_dest",  cast(void**)& gtk_tree_view_enable_model_drag_dest},
+	{ "gtk_tree_view_enable_model_drag_source",  cast(void**)& gtk_tree_view_enable_model_drag_source},
+	{ "gtk_tree_view_unset_rows_drag_source",  cast(void**)& gtk_tree_view_unset_rows_drag_source},
+	{ "gtk_tree_view_unset_rows_drag_dest",  cast(void**)& gtk_tree_view_unset_rows_drag_dest},
+	{ "gtk_tree_view_set_drag_dest_row",  cast(void**)& gtk_tree_view_set_drag_dest_row},
+	{ "gtk_tree_view_get_drag_dest_row",  cast(void**)& gtk_tree_view_get_drag_dest_row},
+	{ "gtk_tree_view_get_dest_row_at_pos",  cast(void**)& gtk_tree_view_get_dest_row_at_pos},
+	{ "gtk_tree_view_create_row_drag_icon",  cast(void**)& gtk_tree_view_create_row_drag_icon},
+	{ "gtk_tree_view_set_enable_search",  cast(void**)& gtk_tree_view_set_enable_search},
+	{ "gtk_tree_view_get_enable_search",  cast(void**)& gtk_tree_view_get_enable_search},
+	{ "gtk_tree_view_get_search_column",  cast(void**)& gtk_tree_view_get_search_column},
+	{ "gtk_tree_view_set_search_column",  cast(void**)& gtk_tree_view_set_search_column},
+	{ "gtk_tree_view_get_search_equal_func",  cast(void**)& gtk_tree_view_get_search_equal_func},
+	{ "gtk_tree_view_set_search_equal_func",  cast(void**)& gtk_tree_view_set_search_equal_func},
+	{ "gtk_tree_view_get_search_entry",  cast(void**)& gtk_tree_view_get_search_entry},
+	{ "gtk_tree_view_set_search_entry",  cast(void**)& gtk_tree_view_set_search_entry},
+	{ "gtk_tree_view_get_search_position_func",  cast(void**)& gtk_tree_view_get_search_position_func},
+	{ "gtk_tree_view_set_search_position_func",  cast(void**)& gtk_tree_view_set_search_position_func},
+	{ "gtk_tree_view_get_fixed_height_mode",  cast(void**)& gtk_tree_view_get_fixed_height_mode},
+	{ "gtk_tree_view_set_fixed_height_mode",  cast(void**)& gtk_tree_view_set_fixed_height_mode},
+	{ "gtk_tree_view_get_hover_selection",  cast(void**)& gtk_tree_view_get_hover_selection},
+	{ "gtk_tree_view_set_hover_selection",  cast(void**)& gtk_tree_view_set_hover_selection},
+	{ "gtk_tree_view_get_hover_expand",  cast(void**)& gtk_tree_view_get_hover_expand},
+	{ "gtk_tree_view_set_hover_expand",  cast(void**)& gtk_tree_view_set_hover_expand},
+	{ "gtk_tree_view_set_destroy_count_func",  cast(void**)& gtk_tree_view_set_destroy_count_func},
+	{ "gtk_tree_view_get_row_separator_func",  cast(void**)& gtk_tree_view_get_row_separator_func},
+	{ "gtk_tree_view_set_row_separator_func",  cast(void**)& gtk_tree_view_set_row_separator_func},
+	{ "gtk_tree_view_get_rubber_banding",  cast(void**)& gtk_tree_view_get_rubber_banding},
+	{ "gtk_tree_view_set_rubber_banding",  cast(void**)& gtk_tree_view_set_rubber_banding},
+	{ "gtk_tree_view_is_rubber_banding_active",  cast(void**)& gtk_tree_view_is_rubber_banding_active},
+	{ "gtk_tree_view_get_enable_tree_lines",  cast(void**)& gtk_tree_view_get_enable_tree_lines},
+	{ "gtk_tree_view_set_enable_tree_lines",  cast(void**)& gtk_tree_view_set_enable_tree_lines},
+	{ "gtk_tree_view_get_grid_lines",  cast(void**)& gtk_tree_view_get_grid_lines},
+	{ "gtk_tree_view_set_grid_lines",  cast(void**)& gtk_tree_view_set_grid_lines},
+	{ "gtk_tree_view_set_tooltip_row",  cast(void**)& gtk_tree_view_set_tooltip_row},
+	{ "gtk_tree_view_set_tooltip_cell",  cast(void**)& gtk_tree_view_set_tooltip_cell},
+	{ "gtk_tree_view_get_tooltip_context",  cast(void**)& gtk_tree_view_get_tooltip_context},
+	{ "gtk_tree_view_get_tooltip_column",  cast(void**)& gtk_tree_view_get_tooltip_column},
+	{ "gtk_tree_view_set_tooltip_column",  cast(void**)& gtk_tree_view_set_tooltip_column},
+	{ "gtk_tree_drag_source_drag_data_delete",  cast(void**)& gtk_tree_drag_source_drag_data_delete},
+	{ "gtk_tree_drag_source_drag_data_get",  cast(void**)& gtk_tree_drag_source_drag_data_get},
+	{ "gtk_tree_drag_source_row_draggable",  cast(void**)& gtk_tree_drag_source_row_draggable},
+	{ "gtk_tree_drag_dest_drag_data_received",  cast(void**)& gtk_tree_drag_dest_drag_data_received},
+	{ "gtk_tree_drag_dest_row_drop_possible",  cast(void**)& gtk_tree_drag_dest_row_drop_possible},
+	{ "gtk_tree_set_row_drag_data",  cast(void**)& gtk_tree_set_row_drag_data},
+	{ "gtk_tree_get_row_drag_data",  cast(void**)& gtk_tree_get_row_drag_data},
+	{ "gtk_cell_view_new",  cast(void**)& gtk_cell_view_new},
+	{ "gtk_cell_view_new_with_text",  cast(void**)& gtk_cell_view_new_with_text},
+	{ "gtk_cell_view_new_with_markup",  cast(void**)& gtk_cell_view_new_with_markup},
+	{ "gtk_cell_view_new_with_pixbuf",  cast(void**)& gtk_cell_view_new_with_pixbuf},
+	{ "gtk_cell_view_set_model",  cast(void**)& gtk_cell_view_set_model},
+	{ "gtk_cell_view_set_displayed_row",  cast(void**)& gtk_cell_view_set_displayed_row},
+	{ "gtk_cell_view_get_displayed_row",  cast(void**)& gtk_cell_view_get_displayed_row},
+	{ "gtk_cell_view_get_size_of_row",  cast(void**)& gtk_cell_view_get_size_of_row},
+	{ "gtk_cell_view_set_background_color",  cast(void**)& gtk_cell_view_set_background_color},
+	{ "gtk_cell_view_get_cell_renderers",  cast(void**)& gtk_cell_view_get_cell_renderers},
+	{ "gtk_icon_view_new",  cast(void**)& gtk_icon_view_new},
+	{ "gtk_icon_view_new_with_model",  cast(void**)& gtk_icon_view_new_with_model},
+	{ "gtk_icon_view_set_model",  cast(void**)& gtk_icon_view_set_model},
+	{ "gtk_icon_view_get_model",  cast(void**)& gtk_icon_view_get_model},
+	{ "gtk_icon_view_set_text_column",  cast(void**)& gtk_icon_view_set_text_column},
+	{ "gtk_icon_view_get_text_column",  cast(void**)& gtk_icon_view_get_text_column},
+	{ "gtk_icon_view_set_markup_column",  cast(void**)& gtk_icon_view_set_markup_column},
+	{ "gtk_icon_view_get_markup_column",  cast(void**)& gtk_icon_view_get_markup_column},
+	{ "gtk_icon_view_set_pixbuf_column",  cast(void**)& gtk_icon_view_set_pixbuf_column},
+	{ "gtk_icon_view_get_pixbuf_column",  cast(void**)& gtk_icon_view_get_pixbuf_column},
+	{ "gtk_icon_view_get_path_at_pos",  cast(void**)& gtk_icon_view_get_path_at_pos},
+	{ "gtk_icon_view_get_item_at_pos",  cast(void**)& gtk_icon_view_get_item_at_pos},
+	{ "gtk_icon_view_convert_widget_to_bin_window_coords",  cast(void**)& gtk_icon_view_convert_widget_to_bin_window_coords},
+	{ "gtk_icon_view_set_cursor",  cast(void**)& gtk_icon_view_set_cursor},
+	{ "gtk_icon_view_get_cursor",  cast(void**)& gtk_icon_view_get_cursor},
+	{ "gtk_icon_view_selected_foreach",  cast(void**)& gtk_icon_view_selected_foreach},
+	{ "gtk_icon_view_set_selection_mode",  cast(void**)& gtk_icon_view_set_selection_mode},
+	{ "gtk_icon_view_get_selection_mode",  cast(void**)& gtk_icon_view_get_selection_mode},
+	{ "gtk_icon_view_set_orientation",  cast(void**)& gtk_icon_view_set_orientation},
+	{ "gtk_icon_view_get_orientation",  cast(void**)& gtk_icon_view_get_orientation},
+	{ "gtk_icon_view_set_columns",  cast(void**)& gtk_icon_view_set_columns},
+	{ "gtk_icon_view_get_columns",  cast(void**)& gtk_icon_view_get_columns},
+	{ "gtk_icon_view_set_item_width",  cast(void**)& gtk_icon_view_set_item_width},
+	{ "gtk_icon_view_get_item_width",  cast(void**)& gtk_icon_view_get_item_width},
+	{ "gtk_icon_view_set_spacing",  cast(void**)& gtk_icon_view_set_spacing},
+	{ "gtk_icon_view_get_spacing",  cast(void**)& gtk_icon_view_get_spacing},
+	{ "gtk_icon_view_set_row_spacing",  cast(void**)& gtk_icon_view_set_row_spacing},
+	{ "gtk_icon_view_get_row_spacing",  cast(void**)& gtk_icon_view_get_row_spacing},
+	{ "gtk_icon_view_set_column_spacing",  cast(void**)& gtk_icon_view_set_column_spacing},
+	{ "gtk_icon_view_get_column_spacing",  cast(void**)& gtk_icon_view_get_column_spacing},
+	{ "gtk_icon_view_set_margin",  cast(void**)& gtk_icon_view_set_margin},
+	{ "gtk_icon_view_get_margin",  cast(void**)& gtk_icon_view_get_margin},
+	{ "gtk_icon_view_select_path",  cast(void**)& gtk_icon_view_select_path},
+	{ "gtk_icon_view_unselect_path",  cast(void**)& gtk_icon_view_unselect_path},
+	{ "gtk_icon_view_path_is_selected",  cast(void**)& gtk_icon_view_path_is_selected},
+	{ "gtk_icon_view_get_selected_items",  cast(void**)& gtk_icon_view_get_selected_items},
+	{ "gtk_icon_view_select_all",  cast(void**)& gtk_icon_view_select_all},
+	{ "gtk_icon_view_unselect_all",  cast(void**)& gtk_icon_view_unselect_all},
+	{ "gtk_icon_view_item_activated",  cast(void**)& gtk_icon_view_item_activated},
+	{ "gtk_icon_view_scroll_to_path",  cast(void**)& gtk_icon_view_scroll_to_path},
+	{ "gtk_icon_view_get_visible_range",  cast(void**)& gtk_icon_view_get_visible_range},
+	{ "gtk_icon_view_set_tooltip_item",  cast(void**)& gtk_icon_view_set_tooltip_item},
+	{ "gtk_icon_view_set_tooltip_cell",  cast(void**)& gtk_icon_view_set_tooltip_cell},
+	{ "gtk_icon_view_get_tooltip_context",  cast(void**)& gtk_icon_view_get_tooltip_context},
+	{ "gtk_icon_view_set_tooltip_column",  cast(void**)& gtk_icon_view_set_tooltip_column},
+	{ "gtk_icon_view_get_tooltip_column",  cast(void**)& gtk_icon_view_get_tooltip_column},
+	{ "gtk_icon_view_enable_model_drag_source",  cast(void**)& gtk_icon_view_enable_model_drag_source},
+	{ "gtk_icon_view_enable_model_drag_dest",  cast(void**)& gtk_icon_view_enable_model_drag_dest},
+	{ "gtk_icon_view_unset_model_drag_source",  cast(void**)& gtk_icon_view_unset_model_drag_source},
+	{ "gtk_icon_view_unset_model_drag_dest",  cast(void**)& gtk_icon_view_unset_model_drag_dest},
+	{ "gtk_icon_view_set_reorderable",  cast(void**)& gtk_icon_view_set_reorderable},
+	{ "gtk_icon_view_get_reorderable",  cast(void**)& gtk_icon_view_get_reorderable},
+	{ "gtk_icon_view_set_drag_dest_item",  cast(void**)& gtk_icon_view_set_drag_dest_item},
+	{ "gtk_icon_view_get_drag_dest_item",  cast(void**)& gtk_icon_view_get_drag_dest_item},
+	{ "gtk_icon_view_get_dest_item_at_pos",  cast(void**)& gtk_icon_view_get_dest_item_at_pos},
+	{ "gtk_icon_view_create_drag_icon",  cast(void**)& gtk_icon_view_create_drag_icon},
+	{ "gtk_tree_sortable_sort_column_changed",  cast(void**)& gtk_tree_sortable_sort_column_changed},
+	{ "gtk_tree_sortable_get_sort_column_id",  cast(void**)& gtk_tree_sortable_get_sort_column_id},
+	{ "gtk_tree_sortable_set_sort_column_id",  cast(void**)& gtk_tree_sortable_set_sort_column_id},
+	{ "gtk_tree_sortable_set_sort_func",  cast(void**)& gtk_tree_sortable_set_sort_func},
+	{ "gtk_tree_sortable_set_default_sort_func",  cast(void**)& gtk_tree_sortable_set_default_sort_func},
+	{ "gtk_tree_sortable_has_default_sort_func",  cast(void**)& gtk_tree_sortable_has_default_sort_func},
+	{ "gtk_tree_model_sort_new_with_model",  cast(void**)& gtk_tree_model_sort_new_with_model},
+	{ "gtk_tree_model_sort_get_model",  cast(void**)& gtk_tree_model_sort_get_model},
+	{ "gtk_tree_model_sort_convert_child_path_to_path",  cast(void**)& gtk_tree_model_sort_convert_child_path_to_path},
+	{ "gtk_tree_model_sort_convert_child_iter_to_iter",  cast(void**)& gtk_tree_model_sort_convert_child_iter_to_iter},
+	{ "gtk_tree_model_sort_convert_path_to_child_path",  cast(void**)& gtk_tree_model_sort_convert_path_to_child_path},
+	{ "gtk_tree_model_sort_convert_iter_to_child_iter",  cast(void**)& gtk_tree_model_sort_convert_iter_to_child_iter},
+	{ "gtk_tree_model_sort_reset_default_sort_func",  cast(void**)& gtk_tree_model_sort_reset_default_sort_func},
+	{ "gtk_tree_model_sort_clear_cache",  cast(void**)& gtk_tree_model_sort_clear_cache},
+	{ "gtk_tree_model_sort_iter_is_valid",  cast(void**)& gtk_tree_model_sort_iter_is_valid},
+	{ "gtk_tree_model_filter_new",  cast(void**)& gtk_tree_model_filter_new},
+	{ "gtk_tree_model_filter_set_visible_func",  cast(void**)& gtk_tree_model_filter_set_visible_func},
+	{ "gtk_tree_model_filter_set_modify_func",  cast(void**)& gtk_tree_model_filter_set_modify_func},
+	{ "gtk_tree_model_filter_set_visible_column",  cast(void**)& gtk_tree_model_filter_set_visible_column},
+	{ "gtk_tree_model_filter_get_model",  cast(void**)& gtk_tree_model_filter_get_model},
+	{ "gtk_tree_model_filter_convert_child_iter_to_iter",  cast(void**)& gtk_tree_model_filter_convert_child_iter_to_iter},
+	{ "gtk_tree_model_filter_convert_iter_to_child_iter",  cast(void**)& gtk_tree_model_filter_convert_iter_to_child_iter},
+	{ "gtk_tree_model_filter_convert_child_path_to_path",  cast(void**)& gtk_tree_model_filter_convert_child_path_to_path},
+	{ "gtk_tree_model_filter_convert_path_to_child_path",  cast(void**)& gtk_tree_model_filter_convert_path_to_child_path},
+	{ "gtk_tree_model_filter_refilter",  cast(void**)& gtk_tree_model_filter_refilter},
+	{ "gtk_tree_model_filter_clear_cache",  cast(void**)& gtk_tree_model_filter_clear_cache},
+	{ "gtk_cell_layout_pack_start",  cast(void**)& gtk_cell_layout_pack_start},
+	{ "gtk_cell_layout_pack_end",  cast(void**)& gtk_cell_layout_pack_end},
+	{ "gtk_cell_layout_get_cells",  cast(void**)& gtk_cell_layout_get_cells},
+	{ "gtk_cell_layout_reorder",  cast(void**)& gtk_cell_layout_reorder},
+	{ "gtk_cell_layout_clear",  cast(void**)& gtk_cell_layout_clear},
+	{ "gtk_cell_layout_set_attributes",  cast(void**)& gtk_cell_layout_set_attributes},
+	{ "gtk_cell_layout_add_attribute",  cast(void**)& gtk_cell_layout_add_attribute},
+	{ "gtk_cell_layout_set_cell_data_func",  cast(void**)& gtk_cell_layout_set_cell_data_func},
+	{ "gtk_cell_layout_clear_attributes",  cast(void**)& gtk_cell_layout_clear_attributes},
+	{ "gtk_cell_renderer_get_size",  cast(void**)& gtk_cell_renderer_get_size},
+	{ "gtk_cell_renderer_render",  cast(void**)& gtk_cell_renderer_render},
+	{ "gtk_cell_renderer_activate",  cast(void**)& gtk_cell_renderer_activate},
+	{ "gtk_cell_renderer_start_editing",  cast(void**)& gtk_cell_renderer_start_editing},
+	{ "gtk_cell_renderer_editing_canceled",  cast(void**)& gtk_cell_renderer_editing_canceled},
+	{ "gtk_cell_renderer_stop_editing",  cast(void**)& gtk_cell_renderer_stop_editing},
+	{ "gtk_cell_renderer_get_fixed_size",  cast(void**)& gtk_cell_renderer_get_fixed_size},
+	{ "gtk_cell_renderer_set_fixed_size",  cast(void**)& gtk_cell_renderer_set_fixed_size},
+	{ "gtk_cell_editable_start_editing",  cast(void**)& gtk_cell_editable_start_editing},
+	{ "gtk_cell_editable_editing_done",  cast(void**)& gtk_cell_editable_editing_done},
+	{ "gtk_cell_editable_remove_widget",  cast(void**)& gtk_cell_editable_remove_widget},
+	{ "gtk_cell_renderer_accel_new",  cast(void**)& gtk_cell_renderer_accel_new},
+	{ "gtk_cell_renderer_combo_new",  cast(void**)& gtk_cell_renderer_combo_new},
+	{ "gtk_cell_renderer_pixbuf_new",  cast(void**)& gtk_cell_renderer_pixbuf_new},
+	{ "gtk_cell_renderer_progress_new",  cast(void**)& gtk_cell_renderer_progress_new},
+	{ "gtk_cell_renderer_spin_new",  cast(void**)& gtk_cell_renderer_spin_new},
+	{ "gtk_cell_renderer_text_new",  cast(void**)& gtk_cell_renderer_text_new},
+	{ "gtk_cell_renderer_text_set_fixed_height_from_font",  cast(void**)& gtk_cell_renderer_text_set_fixed_height_from_font},
+	{ "gtk_cell_renderer_toggle_new",  cast(void**)& gtk_cell_renderer_toggle_new},
+	{ "gtk_cell_renderer_toggle_get_radio",  cast(void**)& gtk_cell_renderer_toggle_get_radio},
+	{ "gtk_cell_renderer_toggle_set_radio",  cast(void**)& gtk_cell_renderer_toggle_set_radio},
+	{ "gtk_cell_renderer_toggle_get_active",  cast(void**)& gtk_cell_renderer_toggle_get_active},
+	{ "gtk_cell_renderer_toggle_set_active",  cast(void**)& gtk_cell_renderer_toggle_set_active},
+	{ "gtk_list_store_new",  cast(void**)& gtk_list_store_new},
+	{ "gtk_list_store_newv",  cast(void**)& gtk_list_store_newv},
+	{ "gtk_list_store_set_column_types",  cast(void**)& gtk_list_store_set_column_types},
+	{ "gtk_list_store_set",  cast(void**)& gtk_list_store_set},
+	{ "gtk_list_store_set_valist",  cast(void**)& gtk_list_store_set_valist},
+	{ "gtk_list_store_set_value",  cast(void**)& gtk_list_store_set_value},
+	{ "gtk_list_store_set_valuesv",  cast(void**)& gtk_list_store_set_valuesv},
+	{ "gtk_list_store_remove",  cast(void**)& gtk_list_store_remove},
+	{ "gtk_list_store_insert",  cast(void**)& gtk_list_store_insert},
+	{ "gtk_list_store_insert_before",  cast(void**)& gtk_list_store_insert_before},
+	{ "gtk_list_store_insert_after",  cast(void**)& gtk_list_store_insert_after},
+	{ "gtk_list_store_insert_with_values",  cast(void**)& gtk_list_store_insert_with_values},
+	{ "gtk_list_store_insert_with_valuesv",  cast(void**)& gtk_list_store_insert_with_valuesv},
+	{ "gtk_list_store_prepend",  cast(void**)& gtk_list_store_prepend},
+	{ "gtk_list_store_append",  cast(void**)& gtk_list_store_append},
+	{ "gtk_list_store_clear",  cast(void**)& gtk_list_store_clear},
+	{ "gtk_list_store_iter_is_valid",  cast(void**)& gtk_list_store_iter_is_valid},
+	{ "gtk_list_store_reorder",  cast(void**)& gtk_list_store_reorder},
+	{ "gtk_list_store_swap",  cast(void**)& gtk_list_store_swap},
+	{ "gtk_list_store_move_before",  cast(void**)& gtk_list_store_move_before},
+	{ "gtk_list_store_move_after",  cast(void**)& gtk_list_store_move_after},
+	{ "gtk_tree_store_new",  cast(void**)& gtk_tree_store_new},
+	{ "gtk_tree_store_newv",  cast(void**)& gtk_tree_store_newv},
+	{ "gtk_tree_store_set_column_types",  cast(void**)& gtk_tree_store_set_column_types},
+	{ "gtk_tree_store_set_value",  cast(void**)& gtk_tree_store_set_value},
+	{ "gtk_tree_store_set",  cast(void**)& gtk_tree_store_set},
+	{ "gtk_tree_store_set_valist",  cast(void**)& gtk_tree_store_set_valist},
+	{ "gtk_tree_store_set_valuesv",  cast(void**)& gtk_tree_store_set_valuesv},
+	{ "gtk_tree_store_remove",  cast(void**)& gtk_tree_store_remove},
+	{ "gtk_tree_store_insert",  cast(void**)& gtk_tree_store_insert},
+	{ "gtk_tree_store_insert_before",  cast(void**)& gtk_tree_store_insert_before},
+	{ "gtk_tree_store_insert_after",  cast(void**)& gtk_tree_store_insert_after},
+	{ "gtk_tree_store_insert_with_values",  cast(void**)& gtk_tree_store_insert_with_values},
+	{ "gtk_tree_store_insert_with_valuesv",  cast(void**)& gtk_tree_store_insert_with_valuesv},
+	{ "gtk_tree_store_prepend",  cast(void**)& gtk_tree_store_prepend},
+	{ "gtk_tree_store_append",  cast(void**)& gtk_tree_store_append},
+	{ "gtk_tree_store_is_ancestor",  cast(void**)& gtk_tree_store_is_ancestor},
+	{ "gtk_tree_store_iter_depth",  cast(void**)& gtk_tree_store_iter_depth},
+	{ "gtk_tree_store_clear",  cast(void**)& gtk_tree_store_clear},
+	{ "gtk_tree_store_iter_is_valid",  cast(void**)& gtk_tree_store_iter_is_valid},
+	{ "gtk_tree_store_reorder",  cast(void**)& gtk_tree_store_reorder},
+	{ "gtk_tree_store_swap",  cast(void**)& gtk_tree_store_swap},
+	{ "gtk_tree_store_move_before",  cast(void**)& gtk_tree_store_move_before},
+	{ "gtk_tree_store_move_after",  cast(void**)& gtk_tree_store_move_after},
+	{ "gtk_combo_box_new",  cast(void**)& gtk_combo_box_new},
+	{ "gtk_combo_box_new_with_model",  cast(void**)& gtk_combo_box_new_with_model},
+	{ "gtk_combo_box_get_wrap_width",  cast(void**)& gtk_combo_box_get_wrap_width},
+	{ "gtk_combo_box_set_wrap_width",  cast(void**)& gtk_combo_box_set_wrap_width},
+	{ "gtk_combo_box_get_row_span_column",  cast(void**)& gtk_combo_box_get_row_span_column},
+	{ "gtk_combo_box_set_row_span_column",  cast(void**)& gtk_combo_box_set_row_span_column},
+	{ "gtk_combo_box_get_column_span_column",  cast(void**)& gtk_combo_box_get_column_span_column},
+	{ "gtk_combo_box_set_column_span_column",  cast(void**)& gtk_combo_box_set_column_span_column},
+	{ "gtk_combo_box_get_active",  cast(void**)& gtk_combo_box_get_active},
+	{ "gtk_combo_box_set_active",  cast(void**)& gtk_combo_box_set_active},
+	{ "gtk_combo_box_get_active_iter",  cast(void**)& gtk_combo_box_get_active_iter},
+	{ "gtk_combo_box_set_active_iter",  cast(void**)& gtk_combo_box_set_active_iter},
+	{ "gtk_combo_box_get_model",  cast(void**)& gtk_combo_box_get_model},
+	{ "gtk_combo_box_set_model",  cast(void**)& gtk_combo_box_set_model},
+	{ "gtk_combo_box_new_text",  cast(void**)& gtk_combo_box_new_text},
+	{ "gtk_combo_box_append_text",  cast(void**)& gtk_combo_box_append_text},
+	{ "gtk_combo_box_insert_text",  cast(void**)& gtk_combo_box_insert_text},
+	{ "gtk_combo_box_prepend_text",  cast(void**)& gtk_combo_box_prepend_text},
+	{ "gtk_combo_box_remove_text",  cast(void**)& gtk_combo_box_remove_text},
+	{ "gtk_combo_box_get_active_text",  cast(void**)& gtk_combo_box_get_active_text},
+	{ "gtk_combo_box_popup",  cast(void**)& gtk_combo_box_popup},
+	{ "gtk_combo_box_popdown",  cast(void**)& gtk_combo_box_popdown},
+	{ "gtk_combo_box_get_popup_accessible",  cast(void**)& gtk_combo_box_get_popup_accessible},
+	{ "gtk_combo_box_get_row_separator_func",  cast(void**)& gtk_combo_box_get_row_separator_func},
+	{ "gtk_combo_box_set_row_separator_func",  cast(void**)& gtk_combo_box_set_row_separator_func},
+	{ "gtk_combo_box_set_add_tearoffs",  cast(void**)& gtk_combo_box_set_add_tearoffs},
+	{ "gtk_combo_box_get_add_tearoffs",  cast(void**)& gtk_combo_box_get_add_tearoffs},
+	{ "gtk_combo_box_set_title",  cast(void**)& gtk_combo_box_set_title},
+	{ "gtk_combo_box_get_title",  cast(void**)& gtk_combo_box_get_title},
+	{ "gtk_combo_box_set_focus_on_click",  cast(void**)& gtk_combo_box_set_focus_on_click},
+	{ "gtk_combo_box_get_focus_on_click",  cast(void**)& gtk_combo_box_get_focus_on_click},
+	{ "gtk_combo_box_entry_new",  cast(void**)& gtk_combo_box_entry_new},
+	{ "gtk_combo_box_entry_new_with_model",  cast(void**)& gtk_combo_box_entry_new_with_model},
+	{ "gtk_combo_box_entry_new_text",  cast(void**)& gtk_combo_box_entry_new_text},
+	{ "gtk_combo_box_entry_set_text_column",  cast(void**)& gtk_combo_box_entry_set_text_column},
+	{ "gtk_combo_box_entry_get_text_column",  cast(void**)& gtk_combo_box_entry_get_text_column},
+	{ "gtk_menu_new",  cast(void**)& gtk_menu_new},
+	{ "gtk_menu_set_screen",  cast(void**)& gtk_menu_set_screen},
+	{ "gtk_menu_reorder_child",  cast(void**)& gtk_menu_reorder_child},
+	{ "gtk_menu_attach",  cast(void**)& gtk_menu_attach},
+	{ "gtk_menu_popup",  cast(void**)& gtk_menu_popup},
+	{ "gtk_menu_set_accel_group",  cast(void**)& gtk_menu_set_accel_group},
+	{ "gtk_menu_get_accel_group",  cast(void**)& gtk_menu_get_accel_group},
+	{ "gtk_menu_set_accel_path",  cast(void**)& gtk_menu_set_accel_path},
+	{ "gtk_menu_set_title",  cast(void**)& gtk_menu_set_title},
+	{ "gtk_menu_get_tearoff_state",  cast(void**)& gtk_menu_get_tearoff_state},
+	{ "gtk_menu_get_title",  cast(void**)& gtk_menu_get_title},
+	{ "gtk_menu_popdown",  cast(void**)& gtk_menu_popdown},
+	{ "gtk_menu_reposition",  cast(void**)& gtk_menu_reposition},
+	{ "gtk_menu_get_active",  cast(void**)& gtk_menu_get_active},
+	{ "gtk_menu_set_active",  cast(void**)& gtk_menu_set_active},
+	{ "gtk_menu_set_tearoff_state",  cast(void**)& gtk_menu_set_tearoff_state},
+	{ "gtk_menu_attach_to_widget",  cast(void**)& gtk_menu_attach_to_widget},
+	{ "gtk_menu_detach",  cast(void**)& gtk_menu_detach},
+	{ "gtk_menu_get_attach_widget",  cast(void**)& gtk_menu_get_attach_widget},
+	{ "gtk_menu_get_for_attach_widget",  cast(void**)& gtk_menu_get_for_attach_widget},
+	{ "gtk_menu_set_monitor",  cast(void**)& gtk_menu_set_monitor},
+	{ "gtk_menu_bar_new",  cast(void**)& gtk_menu_bar_new},
+	{ "gtk_menu_bar_set_pack_direction",  cast(void**)& gtk_menu_bar_set_pack_direction},
+	{ "gtk_menu_bar_get_pack_direction",  cast(void**)& gtk_menu_bar_get_pack_direction},
+	{ "gtk_menu_bar_set_child_pack_direction",  cast(void**)& gtk_menu_bar_set_child_pack_direction},
+	{ "gtk_menu_bar_get_child_pack_direction",  cast(void**)& gtk_menu_bar_get_child_pack_direction},
+	{ "gtk_menu_item_new",  cast(void**)& gtk_menu_item_new},
+	{ "gtk_menu_item_new_with_label",  cast(void**)& gtk_menu_item_new_with_label},
+	{ "gtk_menu_item_new_with_mnemonic",  cast(void**)& gtk_menu_item_new_with_mnemonic},
+	{ "gtk_menu_item_set_right_justified",  cast(void**)& gtk_menu_item_set_right_justified},
+	{ "gtk_menu_item_set_submenu",  cast(void**)& gtk_menu_item_set_submenu},
+	{ "gtk_menu_item_set_accel_path",  cast(void**)& gtk_menu_item_set_accel_path},
+	{ "gtk_menu_item_remove_submenu",  cast(void**)& gtk_menu_item_remove_submenu},
+	{ "gtk_menu_item_select",  cast(void**)& gtk_menu_item_select},
+	{ "gtk_menu_item_deselect",  cast(void**)& gtk_menu_item_deselect},
+	{ "gtk_menu_item_activate",  cast(void**)& gtk_menu_item_activate},
+	{ "gtk_menu_item_toggle_size_request",  cast(void**)& gtk_menu_item_toggle_size_request},
+	{ "gtk_menu_item_toggle_size_allocate",  cast(void**)& gtk_menu_item_toggle_size_allocate},
+	{ "gtk_menu_item_get_right_justified",  cast(void**)& gtk_menu_item_get_right_justified},
+	{ "gtk_menu_item_get_submenu",  cast(void**)& gtk_menu_item_get_submenu},
+	{ "gtk_image_menu_item_set_image",  cast(void**)& gtk_image_menu_item_set_image},
+	{ "gtk_image_menu_item_get_image",  cast(void**)& gtk_image_menu_item_get_image},
+	{ "gtk_image_menu_item_new",  cast(void**)& gtk_image_menu_item_new},
+	{ "gtk_image_menu_item_new_from_stock",  cast(void**)& gtk_image_menu_item_new_from_stock},
+	{ "gtk_image_menu_item_new_with_label",  cast(void**)& gtk_image_menu_item_new_with_label},
+	{ "gtk_image_menu_item_new_with_mnemonic",  cast(void**)& gtk_image_menu_item_new_with_mnemonic},
+	{ "gtk_radio_menu_item_new",  cast(void**)& gtk_radio_menu_item_new},
+	{ "gtk_radio_menu_item_new_with_label",  cast(void**)& gtk_radio_menu_item_new_with_label},
+	{ "gtk_radio_menu_item_new_with_mnemonic",  cast(void**)& gtk_radio_menu_item_new_with_mnemonic},
+	{ "gtk_radio_menu_item_new_from_widget",  cast(void**)& gtk_radio_menu_item_new_from_widget},
+	{ "gtk_radio_menu_item_new_with_label_from_widget",  cast(void**)& gtk_radio_menu_item_new_with_label_from_widget},
+	{ "gtk_radio_menu_item_new_with_mnemonic_from_widget",  cast(void**)& gtk_radio_menu_item_new_with_mnemonic_from_widget},
+	{ "gtk_radio_menu_item_set_group",  cast(void**)& gtk_radio_menu_item_set_group},
+	{ "gtk_radio_menu_item_get_group",  cast(void**)& gtk_radio_menu_item_get_group},
+	{ "gtk_check_menu_item_new",  cast(void**)& gtk_check_menu_item_new},
+	{ "gtk_check_menu_item_new_with_label",  cast(void**)& gtk_check_menu_item_new_with_label},
+	{ "gtk_check_menu_item_new_with_mnemonic",  cast(void**)& gtk_check_menu_item_new_with_mnemonic},
+	{ "gtk_check_menu_item_get_active",  cast(void**)& gtk_check_menu_item_get_active},
+	{ "gtk_check_menu_item_set_active",  cast(void**)& gtk_check_menu_item_set_active},
+	{ "gtk_check_menu_item_set_show_toggle",  cast(void**)& gtk_check_menu_item_set_show_toggle},
+	{ "gtk_check_menu_item_toggled",  cast(void**)& gtk_check_menu_item_toggled},
+	{ "gtk_check_menu_item_get_inconsistent",  cast(void**)& gtk_check_menu_item_get_inconsistent},
+	{ "gtk_check_menu_item_set_inconsistent",  cast(void**)& gtk_check_menu_item_set_inconsistent},
+	{ "gtk_check_menu_item_set_draw_as_radio",  cast(void**)& gtk_check_menu_item_set_draw_as_radio},
+	{ "gtk_check_menu_item_get_draw_as_radio",  cast(void**)& gtk_check_menu_item_get_draw_as_radio},
+	{ "gtk_separator_menu_item_new",  cast(void**)& gtk_separator_menu_item_new},
+	{ "gtk_tearoff_menu_item_new",  cast(void**)& gtk_tearoff_menu_item_new},
+	{ "gtk_toolbar_new",  cast(void**)& gtk_toolbar_new},
+	{ "gtk_toolbar_insert",  cast(void**)& gtk_toolbar_insert},
+	{ "gtk_toolbar_get_item_index",  cast(void**)& gtk_toolbar_get_item_index},
+	{ "gtk_toolbar_get_n_items",  cast(void**)& gtk_toolbar_get_n_items},
+	{ "gtk_toolbar_get_nth_item",  cast(void**)& gtk_toolbar_get_nth_item},
+	{ "gtk_toolbar_get_drop_index",  cast(void**)& gtk_toolbar_get_drop_index},
+	{ "gtk_toolbar_set_drop_highlight_item",  cast(void**)& gtk_toolbar_set_drop_highlight_item},
+	{ "gtk_toolbar_set_show_arrow",  cast(void**)& gtk_toolbar_set_show_arrow},
+	{ "gtk_toolbar_set_orientation",  cast(void**)& gtk_toolbar_set_orientation},
+	{ "gtk_toolbar_set_tooltips",  cast(void**)& gtk_toolbar_set_tooltips},
+	{ "gtk_toolbar_unset_icon_size",  cast(void**)& gtk_toolbar_unset_icon_size},
+	{ "gtk_toolbar_get_show_arrow",  cast(void**)& gtk_toolbar_get_show_arrow},
+	{ "gtk_toolbar_get_orientation",  cast(void**)& gtk_toolbar_get_orientation},
+	{ "gtk_toolbar_get_style",  cast(void**)& gtk_toolbar_get_style},
+	{ "gtk_toolbar_get_icon_size",  cast(void**)& gtk_toolbar_get_icon_size},
+	{ "gtk_toolbar_get_tooltips",  cast(void**)& gtk_toolbar_get_tooltips},
+	{ "gtk_toolbar_get_relief_style",  cast(void**)& gtk_toolbar_get_relief_style},
+	{ "gtk_toolbar_append_item",  cast(void**)& gtk_toolbar_append_item},
+	{ "gtk_toolbar_prepend_item",  cast(void**)& gtk_toolbar_prepend_item},
+	{ "gtk_toolbar_insert_item",  cast(void**)& gtk_toolbar_insert_item},
+	{ "gtk_toolbar_append_space",  cast(void**)& gtk_toolbar_append_space},
+	{ "gtk_toolbar_prepend_space",  cast(void**)& gtk_toolbar_prepend_space},
+	{ "gtk_toolbar_insert_space",  cast(void**)& gtk_toolbar_insert_space},
+	{ "gtk_toolbar_append_element",  cast(void**)& gtk_toolbar_append_element},
+	{ "gtk_toolbar_prepend_element",  cast(void**)& gtk_toolbar_prepend_element},
+	{ "gtk_toolbar_insert_element",  cast(void**)& gtk_toolbar_insert_element},
+	{ "gtk_toolbar_append_widget",  cast(void**)& gtk_toolbar_append_widget},
+	{ "gtk_toolbar_prepend_widget",  cast(void**)& gtk_toolbar_prepend_widget},
+	{ "gtk_toolbar_insert_widget",  cast(void**)& gtk_toolbar_insert_widget},
+	{ "gtk_toolbar_set_style",  cast(void**)& gtk_toolbar_set_style},
+	{ "gtk_toolbar_insert_stock",  cast(void**)& gtk_toolbar_insert_stock},
+	{ "gtk_toolbar_set_icon_size",  cast(void**)& gtk_toolbar_set_icon_size},
+	{ "gtk_toolbar_remove_space",  cast(void**)& gtk_toolbar_remove_space},
+	{ "gtk_toolbar_unset_style",  cast(void**)& gtk_toolbar_unset_style},
+	{ "gtk_tool_item_new",  cast(void**)& gtk_tool_item_new},
+	{ "gtk_tool_item_set_homogeneous",  cast(void**)& gtk_tool_item_set_homogeneous},
+	{ "gtk_tool_item_get_homogeneous",  cast(void**)& gtk_tool_item_get_homogeneous},
+	{ "gtk_tool_item_set_expand",  cast(void**)& gtk_tool_item_set_expand},
+	{ "gtk_tool_item_get_expand",  cast(void**)& gtk_tool_item_get_expand},
+	{ "gtk_tool_item_set_tooltip",  cast(void**)& gtk_tool_item_set_tooltip},
+	{ "gtk_tool_item_set_tooltip_text",  cast(void**)& gtk_tool_item_set_tooltip_text},
+	{ "gtk_tool_item_set_tooltip_markup",  cast(void**)& gtk_tool_item_set_tooltip_markup},
+	{ "gtk_tool_item_set_use_drag_window",  cast(void**)& gtk_tool_item_set_use_drag_window},
+	{ "gtk_tool_item_get_use_drag_window",  cast(void**)& gtk_tool_item_get_use_drag_window},
+	{ "gtk_tool_item_set_visible_horizontal",  cast(void**)& gtk_tool_item_set_visible_horizontal},
+	{ "gtk_tool_item_get_visible_horizontal",  cast(void**)& gtk_tool_item_get_visible_horizontal},
+	{ "gtk_tool_item_set_visible_vertical",  cast(void**)& gtk_tool_item_set_visible_vertical},
+	{ "gtk_tool_item_get_visible_vertical",  cast(void**)& gtk_tool_item_get_visible_vertical},
+	{ "gtk_tool_item_set_is_important",  cast(void**)& gtk_tool_item_set_is_important},
+	{ "gtk_tool_item_get_is_important",  cast(void**)& gtk_tool_item_get_is_important},
+	{ "gtk_tool_item_get_icon_size",  cast(void**)& gtk_tool_item_get_icon_size},
+	{ "gtk_tool_item_get_orientation",  cast(void**)& gtk_tool_item_get_orientation},
+	{ "gtk_tool_item_get_toolbar_style",  cast(void**)& gtk_tool_item_get_toolbar_style},
+	{ "gtk_tool_item_get_relief_style",  cast(void**)& gtk_tool_item_get_relief_style},
+	{ "gtk_tool_item_retrieve_proxy_menu_item",  cast(void**)& gtk_tool_item_retrieve_proxy_menu_item},
+	{ "gtk_tool_item_get_proxy_menu_item",  cast(void**)& gtk_tool_item_get_proxy_menu_item},
+	{ "gtk_tool_item_set_proxy_menu_item",  cast(void**)& gtk_tool_item_set_proxy_menu_item},
+	{ "gtk_tool_item_rebuild_menu",  cast(void**)& gtk_tool_item_rebuild_menu},
+	{ "gtk_separator_tool_item_new",  cast(void**)& gtk_separator_tool_item_new},
+	{ "gtk_separator_tool_item_set_draw",  cast(void**)& gtk_separator_tool_item_set_draw},
+	{ "gtk_separator_tool_item_get_draw",  cast(void**)& gtk_separator_tool_item_get_draw},
+	{ "gtk_tool_button_new",  cast(void**)& gtk_tool_button_new},
+	{ "gtk_tool_button_new_from_stock",  cast(void**)& gtk_tool_button_new_from_stock},
+	{ "gtk_tool_button_set_label",  cast(void**)& gtk_tool_button_set_label},
+	{ "gtk_tool_button_get_label",  cast(void**)& gtk_tool_button_get_label},
+	{ "gtk_tool_button_set_use_underline",  cast(void**)& gtk_tool_button_set_use_underline},
+	{ "gtk_tool_button_get_use_underline",  cast(void**)& gtk_tool_button_get_use_underline},
+	{ "gtk_tool_button_set_stock_id",  cast(void**)& gtk_tool_button_set_stock_id},
+	{ "gtk_tool_button_get_stock_id",  cast(void**)& gtk_tool_button_get_stock_id},
+	{ "gtk_tool_button_set_icon_name",  cast(void**)& gtk_tool_button_set_icon_name},
+	{ "gtk_tool_button_get_icon_name",  cast(void**)& gtk_tool_button_get_icon_name},
+	{ "gtk_tool_button_set_icon_widget",  cast(void**)& gtk_tool_button_set_icon_widget},
+	{ "gtk_tool_button_get_icon_widget",  cast(void**)& gtk_tool_button_get_icon_widget},
+	{ "gtk_tool_button_set_label_widget",  cast(void**)& gtk_tool_button_set_label_widget},
+	{ "gtk_tool_button_get_label_widget",  cast(void**)& gtk_tool_button_get_label_widget},
+	{ "gtk_menu_tool_button_new",  cast(void**)& gtk_menu_tool_button_new},
+	{ "gtk_menu_tool_button_new_from_stock",  cast(void**)& gtk_menu_tool_button_new_from_stock},
+	{ "gtk_menu_tool_button_set_menu",  cast(void**)& gtk_menu_tool_button_set_menu},
+	{ "gtk_menu_tool_button_get_menu",  cast(void**)& gtk_menu_tool_button_get_menu},
+	{ "gtk_menu_tool_button_set_arrow_tooltip",  cast(void**)& gtk_menu_tool_button_set_arrow_tooltip},
+	{ "gtk_menu_tool_button_set_arrow_tooltip_text",  cast(void**)& gtk_menu_tool_button_set_arrow_tooltip_text},
+	{ "gtk_menu_tool_button_set_arrow_tooltip_markup",  cast(void**)& gtk_menu_tool_button_set_arrow_tooltip_markup},
+	{ "gtk_toggle_tool_button_new",  cast(void**)& gtk_toggle_tool_button_new},
+	{ "gtk_toggle_tool_button_new_from_stock",  cast(void**)& gtk_toggle_tool_button_new_from_stock},
+	{ "gtk_toggle_tool_button_set_active",  cast(void**)& gtk_toggle_tool_button_set_active},
+	{ "gtk_toggle_tool_button_get_active",  cast(void**)& gtk_toggle_tool_button_get_active},
+	{ "gtk_radio_tool_button_new",  cast(void**)& gtk_radio_tool_button_new},
+	{ "gtk_radio_tool_button_new_from_stock",  cast(void**)& gtk_radio_tool_button_new_from_stock},
+	{ "gtk_radio_tool_button_new_from_widget",  cast(void**)& gtk_radio_tool_button_new_from_widget},
+	{ "gtk_radio_tool_button_new_with_stock_from_widget",  cast(void**)& gtk_radio_tool_button_new_with_stock_from_widget},
+	{ "gtk_radio_tool_button_get_group",  cast(void**)& gtk_radio_tool_button_get_group},
+	{ "gtk_radio_tool_button_set_group",  cast(void**)& gtk_radio_tool_button_set_group},
+	{ "gtk_ui_manager_new",  cast(void**)& gtk_ui_manager_new},
+	{ "gtk_ui_manager_set_add_tearoffs",  cast(void**)& gtk_ui_manager_set_add_tearoffs},
+	{ "gtk_ui_manager_get_add_tearoffs",  cast(void**)& gtk_ui_manager_get_add_tearoffs},
+	{ "gtk_ui_manager_insert_action_group",  cast(void**)& gtk_ui_manager_insert_action_group},
+	{ "gtk_ui_manager_remove_action_group",  cast(void**)& gtk_ui_manager_remove_action_group},
+	{ "gtk_ui_manager_get_action_groups",  cast(void**)& gtk_ui_manager_get_action_groups},
+	{ "gtk_ui_manager_get_accel_group",  cast(void**)& gtk_ui_manager_get_accel_group},
+	{ "gtk_ui_manager_get_widget",  cast(void**)& gtk_ui_manager_get_widget},
+	{ "gtk_ui_manager_get_toplevels",  cast(void**)& gtk_ui_manager_get_toplevels},
+	{ "gtk_ui_manager_get_action",  cast(void**)& gtk_ui_manager_get_action},
+	{ "gtk_ui_manager_add_ui_from_string",  cast(void**)& gtk_ui_manager_add_ui_from_string},
+	{ "gtk_ui_manager_add_ui_from_file",  cast(void**)& gtk_ui_manager_add_ui_from_file},
+	{ "gtk_ui_manager_new_merge_id",  cast(void**)& gtk_ui_manager_new_merge_id},
+	{ "gtk_ui_manager_add_ui",  cast(void**)& gtk_ui_manager_add_ui},
+	{ "gtk_ui_manager_remove_ui",  cast(void**)& gtk_ui_manager_remove_ui},
+	{ "gtk_ui_manager_get_ui",  cast(void**)& gtk_ui_manager_get_ui},
+	{ "gtk_ui_manager_ensure_update",  cast(void**)& gtk_ui_manager_ensure_update},
+	{ "gtk_action_group_new",  cast(void**)& gtk_action_group_new},
+	{ "gtk_action_group_get_name",  cast(void**)& gtk_action_group_get_name},
+	{ "gtk_action_group_get_sensitive",  cast(void**)& gtk_action_group_get_sensitive},
+	{ "gtk_action_group_set_sensitive",  cast(void**)& gtk_action_group_set_sensitive},
+	{ "gtk_action_group_get_visible",  cast(void**)& gtk_action_group_get_visible},
+	{ "gtk_action_group_set_visible",  cast(void**)& gtk_action_group_set_visible},
+	{ "gtk_action_group_get_action",  cast(void**)& gtk_action_group_get_action},
+	{ "gtk_action_group_list_actions",  cast(void**)& gtk_action_group_list_actions},
+	{ "gtk_action_group_add_action",  cast(void**)& gtk_action_group_add_action},
+	{ "gtk_action_group_add_action_with_accel",  cast(void**)& gtk_action_group_add_action_with_accel},
+	{ "gtk_action_group_remove_action",  cast(void**)& gtk_action_group_remove_action},
+	{ "gtk_action_group_add_actions",  cast(void**)& gtk_action_group_add_actions},
+	{ "gtk_action_group_add_actions_full",  cast(void**)& gtk_action_group_add_actions_full},
+	{ "gtk_action_group_add_toggle_actions",  cast(void**)& gtk_action_group_add_toggle_actions},
+	{ "gtk_action_group_add_toggle_actions_full",  cast(void**)& gtk_action_group_add_toggle_actions_full},
+	{ "gtk_action_group_add_radio_actions",  cast(void**)& gtk_action_group_add_radio_actions},
+	{ "gtk_action_group_add_radio_actions_full",  cast(void**)& gtk_action_group_add_radio_actions_full},
+	{ "gtk_action_group_set_translate_func",  cast(void**)& gtk_action_group_set_translate_func},
+	{ "gtk_action_group_set_translation_domain",  cast(void**)& gtk_action_group_set_translation_domain},
+	{ "gtk_action_group_translate_string",  cast(void**)& gtk_action_group_translate_string},
+	{ "gtk_action_new",  cast(void**)& gtk_action_new},
+	{ "gtk_action_get_name",  cast(void**)& gtk_action_get_name},
+	{ "gtk_action_is_sensitive",  cast(void**)& gtk_action_is_sensitive},
+	{ "gtk_action_get_sensitive",  cast(void**)& gtk_action_get_sensitive},
+	{ "gtk_action_set_sensitive",  cast(void**)& gtk_action_set_sensitive},
+	{ "gtk_action_is_visible",  cast(void**)& gtk_action_is_visible},
+	{ "gtk_action_get_visible",  cast(void**)& gtk_action_get_visible},
+	{ "gtk_action_set_visible",  cast(void**)& gtk_action_set_visible},
+	{ "gtk_action_activate",  cast(void**)& gtk_action_activate},
+	{ "gtk_action_create_icon",  cast(void**)& gtk_action_create_icon},
+	{ "gtk_action_create_menu_item",  cast(void**)& gtk_action_create_menu_item},
+	{ "gtk_action_create_tool_item",  cast(void**)& gtk_action_create_tool_item},
+	{ "gtk_action_create_menu",  cast(void**)& gtk_action_create_menu},
+	{ "gtk_action_connect_proxy",  cast(void**)& gtk_action_connect_proxy},
+	{ "gtk_action_disconnect_proxy",  cast(void**)& gtk_action_disconnect_proxy},
+	{ "gtk_action_get_proxies",  cast(void**)& gtk_action_get_proxies},
+	{ "gtk_action_connect_accelerator",  cast(void**)& gtk_action_connect_accelerator},
+	{ "gtk_action_disconnect_accelerator",  cast(void**)& gtk_action_disconnect_accelerator},
+	{ "gtk_action_block_activate_from",  cast(void**)& gtk_action_block_activate_from},
+	{ "gtk_action_unblock_activate_from",  cast(void**)& gtk_action_unblock_activate_from},
+	{ "gtk_action_get_accel_path",  cast(void**)& gtk_action_get_accel_path},
+	{ "gtk_action_set_accel_path",  cast(void**)& gtk_action_set_accel_path},
+	{ "gtk_action_get_accel_closure",  cast(void**)& gtk_action_get_accel_closure},
+	{ "gtk_action_set_accel_group",  cast(void**)& gtk_action_set_accel_group},
+	{ "gtk_toggle_action_new",  cast(void**)& gtk_toggle_action_new},
+	{ "gtk_toggle_action_toggled",  cast(void**)& gtk_toggle_action_toggled},
+	{ "gtk_toggle_action_set_active",  cast(void**)& gtk_toggle_action_set_active},
+	{ "gtk_toggle_action_get_active",  cast(void**)& gtk_toggle_action_get_active},
+	{ "gtk_toggle_action_set_draw_as_radio",  cast(void**)& gtk_toggle_action_set_draw_as_radio},
+	{ "gtk_toggle_action_get_draw_as_radio",  cast(void**)& gtk_toggle_action_get_draw_as_radio},
+	{ "gtk_radio_action_new",  cast(void**)& gtk_radio_action_new},
+	{ "gtk_radio_action_get_group",  cast(void**)& gtk_radio_action_get_group},
+	{ "gtk_radio_action_set_group",  cast(void**)& gtk_radio_action_set_group},
+	{ "gtk_radio_action_get_current_value",  cast(void**)& gtk_radio_action_get_current_value},
+	{ "gtk_radio_action_set_current_value",  cast(void**)& gtk_radio_action_set_current_value},
+	{ "gtk_recent_action_new",  cast(void**)& gtk_recent_action_new},
+	{ "gtk_recent_action_new_for_manager",  cast(void**)& gtk_recent_action_new_for_manager},
+	{ "gtk_recent_action_get_show_numbers",  cast(void**)& gtk_recent_action_get_show_numbers},
+	{ "gtk_recent_action_set_show_numbers",  cast(void**)& gtk_recent_action_set_show_numbers},
+	{ "gtk_color_button_new",  cast(void**)& gtk_color_button_new},
+	{ "gtk_color_button_new_with_color",  cast(void**)& gtk_color_button_new_with_color},
+	{ "gtk_color_button_set_color",  cast(void**)& gtk_color_button_set_color},
+	{ "gtk_color_button_get_color",  cast(void**)& gtk_color_button_get_color},
+	{ "gtk_color_button_set_alpha",  cast(void**)& gtk_color_button_set_alpha},
+	{ "gtk_color_button_get_alpha",  cast(void**)& gtk_color_button_get_alpha},
+	{ "gtk_color_button_set_use_alpha",  cast(void**)& gtk_color_button_set_use_alpha},
+	{ "gtk_color_button_get_use_alpha",  cast(void**)& gtk_color_button_get_use_alpha},
+	{ "gtk_color_button_set_title",  cast(void**)& gtk_color_button_set_title},
+	{ "gtk_color_button_get_title",  cast(void**)& gtk_color_button_get_title},
+	{ "gtk_color_selection_new",  cast(void**)& gtk_color_selection_new},
+	{ "gtk_color_selection_set_update_policy",  cast(void**)& gtk_color_selection_set_update_policy},
+	{ "gtk_color_selection_set_has_opacity_control",  cast(void**)& gtk_color_selection_set_has_opacity_control},
+	{ "gtk_color_selection_get_has_opacity_control",  cast(void**)& gtk_color_selection_get_has_opacity_control},
+	{ "gtk_color_selection_set_has_palette",  cast(void**)& gtk_color_selection_set_has_palette},
+	{ "gtk_color_selection_get_has_palette",  cast(void**)& gtk_color_selection_get_has_palette},
+	{ "gtk_color_selection_get_current_alpha",  cast(void**)& gtk_color_selection_get_current_alpha},
+	{ "gtk_color_selection_set_current_alpha",  cast(void**)& gtk_color_selection_set_current_alpha},
+	{ "gtk_color_selection_get_current_color",  cast(void**)& gtk_color_selection_get_current_color},
+	{ "gtk_color_selection_set_current_color",  cast(void**)& gtk_color_selection_set_current_color},
+	{ "gtk_color_selection_get_previous_alpha",  cast(void**)& gtk_color_selection_get_previous_alpha},
+	{ "gtk_color_selection_set_previous_alpha",  cast(void**)& gtk_color_selection_set_previous_alpha},
+	{ "gtk_color_selection_get_previous_color",  cast(void**)& gtk_color_selection_get_previous_color},
+	{ "gtk_color_selection_set_previous_color",  cast(void**)& gtk_color_selection_set_previous_color},
+	{ "gtk_color_selection_is_adjusting",  cast(void**)& gtk_color_selection_is_adjusting},
+	{ "gtk_color_selection_palette_from_string",  cast(void**)& gtk_color_selection_palette_from_string},
+	{ "gtk_color_selection_palette_to_string",  cast(void**)& gtk_color_selection_palette_to_string},
+	{ "gtk_color_selection_set_change_palette_hook",  cast(void**)& gtk_color_selection_set_change_palette_hook},
+	{ "gtk_color_selection_set_change_palette_with_screen_hook",  cast(void**)& gtk_color_selection_set_change_palette_with_screen_hook},
+	{ "gtk_color_selection_set_color",  cast(void**)& gtk_color_selection_set_color},
+	{ "gtk_color_selection_get_color",  cast(void**)& gtk_color_selection_get_color},
+	{ "gtk_color_selection_dialog_new",  cast(void**)& gtk_color_selection_dialog_new},
+	{ "gtk_file_chooser_set_action",  cast(void**)& gtk_file_chooser_set_action},
+	{ "gtk_file_chooser_get_action",  cast(void**)& gtk_file_chooser_get_action},
+	{ "gtk_file_chooser_set_local_only",  cast(void**)& gtk_file_chooser_set_local_only},
+	{ "gtk_file_chooser_get_local_only",  cast(void**)& gtk_file_chooser_get_local_only},
+	{ "gtk_file_chooser_set_select_multiple",  cast(void**)& gtk_file_chooser_set_select_multiple},
+	{ "gtk_file_chooser_get_select_multiple",  cast(void**)& gtk_file_chooser_get_select_multiple},
+	{ "gtk_file_chooser_set_show_hidden",  cast(void**)& gtk_file_chooser_set_show_hidden},
+	{ "gtk_file_chooser_get_show_hidden",  cast(void**)& gtk_file_chooser_get_show_hidden},
+	{ "gtk_file_chooser_set_do_overwrite_confirmation",  cast(void**)& gtk_file_chooser_set_do_overwrite_confirmation},
+	{ "gtk_file_chooser_get_do_overwrite_confirmation",  cast(void**)& gtk_file_chooser_get_do_overwrite_confirmation},
+	{ "gtk_file_chooser_set_current_name",  cast(void**)& gtk_file_chooser_set_current_name},
+	{ "gtk_file_chooser_get_filename",  cast(void**)& gtk_file_chooser_get_filename},
+	{ "gtk_file_chooser_set_filename",  cast(void**)& gtk_file_chooser_set_filename},
+	{ "gtk_file_chooser_select_filename",  cast(void**)& gtk_file_chooser_select_filename},
+	{ "gtk_file_chooser_unselect_filename",  cast(void**)& gtk_file_chooser_unselect_filename},
+	{ "gtk_file_chooser_select_all",  cast(void**)& gtk_file_chooser_select_all},
+	{ "gtk_file_chooser_unselect_all",  cast(void**)& gtk_file_chooser_unselect_all},
+	{ "gtk_file_chooser_get_filenames",  cast(void**)& gtk_file_chooser_get_filenames},
+	{ "gtk_file_chooser_set_current_folder",  cast(void**)& gtk_file_chooser_set_current_folder},
+	{ "gtk_file_chooser_get_current_folder",  cast(void**)& gtk_file_chooser_get_current_folder},
+	{ "gtk_file_chooser_get_uri",  cast(void**)& gtk_file_chooser_get_uri},
+	{ "gtk_file_chooser_set_uri",  cast(void**)& gtk_file_chooser_set_uri},
+	{ "gtk_file_chooser_select_uri",  cast(void**)& gtk_file_chooser_select_uri},
+	{ "gtk_file_chooser_unselect_uri",  cast(void**)& gtk_file_chooser_unselect_uri},
+	{ "gtk_file_chooser_get_uris",  cast(void**)& gtk_file_chooser_get_uris},
+	{ "gtk_file_chooser_set_current_folder_uri",  cast(void**)& gtk_file_chooser_set_current_folder_uri},
+	{ "gtk_file_chooser_get_current_folder_uri",  cast(void**)& gtk_file_chooser_get_current_folder_uri},
+	{ "gtk_file_chooser_set_preview_widget",  cast(void**)& gtk_file_chooser_set_preview_widget},
+	{ "gtk_file_chooser_get_preview_widget",  cast(void**)& gtk_file_chooser_get_preview_widget},
+	{ "gtk_file_chooser_set_preview_widget_active",  cast(void**)& gtk_file_chooser_set_preview_widget_active},
+	{ "gtk_file_chooser_get_preview_widget_active",  cast(void**)& gtk_file_chooser_get_preview_widget_active},
+	{ "gtk_file_chooser_set_use_preview_label",  cast(void**)& gtk_file_chooser_set_use_preview_label},
+	{ "gtk_file_chooser_get_use_preview_label",  cast(void**)& gtk_file_chooser_get_use_preview_label},
+	{ "gtk_file_chooser_get_preview_filename",  cast(void**)& gtk_file_chooser_get_preview_filename},
+	{ "gtk_file_chooser_get_preview_uri",  cast(void**)& gtk_file_chooser_get_preview_uri},
+	{ "gtk_file_chooser_set_extra_widget",  cast(void**)& gtk_file_chooser_set_extra_widget},
+	{ "gtk_file_chooser_get_extra_widget",  cast(void**)& gtk_file_chooser_get_extra_widget},
+	{ "gtk_file_chooser_add_filter",  cast(void**)& gtk_file_chooser_add_filter},
+	{ "gtk_file_chooser_remove_filter",  cast(void**)& gtk_file_chooser_remove_filter},
+	{ "gtk_file_chooser_list_filters",  cast(void**)& gtk_file_chooser_list_filters},
+	{ "gtk_file_chooser_set_filter",  cast(void**)& gtk_file_chooser_set_filter},
+	{ "gtk_file_chooser_get_filter",  cast(void**)& gtk_file_chooser_get_filter},
+	{ "gtk_file_chooser_add_shortcut_folder",  cast(void**)& gtk_file_chooser_add_shortcut_folder},
+	{ "gtk_file_chooser_remove_shortcut_folder",  cast(void**)& gtk_file_chooser_remove_shortcut_folder},
+	{ "gtk_file_chooser_list_shortcut_folders",  cast(void**)& gtk_file_chooser_list_shortcut_folders},
+	{ "gtk_file_chooser_add_shortcut_folder_uri",  cast(void**)& gtk_file_chooser_add_shortcut_folder_uri},
+	{ "gtk_file_chooser_remove_shortcut_folder_uri",  cast(void**)& gtk_file_chooser_remove_shortcut_folder_uri},
+	{ "gtk_file_chooser_list_shortcut_folder_uris",  cast(void**)& gtk_file_chooser_list_shortcut_folder_uris},
+	{ "gtk_file_chooser_button_new",  cast(void**)& gtk_file_chooser_button_new},
+	{ "gtk_file_chooser_button_new_with_backend",  cast(void**)& gtk_file_chooser_button_new_with_backend},
+	{ "gtk_file_chooser_button_new_with_dialog",  cast(void**)& gtk_file_chooser_button_new_with_dialog},
+	{ "gtk_file_chooser_button_get_title",  cast(void**)& gtk_file_chooser_button_get_title},
+	{ "gtk_file_chooser_button_set_title",  cast(void**)& gtk_file_chooser_button_set_title},
+	{ "gtk_file_chooser_button_get_width_chars",  cast(void**)& gtk_file_chooser_button_get_width_chars},
+	{ "gtk_file_chooser_button_set_width_chars",  cast(void**)& gtk_file_chooser_button_set_width_chars},
+	{ "gtk_file_chooser_button_get_focus_on_click",  cast(void**)& gtk_file_chooser_button_get_focus_on_click},
+	{ "gtk_file_chooser_button_set_focus_on_click",  cast(void**)& gtk_file_chooser_button_set_focus_on_click},
+	{ "gtk_file_chooser_dialog_new",  cast(void**)& gtk_file_chooser_dialog_new},
+	{ "gtk_file_chooser_dialog_new_with_backend",  cast(void**)& gtk_file_chooser_dialog_new_with_backend},
+	{ "gtk_file_chooser_widget_new",  cast(void**)& gtk_file_chooser_widget_new},
+	{ "gtk_file_chooser_widget_new_with_backend",  cast(void**)& gtk_file_chooser_widget_new_with_backend},
+	{ "gtk_file_filter_new",  cast(void**)& gtk_file_filter_new},
+	{ "gtk_file_filter_set_name",  cast(void**)& gtk_file_filter_set_name},
+	{ "gtk_file_filter_get_name",  cast(void**)& gtk_file_filter_get_name},
+	{ "gtk_file_filter_add_mime_type",  cast(void**)& gtk_file_filter_add_mime_type},
+	{ "gtk_file_filter_add_pattern",  cast(void**)& gtk_file_filter_add_pattern},
+	{ "gtk_file_filter_add_pixbuf_formats",  cast(void**)& gtk_file_filter_add_pixbuf_formats},
+	{ "gtk_file_filter_add_custom",  cast(void**)& gtk_file_filter_add_custom},
+	{ "gtk_file_filter_get_needed",  cast(void**)& gtk_file_filter_get_needed},
+	{ "gtk_file_filter_filter",  cast(void**)& gtk_file_filter_filter},
+	{ "gtk_font_button_new",  cast(void**)& gtk_font_button_new},
+	{ "gtk_font_button_new_with_font",  cast(void**)& gtk_font_button_new_with_font},
+	{ "gtk_font_button_set_font_name",  cast(void**)& gtk_font_button_set_font_name},
+	{ "gtk_font_button_get_font_name",  cast(void**)& gtk_font_button_get_font_name},
+	{ "gtk_font_button_set_show_style",  cast(void**)& gtk_font_button_set_show_style},
+	{ "gtk_font_button_get_show_style",  cast(void**)& gtk_font_button_get_show_style},
+	{ "gtk_font_button_set_show_size",  cast(void**)& gtk_font_button_set_show_size},
+	{ "gtk_font_button_get_show_size",  cast(void**)& gtk_font_button_get_show_size},
+	{ "gtk_font_button_set_use_font",  cast(void**)& gtk_font_button_set_use_font},
+	{ "gtk_font_button_get_use_font",  cast(void**)& gtk_font_button_get_use_font},
+	{ "gtk_font_button_set_use_size",  cast(void**)& gtk_font_button_set_use_size},
+	{ "gtk_font_button_get_use_size",  cast(void**)& gtk_font_button_get_use_size},
+	{ "gtk_font_button_set_title",  cast(void**)& gtk_font_button_set_title},
+	{ "gtk_font_button_get_title",  cast(void**)& gtk_font_button_get_title},
+	{ "gtk_font_selection_new",  cast(void**)& gtk_font_selection_new},
+	{ "gtk_font_selection_get_font",  cast(void**)& gtk_font_selection_get_font},
+	{ "gtk_font_selection_get_font_name",  cast(void**)& gtk_font_selection_get_font_name},
+	{ "gtk_font_selection_set_font_name",  cast(void**)& gtk_font_selection_set_font_name},
+	{ "gtk_font_selection_get_preview_text",  cast(void**)& gtk_font_selection_get_preview_text},
+	{ "gtk_font_selection_set_preview_text",  cast(void**)& gtk_font_selection_set_preview_text},
+	{ "gtk_font_selection_dialog_new",  cast(void**)& gtk_font_selection_dialog_new},
+	{ "gtk_font_selection_dialog_get_font",  cast(void**)& gtk_font_selection_dialog_get_font},
+	{ "gtk_font_selection_dialog_get_font_name",  cast(void**)& gtk_font_selection_dialog_get_font_name},
+	{ "gtk_font_selection_dialog_set_font_name",  cast(void**)& gtk_font_selection_dialog_set_font_name},
+	{ "gtk_font_selection_dialog_get_preview_text",  cast(void**)& gtk_font_selection_dialog_get_preview_text},
+	{ "gtk_font_selection_dialog_set_preview_text",  cast(void**)& gtk_font_selection_dialog_set_preview_text},
+	{ "gtk_input_dialog_new",  cast(void**)& gtk_input_dialog_new},
+	{ "gtk_alignment_new",  cast(void**)& gtk_alignment_new},
+	{ "gtk_alignment_set",  cast(void**)& gtk_alignment_set},
+	{ "gtk_alignment_get_padding",  cast(void**)& gtk_alignment_get_padding},
+	{ "gtk_alignment_set_padding",  cast(void**)& gtk_alignment_set_padding},
+	{ "gtk_aspect_frame_new",  cast(void**)& gtk_aspect_frame_new},
+	{ "gtk_aspect_frame_set",  cast(void**)& gtk_aspect_frame_set},
+	{ "gtk_hbox_new",  cast(void**)& gtk_hbox_new},
+	{ "gtk_vbox_new",  cast(void**)& gtk_vbox_new},
+	{ "gtk_hbutton_box_new",  cast(void**)& gtk_hbutton_box_new},
+	{ "gtk_hbutton_box_get_spacing_default",  cast(void**)& gtk_hbutton_box_get_spacing_default},
+	{ "gtk_hbutton_box_get_layout_default",  cast(void**)& gtk_hbutton_box_get_layout_default},
+	{ "gtk_hbutton_box_set_spacing_default",  cast(void**)& gtk_hbutton_box_set_spacing_default},
+	{ "gtk_hbutton_box_set_layout_default",  cast(void**)& gtk_hbutton_box_set_layout_default},
+	{ "gtk_vbutton_box_new",  cast(void**)& gtk_vbutton_box_new},
+	{ "gtk_vbutton_box_get_spacing_default",  cast(void**)& gtk_vbutton_box_get_spacing_default},
+	{ "gtk_vbutton_box_set_spacing_default",  cast(void**)& gtk_vbutton_box_set_spacing_default},
+	{ "gtk_vbutton_box_get_layout_default",  cast(void**)& gtk_vbutton_box_get_layout_default},
+	{ "gtk_vbutton_box_set_layout_default",  cast(void**)& gtk_vbutton_box_set_layout_default},
+	{ "gtk_fixed_new",  cast(void**)& gtk_fixed_new},
+	{ "gtk_fixed_put",  cast(void**)& gtk_fixed_put},
+	{ "gtk_fixed_move",  cast(void**)& gtk_fixed_move},
+	{ "gtk_fixed_get_has_window",  cast(void**)& gtk_fixed_get_has_window},
+	{ "gtk_fixed_set_has_window",  cast(void**)& gtk_fixed_set_has_window},
+	{ "gtk_hpaned_new",  cast(void**)& gtk_hpaned_new},
+	{ "gtk_vpaned_new",  cast(void**)& gtk_vpaned_new},
+	{ "gtk_layout_new",  cast(void**)& gtk_layout_new},
+	{ "gtk_layout_put",  cast(void**)& gtk_layout_put},
+	{ "gtk_layout_move",  cast(void**)& gtk_layout_move},
+	{ "gtk_layout_set_size",  cast(void**)& gtk_layout_set_size},
+	{ "gtk_layout_get_size",  cast(void**)& gtk_layout_get_size},
+	{ "gtk_layout_freeze",  cast(void**)& gtk_layout_freeze},
+	{ "gtk_layout_thaw",  cast(void**)& gtk_layout_thaw},
+	{ "gtk_layout_get_hadjustment",  cast(void**)& gtk_layout_get_hadjustment},
+	{ "gtk_layout_get_vadjustment",  cast(void**)& gtk_layout_get_vadjustment},
+	{ "gtk_layout_set_hadjustment",  cast(void**)& gtk_layout_set_hadjustment},
+	{ "gtk_layout_set_vadjustment",  cast(void**)& gtk_layout_set_vadjustment},
+	{ "gtk_notebook_new",  cast(void**)& gtk_notebook_new},
+	{ "gtk_notebook_append_page",  cast(void**)& gtk_notebook_append_page},
+	{ "gtk_notebook_append_page_menu",  cast(void**)& gtk_notebook_append_page_menu},
+	{ "gtk_notebook_prepend_page",  cast(void**)& gtk_notebook_prepend_page},
+	{ "gtk_notebook_prepend_page_menu",  cast(void**)& gtk_notebook_prepend_page_menu},
+	{ "gtk_notebook_insert_page",  cast(void**)& gtk_notebook_insert_page},
+	{ "gtk_notebook_insert_page_menu",  cast(void**)& gtk_notebook_insert_page_menu},
+	{ "gtk_notebook_remove_page",  cast(void**)& gtk_notebook_remove_page},
+	{ "gtk_notebook_page_num",  cast(void**)& gtk_notebook_page_num},
+	{ "gtk_notebook_next_page",  cast(void**)& gtk_notebook_next_page},
+	{ "gtk_notebook_prev_page",  cast(void**)& gtk_notebook_prev_page},
+	{ "gtk_notebook_reorder_child",  cast(void**)& gtk_notebook_reorder_child},
+	{ "gtk_notebook_set_tab_pos",  cast(void**)& gtk_notebook_set_tab_pos},
+	{ "gtk_notebook_set_show_tabs",  cast(void**)& gtk_notebook_set_show_tabs},
+	{ "gtk_notebook_set_show_border",  cast(void**)& gtk_notebook_set_show_border},
+	{ "gtk_notebook_set_scrollable",  cast(void**)& gtk_notebook_set_scrollable},
+	{ "gtk_notebook_set_tab_border",  cast(void**)& gtk_notebook_set_tab_border},
+	{ "gtk_notebook_popup_enable",  cast(void**)& gtk_notebook_popup_enable},
+	{ "gtk_notebook_popup_disable",  cast(void**)& gtk_notebook_popup_disable},
+	{ "gtk_notebook_get_current_page",  cast(void**)& gtk_notebook_get_current_page},
+	{ "gtk_notebook_get_menu_label",  cast(void**)& gtk_notebook_get_menu_label},
+	{ "gtk_notebook_get_nth_page",  cast(void**)& gtk_notebook_get_nth_page},
+	{ "gtk_notebook_get_n_pages",  cast(void**)& gtk_notebook_get_n_pages},
+	{ "gtk_notebook_get_tab_label",  cast(void**)& gtk_notebook_get_tab_label},
+	{ "gtk_notebook_query_tab_label_packing",  cast(void**)& gtk_notebook_query_tab_label_packing},
+	{ "gtk_notebook_set_homogeneous_tabs",  cast(void**)& gtk_notebook_set_homogeneous_tabs},
+	{ "gtk_notebook_set_menu_label",  cast(void**)& gtk_notebook_set_menu_label},
+	{ "gtk_notebook_set_menu_label_text",  cast(void**)& gtk_notebook_set_menu_label_text},
+	{ "gtk_notebook_set_tab_hborder",  cast(void**)& gtk_notebook_set_tab_hborder},
+	{ "gtk_notebook_set_tab_label",  cast(void**)& gtk_notebook_set_tab_label},
+	{ "gtk_notebook_set_tab_label_packing",  cast(void**)& gtk_notebook_set_tab_label_packing},
+	{ "gtk_notebook_set_tab_label_text",  cast(void**)& gtk_notebook_set_tab_label_text},
+	{ "gtk_notebook_set_tab_vborder",  cast(void**)& gtk_notebook_set_tab_vborder},
+	{ "gtk_notebook_set_tab_reorderable",  cast(void**)& gtk_notebook_set_tab_reorderable},
+	{ "gtk_notebook_set_tab_detachable",  cast(void**)& gtk_notebook_set_tab_detachable},
+	{ "gtk_notebook_get_menu_label_text",  cast(void**)& gtk_notebook_get_menu_label_text},
+	{ "gtk_notebook_get_scrollable",  cast(void**)& gtk_notebook_get_scrollable},
+	{ "gtk_notebook_get_show_border",  cast(void**)& gtk_notebook_get_show_border},
+	{ "gtk_notebook_get_show_tabs",  cast(void**)& gtk_notebook_get_show_tabs},
+	{ "gtk_notebook_get_tab_label_text",  cast(void**)& gtk_notebook_get_tab_label_text},
+	{ "gtk_notebook_get_tab_pos",  cast(void**)& gtk_notebook_get_tab_pos},
+	{ "gtk_notebook_get_tab_reorderable",  cast(void**)& gtk_notebook_get_tab_reorderable},
+	{ "gtk_notebook_get_tab_detachable",  cast(void**)& gtk_notebook_get_tab_detachable},
+	{ "gtk_notebook_set_current_page",  cast(void**)& gtk_notebook_set_current_page},
+	{ "gtk_notebook_set_group_id",  cast(void**)& gtk_notebook_set_group_id},
+	{ "gtk_notebook_get_group_id",  cast(void**)& gtk_notebook_get_group_id},
+	{ "gtk_notebook_set_group",  cast(void**)& gtk_notebook_set_group},
+	{ "gtk_notebook_get_group",  cast(void**)& gtk_notebook_get_group},
+	{ "gtk_notebook_set_window_creation_hook",  cast(void**)& gtk_notebook_set_window_creation_hook},
+	{ "gtk_table_new",  cast(void**)& gtk_table_new},
+	{ "gtk_table_resize",  cast(void**)& gtk_table_resize},
+	{ "gtk_table_attach",  cast(void**)& gtk_table_attach},
+	{ "gtk_table_attach_defaults",  cast(void**)& gtk_table_attach_defaults},
+	{ "gtk_table_set_row_spacing",  cast(void**)& gtk_table_set_row_spacing},
+	{ "gtk_table_set_col_spacing",  cast(void**)& gtk_table_set_col_spacing},
+	{ "gtk_table_set_row_spacings",  cast(void**)& gtk_table_set_row_spacings},
+	{ "gtk_table_set_col_spacings",  cast(void**)& gtk_table_set_col_spacings},
+	{ "gtk_table_set_homogeneous",  cast(void**)& gtk_table_set_homogeneous},
+	{ "gtk_table_get_default_row_spacing",  cast(void**)& gtk_table_get_default_row_spacing},
+	{ "gtk_table_get_homogeneous",  cast(void**)& gtk_table_get_homogeneous},
+	{ "gtk_table_get_row_spacing",  cast(void**)& gtk_table_get_row_spacing},
+	{ "gtk_table_get_col_spacing",  cast(void**)& gtk_table_get_col_spacing},
+	{ "gtk_table_get_default_col_spacing",  cast(void**)& gtk_table_get_default_col_spacing},
+	{ "gtk_expander_new",  cast(void**)& gtk_expander_new},
+	{ "gtk_expander_new_with_mnemonic",  cast(void**)& gtk_expander_new_with_mnemonic},
+	{ "gtk_expander_set_expanded",  cast(void**)& gtk_expander_set_expanded},
+	{ "gtk_expander_get_expanded",  cast(void**)& gtk_expander_get_expanded},
+	{ "gtk_expander_set_spacing",  cast(void**)& gtk_expander_set_spacing},
+	{ "gtk_expander_get_spacing",  cast(void**)& gtk_expander_get_spacing},
+	{ "gtk_expander_set_label",  cast(void**)& gtk_expander_set_label},
+	{ "gtk_expander_get_label",  cast(void**)& gtk_expander_get_label},
+	{ "gtk_expander_set_use_underline",  cast(void**)& gtk_expander_set_use_underline},
+	{ "gtk_expander_get_use_underline",  cast(void**)& gtk_expander_get_use_underline},
+	{ "gtk_expander_set_use_markup",  cast(void**)& gtk_expander_set_use_markup},
+	{ "gtk_expander_get_use_markup",  cast(void**)& gtk_expander_get_use_markup},
+	{ "gtk_expander_set_label_widget",  cast(void**)& gtk_expander_set_label_widget},
+	{ "gtk_expander_get_label_widget",  cast(void**)& gtk_expander_get_label_widget},
+	{ "gtk_frame_new",  cast(void**)& gtk_frame_new},
+	{ "gtk_frame_set_label",  cast(void**)& gtk_frame_set_label},
+	{ "gtk_frame_set_label_widget",  cast(void**)& gtk_frame_set_label_widget},
+	{ "gtk_frame_set_label_align",  cast(void**)& gtk_frame_set_label_align},
+	{ "gtk_frame_set_shadow_type",  cast(void**)& gtk_frame_set_shadow_type},
+	{ "gtk_frame_get_label",  cast(void**)& gtk_frame_get_label},
+	{ "gtk_frame_get_label_align",  cast(void**)& gtk_frame_get_label_align},
+	{ "gtk_frame_get_label_widget",  cast(void**)& gtk_frame_get_label_widget},
+	{ "gtk_frame_get_shadow_type",  cast(void**)& gtk_frame_get_shadow_type},
+	{ "gtk_hseparator_new",  cast(void**)& gtk_hseparator_new},
+	{ "gtk_vseparator_new",  cast(void**)& gtk_vseparator_new},
+	{ "gtk_hscrollbar_new",  cast(void**)& gtk_hscrollbar_new},
+	{ "gtk_vscrollbar_new",  cast(void**)& gtk_vscrollbar_new},
+	{ "gtk_scrolled_window_new",  cast(void**)& gtk_scrolled_window_new},
+	{ "gtk_scrolled_window_get_hadjustment",  cast(void**)& gtk_scrolled_window_get_hadjustment},
+	{ "gtk_scrolled_window_get_vadjustment",  cast(void**)& gtk_scrolled_window_get_vadjustment},
+	{ "gtk_scrolled_window_get_hscrollbar",  cast(void**)& gtk_scrolled_window_get_hscrollbar},
+	{ "gtk_scrolled_window_get_vscrollbar",  cast(void**)& gtk_scrolled_window_get_vscrollbar},
+	{ "gtk_scrolled_window_set_policy",  cast(void**)& gtk_scrolled_window_set_policy},
+	{ "gtk_scrolled_window_add_with_viewport",  cast(void**)& gtk_scrolled_window_add_with_viewport},
+	{ "gtk_scrolled_window_set_placement",  cast(void**)& gtk_scrolled_window_set_placement},
+	{ "gtk_scrolled_window_unset_placement",  cast(void**)& gtk_scrolled_window_unset_placement},
+	{ "gtk_scrolled_window_set_shadow_type",  cast(void**)& gtk_scrolled_window_set_shadow_type},
+	{ "gtk_scrolled_window_set_hadjustment",  cast(void**)& gtk_scrolled_window_set_hadjustment},
+	{ "gtk_scrolled_window_set_vadjustment",  cast(void**)& gtk_scrolled_window_set_vadjustment},
+	{ "gtk_scrolled_window_get_placement",  cast(void**)& gtk_scrolled_window_get_placement},
+	{ "gtk_scrolled_window_get_policy",  cast(void**)& gtk_scrolled_window_get_policy},
+	{ "gtk_scrolled_window_get_shadow_type",  cast(void**)& gtk_scrolled_window_get_shadow_type},
+	{ "gtk_print_operation_new",  cast(void**)& gtk_print_operation_new},
+	{ "gtk_print_operation_set_allow_async",  cast(void**)& gtk_print_operation_set_allow_async},
+	{ "gtk_print_operation_get_error",  cast(void**)& gtk_print_operation_get_error},
+	{ "gtk_print_operation_set_default_page_setup",  cast(void**)& gtk_print_operation_set_default_page_setup},
+	{ "gtk_print_operation_get_default_page_setup",  cast(void**)& gtk_print_operation_get_default_page_setup},
+	{ "gtk_print_operation_set_print_settings",  cast(void**)& gtk_print_operation_set_print_settings},
+	{ "gtk_print_operation_get_print_settings",  cast(void**)& gtk_print_operation_get_print_settings},
+	{ "gtk_print_operation_set_job_name",  cast(void**)& gtk_print_operation_set_job_name},
+	{ "gtk_print_operation_set_n_pages",  cast(void**)& gtk_print_operation_set_n_pages},
+	{ "gtk_print_operation_set_current_page",  cast(void**)& gtk_print_operation_set_current_page},
+	{ "gtk_print_operation_set_use_full_page",  cast(void**)& gtk_print_operation_set_use_full_page},
+	{ "gtk_print_operation_set_unit",  cast(void**)& gtk_print_operation_set_unit},
+	{ "gtk_print_operation_set_export_filename",  cast(void**)& gtk_print_operation_set_export_filename},
+	{ "gtk_print_operation_set_show_progress",  cast(void**)& gtk_print_operation_set_show_progress},
+	{ "gtk_print_operation_set_track_print_status",  cast(void**)& gtk_print_operation_set_track_print_status},
+	{ "gtk_print_operation_set_custom_tab_label",  cast(void**)& gtk_print_operation_set_custom_tab_label},
+	{ "gtk_print_operation_run",  cast(void**)& gtk_print_operation_run},
+	{ "gtk_print_operation_cancel",  cast(void**)& gtk_print_operation_cancel},
+	{ "gtk_print_operation_get_status",  cast(void**)& gtk_print_operation_get_status},
+	{ "gtk_print_operation_get_status_string",  cast(void**)& gtk_print_operation_get_status_string},
+	{ "gtk_print_operation_is_finished",  cast(void**)& gtk_print_operation_is_finished},
+	{ "gtk_print_run_page_setup_dialog",  cast(void**)& gtk_print_run_page_setup_dialog},
+	{ "gtk_print_run_page_setup_dialog_async",  cast(void**)& gtk_print_run_page_setup_dialog_async},
+	{ "gtk_print_operation_preview_end_preview",  cast(void**)& gtk_print_operation_preview_end_preview},
+	{ "gtk_print_operation_preview_is_selected",  cast(void**)& gtk_print_operation_preview_is_selected},
+	{ "gtk_print_operation_preview_render_page",  cast(void**)& gtk_print_operation_preview_render_page},
+	{ "gtk_print_context_get_cairo_context",  cast(void**)& gtk_print_context_get_cairo_context},
+	{ "gtk_print_context_set_cairo_context",  cast(void**)& gtk_print_context_set_cairo_context},
+	{ "gtk_print_context_get_page_setup",  cast(void**)& gtk_print_context_get_page_setup},
+	{ "gtk_print_context_get_width",  cast(void**)& gtk_print_context_get_width},
+	{ "gtk_print_context_get_height",  cast(void**)& gtk_print_context_get_height},
+	{ "gtk_print_context_get_dpi_x",  cast(void**)& gtk_print_context_get_dpi_x},
+	{ "gtk_print_context_get_dpi_y",  cast(void**)& gtk_print_context_get_dpi_y},
+	{ "gtk_print_context_get_pango_fontmap",  cast(void**)& gtk_print_context_get_pango_fontmap},
+	{ "gtk_print_context_create_pango_context",  cast(void**)& gtk_print_context_create_pango_context},
+	{ "gtk_print_context_create_pango_layout",  cast(void**)& gtk_print_context_create_pango_layout},
+	{ "gtk_print_settings_new",  cast(void**)& gtk_print_settings_new},
+	{ "gtk_print_settings_copy",  cast(void**)& gtk_print_settings_copy},
+	{ "gtk_print_settings_has_key",  cast(void**)& gtk_print_settings_has_key},
+	{ "gtk_print_settings_get",  cast(void**)& gtk_print_settings_get},
+	{ "gtk_print_settings_set",  cast(void**)& gtk_print_settings_set},
+	{ "gtk_print_settings_unset",  cast(void**)& gtk_print_settings_unset},
+	{ "gtk_print_settings_foreach",  cast(void**)& gtk_print_settings_foreach},
+	{ "gtk_print_settings_get_bool",  cast(void**)& gtk_print_settings_get_bool},
+	{ "gtk_print_settings_set_bool",  cast(void**)& gtk_print_settings_set_bool},
+	{ "gtk_print_settings_get_double",  cast(void**)& gtk_print_settings_get_double},
+	{ "gtk_print_settings_get_double_with_default",  cast(void**)& gtk_print_settings_get_double_with_default},
+	{ "gtk_print_settings_set_double",  cast(void**)& gtk_print_settings_set_double},
+	{ "gtk_print_settings_get_length",  cast(void**)& gtk_print_settings_get_length},
+	{ "gtk_print_settings_set_length",  cast(void**)& gtk_print_settings_set_length},
+	{ "gtk_print_settings_get_int",  cast(void**)& gtk_print_settings_get_int},
+	{ "gtk_print_settings_get_int_with_default",  cast(void**)& gtk_print_settings_get_int_with_default},
+	{ "gtk_print_settings_set_int",  cast(void**)& gtk_print_settings_set_int},
+	{ "gtk_print_settings_get_printer",  cast(void**)& gtk_print_settings_get_printer},
+	{ "gtk_print_settings_set_printer",  cast(void**)& gtk_print_settings_set_printer},
+	{ "gtk_print_settings_get_orientation",  cast(void**)& gtk_print_settings_get_orientation},
+	{ "gtk_print_settings_set_orientation",  cast(void**)& gtk_print_settings_set_orientation},
+	{ "gtk_print_settings_get_paper_size",  cast(void**)& gtk_print_settings_get_paper_size},
+	{ "gtk_print_settings_set_paper_size",  cast(void**)& gtk_print_settings_set_paper_size},
+	{ "gtk_print_settings_get_paper_width",  cast(void**)& gtk_print_settings_get_paper_width},
+	{ "gtk_print_settings_set_paper_width",  cast(void**)& gtk_print_settings_set_paper_width},
+	{ "gtk_print_settings_get_paper_height",  cast(void**)& gtk_print_settings_get_paper_height},
+	{ "gtk_print_settings_set_paper_height",  cast(void**)& gtk_print_settings_set_paper_height},
+	{ "gtk_print_settings_get_use_color",  cast(void**)& gtk_print_settings_get_use_color},
+	{ "gtk_print_settings_set_use_color",  cast(void**)& gtk_print_settings_set_use_color},
+	{ "gtk_print_settings_get_collate",  cast(void**)& gtk_print_settings_get_collate},
+	{ "gtk_print_settings_set_collate",  cast(void**)& gtk_print_settings_set_collate},
+	{ "gtk_print_settings_get_reverse",  cast(void**)& gtk_print_settings_get_reverse},
+	{ "gtk_print_settings_set_reverse",  cast(void**)& gtk_print_settings_set_reverse},
+	{ "gtk_print_settings_get_duplex",  cast(void**)& gtk_print_settings_get_duplex},
+	{ "gtk_print_settings_set_duplex",  cast(void**)& gtk_print_settings_set_duplex},
+	{ "gtk_print_settings_get_quality",  cast(void**)& gtk_print_settings_get_quality},
+	{ "gtk_print_settings_set_quality",  cast(void**)& gtk_print_settings_set_quality},
+	{ "gtk_print_settings_get_n_copies",  cast(void**)& gtk_print_settings_get_n_copies},
+	{ "gtk_print_settings_set_n_copies",  cast(void**)& gtk_print_settings_set_n_copies},
+	{ "gtk_print_settings_get_number_up",  cast(void**)& gtk_print_settings_get_number_up},
+	{ "gtk_print_settings_set_number_up",  cast(void**)& gtk_print_settings_set_number_up},
+	{ "gtk_print_settings_get_resolution",  cast(void**)& gtk_print_settings_get_resolution},
+	{ "gtk_print_settings_set_resolution",  cast(void**)& gtk_print_settings_set_resolution},
+	{ "gtk_print_settings_get_scale",  cast(void**)& gtk_print_settings_get_scale},
+	{ "gtk_print_settings_set_scale",  cast(void**)& gtk_print_settings_set_scale},
+	{ "gtk_print_settings_get_print_pages",  cast(void**)& gtk_print_settings_get_print_pages},
+	{ "gtk_print_settings_set_print_pages",  cast(void**)& gtk_print_settings_set_print_pages},
+	{ "gtk_print_settings_get_page_ranges",  cast(void**)& gtk_print_settings_get_page_ranges},
+	{ "gtk_print_settings_set_page_ranges",  cast(void**)& gtk_print_settings_set_page_ranges},
+	{ "gtk_print_settings_get_page_set",  cast(void**)& gtk_print_settings_get_page_set},
+	{ "gtk_print_settings_set_page_set",  cast(void**)& gtk_print_settings_set_page_set},
+	{ "gtk_print_settings_get_default_source",  cast(void**)& gtk_print_settings_get_default_source},
+	{ "gtk_print_settings_set_default_source",  cast(void**)& gtk_print_settings_set_default_source},
+	{ "gtk_print_settings_get_media_type",  cast(void**)& gtk_print_settings_get_media_type},
+	{ "gtk_print_settings_set_media_type",  cast(void**)& gtk_print_settings_set_media_type},
+	{ "gtk_print_settings_get_dither",  cast(void**)& gtk_print_settings_get_dither},
+	{ "gtk_print_settings_set_dither",  cast(void**)& gtk_print_settings_set_dither},
+	{ "gtk_print_settings_get_finishings",  cast(void**)& gtk_print_settings_get_finishings},
+	{ "gtk_print_settings_set_finishings",  cast(void**)& gtk_print_settings_set_finishings},
+	{ "gtk_print_settings_get_output_bin",  cast(void**)& gtk_print_settings_get_output_bin},
+	{ "gtk_print_settings_set_output_bin",  cast(void**)& gtk_print_settings_set_output_bin},
+	{ "gtk_print_settings_new_from_file",  cast(void**)& gtk_print_settings_new_from_file},
+	{ "gtk_print_settings_new_from_key_file",  cast(void**)& gtk_print_settings_new_from_key_file},
+	{ "gtk_print_settings_to_file",  cast(void**)& gtk_print_settings_to_file},
+	{ "gtk_print_settings_to_key_file",  cast(void**)& gtk_print_settings_to_key_file},
+	{ "gtk_page_setup_new",  cast(void**)& gtk_page_setup_new},
+	{ "gtk_page_setup_copy",  cast(void**)& gtk_page_setup_copy},
+	{ "gtk_page_setup_get_orientation",  cast(void**)& gtk_page_setup_get_orientation},
+	{ "gtk_page_setup_set_orientation",  cast(void**)& gtk_page_setup_set_orientation},
+	{ "gtk_page_setup_get_paper_size",  cast(void**)& gtk_page_setup_get_paper_size},
+	{ "gtk_page_setup_set_paper_size",  cast(void**)& gtk_page_setup_set_paper_size},
+	{ "gtk_page_setup_get_top_margin",  cast(void**)& gtk_page_setup_get_top_margin},
+	{ "gtk_page_setup_set_top_margin",  cast(void**)& gtk_page_setup_set_top_margin},
+	{ "gtk_page_setup_get_bottom_margin",  cast(void**)& gtk_page_setup_get_bottom_margin},
+	{ "gtk_page_setup_set_bottom_margin",  cast(void**)& gtk_page_setup_set_bottom_margin},
+	{ "gtk_page_setup_get_left_margin",  cast(void**)& gtk_page_setup_get_left_margin},
+	{ "gtk_page_setup_set_left_margin",  cast(void**)& gtk_page_setup_set_left_margin},
+	{ "gtk_page_setup_get_right_margin",  cast(void**)& gtk_page_setup_get_right_margin},
+	{ "gtk_page_setup_set_right_margin",  cast(void**)& gtk_page_setup_set_right_margin},
+	{ "gtk_page_setup_set_paper_size_and_default_margins",  cast(void**)& gtk_page_setup_set_paper_size_and_default_margins},
+	{ "gtk_page_setup_get_paper_width",  cast(void**)& gtk_page_setup_get_paper_width},
+	{ "gtk_page_setup_get_paper_height",  cast(void**)& gtk_page_setup_get_paper_height},
+	{ "gtk_page_setup_get_page_width",  cast(void**)& gtk_page_setup_get_page_width},
+	{ "gtk_page_setup_get_page_height",  cast(void**)& gtk_page_setup_get_page_height},
+	{ "gtk_page_setup_new_from_file",  cast(void**)& gtk_page_setup_new_from_file},
+	{ "gtk_page_setup_new_from_key_file",  cast(void**)& gtk_page_setup_new_from_key_file},
+	{ "gtk_page_setup_to_file",  cast(void**)& gtk_page_setup_to_file},
+	{ "gtk_page_setup_to_key_file",  cast(void**)& gtk_page_setup_to_key_file},
+	{ "gtk_paper_size_new",  cast(void**)& gtk_paper_size_new},
+	{ "gtk_paper_size_new_from_ppd",  cast(void**)& gtk_paper_size_new_from_ppd},
+	{ "gtk_paper_size_new_custom",  cast(void**)& gtk_paper_size_new_custom},
+	{ "gtk_paper_size_copy",  cast(void**)& gtk_paper_size_copy},
+	{ "gtk_paper_size_free",  cast(void**)& gtk_paper_size_free},
+	{ "gtk_paper_size_is_equal",  cast(void**)& gtk_paper_size_is_equal},
+	{ "gtk_paper_size_get_paper_sizes",  cast(void**)& gtk_paper_size_get_paper_sizes},
+	{ "gtk_paper_size_get_name",  cast(void**)& gtk_paper_size_get_name},
+	{ "gtk_paper_size_get_display_name",  cast(void**)& gtk_paper_size_get_display_name},
+	{ "gtk_paper_size_get_ppd_name",  cast(void**)& gtk_paper_size_get_ppd_name},
+	{ "gtk_paper_size_get_width",  cast(void**)& gtk_paper_size_get_width},
+	{ "gtk_paper_size_get_height",  cast(void**)& gtk_paper_size_get_height},
+	{ "gtk_paper_size_is_custom",  cast(void**)& gtk_paper_size_is_custom},
+	{ "gtk_paper_size_set_size",  cast(void**)& gtk_paper_size_set_size},
+	{ "gtk_paper_size_get_default_top_margin",  cast(void**)& gtk_paper_size_get_default_top_margin},
+	{ "gtk_paper_size_get_default_bottom_margin",  cast(void**)& gtk_paper_size_get_default_bottom_margin},
+	{ "gtk_paper_size_get_default_left_margin",  cast(void**)& gtk_paper_size_get_default_left_margin},
+	{ "gtk_paper_size_get_default_right_margin",  cast(void**)& gtk_paper_size_get_default_right_margin},
+	{ "gtk_paper_size_get_default",  cast(void**)& gtk_paper_size_get_default},
+	{ "gtk_paper_size_new_from_key_file",  cast(void**)& gtk_paper_size_new_from_key_file},
+	{ "gtk_paper_size_to_key_file",  cast(void**)& gtk_paper_size_to_key_file},
+	{ "gtk_printer_new",  cast(void**)& gtk_printer_new},
+	{ "gtk_printer_get_backend",  cast(void**)& gtk_printer_get_backend},
+	{ "gtk_printer_get_name",  cast(void**)& gtk_printer_get_name},
+	{ "gtk_printer_get_state_message",  cast(void**)& gtk_printer_get_state_message},
+	{ "gtk_printer_get_description",  cast(void**)& gtk_printer_get_description},
+	{ "gtk_printer_get_location",  cast(void**)& gtk_printer_get_location},
+	{ "gtk_printer_get_icon_name",  cast(void**)& gtk_printer_get_icon_name},
+	{ "gtk_printer_get_job_count",  cast(void**)& gtk_printer_get_job_count},
+	{ "gtk_printer_is_active",  cast(void**)& gtk_printer_is_active},
+	{ "gtk_printer_is_virtual",  cast(void**)& gtk_printer_is_virtual},
+	{ "gtk_printer_is_default",  cast(void**)& gtk_printer_is_default},
+	{ "gtk_printer_accepts_ps",  cast(void**)& gtk_printer_accepts_ps},
+	{ "gtk_printer_accepts_pdf",  cast(void**)& gtk_printer_accepts_pdf},
+	{ "gtk_printer_list_papers",  cast(void**)& gtk_printer_list_papers},
+	{ "gtk_printer_compare",  cast(void**)& gtk_printer_compare},
+	{ "gtk_printer_has_details",  cast(void**)& gtk_printer_has_details},
+	{ "gtk_printer_request_details",  cast(void**)& gtk_printer_request_details},
+	{ "gtk_printer_get_capabilities",  cast(void**)& gtk_printer_get_capabilities},
+	{ "gtk_enumerate_printers",  cast(void**)& gtk_enumerate_printers},
+	{ "gtk_print_job_new",  cast(void**)& gtk_print_job_new},
+	{ "gtk_print_job_get_settings",  cast(void**)& gtk_print_job_get_settings},
+	{ "gtk_print_job_get_printer",  cast(void**)& gtk_print_job_get_printer},
+	{ "gtk_print_job_get_title",  cast(void**)& gtk_print_job_get_title},
+	{ "gtk_print_job_get_status",  cast(void**)& gtk_print_job_get_status},
+	{ "gtk_print_job_set_source_file",  cast(void**)& gtk_print_job_set_source_file},
+	{ "gtk_print_job_get_surface",  cast(void**)& gtk_print_job_get_surface},
+	{ "gtk_print_job_send",  cast(void**)& gtk_print_job_send},
+	{ "gtk_print_job_set_track_print_status",  cast(void**)& gtk_print_job_set_track_print_status},
+	{ "gtk_print_job_get_track_print_status",  cast(void**)& gtk_print_job_get_track_print_status},
+	{ "gtk_print_unix_dialog_new",  cast(void**)& gtk_print_unix_dialog_new},
+	{ "gtk_print_unix_dialog_set_page_setup",  cast(void**)& gtk_print_unix_dialog_set_page_setup},
+	{ "gtk_print_unix_dialog_get_page_setup",  cast(void**)& gtk_print_unix_dialog_get_page_setup},
+	{ "gtk_print_unix_dialog_set_current_page",  cast(void**)& gtk_print_unix_dialog_set_current_page},
+	{ "gtk_print_unix_dialog_get_current_page",  cast(void**)& gtk_print_unix_dialog_get_current_page},
+	{ "gtk_print_unix_dialog_set_settings",  cast(void**)& gtk_print_unix_dialog_set_settings},
+	{ "gtk_print_unix_dialog_get_settings",  cast(void**)& gtk_print_unix_dialog_get_settings},
+	{ "gtk_print_unix_dialog_get_selected_printer",  cast(void**)& gtk_print_unix_dialog_get_selected_printer},
+	{ "gtk_print_unix_dialog_add_custom_tab",  cast(void**)& gtk_print_unix_dialog_add_custom_tab},
+	{ "gtk_print_unix_dialog_set_manual_capabilities",  cast(void**)& gtk_print_unix_dialog_set_manual_capabilities},
+	{ "gtk_page_setup_unix_dialog_new",  cast(void**)& gtk_page_setup_unix_dialog_new},
+	{ "gtk_page_setup_unix_dialog_set_page_setup",  cast(void**)& gtk_page_setup_unix_dialog_set_page_setup},
+	{ "gtk_page_setup_unix_dialog_get_page_setup",  cast(void**)& gtk_page_setup_unix_dialog_get_page_setup},
+	{ "gtk_page_setup_unix_dialog_set_print_settings",  cast(void**)& gtk_page_setup_unix_dialog_set_print_settings},
+	{ "gtk_page_setup_unix_dialog_get_print_settings",  cast(void**)& gtk_page_setup_unix_dialog_get_print_settings},
+	{ "gtk_adjustment_new",  cast(void**)& gtk_adjustment_new},
+	{ "gtk_adjustment_get_value",  cast(void**)& gtk_adjustment_get_value},
+	{ "gtk_adjustment_set_value",  cast(void**)& gtk_adjustment_set_value},
+	{ "gtk_adjustment_clamp_page",  cast(void**)& gtk_adjustment_clamp_page},
+	{ "gtk_adjustment_changed",  cast(void**)& gtk_adjustment_changed},
+	{ "gtk_adjustment_value_changed",  cast(void**)& gtk_adjustment_value_changed},
+	{ "gtk_arrow_new",  cast(void**)& gtk_arrow_new},
+	{ "gtk_arrow_set",  cast(void**)& gtk_arrow_set},
+	{ "gtk_calendar_new",  cast(void**)& gtk_calendar_new},
+	{ "gtk_calendar_select_month",  cast(void**)& gtk_calendar_select_month},
+	{ "gtk_calendar_select_day",  cast(void**)& gtk_calendar_select_day},
+	{ "gtk_calendar_mark_day",  cast(void**)& gtk_calendar_mark_day},
+	{ "gtk_calendar_unmark_day",  cast(void**)& gtk_calendar_unmark_day},
+	{ "gtk_calendar_clear_marks",  cast(void**)& gtk_calendar_clear_marks},
+	{ "gtk_calendar_get_display_options",  cast(void**)& gtk_calendar_get_display_options},
+	{ "gtk_calendar_set_display_options",  cast(void**)& gtk_calendar_set_display_options},
+	{ "gtk_calendar_display_options",  cast(void**)& gtk_calendar_display_options},
+	{ "gtk_calendar_get_date",  cast(void**)& gtk_calendar_get_date},
+	{ "gtk_calendar_freeze",  cast(void**)& gtk_calendar_freeze},
+	{ "gtk_calendar_thaw",  cast(void**)& gtk_calendar_thaw},
+	{ "gtk_drawing_area_new",  cast(void**)& gtk_drawing_area_new},
+	{ "gtk_drawing_area_size",  cast(void**)& gtk_drawing_area_size},
+	{ "gtk_event_box_new",  cast(void**)& gtk_event_box_new},
+	{ "gtk_event_box_set_above_child",  cast(void**)& gtk_event_box_set_above_child},
+	{ "gtk_event_box_get_above_child",  cast(void**)& gtk_event_box_get_above_child},
+	{ "gtk_event_box_set_visible_window",  cast(void**)& gtk_event_box_set_visible_window},
+	{ "gtk_event_box_get_visible_window",  cast(void**)& gtk_event_box_get_visible_window},
+	{ "gtk_handle_box_new",  cast(void**)& gtk_handle_box_new},
+	{ "gtk_handle_box_set_shadow_type",  cast(void**)& gtk_handle_box_set_shadow_type},
+	{ "gtk_handle_box_set_handle_position",  cast(void**)& gtk_handle_box_set_handle_position},
+	{ "gtk_handle_box_set_snap_edge",  cast(void**)& gtk_handle_box_set_snap_edge},
+	{ "gtk_handle_box_get_handle_position",  cast(void**)& gtk_handle_box_get_handle_position},
+	{ "gtk_handle_box_get_shadow_type",  cast(void**)& gtk_handle_box_get_shadow_type},
+	{ "gtk_handle_box_get_snap_edge",  cast(void**)& gtk_handle_box_get_snap_edge},
+	{ "gtk_im_context_simple_new",  cast(void**)& gtk_im_context_simple_new},
+	{ "gtk_im_context_simple_add_table",  cast(void**)& gtk_im_context_simple_add_table},
+	{ "gtk_im_multicontext_new",  cast(void**)& gtk_im_multicontext_new},
+	{ "gtk_im_multicontext_append_menuitems",  cast(void**)& gtk_im_multicontext_append_menuitems},
+	{ "gtk_size_group_new",  cast(void**)& gtk_size_group_new},
+	{ "gtk_size_group_set_mode",  cast(void**)& gtk_size_group_set_mode},
+	{ "gtk_size_group_get_mode",  cast(void**)& gtk_size_group_get_mode},
+	{ "gtk_size_group_set_ignore_hidden",  cast(void**)& gtk_size_group_set_ignore_hidden},
+	{ "gtk_size_group_get_ignore_hidden",  cast(void**)& gtk_size_group_get_ignore_hidden},
+	{ "gtk_size_group_add_widget",  cast(void**)& gtk_size_group_add_widget},
+	{ "gtk_size_group_remove_widget",  cast(void**)& gtk_size_group_remove_widget},
+	{ "gtk_size_group_get_widgets",  cast(void**)& gtk_size_group_get_widgets},
+	{ "gtk_tooltip_set_markup",  cast(void**)& gtk_tooltip_set_markup},
+	{ "gtk_tooltip_set_text",  cast(void**)& gtk_tooltip_set_text},
+	{ "gtk_tooltip_set_icon",  cast(void**)& gtk_tooltip_set_icon},
+	{ "gtk_tooltip_set_icon_from_stock",  cast(void**)& gtk_tooltip_set_icon_from_stock},
+	{ "gtk_tooltip_set_custom",  cast(void**)& gtk_tooltip_set_custom},
+	{ "gtk_tooltip_trigger_tooltip_query",  cast(void**)& gtk_tooltip_trigger_tooltip_query},
+	{ "gtk_tooltip_set_tip_area",  cast(void**)& gtk_tooltip_set_tip_area},
+	{ "gtk_viewport_new",  cast(void**)& gtk_viewport_new},
+	{ "gtk_viewport_get_hadjustment",  cast(void**)& gtk_viewport_get_hadjustment},
+	{ "gtk_viewport_get_vadjustment",  cast(void**)& gtk_viewport_get_vadjustment},
+	{ "gtk_viewport_set_hadjustment",  cast(void**)& gtk_viewport_set_hadjustment},
+	{ "gtk_viewport_set_vadjustment",  cast(void**)& gtk_viewport_set_vadjustment},
+	{ "gtk_viewport_set_shadow_type",  cast(void**)& gtk_viewport_set_shadow_type},
+	{ "gtk_viewport_get_shadow_type",  cast(void**)& gtk_viewport_get_shadow_type},
+	{ "gtk_accessible_connect_widget_destroyed",  cast(void**)& gtk_accessible_connect_widget_destroyed},
+	{ "gtk_bin_get_child",  cast(void**)& gtk_bin_get_child},
+	{ "gtk_box_pack_start",  cast(void**)& gtk_box_pack_start},
+	{ "gtk_box_pack_end",  cast(void**)& gtk_box_pack_end},
+	{ "gtk_box_pack_start_defaults",  cast(void**)& gtk_box_pack_start_defaults},
+	{ "gtk_box_pack_end_defaults",  cast(void**)& gtk_box_pack_end_defaults},
+	{ "gtk_box_get_homogeneous",  cast(void**)& gtk_box_get_homogeneous},
+	{ "gtk_box_set_homogeneous",  cast(void**)& gtk_box_set_homogeneous},
+	{ "gtk_box_get_spacing",  cast(void**)& gtk_box_get_spacing},
+	{ "gtk_box_set_spacing",  cast(void**)& gtk_box_set_spacing},
+	{ "gtk_box_reorder_child",  cast(void**)& gtk_box_reorder_child},
+	{ "gtk_box_query_child_packing",  cast(void**)& gtk_box_query_child_packing},
+	{ "gtk_box_set_child_packing",  cast(void**)& gtk_box_set_child_packing},
+	{ "gtk_button_box_get_layout",  cast(void**)& gtk_button_box_get_layout},
+	{ "gtk_button_box_get_child_size",  cast(void**)& gtk_button_box_get_child_size},
+	{ "gtk_button_box_get_child_ipadding",  cast(void**)& gtk_button_box_get_child_ipadding},
+	{ "gtk_button_box_get_child_secondary",  cast(void**)& gtk_button_box_get_child_secondary},
+	{ "gtk_button_box_set_layout",  cast(void**)& gtk_button_box_set_layout},
+	{ "gtk_button_box_set_child_size",  cast(void**)& gtk_button_box_set_child_size},
+	{ "gtk_button_box_set_child_ipadding",  cast(void**)& gtk_button_box_set_child_ipadding},
+	{ "gtk_button_box_set_child_secondary",  cast(void**)& gtk_button_box_set_child_secondary},
+	{ "gtk_container_add",  cast(void**)& gtk_container_add},
+	{ "gtk_container_remove",  cast(void**)& gtk_container_remove},
+	{ "gtk_container_add_with_properties",  cast(void**)& gtk_container_add_with_properties},
+	{ "gtk_container_get_resize_mode",  cast(void**)& gtk_container_get_resize_mode},
+	{ "gtk_container_set_resize_mode",  cast(void**)& gtk_container_set_resize_mode},
+	{ "gtk_container_check_resize",  cast(void**)& gtk_container_check_resize},
+	{ "gtk_container_foreach",  cast(void**)& gtk_container_foreach},
+	{ "gtk_container_foreach_full",  cast(void**)& gtk_container_foreach_full},
+	{ "gtk_container_get_children",  cast(void**)& gtk_container_get_children},
+	{ "gtk_container_set_reallocate_redraws",  cast(void**)& gtk_container_set_reallocate_redraws},
+	{ "gtk_container_set_focus_child",  cast(void**)& gtk_container_set_focus_child},
+	{ "gtk_container_get_focus_vadjustment",  cast(void**)& gtk_container_get_focus_vadjustment},
+	{ "gtk_container_set_focus_vadjustment",  cast(void**)& gtk_container_set_focus_vadjustment},
+	{ "gtk_container_get_focus_hadjustment",  cast(void**)& gtk_container_get_focus_hadjustment},
+	{ "gtk_container_set_focus_hadjustment",  cast(void**)& gtk_container_set_focus_hadjustment},
+	{ "gtk_container_resize_children",  cast(void**)& gtk_container_resize_children},
+	{ "gtk_container_child_type",  cast(void**)& gtk_container_child_type},
+	{ "gtk_container_child_get",  cast(void**)& gtk_container_child_get},
+	{ "gtk_container_child_set",  cast(void**)& gtk_container_child_set},
+	{ "gtk_container_child_get_property",  cast(void**)& gtk_container_child_get_property},
+	{ "gtk_container_child_set_property",  cast(void**)& gtk_container_child_set_property},
+	{ "gtk_container_child_get_valist",  cast(void**)& gtk_container_child_get_valist},
+	{ "gtk_container_child_set_valist",  cast(void**)& gtk_container_child_set_valist},
+	{ "gtk_container_forall",  cast(void**)& gtk_container_forall},
+	{ "gtk_container_get_border_width",  cast(void**)& gtk_container_get_border_width},
+	{ "gtk_container_set_border_width",  cast(void**)& gtk_container_set_border_width},
+	{ "gtk_container_propagate_expose",  cast(void**)& gtk_container_propagate_expose},
+	{ "gtk_container_get_focus_chain",  cast(void**)& gtk_container_get_focus_chain},
+	{ "gtk_container_set_focus_chain",  cast(void**)& gtk_container_set_focus_chain},
+	{ "gtk_container_unset_focus_chain",  cast(void**)& gtk_container_unset_focus_chain},
+	{ "gtk_container_class_find_child_property",  cast(void**)& gtk_container_class_find_child_property},
+	{ "gtk_container_class_install_child_property",  cast(void**)& gtk_container_class_install_child_property},
+	{ "gtk_container_class_list_child_properties",  cast(void**)& gtk_container_class_list_child_properties},
+	{ "gtk_item_select",  cast(void**)& gtk_item_select},
+	{ "gtk_item_deselect",  cast(void**)& gtk_item_deselect},
+	{ "gtk_item_toggle",  cast(void**)& gtk_item_toggle},
+	{ "gtk_menu_shell_append",  cast(void**)& gtk_menu_shell_append},
+	{ "gtk_menu_shell_prepend",  cast(void**)& gtk_menu_shell_prepend},
+	{ "gtk_menu_shell_insert",  cast(void**)& gtk_menu_shell_insert},
+	{ "gtk_menu_shell_deactivate",  cast(void**)& gtk_menu_shell_deactivate},
+	{ "gtk_menu_shell_select_item",  cast(void**)& gtk_menu_shell_select_item},
+	{ "gtk_menu_shell_select_first",  cast(void**)& gtk_menu_shell_select_first},
+	{ "gtk_menu_shell_deselect",  cast(void**)& gtk_menu_shell_deselect},
+	{ "gtk_menu_shell_activate_item",  cast(void**)& gtk_menu_shell_activate_item},
+	{ "gtk_menu_shell_cancel",  cast(void**)& gtk_menu_shell_cancel},
+	{ "gtk_menu_shell_set_take_focus",  cast(void**)& gtk_menu_shell_set_take_focus},
+	{ "gtk_menu_shell_get_take_focus",  cast(void**)& gtk_menu_shell_get_take_focus},
+	{ "gtk_misc_set_alignment",  cast(void**)& gtk_misc_set_alignment},
+	{ "gtk_misc_set_padding",  cast(void**)& gtk_misc_set_padding},
+	{ "gtk_misc_get_alignment",  cast(void**)& gtk_misc_get_alignment},
+	{ "gtk_misc_get_padding",  cast(void**)& gtk_misc_get_padding},
+	{ "gtk_object_new",  cast(void**)& gtk_object_new},
+	{ "gtk_object_sink",  cast(void**)& gtk_object_sink},
+	{ "gtk_object_ref",  cast(void**)& gtk_object_ref},
+	{ "gtk_object_unref",  cast(void**)& gtk_object_unref},
+	{ "gtk_object_weakref",  cast(void**)& gtk_object_weakref},
+	{ "gtk_object_weakunref",  cast(void**)& gtk_object_weakunref},
+	{ "gtk_object_destroy",  cast(void**)& gtk_object_destroy},
+	{ "gtk_object_get",  cast(void**)& gtk_object_get},
+	{ "gtk_object_set",  cast(void**)& gtk_object_set},
+	{ "gtk_object_set_data",  cast(void**)& gtk_object_set_data},
+	{ "gtk_object_set_data_full",  cast(void**)& gtk_object_set_data_full},
+	{ "gtk_object_remove_data",  cast(void**)& gtk_object_remove_data},
+	{ "gtk_object_get_data",  cast(void**)& gtk_object_get_data},
+	{ "gtk_object_remove_no_notify",  cast(void**)& gtk_object_remove_no_notify},
+	{ "gtk_object_set_user_data",  cast(void**)& gtk_object_set_user_data},
+	{ "gtk_object_get_user_data",  cast(void**)& gtk_object_get_user_data},
+	{ "gtk_object_add_arg_type",  cast(void**)& gtk_object_add_arg_type},
+	{ "gtk_object_set_data_by_id",  cast(void**)& gtk_object_set_data_by_id},
+	{ "gtk_object_set_data_by_id_full",  cast(void**)& gtk_object_set_data_by_id_full},
+	{ "gtk_object_get_data_by_id",  cast(void**)& gtk_object_get_data_by_id},
+	{ "gtk_object_remove_data_by_id",  cast(void**)& gtk_object_remove_data_by_id},
+	{ "gtk_object_remove_no_notify_by_id",  cast(void**)& gtk_object_remove_no_notify_by_id},
+	{ "gtk_paned_add1",  cast(void**)& gtk_paned_add1},
+	{ "gtk_paned_add2",  cast(void**)& gtk_paned_add2},
+	{ "gtk_paned_pack1",  cast(void**)& gtk_paned_pack1},
+	{ "gtk_paned_pack2",  cast(void**)& gtk_paned_pack2},
+	{ "gtk_paned_get_child1",  cast(void**)& gtk_paned_get_child1},
+	{ "gtk_paned_get_child2",  cast(void**)& gtk_paned_get_child2},
+	{ "gtk_paned_set_position",  cast(void**)& gtk_paned_set_position},
+	{ "gtk_paned_get_position",  cast(void**)& gtk_paned_get_position},
+	{ "gtk_range_get_fill_level",  cast(void**)& gtk_range_get_fill_level},
+	{ "gtk_range_get_restrict_to_fill_level",  cast(void**)& gtk_range_get_restrict_to_fill_level},
+	{ "gtk_range_get_show_fill_level",  cast(void**)& gtk_range_get_show_fill_level},
+	{ "gtk_range_set_fill_level",  cast(void**)& gtk_range_set_fill_level},
+	{ "gtk_range_set_restrict_to_fill_level",  cast(void**)& gtk_range_set_restrict_to_fill_level},
+	{ "gtk_range_set_show_fill_level",  cast(void**)& gtk_range_set_show_fill_level},
+	{ "gtk_range_get_adjustment",  cast(void**)& gtk_range_get_adjustment},
+	{ "gtk_range_set_update_policy",  cast(void**)& gtk_range_set_update_policy},
+	{ "gtk_range_set_adjustment",  cast(void**)& gtk_range_set_adjustment},
+	{ "gtk_range_get_inverted",  cast(void**)& gtk_range_get_inverted},
+	{ "gtk_range_set_inverted",  cast(void**)& gtk_range_set_inverted},
+	{ "gtk_range_get_update_policy",  cast(void**)& gtk_range_get_update_policy},
+	{ "gtk_range_get_value",  cast(void**)& gtk_range_get_value},
+	{ "gtk_range_set_increments",  cast(void**)& gtk_range_set_increments},
+	{ "gtk_range_set_range",  cast(void**)& gtk_range_set_range},
+	{ "gtk_range_set_value",  cast(void**)& gtk_range_set_value},
+	{ "gtk_range_set_lower_stepper_sensitivity",  cast(void**)& gtk_range_set_lower_stepper_sensitivity},
+	{ "gtk_range_get_lower_stepper_sensitivity",  cast(void**)& gtk_range_get_lower_stepper_sensitivity},
+	{ "gtk_range_set_upper_stepper_sensitivity",  cast(void**)& gtk_range_set_upper_stepper_sensitivity},
+	{ "gtk_range_get_upper_stepper_sensitivity",  cast(void**)& gtk_range_get_upper_stepper_sensitivity},
+	{ "gtk_scale_set_digits",  cast(void**)& gtk_scale_set_digits},
+	{ "gtk_scale_set_draw_value",  cast(void**)& gtk_scale_set_draw_value},
+	{ "gtk_scale_set_value_pos",  cast(void**)& gtk_scale_set_value_pos},
+	{ "gtk_scale_get_digits",  cast(void**)& gtk_scale_get_digits},
+	{ "gtk_scale_get_draw_value",  cast(void**)& gtk_scale_get_draw_value},
+	{ "gtk_scale_get_value_pos",  cast(void**)& gtk_scale_get_value_pos},
+	{ "gtk_scale_get_layout",  cast(void**)& gtk_scale_get_layout},
+	{ "gtk_scale_get_layout_offsets",  cast(void**)& gtk_scale_get_layout_offsets},
+	{ "gtk_widget_new",  cast(void**)& gtk_widget_new},
+	{ "gtk_widget_unref",  cast(void**)& gtk_widget_unref},
+	{ "gtk_widget_destroy",  cast(void**)& gtk_widget_destroy},
+	{ "gtk_widget_destroyed",  cast(void**)& gtk_widget_destroyed},
+	{ "gtk_widget_set",  cast(void**)& gtk_widget_set},
+	{ "gtk_widget_unparent",  cast(void**)& gtk_widget_unparent},
+	{ "gtk_widget_show",  cast(void**)& gtk_widget_show},
+	{ "gtk_widget_show_now",  cast(void**)& gtk_widget_show_now},
+	{ "gtk_widget_hide",  cast(void**)& gtk_widget_hide},
+	{ "gtk_widget_show_all",  cast(void**)& gtk_widget_show_all},
+	{ "gtk_widget_hide_all",  cast(void**)& gtk_widget_hide_all},
+	{ "gtk_widget_map",  cast(void**)& gtk_widget_map},
+	{ "gtk_widget_unmap",  cast(void**)& gtk_widget_unmap},
+	{ "gtk_widget_realize",  cast(void**)& gtk_widget_realize},
+	{ "gtk_widget_unrealize",  cast(void**)& gtk_widget_unrealize},
+	{ "gtk_widget_queue_draw",  cast(void**)& gtk_widget_queue_draw},
+	{ "gtk_widget_queue_resize",  cast(void**)& gtk_widget_queue_resize},
+	{ "gtk_widget_queue_resize_no_redraw",  cast(void**)& gtk_widget_queue_resize_no_redraw},
+	{ "gtk_widget_draw",  cast(void**)& gtk_widget_draw},
+	{ "gtk_widget_size_request",  cast(void**)& gtk_widget_size_request},
+	{ "gtk_widget_get_child_requisition",  cast(void**)& gtk_widget_get_child_requisition},
+	{ "gtk_widget_size_allocate",  cast(void**)& gtk_widget_size_allocate},
+	{ "gtk_widget_add_accelerator",  cast(void**)& gtk_widget_add_accelerator},
+	{ "gtk_widget_remove_accelerator",  cast(void**)& gtk_widget_remove_accelerator},
+	{ "gtk_widget_set_accel_path",  cast(void**)& gtk_widget_set_accel_path},
+	{ "gtk_widget_list_accel_closures",  cast(void**)& gtk_widget_list_accel_closures},
+	{ "gtk_widget_can_activate_accel",  cast(void**)& gtk_widget_can_activate_accel},
+	{ "gtk_widget_event",  cast(void**)& gtk_widget_event},
+	{ "gtk_widget_activate",  cast(void**)& gtk_widget_activate},
+	{ "gtk_widget_reparent",  cast(void**)& gtk_widget_reparent},
+	{ "gtk_widget_intersect",  cast(void**)& gtk_widget_intersect},
+	{ "gtk_widget_is_focus",  cast(void**)& gtk_widget_is_focus},
+	{ "gtk_widget_grab_focus",  cast(void**)& gtk_widget_grab_focus},
+	{ "gtk_widget_grab_default",  cast(void**)& gtk_widget_grab_default},
+	{ "gtk_widget_set_name",  cast(void**)& gtk_widget_set_name},
+	{ "gtk_widget_get_name",  cast(void**)& gtk_widget_get_name},
+	{ "gtk_widget_set_state",  cast(void**)& gtk_widget_set_state},
+	{ "gtk_widget_set_sensitive",  cast(void**)& gtk_widget_set_sensitive},
+	{ "gtk_widget_set_parent",  cast(void**)& gtk_widget_set_parent},
+	{ "gtk_widget_set_parent_window",  cast(void**)& gtk_widget_set_parent_window},
+	{ "gtk_widget_get_parent_window",  cast(void**)& gtk_widget_get_parent_window},
+	{ "gtk_widget_set_uposition",  cast(void**)& gtk_widget_set_uposition},
+	{ "gtk_widget_set_usize",  cast(void**)& gtk_widget_set_usize},
+	{ "gtk_widget_set_events",  cast(void**)& gtk_widget_set_events},
+	{ "gtk_widget_add_events",  cast(void**)& gtk_widget_add_events},
+	{ "gtk_widget_set_extension_events",  cast(void**)& gtk_widget_set_extension_events},
+	{ "gtk_widget_get_extension_events",  cast(void**)& gtk_widget_get_extension_events},
+	{ "gtk_widget_get_toplevel",  cast(void**)& gtk_widget_get_toplevel},
+	{ "gtk_widget_get_ancestor",  cast(void**)& gtk_widget_get_ancestor},
+	{ "gtk_widget_get_colormap",  cast(void**)& gtk_widget_get_colormap},
+	{ "gtk_widget_set_colormap",  cast(void**)& gtk_widget_set_colormap},
+	{ "gtk_widget_get_visual",  cast(void**)& gtk_widget_get_visual},
+	{ "gtk_widget_get_events",  cast(void**)& gtk_widget_get_events},
+	{ "gtk_widget_get_pointer",  cast(void**)& gtk_widget_get_pointer},
+	{ "gtk_widget_is_ancestor",  cast(void**)& gtk_widget_is_ancestor},
+	{ "gtk_widget_translate_coordinates",  cast(void**)& gtk_widget_translate_coordinates},
+	{ "gtk_widget_hide_on_delete",  cast(void**)& gtk_widget_hide_on_delete},
+	{ "gtk_widget_set_style",  cast(void**)& gtk_widget_set_style},
+	{ "gtk_widget_ensure_style",  cast(void**)& gtk_widget_ensure_style},
+	{ "gtk_widget_get_style",  cast(void**)& gtk_widget_get_style},
+	{ "gtk_widget_reset_rc_styles",  cast(void**)& gtk_widget_reset_rc_styles},
+	{ "gtk_widget_push_colormap",  cast(void**)& gtk_widget_push_colormap},
+	{ "gtk_widget_pop_colormap",  cast(void**)& gtk_widget_pop_colormap},
+	{ "gtk_widget_set_default_colormap",  cast(void**)& gtk_widget_set_default_colormap},
+	{ "gtk_widget_get_default_style",  cast(void**)& gtk_widget_get_default_style},
+	{ "gtk_widget_get_default_colormap",  cast(void**)& gtk_widget_get_default_colormap},
+	{ "gtk_widget_get_default_visual",  cast(void**)& gtk_widget_get_default_visual},
+	{ "gtk_widget_set_direction",  cast(void**)& gtk_widget_set_direction},
+	{ "gtk_widget_get_direction",  cast(void**)& gtk_widget_get_direction},
+	{ "gtk_widget_set_default_direction",  cast(void**)& gtk_widget_set_default_direction},
+	{ "gtk_widget_get_default_direction",  cast(void**)& gtk_widget_get_default_direction},
+	{ "gtk_widget_shape_combine_mask",  cast(void**)& gtk_widget_shape_combine_mask},
+	{ "gtk_widget_input_shape_combine_mask",  cast(void**)& gtk_widget_input_shape_combine_mask},
+	{ "gtk_widget_path",  cast(void**)& gtk_widget_path},
+	{ "gtk_widget_class_path",  cast(void**)& gtk_widget_class_path},
+	{ "gtk_widget_get_composite_name",  cast(void**)& gtk_widget_get_composite_name},
+	{ "gtk_widget_modify_style",  cast(void**)& gtk_widget_modify_style},
+	{ "gtk_widget_get_modifier_style",  cast(void**)& gtk_widget_get_modifier_style},
+	{ "gtk_widget_modify_fg",  cast(void**)& gtk_widget_modify_fg},
+	{ "gtk_widget_modify_bg",  cast(void**)& gtk_widget_modify_bg},
+	{ "gtk_widget_modify_text",  cast(void**)& gtk_widget_modify_text},
+	{ "gtk_widget_modify_base",  cast(void**)& gtk_widget_modify_base},
+	{ "gtk_widget_modify_font",  cast(void**)& gtk_widget_modify_font},
+	{ "gtk_widget_modify_cursor",  cast(void**)& gtk_widget_modify_cursor},
+	{ "gtk_widget_create_pango_context",  cast(void**)& gtk_widget_create_pango_context},
+	{ "gtk_widget_get_pango_context",  cast(void**)& gtk_widget_get_pango_context},
+	{ "gtk_widget_create_pango_layout",  cast(void**)& gtk_widget_create_pango_layout},
+	{ "gtk_widget_render_icon",  cast(void**)& gtk_widget_render_icon},
+	{ "gtk_widget_pop_composite_child",  cast(void**)& gtk_widget_pop_composite_child},
+	{ "gtk_widget_push_composite_child",  cast(void**)& gtk_widget_push_composite_child},
+	{ "gtk_widget_queue_clear",  cast(void**)& gtk_widget_queue_clear},
+	{ "gtk_widget_queue_clear_area",  cast(void**)& gtk_widget_queue_clear_area},
+	{ "gtk_widget_queue_draw_area",  cast(void**)& gtk_widget_queue_draw_area},
+	{ "gtk_widget_reset_shapes",  cast(void**)& gtk_widget_reset_shapes},
+	{ "gtk_widget_set_app_paintable",  cast(void**)& gtk_widget_set_app_paintable},
+	{ "gtk_widget_set_double_buffered",  cast(void**)& gtk_widget_set_double_buffered},
+	{ "gtk_widget_set_redraw_on_allocate",  cast(void**)& gtk_widget_set_redraw_on_allocate},
+	{ "gtk_widget_set_composite_name",  cast(void**)& gtk_widget_set_composite_name},
+	{ "gtk_widget_set_scroll_adjustments",  cast(void**)& gtk_widget_set_scroll_adjustments},
+	{ "gtk_widget_mnemonic_activate",  cast(void**)& gtk_widget_mnemonic_activate},
+	{ "gtk_widget_class_install_style_property",  cast(void**)& gtk_widget_class_install_style_property},
+	{ "gtk_widget_class_install_style_property_parser",  cast(void**)& gtk_widget_class_install_style_property_parser},
+	{ "gtk_widget_class_find_style_property",  cast(void**)& gtk_widget_class_find_style_property},
+	{ "gtk_widget_class_list_style_properties",  cast(void**)& gtk_widget_class_list_style_properties},
+	{ "gtk_widget_region_intersect",  cast(void**)& gtk_widget_region_intersect},
+	{ "gtk_widget_send_expose",  cast(void**)& gtk_widget_send_expose},
+	{ "gtk_widget_style_get",  cast(void**)& gtk_widget_style_get},
+	{ "gtk_widget_style_get_property",  cast(void**)& gtk_widget_style_get_property},
+	{ "gtk_widget_style_get_valist",  cast(void**)& gtk_widget_style_get_valist},
+	{ "gtk_widget_get_accessible",  cast(void**)& gtk_widget_get_accessible},
+	{ "gtk_widget_child_focus",  cast(void**)& gtk_widget_child_focus},
+	{ "gtk_widget_child_notify",  cast(void**)& gtk_widget_child_notify},
+	{ "gtk_widget_freeze_child_notify",  cast(void**)& gtk_widget_freeze_child_notify},
+	{ "gtk_widget_get_child_visible",  cast(void**)& gtk_widget_get_child_visible},
+	{ "gtk_widget_get_parent",  cast(void**)& gtk_widget_get_parent},
+	{ "gtk_widget_get_settings",  cast(void**)& gtk_widget_get_settings},
+	{ "gtk_widget_get_clipboard",  cast(void**)& gtk_widget_get_clipboard},
+	{ "gtk_widget_get_display",  cast(void**)& gtk_widget_get_display},
+	{ "gtk_widget_get_root_window",  cast(void**)& gtk_widget_get_root_window},
+	{ "gtk_widget_get_screen",  cast(void**)& gtk_widget_get_screen},
+	{ "gtk_widget_has_screen",  cast(void**)& gtk_widget_has_screen},
+	{ "gtk_widget_get_size_request",  cast(void**)& gtk_widget_get_size_request},
+	{ "gtk_widget_set_child_visible",  cast(void**)& gtk_widget_set_child_visible},
+	{ "gtk_widget_set_size_request",  cast(void**)& gtk_widget_set_size_request},
+	{ "gtk_widget_thaw_child_notify",  cast(void**)& gtk_widget_thaw_child_notify},
+	{ "gtk_widget_set_no_show_all",  cast(void**)& gtk_widget_set_no_show_all},
+	{ "gtk_widget_get_no_show_all",  cast(void**)& gtk_widget_get_no_show_all},
+	{ "gtk_widget_list_mnemonic_labels",  cast(void**)& gtk_widget_list_mnemonic_labels},
+	{ "gtk_widget_add_mnemonic_label",  cast(void**)& gtk_widget_add_mnemonic_label},
+	{ "gtk_widget_remove_mnemonic_label",  cast(void**)& gtk_widget_remove_mnemonic_label},
+	{ "gtk_widget_get_action",  cast(void**)& gtk_widget_get_action},
+	{ "gtk_widget_is_composited",  cast(void**)& gtk_widget_is_composited},
+	{ "gtk_widget_error_bell",  cast(void**)& gtk_widget_error_bell},
+	{ "gtk_widget_keynav_failed",  cast(void**)& gtk_widget_keynav_failed},
+	{ "gtk_widget_get_tooltip_markup",  cast(void**)& gtk_widget_get_tooltip_markup},
+	{ "gtk_widget_set_tooltip_markup",  cast(void**)& gtk_widget_set_tooltip_markup},
+	{ "gtk_widget_get_tooltip_text",  cast(void**)& gtk_widget_get_tooltip_text},
+	{ "gtk_widget_set_tooltip_text",  cast(void**)& gtk_widget_set_tooltip_text},
+	{ "gtk_widget_get_tooltip_window",  cast(void**)& gtk_widget_get_tooltip_window},
+	{ "gtk_widget_set_tooltip_window",  cast(void**)& gtk_widget_set_tooltip_window},
+	{ "gtk_widget_get_has_tooltip",  cast(void**)& gtk_widget_get_has_tooltip},
+	{ "gtk_widget_set_has_tooltip",  cast(void**)& gtk_widget_set_has_tooltip},
+	{ "gtk_widget_trigger_tooltip_query",  cast(void**)& gtk_widget_trigger_tooltip_query},
+	{ "gtk_requisition_copy",  cast(void**)& gtk_requisition_copy},
+	{ "gtk_requisition_free",  cast(void**)& gtk_requisition_free},
+	{ "gtk_im_context_set_client_window",  cast(void**)& gtk_im_context_set_client_window},
+	{ "gtk_im_context_get_preedit_string",  cast(void**)& gtk_im_context_get_preedit_string},
+	{ "gtk_im_context_filter_keypress",  cast(void**)& gtk_im_context_filter_keypress},
+	{ "gtk_im_context_focus_in",  cast(void**)& gtk_im_context_focus_in},
+	{ "gtk_im_context_focus_out",  cast(void**)& gtk_im_context_focus_out},
+	{ "gtk_im_context_reset",  cast(void**)& gtk_im_context_reset},
+	{ "gtk_im_context_set_cursor_location",  cast(void**)& gtk_im_context_set_cursor_location},
+	{ "gtk_im_context_set_use_preedit",  cast(void**)& gtk_im_context_set_use_preedit},
+	{ "gtk_im_context_set_surrounding",  cast(void**)& gtk_im_context_set_surrounding},
+	{ "gtk_im_context_get_surrounding",  cast(void**)& gtk_im_context_get_surrounding},
+	{ "gtk_im_context_delete_surrounding",  cast(void**)& gtk_im_context_delete_surrounding},
+	{ "gtk_plug_construct",  cast(void**)& gtk_plug_construct},
+	{ "gtk_plug_construct_for_display",  cast(void**)& gtk_plug_construct_for_display},
+	{ "gtk_plug_new",  cast(void**)& gtk_plug_new},
+	{ "gtk_plug_new_for_display",  cast(void**)& gtk_plug_new_for_display},
+	{ "gtk_plug_get_id",  cast(void**)& gtk_plug_get_id},
+	{ "gtk_socket_new",  cast(void**)& gtk_socket_new},
+	{ "gtk_socket_steal",  cast(void**)& gtk_socket_steal},
+	{ "gtk_socket_add_id",  cast(void**)& gtk_socket_add_id},
+	{ "gtk_socket_get_id",  cast(void**)& gtk_socket_get_id},
+	{ "gtk_curve_new",  cast(void**)& gtk_curve_new},
+	{ "gtk_curve_reset",  cast(void**)& gtk_curve_reset},
+	{ "gtk_curve_set_gamma",  cast(void**)& gtk_curve_set_gamma},
+	{ "gtk_curve_set_range",  cast(void**)& gtk_curve_set_range},
+	{ "gtk_curve_get_vector",  cast(void**)& gtk_curve_get_vector},
+	{ "gtk_curve_set_vector",  cast(void**)& gtk_curve_set_vector},
+	{ "gtk_curve_set_curve_type",  cast(void**)& gtk_curve_set_curve_type},
+	{ "gtk_gamma_curve_new",  cast(void**)& gtk_gamma_curve_new},
+	{ "gtk_ruler_set_metric",  cast(void**)& gtk_ruler_set_metric},
+	{ "gtk_ruler_set_range",  cast(void**)& gtk_ruler_set_range},
+	{ "gtk_ruler_get_metric",  cast(void**)& gtk_ruler_get_metric},
+	{ "gtk_ruler_get_range",  cast(void**)& gtk_ruler_get_range},
+	{ "gtk_hruler_new",  cast(void**)& gtk_hruler_new},
+	{ "gtk_vruler_new",  cast(void**)& gtk_vruler_new},
+	{ "gtk_recent_manager_new",  cast(void**)& gtk_recent_manager_new},
+	{ "gtk_recent_manager_get_default",  cast(void**)& gtk_recent_manager_get_default},
+	{ "gtk_recent_manager_get_for_screen",  cast(void**)& gtk_recent_manager_get_for_screen},
+	{ "gtk_recent_manager_set_screen",  cast(void**)& gtk_recent_manager_set_screen},
+	{ "gtk_recent_manager_add_item",  cast(void**)& gtk_recent_manager_add_item},
+	{ "gtk_recent_manager_add_full",  cast(void**)& gtk_recent_manager_add_full},
+	{ "gtk_recent_manager_remove_item",  cast(void**)& gtk_recent_manager_remove_item},
+	{ "gtk_recent_manager_lookup_item",  cast(void**)& gtk_recent_manager_lookup_item},
+	{ "gtk_recent_manager_has_item",  cast(void**)& gtk_recent_manager_has_item},
+	{ "gtk_recent_manager_move_item",  cast(void**)& gtk_recent_manager_move_item},
+	{ "gtk_recent_manager_get_limit",  cast(void**)& gtk_recent_manager_get_limit},
+	{ "gtk_recent_manager_set_limit",  cast(void**)& gtk_recent_manager_set_limit},
+	{ "gtk_recent_manager_get_items",  cast(void**)& gtk_recent_manager_get_items},
+	{ "gtk_recent_manager_purge_items",  cast(void**)& gtk_recent_manager_purge_items},
+	{ "gtk_recent_info_ref",  cast(void**)& gtk_recent_info_ref},
+	{ "gtk_recent_info_unref",  cast(void**)& gtk_recent_info_unref},
+	{ "gtk_recent_info_get_uri",  cast(void**)& gtk_recent_info_get_uri},
+	{ "gtk_recent_info_get_display_name",  cast(void**)& gtk_recent_info_get_display_name},
+	{ "gtk_recent_info_get_description",  cast(void**)& gtk_recent_info_get_description},
+	{ "gtk_recent_info_get_mime_type",  cast(void**)& gtk_recent_info_get_mime_type},
+	{ "gtk_recent_info_get_added",  cast(void**)& gtk_recent_info_get_added},
+	{ "gtk_recent_info_get_modified",  cast(void**)& gtk_recent_info_get_modified},
+	{ "gtk_recent_info_get_visited",  cast(void**)& gtk_recent_info_get_visited},
+	{ "gtk_recent_info_get_private_hint",  cast(void**)& gtk_recent_info_get_private_hint},
+	{ "gtk_recent_info_get_application_info",  cast(void**)& gtk_recent_info_get_application_info},
+	{ "gtk_recent_info_get_applications",  cast(void**)& gtk_recent_info_get_applications},
+	{ "gtk_recent_info_last_application",  cast(void**)& gtk_recent_info_last_application},
+	{ "gtk_recent_info_get_groups",  cast(void**)& gtk_recent_info_get_groups},
+	{ "gtk_recent_info_has_group",  cast(void**)& gtk_recent_info_has_group},
+	{ "gtk_recent_info_has_application",  cast(void**)& gtk_recent_info_has_application},
+	{ "gtk_recent_info_get_icon",  cast(void**)& gtk_recent_info_get_icon},
+	{ "gtk_recent_info_get_short_name",  cast(void**)& gtk_recent_info_get_short_name},
+	{ "gtk_recent_info_get_uri_display",  cast(void**)& gtk_recent_info_get_uri_display},
+	{ "gtk_recent_info_get_age",  cast(void**)& gtk_recent_info_get_age},
+	{ "gtk_recent_info_is_local",  cast(void**)& gtk_recent_info_is_local},
+	{ "gtk_recent_info_exists",  cast(void**)& gtk_recent_info_exists},
+	{ "gtk_recent_info_match",  cast(void**)& gtk_recent_info_match},
+	{ "gtk_recent_chooser_set_show_private",  cast(void**)& gtk_recent_chooser_set_show_private},
+	{ "gtk_recent_chooser_get_show_private",  cast(void**)& gtk_recent_chooser_get_show_private},
+	{ "gtk_recent_chooser_set_show_not_found",  cast(void**)& gtk_recent_chooser_set_show_not_found},
+	{ "gtk_recent_chooser_get_show_not_found",  cast(void**)& gtk_recent_chooser_get_show_not_found},
+	{ "gtk_recent_chooser_set_show_icons",  cast(void**)& gtk_recent_chooser_set_show_icons},
+	{ "gtk_recent_chooser_get_show_icons",  cast(void**)& gtk_recent_chooser_get_show_icons},
+	{ "gtk_recent_chooser_set_select_multiple",  cast(void**)& gtk_recent_chooser_set_select_multiple},
+	{ "gtk_recent_chooser_get_select_multiple",  cast(void**)& gtk_recent_chooser_get_select_multiple},
+	{ "gtk_recent_chooser_set_local_only",  cast(void**)& gtk_recent_chooser_set_local_only},
+	{ "gtk_recent_chooser_get_local_only",  cast(void**)& gtk_recent_chooser_get_local_only},
+	{ "gtk_recent_chooser_set_limit",  cast(void**)& gtk_recent_chooser_set_limit},
+	{ "gtk_recent_chooser_get_limit",  cast(void**)& gtk_recent_chooser_get_limit},
+	{ "gtk_recent_chooser_set_show_tips",  cast(void**)& gtk_recent_chooser_set_show_tips},
+	{ "gtk_recent_chooser_get_show_tips",  cast(void**)& gtk_recent_chooser_get_show_tips},
+	{ "gtk_recent_chooser_set_show_numbers",  cast(void**)& gtk_recent_chooser_set_show_numbers},
+	{ "gtk_recent_chooser_get_show_numbers",  cast(void**)& gtk_recent_chooser_get_show_numbers},
+	{ "gtk_recent_chooser_set_sort_type",  cast(void**)& gtk_recent_chooser_set_sort_type},
+	{ "gtk_recent_chooser_get_sort_type",  cast(void**)& gtk_recent_chooser_get_sort_type},
+	{ "gtk_recent_chooser_set_sort_func",  cast(void**)& gtk_recent_chooser_set_sort_func},
+	{ "gtk_recent_chooser_set_current_uri",  cast(void**)& gtk_recent_chooser_set_current_uri},
+	{ "gtk_recent_chooser_get_current_uri",  cast(void**)& gtk_recent_chooser_get_current_uri},
+	{ "gtk_recent_chooser_get_current_item",  cast(void**)& gtk_recent_chooser_get_current_item},
+	{ "gtk_recent_chooser_select_uri",  cast(void**)& gtk_recent_chooser_select_uri},
+	{ "gtk_recent_chooser_unselect_uri",  cast(void**)& gtk_recent_chooser_unselect_uri},
+	{ "gtk_recent_chooser_select_all",  cast(void**)& gtk_recent_chooser_select_all},
+	{ "gtk_recent_chooser_unselect_all",  cast(void**)& gtk_recent_chooser_unselect_all},
+	{ "gtk_recent_chooser_get_items",  cast(void**)& gtk_recent_chooser_get_items},
+	{ "gtk_recent_chooser_get_uris",  cast(void**)& gtk_recent_chooser_get_uris},
+	{ "gtk_recent_chooser_add_filter",  cast(void**)& gtk_recent_chooser_add_filter},
+	{ "gtk_recent_chooser_remove_filter",  cast(void**)& gtk_recent_chooser_remove_filter},
+	{ "gtk_recent_chooser_list_filters",  cast(void**)& gtk_recent_chooser_list_filters},
+	{ "gtk_recent_chooser_set_filter",  cast(void**)& gtk_recent_chooser_set_filter},
+	{ "gtk_recent_chooser_get_filter",  cast(void**)& gtk_recent_chooser_get_filter},
+	{ "gtk_recent_chooser_dialog_new",  cast(void**)& gtk_recent_chooser_dialog_new},
+	{ "gtk_recent_chooser_dialog_new_for_manager",  cast(void**)& gtk_recent_chooser_dialog_new_for_manager},
+	{ "gtk_recent_chooser_menu_new",  cast(void**)& gtk_recent_chooser_menu_new},
+	{ "gtk_recent_chooser_menu_new_for_manager",  cast(void**)& gtk_recent_chooser_menu_new_for_manager},
+	{ "gtk_recent_chooser_menu_get_show_numbers",  cast(void**)& gtk_recent_chooser_menu_get_show_numbers},
+	{ "gtk_recent_chooser_menu_set_show_numbers",  cast(void**)& gtk_recent_chooser_menu_set_show_numbers},
+	{ "gtk_recent_chooser_widget_new",  cast(void**)& gtk_recent_chooser_widget_new},
+	{ "gtk_recent_chooser_widget_new_for_manager",  cast(void**)& gtk_recent_chooser_widget_new_for_manager},
+	{ "gtk_recent_filter_new",  cast(void**)& gtk_recent_filter_new},
+	{ "gtk_recent_filter_get_name",  cast(void**)& gtk_recent_filter_get_name},
+	{ "gtk_recent_filter_set_name",  cast(void**)& gtk_recent_filter_set_name},
+	{ "gtk_recent_filter_add_mime_type",  cast(void**)& gtk_recent_filter_add_mime_type},
+	{ "gtk_recent_filter_add_pattern",  cast(void**)& gtk_recent_filter_add_pattern},
+	{ "gtk_recent_filter_add_pixbuf_formats",  cast(void**)& gtk_recent_filter_add_pixbuf_formats},
+	{ "gtk_recent_filter_add_application",  cast(void**)& gtk_recent_filter_add_application},
+	{ "gtk_recent_filter_add_group",  cast(void**)& gtk_recent_filter_add_group},
+	{ "gtk_recent_filter_add_age",  cast(void**)& gtk_recent_filter_add_age},
+	{ "gtk_recent_filter_add_custom",  cast(void**)& gtk_recent_filter_add_custom},
+	{ "gtk_recent_filter_get_needed",  cast(void**)& gtk_recent_filter_get_needed},
+	{ "gtk_recent_filter_filter",  cast(void**)& gtk_recent_filter_filter},
+	{ "gtk_buildable_set_name",  cast(void**)& gtk_buildable_set_name},
+	{ "gtk_buildable_get_name",  cast(void**)& gtk_buildable_get_name},
+	{ "gtk_buildable_add_child",  cast(void**)& gtk_buildable_add_child},
+	{ "gtk_buildable_set_buildable_property",  cast(void**)& gtk_buildable_set_buildable_property},
+	{ "gtk_buildable_construct_child",  cast(void**)& gtk_buildable_construct_child},
+	{ "gtk_buildable_custom_tag_start",  cast(void**)& gtk_buildable_custom_tag_start},
+	{ "gtk_buildable_custom_tag_end",  cast(void**)& gtk_buildable_custom_tag_end},
+	{ "gtk_buildable_custom_finished",  cast(void**)& gtk_buildable_custom_finished},
+	{ "gtk_buildable_parser_finished",  cast(void**)& gtk_buildable_parser_finished},
+	{ "gtk_buildable_get_internal_child",  cast(void**)& gtk_buildable_get_internal_child},
+	{ "gtk_builder_new",  cast(void**)& gtk_builder_new},
+	{ "gtk_builder_add_from_file",  cast(void**)& gtk_builder_add_from_file},
+	{ "gtk_builder_add_from_string",  cast(void**)& gtk_builder_add_from_string},
+	{ "gtk_builder_get_object",  cast(void**)& gtk_builder_get_object},
+	{ "gtk_builder_get_objects",  cast(void**)& gtk_builder_get_objects},
+	{ "gtk_builder_connect_signals",  cast(void**)& gtk_builder_connect_signals},
+	{ "gtk_builder_connect_signals_full",  cast(void**)& gtk_builder_connect_signals_full},
+	{ "gtk_builder_set_translation_domain",  cast(void**)& gtk_builder_set_translation_domain},
+	{ "gtk_builder_get_translation_domain",  cast(void**)& gtk_builder_get_translation_domain},
+	{ "gtk_builder_get_type_from_name",  cast(void**)& gtk_builder_get_type_from_name},
+	{ "gtk_builder_value_from_string",  cast(void**)& gtk_builder_value_from_string},
+	{ "gtk_builder_value_from_string_type",  cast(void**)& gtk_builder_value_from_string_type},
+	{ "gtk_file_selection_new",  cast(void**)& gtk_file_selection_new},
+	{ "gtk_file_selection_set_filename",  cast(void**)& gtk_file_selection_set_filename},
+	{ "gtk_file_selection_get_filename",  cast(void**)& gtk_file_selection_get_filename},
+	{ "gtk_file_selection_complete",  cast(void**)& gtk_file_selection_complete},
+	{ "gtk_file_selection_show_fileop_buttons",  cast(void**)& gtk_file_selection_show_fileop_buttons},
+	{ "gtk_file_selection_hide_fileop_buttons",  cast(void**)& gtk_file_selection_hide_fileop_buttons},
+	{ "gtk_file_selection_get_selections",  cast(void**)& gtk_file_selection_get_selections},
+	{ "gtk_file_selection_set_select_multiple",  cast(void**)& gtk_file_selection_set_select_multiple},
+	{ "gtk_file_selection_get_select_multiple",  cast(void**)& gtk_file_selection_get_select_multiple},
+	{ "gtk_item_factory_new",  cast(void**)& gtk_item_factory_new},
+	{ "gtk_item_factory_construct",  cast(void**)& gtk_item_factory_construct},
+	{ "gtk_item_factory_add_foreign",  cast(void**)& gtk_item_factory_add_foreign},
+	{ "gtk_item_factory_from_widget",  cast(void**)& gtk_item_factory_from_widget},
+	{ "gtk_item_factory_path_from_widget",  cast(void**)& gtk_item_factory_path_from_widget},
+	{ "gtk_item_factory_get_item",  cast(void**)& gtk_item_factory_get_item},
+	{ "gtk_item_factory_get_widget",  cast(void**)& gtk_item_factory_get_widget},
+	{ "gtk_item_factory_get_widget_by_action",  cast(void**)& gtk_item_factory_get_widget_by_action},
+	{ "gtk_item_factory_get_item_by_action",  cast(void**)& gtk_item_factory_get_item_by_action},
+	{ "gtk_item_factory_create_item",  cast(void**)& gtk_item_factory_create_item},
+	{ "gtk_item_factory_create_items",  cast(void**)& gtk_item_factory_create_items},
+	{ "gtk_item_factory_create_items_ac",  cast(void**)& gtk_item_factory_create_items_ac},
+	{ "gtk_item_factory_delete_item",  cast(void**)& gtk_item_factory_delete_item},
+	{ "gtk_item_factory_delete_entry",  cast(void**)& gtk_item_factory_delete_entry},
+	{ "gtk_item_factory_delete_entries",  cast(void**)& gtk_item_factory_delete_entries},
+	{ "gtk_item_factory_popup",  cast(void**)& gtk_item_factory_popup},
+	{ "gtk_item_factory_popup_with_data",  cast(void**)& gtk_item_factory_popup_with_data},
+	{ "gtk_item_factory_popup_data",  cast(void**)& gtk_item_factory_popup_data},
+	{ "gtk_item_factory_popup_data_from_widget",  cast(void**)& gtk_item_factory_popup_data_from_widget},
+	{ "gtk_item_factory_from_path",  cast(void**)& gtk_item_factory_from_path},
+	{ "gtk_item_factories_path_delete",  cast(void**)& gtk_item_factories_path_delete},
+	{ "gtk_item_factory_set_translate_func",  cast(void**)& gtk_item_factory_set_translate_func},
+	{ "gtk_tooltips_new",  cast(void**)& gtk_tooltips_new},
+	{ "gtk_tooltips_enable",  cast(void**)& gtk_tooltips_enable},
+	{ "gtk_tooltips_disable",  cast(void**)& gtk_tooltips_disable},
+	{ "gtk_tooltips_set_delay",  cast(void**)& gtk_tooltips_set_delay},
+	{ "gtk_tooltips_set_tip",  cast(void**)& gtk_tooltips_set_tip},
+	{ "gtk_tooltips_data_get",  cast(void**)& gtk_tooltips_data_get},
+	{ "gtk_tooltips_force_window",  cast(void**)& gtk_tooltips_force_window},
+	{ "gtk_tooltips_get_info_from_tip_window",  cast(void**)& gtk_tooltips_get_info_from_tip_window},
+	{ "gtk_progress_set_show_text",  cast(void**)& gtk_progress_set_show_text},
+	{ "gtk_progress_set_text_alignment",  cast(void**)& gtk_progress_set_text_alignment},
+	{ "gtk_progress_set_format_string",  cast(void**)& gtk_progress_set_format_string},
+	{ "gtk_progress_set_adjustment",  cast(void**)& gtk_progress_set_adjustment},
+	{ "gtk_progress_set_percentage",  cast(void**)& gtk_progress_set_percentage},
+	{ "gtk_progress_set_value",  cast(void**)& gtk_progress_set_value},
+	{ "gtk_progress_get_value",  cast(void**)& gtk_progress_get_value},
+	{ "gtk_progress_set_activity_mode",  cast(void**)& gtk_progress_set_activity_mode},
+	{ "gtk_progress_get_current_text",  cast(void**)& gtk_progress_get_current_text},
+	{ "gtk_progress_get_text_from_value",  cast(void**)& gtk_progress_get_text_from_value},
+	{ "gtk_progress_get_current_percentage",  cast(void**)& gtk_progress_get_current_percentage},
+	{ "gtk_progress_get_percentage_from_value",  cast(void**)& gtk_progress_get_percentage_from_value},
+	{ "gtk_progress_configure",  cast(void**)& gtk_progress_configure},
+
+];
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/gtk/c/gtktypes.d	Sat Jan 05 15:13:44 2008 -0800
@@ -0,0 +1,7676 @@
+/******************************************************************************
+
+    This file is part of gtkD.
+
+    gtkD is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation; either version 2.1 of the License, or
+    (at your option) any later version.
+ 
+    gtkD is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with gtkD; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+******************************************************************************/
+
+module dwt.internal.gtk.c.gtktypes;
+
+public import   dwt.internal.gtk.c.gdktypes,
+                dwt.internal.gtk.c.atktypes,
+                dwt.internal.gtk.c.glibtypes,
+                dwt.internal.gtk.c.cairotypes,
+                dwt.internal.gtk.c.pangotypes,
+                dwt.internal.gtk.c.gobjecttypes,
+                dwt.internal.gtk.c.gdkpixbuftypes;
+
+/******************************************************************************
+
+******************************************************************************/
+
+alias void GtkAccelGroupEntry;
+alias void GtkContainerClass;
+
+//alias GTokenType.G_TOKEN_LAST G_TOKEN_LAST;";
+//alias GtkSignalRunType.G_SIGNAL_RUN_FIRST G_SIGNAL_RUN_FIRST;
+//alias GtkSignalRunType.G_SIGNAL_RUN_LAST G_SIGNAL_RUN_LAST;
+//alias GtkSignalRunType.G_SIGNAL_NO_RECURSE G_SIGNAL_NO_RECURSE;
+//alias GtkSignalRunType.G_SIGNAL_ACTION G_SIGNAL_ACTION;
+//alias GtkSignalRunType.G_SIGNAL_NO_HOOKS G_SIGNAL_NO_HOOKS;
+
+/* GtkDragResult is now an enum. */
+//alias int GtkDragResult;
+//alias int GtkTooltip;
+alias uint time_t;
+
+/**
+ * typedef GType			GtkType;
+ * GtkType is unique integer identifying the type. The guts of the
+ * information about the type is held in a private struct named
+ * GtkTypeNode.
+ */
+public alias GType GtkType;
+
+/**
+ * typedef GType GtkFundamentalType;
+ * Warning
+ * GtkFundamentalType is deprecated and should not be used in newly-written code.
+ * GtkFundamentalType is an enumerated type which lists all the possible
+ * fundamental types (e.g. char, uchar, int,
+ * long, float, etc).
+ */
+public alias GType GtkFundamentalType;
+
+/**
+ * typedef GBaseInitFunc		GtkClassInitFunc;
+ * Warning
+ * GtkClassInitFunc is deprecated and should not be used in newly-written code.
+ * Defines a function pointer.
+ */
+public alias GBaseInitFunc GtkClassInitFunc;
+
+/**
+ * typedef GInstanceInitFunc	GtkObjectInitFunc;
+ * Warning
+ * GtkObjectInitFunc is deprecated and should not be used in newly-written code.
+ * Defines a function pointer.
+ */
+public alias GInstanceInitFunc GtkObjectInitFunc;
+
+/**
+ * typedef GSignalCMarshaller GtkSignalMarshaller;
+ * Warning
+ * GtkSignalMarshaller is deprecated and should not be used in newly-written code.
+ * Defines a function pointer.
+ */
+public alias GSignalCMarshaller GtkSignalMarshaller;
+
+/**
+ * typedef GTypeInstance		GtkTypeObject;
+ * Warning
+ * GtkTypeObject is deprecated and should not be used in newly-written code.
+ * A GtkTypeObject defines the minimum structure requirements
+ * for type instances. Type instances returned from gtk_type_new()
+ * and initialized through a GtkObjectInitFunc need to directly inherit
+ * from this structure or at least copy its fields one by one.
+ */
+public alias GTypeInstance GtkTypeObject;
+
+/**
+ * typedef GTypeClass		GtkTypeClass;
+ * Warning
+ * GtkTypeClass is deprecated and should not be used in newly-written code.
+ * The base structure for a GTK+ type. Every type inherits this as a base structure.
+ */
+public alias GTypeClass GtkTypeClass;
+
+/**
+ * typedef GEnumValue GtkEnumValue;
+ * Warning
+ * GtkEnumValue is deprecated and should not be used in newly-written code.
+ * A structure which contains a single enum value, and its name, and its
+ * nickname.
+ */
+public alias GEnumValue GtkEnumValue;
+
+/**
+ * typedef GFlagsValue GtkFlagValue;
+ * Warning
+ * GtkFlagValue is deprecated and should not be used in newly-written code.
+ */
+public alias GFlagsValue GtkFlagValue;
+/**
+ * The GtkDestDefaults enumeration specifies the various
+ * types of action that will be taken on behalf
+ * of the user for a drag destination site.
+ * GTK_DEST_DEFAULT_MOTION
+ */
+public enum GtkDestDefaults
+{
+	MOTION = 1 << 0, /+* respond to "dragMotion" +/
+	HIGHLIGHT = 1 << 1, /+* auto-highlight +/
+	DROP = 1 << 2, /+* respond to "dragDrop" +/
+	ALL = 0x07
+}
+alias GtkDestDefaults DestDefaults;
+
+/**
+ * The GtkTargetFlags enumeration is used to specify
+ * constraints on an entry in a GtkTargetTable.
+ * GTK_TARGET_SAME_APP
+ */
+public enum GtkTargetFlags
+{
+	SAME_APP = 1 << 0, /+*< nick=same-app >+/
+	SAME_WIDGET = 1 << 1, /+*< nick=same-widget >+/
+	OTHER_APP = 1 << 2, /+*< nick=other-app >+/
+	OTHER_WIDGET = 1 << 3 /+*< nick=other-widget >+/
+}
+alias GtkTargetFlags TargetFlags;
+
+/**
+ * Used to specify options for gtk_icon_theme_lookup_icon()
+ * GTK_ICON_LOOKUP_NO_SVG
+ */
+public enum GtkIconLookupFlags
+{
+	NO_SVG = 1 << 0,
+	FORCE_SVG = 1 << 1,
+	USE_BUILTIN = 1 << 2,
+	GENERIC_FALLBACK = 1 << 3
+}
+alias GtkIconLookupFlags IconLookupFlags;
+
+/**
+ * Error codes for GtkIconTheme operations.
+ * GTK_ICON_THEME_NOT_FOUND
+ */
+public enum GtkIconThemeError
+{
+	NOT_FOUND,
+	FAILED
+}
+alias GtkIconThemeError IconThemeError;
+
+public enum GtkIconSize
+{
+	INVALID,
+	MENU,
+	SMALL_TOOLBAR,
+	LARGE_TOOLBAR,
+	BUTTON,
+	DND,
+	DIALOG
+}
+alias GtkIconSize IconSize;
+
+/**
+ * The GtkRcFlags enumeration is used as a bitmask
+ * to specify which fields of a GtkRcStyle have been
+ * set for each state.
+ * GTK_RC_FG
+ * If present, the foreground color has been set for this state.
+ * GTK_RC_BG
+ * If present, the background color has been set for this state.
+ * GTK_RC_TEXT
+ * If present, the text color has been set for this state.
+ * GTK_RC_BASE
+ * If present, the base color has been set for this state.
+ */
+public enum GtkRcFlags
+{
+	FG = 1 << 0,
+	BG = 1 << 1,
+	TEXT = 1 << 2,
+	BASE = 1 << 3
+}
+alias GtkRcFlags RcFlags;
+
+/**
+ * The GtkRcTokenType enumeration represents the tokens
+ * in the RC file. It is exposed so that theme engines
+ * can reuse these tokens when parsing the theme-engine
+ * specific portions of a RC file.
+ */
+public enum GtkRcTokenType
+{
+	INVALID = TokenType.LAST,
+	INCLUDE,
+	NORMAL,
+	ACTIVE,
+	PRELIGHT,
+	SELECTED,
+	INSENSITIVE,
+	FG,
+	BG,
+	TEXT,
+	BASE,
+	XTHICKNESS,
+	YTHICKNESS,
+	FONT,
+	FONTSET,
+	FONT_NAME,
+	BG_PIXMAP,
+	PIXMAP_PATH,
+	STYLE,
+	BINDING,
+	BIND,
+	WIDGET,
+	WIDGET_CLASS,
+	CLASS,
+	LOWEST,
+	GTK,
+	APPLICATION,
+	THEME,
+	RC,
+	HIGHEST,
+	ENGINE,
+	MODULE_PATH,
+	IM_MODULE_PATH,
+	IM_MODULE_FILE,
+	STOCK,
+	LTR,
+	RTL,
+	COLOR,
+	UNBIND,
+	LAST
+}
+alias GtkRcTokenType RcTokenType;
+
+public enum GtkAccelFlags
+{
+	VISIBLE = 1 << 0, /+* display inn GtkAccelLabel? +/
+	LOCKED = 1 << 1, /+* is it removable? +/
+	MASK = 0x07
+}
+alias GtkAccelFlags AccelFlags;
+
+public enum GtkAnchorType
+{
+	CENTER,
+	NORTH,
+	NORTH_WEST,
+	NORTH_EAST,
+	SOUTH,
+	SOUTH_WEST,
+	SOUTH_EAST,
+	WEST,
+	EAST,
+	N = NORTH,
+	NW = NORTH_WEST,
+	NE = NORTH_EAST,
+	S = SOUTH,
+	SW = SOUTH_WEST,
+	SE = SOUTH_EAST,
+	W = WEST,
+	E = EAST
+}
+alias GtkAnchorType AnchorType;
+
+/**
+ * Used to indicate the direction in which a GtkArrow should point.
+ * GTK_ARROW_UP
+ * Represents an upward pointing arrow.
+ * GTK_ARROW_DOWN
+ * Represents a downward pointing arrow.
+ * GTK_ARROW_LEFT
+ * Represents a left pointing arrow.
+ * GTK_ARROW_RIGHT
+ * Represents a right pointing arrow.
+ * GTK_ARROW_NONE
+ * No arrow. Since 2.10.
+ */
+public enum GtkArrowType
+{
+	UP,
+	DOWN,
+	LEFT,
+	RIGHT,
+	NONE
+}
+alias GtkArrowType ArrowType;
+
+/**
+ * Denotes the expansion properties that a widget will have when it (or its
+ * parent) is resized.
+ * GTK_EXPAND
+ * the widget should expand to take up any extra space in its
+ * container that has been allocated.
+ * GTK_SHRINK
+ * the widget should shrink as and when possible.
+ * GTK_FILL
+ * the widget should fill the space allocated to it.
+ */
+public enum GtkAttachOptions
+{
+	EXPAND = 1 << 0,
+	SHRINK = 1 << 1,
+	FILL = 1 << 2
+}
+alias GtkAttachOptions AttachOptions;
+
+/**
+ * Used to dictate the style that a GtkButtonBox uses to layout the buttons it
+ * contains. (See also: GtkVButtonBox and GtkHButtonBox).
+ * GTK_BUTTONBOX_DEFAULT_STYLE
+ * Default packing.
+ * GTK_BUTTONBOX_SPREAD
+ * Buttons are evenly spread across the box.
+ * GTK_BUTTONBOX_EDGE
+ * Buttons are placed at the edges of the box.
+ * GTK_BUTTONBOX_START
+ * Buttons are grouped towards the start of the box,
+ */
+public enum GtkButtonBoxStyle
+{
+	DEFAULT_STYLE,
+	SPREAD,
+	EDGE,
+	START,
+	END,
+	CENTER
+}
+alias GtkButtonBoxStyle ButtonBoxStyle;
+
+/**
+ * Specifies which corner a child widget should be placed in when packed into
+ * a GtkScrolledWindow. This is effectively the opposite of where the scroll
+ * bars are placed.
+ * GTK_CORNER_TOP_LEFT
+ * Place the scrollbars on the right and bottom of the
+ * widget (default behaviour).
+ * GTK_CORNER_BOTTOM_LEFT
+ * Place the scrollbars on the top and right of the
+ * widget.
+ * GTK_CORNER_TOP_RIGHT
+ * Place the scrollbars on the left and bottom of the
+ * widget.
+ * GTK_CORNER_BOTTOM_RIGHT
+ * Place the scrollbars on the top and left of the
+ * widget.
+ */
+public enum GtkCornerType
+{
+	TOP_LEFT,
+	BOTTOM_LEFT,
+	TOP_RIGHT,
+	BOTTOM_RIGHT
+}
+alias GtkCornerType CornerType;
+
+public enum GtkCurveType
+{
+	TYPE_LINEAR, /+* linear interpolation +/
+	TYPE_SPLINE, /+* spline interpolation +/
+	TYPE_FREE /+* free form curve +/
+}
+alias GtkCurveType CurveType;
+
+public enum GtkDeleteType
+{
+	CHARS,
+	WORD_ENDS, /+* delet only the portion of the word to the
+	 * left/right of cursor if we're inn the middle
+	 * of a word +/
+	WORDS,
+	DISPLAY_LINES,
+	DISPLAY_LINE_ENDS,
+	PARAGRAPH_ENDS, /+* like C-k inn Emacs (or its reverse) +/
+	PARAGRAPHS, /+* C-k inn pico, kill whole line +/
+	WHITESPACE /+* M-\ inn Emacs +/
+}
+alias GtkDeleteType DeleteType;
+
+public enum GtkDirectionType
+{
+	TAB_FORWARD,
+	TAB_BACKWARD,
+	UP,
+	DOWN,
+	LEFT,
+	RIGHT
+}
+alias GtkDirectionType DirectionType;
+
+/**
+ * Used to specify the style of the expanders drawn by a GtkTreeView.
+ * GTK_EXPANDER_COLLAPSED
+ * The style used for a collapsed subtree.
+ * GTK_EXPANDER_SEMI_COLLAPSED
+ * Intermediate style used during animation.
+ * GTK_EXPANDER_SEMI_EXPANDED
+ * Intermediate style used during animation.
+ * GTK_EXPANDER_EXPANDED
+ * The style used for an expanded subtree.
+ */
+public enum GtkExpanderStyle
+{
+	COLLAPSED,
+	SEMI_COLLAPSED,
+	SEMI_EXPANDED,
+	EXPANDED
+}
+alias GtkExpanderStyle ExpanderStyle;
+
+public enum GtkIMPreeditStyle
+{
+	NOTHING,
+	CALLBACK,
+	NONE
+}
+alias GtkIMPreeditStyle IMPreeditStyle;
+
+public enum GtkIMStatusStyle
+{
+	NOTHING,
+	CALLBACK,
+	NONE
+}
+alias GtkIMStatusStyle IMStatusStyle;
+
+/**
+ * Used for justifying the text inside a GtkLabel widget. (See also
+ * GtkAlignment).
+ * GTK_JUSTIFY_LEFT
+ * The text is placed at the left edge of the label.
+ * GTK_JUSTIFY_RIGHT
+ * The text is placed at the right edge of the label.
+ * GTK_JUSTIFY_CENTER
+ * The text is placed in the center of the label.
+ * GTK_JUSTIFY_FILL
+ * The text is placed is distributed across the label.
+ */
+public enum GtkJustification
+{
+	JUSTIFY_LEFT,
+	JUSTIFY_RIGHT,
+	JUSTIFY_CENTER,
+	JUSTIFY_FILL
+}
+alias GtkJustification Justification;
+
+/**
+ * Warning
+ * GtkMatchType is deprecated and should not be used in newly-written code.
+ */
+public enum GtkMatchType
+{
+	ALL, /+* "*A?A*" +/
+	ALL_TAIL, /+* "*A?AA" +/
+	HEAD, /+* "AAAA*" +/
+	TAIL, /+* "*AAAA" +/
+	EXACT, /+* "AAAAA" +/
+	LAST
+}
+alias GtkMatchType MatchType;
+
+/**
+ * Used to indicate which metric is used by a GtkRuler.
+ * GTK_PIXELS
+ * Pixels.
+ * GTK_INCHES
+ * Inches.
+ * GTK_CENTIMETERS
+ * Centimeters.
+ */
+public enum GtkMetricType
+{
+	PIXELS,
+	INCHES,
+	CENTIMETERS
+}
+alias GtkMetricType MetricType;
+
+public enum GtkMovementStep
+{
+	LOGICAL_POSITIONS, /+* move by forw/back graphemes +/
+	VISUAL_POSITIONS, /+* move by left/right graphemes +/
+	WORDS, /+* move by forward/back words +/
+	DISPLAY_LINES, /+* move up/down lines (wrapped lines) +/
+	DISPLAY_LINE_ENDS, /+* move up/down lines (wrapped lines) +/
+	PARAGRAPHS, /+* move up/down paragraphs (newline-ended lines) +/
+	PARAGRAPH_ENDS, /+* move to either end of a paragraph +/
+	PAGES, /+* move by pages +/
+	BUFFER_ENDS, /+* move to ends of the buffer +/
+	HORIZONTAL_PAGES /+* move horizontally by pages +/
+}
+alias GtkMovementStep MovementStep;
+
+/**
+ * Represents the orientation of widgets which can be switched between horizontal
+ * and vertical orientation on the fly, like GtkToolbar.
+ * GTK_ORIENTATION_HORIZONTAL
+ * The widget is in horizontal orientation.
+ * GTK_ORIENTATION_VERTICAL
+ * The widget is in vertical orientation.
+ */
+public enum GtkOrientation
+{
+	HORIZONTAL,
+	VERTICAL
+}
+alias GtkOrientation Orientation;
+
+/**
+ * Represents the packing location GtkBox children. (See: GtkVBox,
+ * GtkHBox, and GtkButtonBox).
+ * GTK_PACK_START
+ * The child is packed into the start of the box
+ * GTK_PACK_END
+ * The child is packed into the end of the box
+ */
+public enum GtkPackType
+{
+	START,
+	END
+}
+alias GtkPackType PackType;
+
+public enum GtkPathPriorityType
+{
+	LOWEST = 0,
+	GTK = 4,
+	APPLICATION = 8,
+	THEME = 10,
+	RC = 12,
+	HIGHEST = 15
+}
+alias GtkPathPriorityType PathPriorityType;
+
+public enum GtkPathType
+{
+	WIDGET,
+	WIDGET_CLASS,
+	CLASS
+}
+alias GtkPathType PathType;
+
+/**
+ * Determines when a scroll bar will be visible.
+ * GTK_POLICY_ALWAYS
+ * The scrollbar is always visible.
+ * GTK_POLICY_AUTOMATIC
+ * The scrollbar will appear and disappear as necessary. For example,
+ * when all of a GtkCList can not be seen.
+ * GTK_POLICY_NEVER
+ * The scrollbar will never appear.
+ */
+public enum GtkPolicyType
+{
+	ALWAYS,
+	AUTOMATIC,
+	NEVER
+}
+alias GtkPolicyType PolicyType;
+
+/**
+ * Describes which edge of a widget a certain feature is positioned at, e.g. the
+ * tabs of a GtkNotebook, the handle of a GtkHandleBox or the label of a
+ * GtkScale.
+ * GTK_POS_LEFT
+ * The feature is at the left edge.
+ * GTK_POS_RIGHT
+ * The feature is at the right edge.
+ * GTK_POS_TOP
+ * The feature is at the top edge.
+ * GTK_POS_BOTTOM
+ * The feature is at the bottom edge.
+ */
+public enum GtkPositionType
+{
+	LEFT,
+	RIGHT,
+	TOP,
+	BOTTOM
+}
+alias GtkPositionType PositionType;
+
+/**
+ * Warning
+ * GtkPreviewType is deprecated and should not be used in newly-written code.
+ * An enumeration which describes whether a preview
+ * contains grayscale or red-green-blue data.
+ * GTK_PREVIEW_COLOR
+ * the preview contains red-green-blue data.
+ * GTK_PREVIEW_GRAYSCALE
+ * The preview contains grayscale data.
+ */
+public enum GtkPreviewType
+{
+	COLOR,
+	GRAYSCALE
+}
+alias GtkPreviewType PreviewType;
+
+/**
+ * Indicated the relief to be drawn around a GtkButton.
+ * GTK_RELIEF_NORMAL
+ * Draw a normal relief.
+ * GTK_RELIEF_HALF
+ * A half relief.
+ * GTK_RELIEF_NONE
+ * No relief.
+ */
+public enum GtkReliefStyle
+{
+	NORMAL,
+	HALF,
+	NONE
+}
+alias GtkReliefStyle ReliefStyle;
+
+/**
+ * GTK_RESIZE_PARENT
+ * GTK_RESIZE_QUEUE
+ * GTK_RESIZE_IMMEDIATE
+ * Deprecated.
+ */
+public enum GtkResizeMode
+{
+	PARENT, /+* Pass resize request to the parent +/
+	QUEUE, /+* Queue resizes on this widget +/
+	IMMEDIATE /+* Perform the resizes now +/
+}
+alias GtkResizeMode ResizeMode;
+
+public enum GtkScrollStep
+{
+	STEPS,
+	PAGES,
+	ENDS,
+	HORIZONTAL_STEPS,
+	HORIZONTAL_PAGES,
+	HORIZONTAL_ENDS
+}
+alias GtkScrollStep ScrollStep;
+
+public enum GtkScrollType
+{
+	NONE,
+	JUMP,
+	STEP_BACKWARD,
+	STEP_FORWARD,
+	PAGE_BACKWARD,
+	PAGE_FORWARD,
+	STEP_UP,
+	STEP_DOWN,
+	PAGE_UP,
+	PAGE_DOWN,
+	STEP_LEFT,
+	STEP_RIGHT,
+	PAGE_LEFT,
+	PAGE_RIGHT,
+	START,
+	END
+}
+alias GtkScrollType ScrollType;
+
+/**
+ * Used to control what selections users are allowed to make.
+ * GTK_SELECTION_NONE
+ * No selection is possible.
+ * GTK_SELECTION_SINGLE
+ * Zero or one element may be selected.
+ * GTK_SELECTION_BROWSE
+ * Exactly one element is selected. In some circumstances,
+ */
+public enum GtkSelectionMode
+{
+	NONE, /+* Nothing can be selected +/
+	SINGLE,
+	BROWSE,
+	MULTIPLE,
+	EXTENDED = MULTIPLE /+* Deprecated +/
+}
+alias GtkSelectionMode SelectionMode;
+
+/**
+ * Used to change the appearance of an outline typically provided by a GtkFrame.
+ * GTK_SHADOW_NONE
+ * No outline.
+ * GTK_SHADOW_IN
+ * The outline is bevelled inwards.
+ * GTK_SHADOW_OUT
+ * The outline is bevelled outwards like a button.
+ * GTK_SHADOW_ETCHED_IN
+ * The outline has a sunken 3d appearance.
+ * GTK_SHADOW_ETCHED_OUT
+ * The outline has a raised 3d appearance
+ */
+public enum GtkShadowType
+{
+	NONE,
+	IN,
+	OUT,
+	ETCHED_IN,
+	ETCHED_OUT
+}
+alias GtkShadowType ShadowType;
+
+/**
+ * Warning
+ * GtkSideType is deprecated and should not be used in newly-written code.
+ */
+public enum GtkSideType
+{
+	TOP,
+	BOTTOM,
+	LEFT,
+	RIGHT
+}
+alias GtkSideType SideType;
+
+/**
+ * This type indicates the current state of a widget; the state determines how
+ * the widget is drawn. The GtkStateType enumeration is also used to
+ * identify different colors in a GtkStyle for drawing, so states can be
+ * used for subparts of a widget as well as entire widgets.
+ * GTK_STATE_NORMAL
+ * State during normal operation.
+ * GTK_STATE_ACTIVE
+ * State of a currently active widget, such as a depressed button.
+ * GTK_STATE_PRELIGHT
+ * State indicating that the mouse pointer is over
+ * the widget and the widget will respond to mouse clicks.
+ * GTK_STATE_SELECTED
+ * State of a selected item, such the selected row in a list.
+ * GTK_STATE_INSENSITIVE
+ * State indicating that the widget is
+ * unresponsive to user actions.
+ */
+public enum GtkStateType
+{
+	NORMAL,
+	ACTIVE,
+	PRELIGHT,
+	SELECTED,
+	INSENSITIVE
+}
+alias GtkStateType StateType;
+
+/**
+ * Warning
+ * GtkSubmenuDirection is deprecated and should not be used in newly-written code.
+ * Indicates the direction a sub-menu will appear.
+ * GTK_DIRECTION_LEFT
+ * A sub-menu will appear
+ * GTK_DIRECTION_RIGHT
+ */
+public enum GtkSubmenuDirection
+{
+	DIRECTION_LEFT,
+	DIRECTION_RIGHT
+}
+alias GtkSubmenuDirection SubmenuDirection;
+
+/**
+ * Warning
+ * GtkSubmenuPlacement is deprecated and should not be used in newly-written code.
+ */
+public enum GtkSubmenuPlacement
+{
+	TOP_BOTTOM,
+	LEFT_RIGHT
+}
+alias GtkSubmenuPlacement SubmenuPlacement;
+
+/**
+ * Used to customize the appearance of a GtkToolbar. Note that
+ * setting the toolbar style overrides the user's preferences
+ * for the default toolbar style. Note that if the button has only
+ * a label set and GTK_TOOLBAR_ICONS is used, the label will be
+ * visible, and vice versa.
+ * GTK_TOOLBAR_ICONS
+ * Buttons display only icons in the toolbar.
+ * GTK_TOOLBAR_TEXT
+ * Buttons display only text labels in the toolbar.
+ * GTK_TOOLBAR_BOTH
+ * Buttons display text and icons in the toolbar.
+ * GTK_TOOLBAR_BOTH_HORIZ
+ * Buttons display icons and text alongside each
+ * other, rather than vertically stacked
+ */
+public enum GtkToolbarStyle
+{
+	ICONS,
+	TEXT,
+	BOTH,
+	BOTH_HORIZ
+}
+alias GtkToolbarStyle ToolbarStyle;
+
+public enum GtkUpdateType
+{
+	CONTINUOUS,
+	DISCONTINUOUS,
+	DELAYED
+}
+alias GtkUpdateType UpdateType;
+
+/**
+ * Used by GtkCList and GtkCTree to indicate whether a row is visible.
+ * GTK_VISIBILITY_NONE
+ * The row is not visible.
+ * GTK_VISIBILITY_PARTIAL
+ * The row is partially visible.
+ * GTK_VISIBILITY_FULL
+ * The row is fully visible.
+ */
+public enum GtkVisibility
+{
+	NONE,
+	PARTIAL,
+	FULL
+}
+alias GtkVisibility Visibility;
+
+/**
+ * Window placement can be influenced using this enumeration.
+ * GTK_WIN_POS_NONE
+ * No influence is made on placement.
+ * GTK_WIN_POS_CENTER
+ * Windows should be placed in the center of the screen.
+ * GTK_WIN_POS_MOUSE
+ * Windows should be placed at the current mouse position.
+ * GTK_WIN_POS_CENTER_ALWAYS
+ * Keep window centered as it changes size, etc.
+ * GTK_WIN_POS_CENTER_ON_PARENT
+ * Center the window on its transient
+ * parent (see gtk_window_set_transient_for()).
+ */
+public enum GtkWindowPosition
+{
+	POS_NONE,
+	POS_CENTER,
+	POS_MOUSE,
+	POS_CENTER_ALWAYS,
+	POS_CENTER_ON_PARENT
+}
+alias GtkWindowPosition WindowPosition;
+
+/**
+ * A GtkWindow can be one of these types. Most things you'd consider a
+ * "window" should have type GTK_WINDOW_TOPLEVEL; windows with this type
+ * are managed by the window manager and have a frame by default (call
+ * gtk_window_set_decorated() to toggle the frame). Windows with type
+ * GTK_WINDOW_POPUP are ignored by the window manager; window manager
+ * keybindings won't work on them, the window manager won't decorate the
+ * window with a frame, many GTK+ features that rely on the window
+ * manager will not work (e.g. resize grips and
+ * maximization/minimization). GTK_WINDOW_POPUP is used to implement
+ * widgets such as GtkMenu or tooltips that you normally don't think of
+ * as windows per se. Nearly all windows should be GTK_WINDOW_TOPLEVEL.
+ * In particular, do not use GTK_WINDOW_POPUP just to turn off
+ * the window borders; use gtk_window_set_decorated() for that.
+ * GTK_WINDOW_TOPLEVEL
+ * A regular window, such as a dialog.
+ * GTK_WINDOW_POPUP
+ * A special window such as a tooltip.
+ */
+public enum GtkWindowType
+{
+	TOPLEVEL,
+	POPUP
+}
+alias GtkWindowType WindowType;
+
+/**
+ * Determines the direction of a sort.
+ * GTK_SORT_ASCENDING
+ * Sorting is in ascending order.
+ * GTK_SORT_DESCENDING
+ * Sorting is in descending order.
+ */
+public enum GtkSortType
+{
+	ASCENDING,
+	DESCENDING
+}
+alias GtkSortType SortType;
+
+/**
+ * Gives an indication why a drag operation failed.
+ * The value can by obtained by connecting to the
+ * "drag-failed" signal.
+ * GTK_DRAG_RESULT_SUCCESS
+ * The drag operation was successful
+ * GTK_DRAG_RESULT_NO_TARGET
+ * No suitable drag target
+ * GTK_DRAG_RESULT_USER_CANCELLED
+ * The user cancelled the drag operation
+ * GTK_DRAG_RESULT_TIMEOUT_EXPIRED
+ * The drag operation timed out
+ * GTK_DRAG_RESULT_GRAB_BROKEN
+ * The pointer or keyboard grab used
+ */
+public enum GtkDragResult
+{
+	SUCCESS,
+	NO_TARGET,
+	USER_CANCELLED,
+	TIMEOUT_EXPIRED,
+	GRAB_BROKEN,
+	ERROR
+}
+alias GtkDragResult DragResult;
+
+/**
+ * Warning
+ * GtkSignalRunType is deprecated and should not be used in newly-written code.
+ * These configure the signal's emission. They control
+ * whether the signal can be emitted recursively on an object
+ * and
+ * whether to run the default method before or after the user-defined handlers.
+ * GTK_RUN_FIRST
+ * Run the default handler before the connected user-defined
+ * handlers.
+ * GTK_RUN_LAST
+ * Run the default handler after the connected
+ * user-defined handlers.
+ * (Handlers registered as "after" always run after the default handler though)
+ * GTK_RUN_BOTH
+ * Run the default handler twice,
+ * once before the user-defined handlers,
+ * and
+ * once after.
+ * GTK_RUN_NO_RECURSE
+ * Whether to prevent a handler or hook
+ * from reemitting the signal from within itself.
+ * Attempts to
+ * emit the signal while it is running will result in the signal
+ * emission being restarted once it is done with the current processing.
+ * You must be
+ * careful to avoid having two handlers endlessly reemitting signals,
+ * gtk_signal_n_emissions() can be helpful.
+ * GTK_RUN_ACTION
+ * The signal is an action you can
+ * invoke without any particular setup or cleanup.
+ * The signal is treated no differently, but some
+ * other code can determine if the signal is appropriate to
+ * delegate to user control. For example, key binding sets
+ * only allow bindings of ACTION signals to keystrokes.
+ * GTK_RUN_NO_HOOKS
+ * This prevents the connection of emission hooks
+ * to the signal.
+ */
+public enum GtkSignalRunType
+{
+	RUN_FIRST = SignalFlags.RUN_FIRST,
+	RUN_LAST = SignalFlags.RUN_LAST,
+	RUN_BOTH = (RUN_FIRST | RUN_LAST),
+	RUN_NO_RECURSE = SignalFlags.NO_RECURSE,
+	RUN_ACTION = SignalFlags.ACTION,
+	RUN_NO_HOOKS = SignalFlags.NO_HOOKS
+}
+alias GtkSignalRunType SignalRunType;
+
+/**
+ * Flags used to influence dialog construction.
+ * GTK_DIALOG_MODAL
+ * Make the constructed dialog modal,
+ */
+public enum GtkDialogFlags
+{
+	MODAL = 1 << 0, /+* call windowSetModal (win, TRUE) +/
+	DESTROY_WITH_PARENT = 1 << 1, /+* call windowSetDestroyWithParent () +/
+	NO_SEPARATOR = 1 << 2 /+* no separator bar above buttons +/
+}
+alias GtkDialogFlags DialogFlags;
+
+/**
+ * Predefined values for use as response ids in gtk_dialog_add_button().
+ * All predefined values are negative, GTK+ leaves positive values for
+ * application-defined response ids.
+ * GTK_RESPONSE_NONE
+ * Returned if an action widget has no response id, or if
+ */
+public enum GtkResponseType
+{
+	/+* GTK returns this if a response widget has no responseId,
+	 * or if the dialog gets programmatically hidden or destroyed.
+	+/
+	GTK_RESPONSE_NONE = -1,
+	/+* GTK won't return these unless you pass them inn
+	 * as the response for an action widget. They are
+	 * for your convenience.
+	+/
+	GTK_RESPONSE_REJECT = -2,
+	GTK_RESPONSE_ACCEPT = -3,
+	/+* If the dialog is deleted. +/
+	GTK_RESPONSE_DELETE_EVENT = -4,
+	/+* These are returned from GTK dialogs, and you can also use them
+	 * yourself if you like.
+	+/
+	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
+}
+alias GtkResponseType ResponseType;
+
+/**
+ * The type of message being displayed in the dialog.
+ * GTK_MESSAGE_INFO
+ * Informational message
+ * GTK_MESSAGE_WARNING
+ * Nonfatal warning message
+ * GTK_MESSAGE_QUESTION
+ * Question requiring a choice
+ * GTK_MESSAGE_ERROR
+ * Fatal error message
+ * GTK_MESSAGE_OTHER
+ */
+public enum GtkMessageType
+{
+	INFO,
+	WARNING,
+	QUESTION,
+	ERROR,
+	OTHER
+}
+alias GtkMessageType MessageType;
+
+/**
+ * Prebuilt sets of buttons for the dialog. If
+ * none of these choices are appropriate, simply use GTK_BUTTONS_NONE
+ * then call gtk_dialog_add_buttons().
+ * GTK_BUTTONS_NONE
+ * no buttons at all
+ * GTK_BUTTONS_OK
+ * an OK button
+ * GTK_BUTTONS_CLOSE
+ * a Close button
+ * GTK_BUTTONS_CANCEL
+ * a Cancel button
+ * GTK_BUTTONS_YES_NO
+ * Yes and No buttons
+ * GTK_BUTTONS_OK_CANCEL
+ * OK and Cancel buttons
+ */
+public enum GtkButtonsType
+{
+	NONE,
+	OK,
+	CLOSE,
+	CANCEL,
+	YES_NO,
+	OK_CANCEL
+}
+alias GtkButtonsType ButtonsType;
+
+/**
+ * An enum for determining the page role inside the GtkAssistant. It's used to
+ * handle buttons sensitivity and visibility.
+ * Note that an assistant needs to end its page flow with a page of type GTK_ASSISTANT_PAGE_CONFIRM
+ * or GTK_ASSISTANT_PAGE_SUMMARY to be correct.
+ * GTK_ASSISTANT_PAGE_CONTENT
+ * The page has regular contents.
+ * GTK_ASSISTANT_PAGE_INTRO
+ * The page contains an introduction to the assistant task.
+ * GTK_ASSISTANT_PAGE_CONFIRM
+ * The page lets the user confirm or deny the changes.
+ * GTK_ASSISTANT_PAGE_SUMMARY
+ * The page informs the user of the changes done.
+ * GTK_ASSISTANT_PAGE_PROGRESS
+ * Used for tasks that take a long time to complete, blocks the assistant until the page is marked as complete.
+ */
+public enum GtkAssistantPageType
+{
+	CONTENT,
+	INTRO,
+	CONFIRM,
+	SUMMARY,
+	PROGRESS
+}
+alias GtkAssistantPageType AssistantPageType;
+
+/**
+ * Describes the image data representation used by a GtkImage. If you
+ * want to get the image from the widget, you can only get the
+ * currently-stored representation. e.g. if the
+ * gtk_image_get_storage_type() returns GTK_IMAGE_PIXBUF, then you can
+ * call gtk_image_get_pixbuf() but not gtk_image_get_stock(). For empty
+ * images, you can request any storage type (call any of the "get"
+ * functions), but they will all return NULL values.
+ * GTK_IMAGE_EMPTY
+ * there is no image displayed by the widget
+ * GTK_IMAGE_PIXMAP
+ * the widget contains a GdkPixmap
+ * GTK_IMAGE_IMAGE
+ * the widget contains a GdkImage
+ * GTK_IMAGE_PIXBUF
+ * the widget contains a GdkPixbuf
+ * GTK_IMAGE_STOCK
+ * the widget contains a stock icon name (see Stock Items(3))
+ * GTK_IMAGE_ICON_SET
+ * the widget contains a GtkIconSet
+ * GTK_IMAGE_ANIMATION
+ * the widget contains a GdkPixbufAnimation
+ * GTK_IMAGE_ICON_NAME
+ * the widget contains a named icon.
+ */
+public enum GtkImageType
+{
+	EMPTY,
+	PIXMAP,
+	IMAGE,
+	PIXBUF,
+	STOCK,
+	ICON_SET,
+	ANIMATION,
+	ICON_NAME
+}
+alias GtkImageType ImageType;
+
+/**
+ * An enumeration representing possible orientations and growth
+ * directions for the visible progress bar.
+ * GTK_PROGRESS_LEFT_TO_RIGHT
+ * A horizontal progress bar growing from left to right.
+ * GTK_PROGRESS_RIGHT_TO_LEFT
+ * A horizontal progress bar growing from right to left.
+ * GTK_PROGRESS_BOTTOM_TO_TOP
+ * A vertical progress bar growing from bottom to top.
+ * GTK_PROGRESS_TOP_TO_BOTTOM
+ * A vertical progress bar growing from top to bottom.
+ */
+public enum GtkProgressBarOrientation
+{
+	LEFT_TO_RIGHT,
+	RIGHT_TO_LEFT,
+	BOTTOM_TO_TOP,
+	TOP_TO_BOTTOM
+}
+alias GtkProgressBarOrientation ProgressBarOrientation;
+
+/**
+ * An enumeration representing the styles for drawing the progress bar.
+ * GTK_PROGRESS_CONTINUOUS
+ * The progress bar grows in a smooth, continuous manner.
+ * GTK_PROGRESS_DISCRETE
+ * The progress bar grows in discrete, visible blocks.
+ */
+public enum GtkProgressBarStyle
+{
+	CONTINUOUS,
+	DISCRETE
+}
+alias GtkProgressBarStyle ProgressBarStyle;
+
+/**
+ * GTK_UPDATE_ALWAYS
+ * When refreshing your GtkSpinButton, the value is always displayed.
+ * GTK_UPDATE_IF_VALID
+ * When refreshing your GtkSpinButton, the value is only displayed if it is valid within the bounds of the spin button's GtkAdjustment.
+ */
+public enum GtkSpinButtonUpdatePolicy
+{
+	UPDATE_ALWAYS,
+	UPDATE_IF_VALID
+}
+alias GtkSpinButtonUpdatePolicy SpinButtonUpdatePolicy;
+
+/**
+ * GTK_SPIN_STEP_FORWARD,
+ * GTK_SPIN_STEP_BACKWARD,
+ * GTK_SPIN_PAGE_FORWARD,
+ * GTK_SPIN_PAGE_BACKWARD
+ * These values spin a GtkSpinButton by the relevant values of the spin button's GtkAdjustment.
+ * GTK_SPIN_HOME,
+ * GTK_SPIN_END
+ * These set the spin button's value to the minimum or maxmimum possible values, (set by its GtkAdjustment), respectively.
+ * GTK_SPIN_USER_DEFINED
+ * The programmer must specify the exact amount to spin the GtkSpinButton.
+ */
+public enum GtkSpinType
+{
+	STEP_FORWARD,
+	STEP_BACKWARD,
+	PAGE_FORWARD,
+	PAGE_BACKWARD,
+	HOME,
+	END,
+	USER_DEFINED
+}
+alias GtkSpinType SpinType;
+
+public enum GtkTextSearchFlags
+{
+	VISIBLE_ONLY = 1 << 0,
+	TEXT_ONLY = 1 << 1
+	/+* Possible future plans: SEARCH_CASE_INSENSITIVE, SEARCH_REGEXP +/
+}
+alias GtkTextSearchFlags TextSearchFlags;
+
+public enum GtkTextBufferTargetInfo
+{
+	BUFFER_CONTENTS = - 1,
+	RICH_TEXT = - 2,
+	TEXT = - 3
+}
+alias GtkTextBufferTargetInfo TextBufferTargetInfo;
+
+/**
+ * Describes a type of line wrapping.
+ * GTK_WRAP_NONE
+ * do not wrap lines; just make the text area wider
+ * GTK_WRAP_CHAR
+ * wrap text, breaking lines anywhere the cursor can
+ */
+public enum GtkWrapMode
+{
+	NONE,
+	CHAR,
+	WORD,
+	WORD_CHAR
+}
+alias GtkWrapMode WrapMode;
+
+public enum GtkTextWindowType
+{
+	PRIVATE,
+	WIDGET,
+	TEXT,
+	LEFT,
+	RIGHT,
+	TOP,
+	BOTTOM
+}
+alias GtkTextWindowType TextWindowType;
+
+/**
+ * These flags indicate various properties of a GtkTreeModel. They are
+ * returned by gtk_tree_model_get_flags(), and must be static for the
+ * lifetime of the object. A more complete description of
+ * GTK_TREE_MODEL_ITERS_PERSIST can be found in the overview of this
+ * section.
+ * GTK_TREE_MODEL_ITERS_PERSIST
+ * Iterators survive all signals emitted by the tree.
+ * GTK_TREE_MODEL_LIST_ONLY
+ * The model is a list only, and never has children
+ */
+public enum GtkTreeModelFlags
+{
+	ITERS_PERSIST = 1 << 0,
+	LIST_ONLY = 1 << 1
+}
+alias GtkTreeModelFlags TreeModelFlags;
+
+/**
+ * The sizing method the column uses to determine its width. Please note
+ * that GTK_TREE_VIEW_COLUMN_AUTOSIZE are inefficient for large views, and
+ * can make columns appear choppy.
+ * GTK_TREE_VIEW_COLUMN_GROW_ONLY
+ * Columns only get bigger in reaction to changes in the model
+ * GTK_TREE_VIEW_COLUMN_AUTOSIZE
+ * Columns resize to be the optimal size everytime the model changes.
+ * GTK_TREE_VIEW_COLUMN_FIXED
+ * Columns are a fixed numbers of pixels wide.
+ */
+public enum GtkTreeViewColumnSizing
+{
+	GROW_ONLY,
+	AUTOSIZE,
+	FIXED
+}
+alias GtkTreeViewColumnSizing TreeViewColumnSizing;
+
+/**
+ * An enum for determining where a dropped row goes.
+ * GTK_TREE_VIEW_DROP_BEFORE
+ * dropped row is inserted before
+ * GTK_TREE_VIEW_DROP_AFTER
+ * dropped row is inserted after
+ * GTK_TREE_VIEW_DROP_INTO_OR_BEFORE
+ * dropped row becomes a child or is inserted before
+ * GTK_TREE_VIEW_DROP_INTO_OR_AFTER
+ * dropped row becomes a child or is inserted after
+ */
+public enum GtkTreeViewDropPosition
+{
+	/+* drop before/after this row +/
+	GTK_TREE_VIEW_DROP_BEFORE,
+	GTK_TREE_VIEW_DROP_AFTER,
+	/+* drop as a child of this row (with fallback to before or after
+	 * if into is not possible)
+	+/
+	GTK_TREE_VIEW_DROP_INTO_OR_BEFORE,
+	GTK_TREE_VIEW_DROP_INTO_OR_AFTER
+}
+alias GtkTreeViewDropPosition TreeViewDropPosition;
+
+public enum GtkTreeViewGridLines
+{
+	NONE,
+	HORIZONTAL,
+	VERTICAL,
+	BOTH
+}
+alias GtkTreeViewGridLines TreeViewGridLines;
+
+/**
+ * An enum for determining where a dropped item goes.
+ * GTK_ICON_VIEW_NO_DROP
+ * no drop possible
+ * GTK_ICON_VIEW_DROP_INTO
+ * dropped item replaces the item
+ * GTK_ICON_VIEW_DROP_LEFT
+ * droppped item is inserted to the left
+ * GTK_ICON_VIEW_DROP_RIGHT
+ * dropped item is inserted to the right
+ * GTK_ICON_VIEW_DROP_ABOVE
+ * dropped item is inserted above
+ * GTK_ICON_VIEW_DROP_BELOW
+ * dropped item is inserted below
+ */
+public enum GtkIconViewDropPosition
+{
+	NO_DROP,
+	DROP_INTO,
+	DROP_LEFT,
+	DROP_RIGHT,
+	DROP_ABOVE,
+	DROP_BELOW
+}
+alias GtkIconViewDropPosition IconViewDropPosition;
+
+/**
+ * Tells how a cell is to be rendererd.
+ * GTK_CELL_RENDERER_SELECTED
+ * The cell is currently selected, and
+ * probably has a selection colored background to render to.
+ * GTK_CELL_RENDERER_PRELIT
+ * The mouse is hovering over the cell.
+ * GTK_CELL_RENDERER_INSENSITIVE
+ * The cell is drawn in an insensitive manner
+ * GTK_CELL_RENDERER_SORTED
+ * The cell is in a sorted row
+ * GTK_CELL_RENDERER_FOCUSED
+ * The cell is in the focus row.
+ */
+public enum GtkCellRendererState
+{
+	SELECTED = 1 << 0,
+	PRELIT = 1 << 1,
+	INSENSITIVE = 1 << 2,
+	/+* this flag means the cell is inn the sort column/row +/
+	SORTED = 1 << 3,
+	FOCUSED = 1 << 4
+}
+alias GtkCellRendererState CellRendererState;
+
+/**
+ * Identifies how the user can interact with a particular cell.
+ * GTK_CELL_RENDERER_MODE_INERT
+ * The cell is just for display
+ * and cannot be interacted with. Note that this doesn't mean that eg. the
+ * row being drawn can't be selected -- just that a particular element of
+ * it cannot be individually modified.
+ * GTK_CELL_RENDERER_MODE_ACTIVATABLE
+ * The cell can be clicked.
+ * GTK_CELL_RENDERER_MODE_EDITABLE
+ * The cell can be edited or otherwise modified.
+ */
+public enum GtkCellRendererMode
+{
+	MODE_INERT,
+	MODE_ACTIVATABLE,
+	MODE_EDITABLE
+}
+alias GtkCellRendererMode CellRendererMode;
+
+public enum GtkCellRendererAccelMode
+{
+	MODE_GTK,
+	MODE_OTHER
+}
+alias GtkCellRendererAccelMode CellRendererAccelMode;
+
+public enum GtkPackDirection
+{
+	LTR,
+	RTL,
+	TTB,
+	BTT
+}
+alias GtkPackDirection PackDirection;
+
+/**
+ * Warning
+ * GtkToolbarChildType is deprecated and should not be used in newly-written code.
+ * GtkToolbarChildType is used to set the type of new elements that are added
+ * to a GtkToolbar.
+ * GTK_TOOLBAR_CHILD_SPACE
+ * a space in the style of the toolbar's GtkToolbarSpaceStyle.
+ * GTK_TOOLBAR_CHILD_BUTTON
+ * a GtkButton.
+ * GTK_TOOLBAR_CHILD_TOGGLEBUTTON
+ * a GtkToggleButton.
+ * GTK_TOOLBAR_CHILD_RADIOBUTTON
+ * a GtkRadioButton.
+ * GTK_TOOLBAR_CHILD_WIDGET
+ * a standard GtkWidget.
+ */
+public enum GtkToolbarChildType
+{
+	SPACE,
+	BUTTON,
+	TOGGLEBUTTON,
+	RADIOBUTTON,
+	WIDGET
+}
+alias GtkToolbarChildType ToolbarChildType;
+
+public enum GtkToolbarSpaceStyle
+{
+	EMPTY,
+	LINE
+}
+alias GtkToolbarSpaceStyle ToolbarSpaceStyle;
+
+/**
+ * These enumeration values are used by gtk_ui_manager_add_ui() to determine
+ * what UI element to create.
+ * GTK_UI_MANAGER_AUTO
+ * Pick the type of the UI element according to context.
+ * GTK_UI_MANAGER_MENUBAR
+ * Create a menubar.
+ * GTK_UI_MANAGER_MENU
+ * Create a menu.
+ * GTK_UI_MANAGER_TOOLBAR
+ * Create a toolbar.
+ * GTK_UI_MANAGER_PLACEHOLDER
+ * Insert a placeholder.
+ * GTK_UI_MANAGER_POPUP
+ * Create a popup menu.
+ * GTK_UI_MANAGER_MENUITEM
+ * Create a menuitem.
+ * GTK_UI_MANAGER_TOOLITEM
+ * Create a toolitem.
+ * GTK_UI_MANAGER_SEPARATOR
+ * Create a separator.
+ * GTK_UI_MANAGER_ACCELERATOR
+ * Install an accelerator.
+ */
+public enum GtkUIManagerItemType
+{
+	AUTO = 0,
+	MENUBAR = 1 << 0,
+	MENU = 1 << 1,
+	TOOLBAR = 1 << 2,
+	PLACEHOLDER = 1 << 3,
+	POPUP = 1 << 4,
+	MENUITEM = 1 << 5,
+	TOOLITEM = 1 << 6,
+	SEPARATOR = 1 << 7,
+	ACCELERATOR = 1 << 8
+}
+alias GtkUIManagerItemType UIManagerItemType;
+
+/**
+ */
+public enum GtkFileChooserAction
+{
+	OPEN,
+	SAVE,
+	SELECT_FOLDER,
+	CREATE_FOLDER
+}
+alias GtkFileChooserAction FileChooserAction;
+
+/**
+ */
+public enum GtkFileChooserConfirmation
+{
+	CONFIRM,
+	ACCEPT_FILENAME,
+	SELECT_AGAIN
+}
+alias GtkFileChooserConfirmation FileChooserConfirmation;
+
+/**
+ */
+public enum GtkFileChooserError
+{
+	NONEXISTENT,
+	BAD_FILENAME,
+	ALREADY_EXISTS
+}
+alias GtkFileChooserError FileChooserError;
+
+/**
+ * These flags indicate what parts of a GtkFileFilterInfo struct
+ * are filled or need to be filled.
+ * GTK_FILE_FILTER_FILENAME
+ * the filename of the file being tested
+ * GTK_FILE_FILTER_URI
+ * the URI for the file being tested
+ * GTK_FILE_FILTER_DISPLAY_NAME
+ * the string that will be used to
+ */
+public enum GtkFileFilterFlags
+{
+	FILENAME = 1 << 0,
+	URI = 1 << 1,
+	DISPLAY_NAME = 1 << 2,
+	MIME_TYPE = 1 << 3
+}
+alias GtkFileFilterFlags FileFilterFlags;
+
+/**
+ * The status gives a rough indication of the completion
+ * of a running print operation.
+ * GTK_PRINT_STATUS_INITIAL
+ * The printing has not started yet; this
+ */
+public enum GtkPrintStatus
+{
+	INITIAL,
+	PREPARING,
+	GENERATING_DATA,
+	SENDING_DATA,
+	PENDING,
+	PENDING_ISSUE,
+	PRINTING,
+	FINISHED,
+	FINISHED_ABORTED
+}
+alias GtkPrintStatus PrintStatus;
+
+/**
+ * The action parameter to gtk_print_operation_run()
+ * determines what action the print operation should perform.
+ * GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG
+ * Show the print dialog.
+ * GTK_PRINT_OPERATION_ACTION_PRINT
+ * Start to print without showing
+ */
+public enum GtkPrintOperationAction
+{
+	PRINT_DIALOG,
+	PRINT,
+	PREVIEW,
+	EXPORT
+}
+alias GtkPrintOperationAction PrintOperationAction;
+
+/**
+ * A value of this type is returned by gtk_print_operation_run().
+ * GTK_PRINT_OPERATION_RESULT_ERROR
+ * An error has occured.
+ * GTK_PRINT_OPERATION_RESULT_APPLY
+ * The print settings should be stored.
+ * GTK_PRINT_OPERATION_RESULT_CANCEL
+ * The print operation has been canceled,
+ */
+public enum GtkPrintOperationResult
+{
+	ERROR,
+	APPLY,
+	CANCEL,
+	IN_PROGRESS
+}
+alias GtkPrintOperationResult PrintOperationResult;
+
+public enum GtkPrintError
+{
+	GENERAL,
+	INTERNAL_ERROR,
+	NOMEM,
+	INVALID_FILE
+}
+alias GtkPrintError PrintError;
+
+public enum GtkPageOrientation
+{
+	PORTRAIT,
+	LANDSCAPE,
+	REVERSE_PORTRAIT,
+	REVERSE_LANDSCAPE
+}
+alias GtkPageOrientation PageOrientation;
+
+public enum GtkPrintDuplex
+{
+	SIMPLEX,
+	HORIZONTAL,
+	VERTICAL
+}
+alias GtkPrintDuplex PrintDuplex;
+
+public enum GtkPrintQuality
+{
+	LOW,
+	NORMAL,
+	HIGH,
+	DRAFT
+}
+alias GtkPrintQuality PrintQuality;
+
+public enum GtkPrintPages
+{
+	ALL,
+	CURRENT,
+	RANGES
+}
+alias GtkPrintPages PrintPages;
+
+public enum GtkPageSet
+{
+	ALL,
+	EVEN,
+	ODD
+}
+alias GtkPageSet PageSet;
+
+public enum GtkUnit
+{
+	PIXEL,
+	POINTS,
+	INCH,
+	MM
+}
+alias GtkUnit Unit;
+
+/**
+ * An enum for specifying which features the print dialog should offer.
+ * If neither GTK_PRINT_CAPABILITY_GENERATE_PDF nor GTK_PRINT_CAPABILITY_GENERATE_PS is
+ * specified, GTK+ assumes that all formats are supported.
+ * GTK_PRINT_CAPABILITY_PAGE_SET
+ * GTK_PRINT_CAPABILITY_COPIES
+ * GTK_PRINT_CAPABILITY_COLLATE
+ * GTK_PRINT_CAPABILITY_REVERSE
+ * GTK_PRINT_CAPABILITY_SCALE
+ * GTK_PRINT_CAPABILITY_GENERATE_PDF
+ * The program will send the document to the printer in PDF format
+ * GTK_PRINT_CAPABILITY_GENERATE_PS
+ * The program will send the document to the printer in Postscript format
+ * GTK_PRINT_CAPABILITY_PREVIEW
+ * GTK_PRINT_CAPABILITY_NUMBER_UP
+ * Print dialog will offer printing multiple pages per sheet. Since 2.12
+ */
+public enum GtkPrintCapabilities
+{
+	CAPABILITY_PAGE_SET = 1 << 0,
+	CAPABILITY_COPIES = 1 << 1,
+	CAPABILITY_COLLATE = 1 << 2,
+	CAPABILITY_REVERSE = 1 << 3,
+	CAPABILITY_SCALE = 1 << 4,
+	CAPABILITY_GENERATE_PDF = 1 << 5,
+	CAPABILITY_GENERATE_PS = 1 << 6,
+	CAPABILITY_PREVIEW = 1 << 7,
+	CAPABILITY_NUMBER_UP = 1 << 8
+}
+alias GtkPrintCapabilities PrintCapabilities;
+
+/**
+ * These options can be used to influence the display and behaviour of a GtkCalendar.
+ * GTK_CALENDAR_SHOW_HEADING
+ * Specifies that the month and year should be displayed.
+ * GTK_CALENDAR_SHOW_DAY_NAMES
+ * Specifies that three letter day descriptions should be present.
+ * GTK_CALENDAR_NO_MONTH_CHANGE
+ * Prevents the user from switching months with the calendar.
+ * GTK_CALENDAR_SHOW_WEEK_NUMBERS
+ * Displays each week numbers of the current year, down the left side
+ */
+public enum GtkCalendarDisplayOptions
+{
+	SHOW_HEADING = 1 << 0,
+	SHOW_DAY_NAMES = 1 << 1,
+	NO_MONTH_CHANGE = 1 << 2,
+	SHOW_WEEK_NUMBERS = 1 << 3,
+	WEEK_START_MONDAY = 1 << 4
+}
+alias GtkCalendarDisplayOptions CalendarDisplayOptions;
+
+/**
+ * The mode of the size group determines the directions in which the size
+ * group affects the requested sizes of its component widgets.
+ * GTK_SIZE_GROUP_NONE
+ */
+public enum GtkSizeGroupMode
+{
+	NONE,
+	HORIZONTAL,
+	VERTICAL,
+	BOTH
+}
+alias GtkSizeGroupMode SizeGroupMode;
+
+/**
+ * An enumeration representing directional movements within a menu.
+ * GTK_MENU_DIR_PARENT
+ * To the parent menu shell.
+ * GTK_MENU_DIR_CHILD
+ * To the submenu, if any, associated with the item.
+ * GTK_MENU_DIR_NEXT
+ * To the next menu item.
+ * GTK_MENU_DIR_PREV
+ * To the previous menu item.
+ * Property Details
+ * The "take-focus" property
+ */
+public enum GtkMenuDirectionType
+{
+	PARENT,
+	CHILD,
+	NEXT,
+	PREV
+}
+alias GtkMenuDirectionType MenuDirectionType;
+
+/**
+ * Tells about the state of the object.
+ * GTK_IN_DESTRUCTION
+ * the object is currently being destroyed. This is used
+ */
+public enum GtkObjectFlags
+{
+	IN_DESTRUCTION = 1 << 0, /+* Used internally during dispose +/
+	FLOATING = 1 << 1,
+	RESERVED_1 = 1 << 2,
+	RESERVED_2 = 1 << 3
+}
+alias GtkObjectFlags ObjectFlags;
+
+/**
+ * Warning
+ * GtkArgFlags is deprecated and should not be used in newly-written code. Use corresponding GParamSpec features instead
+ * Possible flags indicating how an argument should be treated.
+ * GTK_ARG_READABLE
+ * the argument is readable. (i.e. can be queried)
+ * GTK_ARG_WRITABLE
+ * the argument is writable. (i.e. settable)
+ * GTK_ARG_CONSTRUCT
+ * the argument needs construction.
+ * GTK_ARG_CONSTRUCT_ONLY
+ * the argument needs construction (and will
+ * be set once during object creation), but is otherwise cannot be
+ * set. Hence this flag is not allowed with GTK_ARG_WRITABLE,
+ * and is redundant with GTK_ARG_CONSTRUCT.
+ * GTK_ARG_CHILD_ARG
+ * an argument type that applies to (and may be different for)
+ * each child. Used by GtkContainer.
+ */
+public enum GtkArgFlags
+{
+	READABLE = ParamFlags.READABLE,
+	WRITABLE = ParamFlags.WRITABLE,
+	CONSTRUCT = ParamFlags.CONSTRUCT,
+	CONSTRUCT_ONLY = ParamFlags.CONSTRUCT_ONLY,
+	CHILD_ARG = 1 << 4
+}
+alias GtkArgFlags ArgFlags;
+
+/**
+ * Determines how GTK+ handles the sensitivity of stepper arrows
+ * at the end of range widgets.
+ * GTK_SENSITIVITY_AUTO
+ * The arrow is made insensitive if the
+ */
+public enum GtkSensitivityType
+{
+	AUTO,
+	ON,
+	OFF
+}
+alias GtkSensitivityType SensitivityType;
+
+/**
+ * Tells about certain properties of the widget.
+ * GTK_TOPLEVEL
+ */
+public enum GtkWidgetFlags
+{
+	TOPLEVEL = 1 << 4,
+	NO_WINDOW = 1 << 5,
+	REALIZED = 1 << 6,
+	MAPPED = 1 << 7,
+	VISIBLE = 1 << 8,
+	SENSITIVE = 1 << 9,
+	PARENT_SENSITIVE = 1 << 10,
+	CAN_FOCUS = 1 << 11,
+	HAS_FOCUS = 1 << 12,
+	/+* widget is allowed to receive the defaulx via grabDefault
+	 * and will reserve space to draw the defaulx if possible
+	+/
+	CAN_DEFAULT = 1 << 13,
+	/+* the widget currently is receiving the defaulx action and should be drawn
+	 * appropriately if possible
+	+/
+	HAS_DEFAULT = 1 << 14,
+	HAS_GRAB = 1 << 15,
+	RC_STYLE = 1 << 16,
+	COMPOSITE_CHILD = 1 << 17,
+	NO_REPARENT = 1 << 18,
+	APP_PAINTABLE = 1 << 19,
+	/+* the widget when focused will receive the defaulx action and have
+	 * HAS_DEFAULT set even if there is a different widget set as defaulx
+	+/
+	RECEIVES_DEFAULT = 1 << 20,
+	DOUBLE_BUFFERED = 1 << 21,
+	NO_SHOW_ALL = 1 << 22
+}
+alias GtkWidgetFlags WidgetFlags;
+
+public enum GtkWidgetHelpType
+{
+	TOOLTIP,
+	WHATS_THIS
+}
+alias GtkWidgetHelpType WidgetHelpType;
+
+public enum GtkTextDirection
+{
+	NONE,
+	LTR,
+	RTL
+}
+alias GtkTextDirection TextDirection;
+
+/**
+ * Error codes for GtkRecentManager operations
+ * GTK_RECENT_MANAGER_ERROR_NOT_FOUND
+ */
+public enum GtkRecentManagerError
+{
+	NOT_FOUND,
+	INVALID_URI,
+	INVALID_ENCODING,
+	NOT_REGISTERED,
+	READ,
+	WRITE,
+	UNKNOWN
+}
+alias GtkRecentManagerError RecentManagerError;
+
+/**
+ * These identify the various errors that can occur while calling
+ * GtkRecentChooser functions.
+ * GTK_RECENT_CHOOSER_ERROR_NOT_FOUND
+ * Indicates that a file does not exist
+ * GTK_RECENT_CHOOSER_ERROR_INVALID_URI
+ * Indicates a malformed URI
+ */
+public enum GtkRecentChooserError
+{
+	NOT_FOUND,
+	INVALID_URI
+}
+alias GtkRecentChooserError RecentChooserError;
+
+/**
+ * Used to specify the sorting method to be applyed to the recently
+ * used resource list.
+ * GTK_RECENT_SORT_NONE
+ */
+public enum GtkRecentSortType
+{
+	NONE = 0,
+	MRU,
+	LRU,
+	CUSTOM
+}
+alias GtkRecentSortType RecentSortType;
+
+/**
+ * These flags indicate what parts of a GtkRecentFilterInfo struct
+ * are filled or need to be filled.
+ * GTK_RECENT_FILTER_URI
+ * the URI of the file being tested
+ * GTK_RECENT_FILTER_DISPLAY_NAME
+ * the string that will be used to
+ */
+public enum GtkRecentFilterFlags
+{
+	URI = 1 << 0,
+	DISPLAY_NAME = 1 << 1,
+	MIME_TYPE = 1 << 2,
+	APPLICATION = 1 << 3,
+	GROUP = 1 << 4,
+	AGE = 1 << 5
+}
+alias GtkRecentFilterFlags RecentFilterFlags;
+
+public enum GtkBuilderError
+{
+	INVALID_TYPE_FUNCTION,
+	UNHANDLED_TAG,
+	MISSING_ATTRIBUTE,
+	INVALID_ATTRIBUTE,
+	INVALID_TAG,
+	MISSING_PROPERTY_VALUE,
+	INVALID_VALUE
+}
+alias GtkBuilderError BuilderError;
+
+
+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;
+}
+
+
+/**
+ * Main Gtk struct.
+ * An object representing and maintaining a group of accelerators.
+ */
+public struct GtkAccelGroup{}
+
+
+public struct GtkAccelKey{}
+// uint accelKey;
+// gtk-Keyboard-Accelerators.html
+// GdkModifierType accelMods;
+// gtk-Keyboard-Accelerators.html
+// uint accelFlags : 16;
+// gtk-Keyboard-Accelerators.html
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkAccelMap{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkClipboard{}
+
+
+/**
+ * Contains information found when looking up an icon in
+ * an icon theme.
+ */
+public struct GtkIconInfo{}
+
+
+/**
+ * Main Gtk struct.
+ * Acts as a database of information about an icon theme.
+ * Normally, you retrieve the icon theme for a particular
+ * screen using gtk_icon_theme_get_for_screen() and it
+ * will contain information about current icon theme for
+ * that screen, but you can also create a new GtkIconTheme
+ * object and set the icon theme name explicitely using
+ * gtk_icon_theme_set_custom_theme().
+ */
+public struct GtkIconTheme{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkStockItem{}
+// char *stockId;
+// gtk-Stock-Items.html
+// char *label;
+// gtk-Stock-Items.html
+// GdkModifierType modifier;
+// gtk-Stock-Items.html
+// uint keyval;
+// gtk-Stock-Items.html
+// char *translationDomain;
+// gtk-Stock-Items.html
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkIconSource{}
+
+
+public struct GtkIconFactory{}
+
+
+public struct GtkIconSet{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkRcStyle structure is used to represent a set
+ * of information about the appearance of a widget.
+ * This can later be composited together with other
+ * GtkRcStyle structures to form a GtkStyle.
+ */
+public struct GtkRcStyle{}
+// char *name;
+// gtk-Resource-Files.html
+// char *bgPixmapName[5];
+// gtk-Resource-Files.html
+// PangoFontDescription *fontDesc;
+// gtk-Resource-Files.html
+// GtkRcFlags colorFlags[5];
+// gtk-Resource-Files.html
+// GdkColor fg[5];
+// gtk-Resource-Files.html
+// GdkColor bg[5];
+// gtk-Resource-Files.html
+// GdkColor text[5];
+// gtk-Resource-Files.html
+// GdkColor base[5];
+// gtk-Resource-Files.html
+// int xthickness;
+// gtk-Resource-Files.html
+// int ythickness;
+// gtk-Resource-Files.html
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkSettings{}
+
+
+public struct GtkSettingsValue{}
+// /+* origin should be something like "filename:linenumber" for rc files,
+// GtkSettings.html
+// * or e.g. "XProperty" for other sources
+// GtkSettings.html
+// +/
+// GtkSettings.html
+// char *origin;
+// GtkSettings.html
+// /+* valid types are LONG, DOUBLE and STRING corresponding to the token parsed,
+// GtkSettings.html
+// * or a GSTRING holding an unparsed statement
+// GtkSettings.html
+// +/
+// GtkSettings.html
+// GValue value;
+// GtkSettings.html
+
+
+/**
+ * Main Gtk struct.
+ * A binding set maintains a list of activatable key bindings.
+ * A single binding set can match multiple types of widgets.
+ * Similar to styles, widgets can be mapped by widget name paths, widget
+ * class paths or widget class types. When a binding within a set is
+ * matched upon activation, an action signal is emitted on the target
+ * widget to carry out the actual activation.
+ * gchar*set_name;
+ */
+public struct GtkBindingSet{}
+// char *setName;
+// gtk-Bindings.html
+// int priority;
+// gtk-Bindings.html
+// GSList *widgetPathPspecs;
+// gtk-Bindings.html
+// GSList *widgetClassPspecs;
+// gtk-Bindings.html
+// GSList *classBranchPspecs;
+// gtk-Bindings.html
+// GtkBindingEntry *entries;
+// gtk-Bindings.html
+// GtkBindingEntry *current;
+// gtk-Bindings.html
+// uint parsed : 1; /+* From RC content +/
+// gtk-Bindings.html
+
+
+/**
+ * Each key binding element of a binding sets binding list is represented by
+ * a GtkBindingEntry.
+ * guintkeyval;
+ */
+public struct GtkBindingEntry{}
+// /+* key portion
+// gtk-Bindings.html
+// +/
+// gtk-Bindings.html
+// uint keyval;
+// gtk-Bindings.html
+// GdkModifierType modifiers;
+// gtk-Bindings.html
+// GtkBindingSet *bindingSet;
+// gtk-Bindings.html
+// uint destroyed : 1;
+// gtk-Bindings.html
+// uint inEmission : 1;
+// gtk-Bindings.html
+// uint marksUnbound : 1;
+// gtk-Bindings.html
+// GtkBindingEntry *setNext;
+// gtk-Bindings.html
+// GtkBindingEntry *hashNext;
+// gtk-Bindings.html
+// GtkBindingSignal *signals;
+// gtk-Bindings.html
+
+
+/**
+ * A GtkBindingSignal stores the necessary information to activate a widget
+ * in response to a key press via a signal emission.
+ * GtkBindingSignal*next;
+ */
+public struct GtkBindingSignal{}
+// GtkBindingSignal *next;
+// gtk-Bindings.html
+// char *signalName;
+// gtk-Bindings.html
+// uint nArgs;
+// gtk-Bindings.html
+// GtkBindingArg *args;
+// gtk-Bindings.html
+
+
+/**
+ * A GtkBindingArg holds the data associated with an argument for a
+ * key binding signal emission as stored in GtkBindingSignal.
+ * GTypearg_type;
+ * implementation detail
+ */
+public struct GtkBindingArg{}
+// GType argType;
+// gtk-Bindings.html
+// unio {
+	// gtk-Bindings.html
+	// int longData;
+	// gtk-Bindings.html
+	// double doubleData;
+	// gtk-Bindings.html
+	// char *stringData;
+	// gtk-Bindings.html
+// } d;
+// gtk-Bindings.html
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkStyle{}
+// GdkColor fg[5];
+// GtkStyle.html
+// GdkColor bg[5];
+// GtkStyle.html
+// GdkColor light[5];
+// GtkStyle.html
+// GdkColor dark[5];
+// GtkStyle.html
+// GdkColor mid[5];
+// GtkStyle.html
+// GdkColor text[5];
+// GtkStyle.html
+// GdkColor base[5];
+// GtkStyle.html
+// GdkColor textAa[5]; /+* Halfway between text/base +/
+// GtkStyle.html
+// GdkColor black;
+// GtkStyle.html
+// GdkColor white;
+// GtkStyle.html
+// PangoFontDescription *fontDesc;
+// GtkStyle.html
+// int xthickness;
+// GtkStyle.html
+// int ythickness;
+// GtkStyle.html
+// GdkGC *fgGc[5];
+// GtkStyle.html
+// GdkGC *bgGc[5];
+// GtkStyle.html
+// GdkGC *lightGc[5];
+// GtkStyle.html
+// GdkGC *darkGc[5];
+// GtkStyle.html
+// GdkGC *midGc[5];
+// GtkStyle.html
+// GdkGC *textGc[5];
+// GtkStyle.html
+// GdkGC *baseGc[5];
+// GtkStyle.html
+// GdkGC *textAaGc[5];
+// GtkStyle.html
+// GdkGC *blackGc;
+// GtkStyle.html
+// GdkGC *whiteGc;
+// GtkStyle.html
+// GdkPixmap *bgPixmap[5];
+// GtkStyle.html
+
+
+public struct GtkBorder
+{
+	int left;
+	int right;
+	int top;
+	int bottom;
+}
+
+
+public struct GtkRcProperty{}
+// /+* quark-ified property identifier like "GtkScrollbar::spacing" +/
+// GtkStyle.html
+// GQuark typeName;
+// GtkStyle.html
+// GQuark propertyName;
+// GtkStyle.html
+// /+* fields similar to GtkSettingsValue +/
+// GtkStyle.html
+// char *origin;
+// GtkStyle.html
+// GValue value;
+// GtkStyle.html
+
+
+/**
+ * A GtkTargetEntry structure represents a single type of
+ * data than can be supplied for by a widget for a selection
+ * or for supplied or received during drag-and-drop. It
+ * contains a string representing the drag type, a flags
+ * field (used only for drag and drop - see GtkTargetFlags),
+ * and an application assigned integer ID. The integer
+ * ID will later be passed as a signal parameter for signals
+ * like "selection_get". It allows the application to identify
+ * the target type without extensive string compares.
+ */
+public struct GtkTargetEntry
+{
+	char *target;
+	uint flags;
+	uint info;
+}
+
+
+/**
+ * A GtkTargetList structure is a reference counted list
+ * of GtkTargetPair. It is used to represent the same
+ * information as a table of GtkTargetEntry, but in
+ * an efficient form. This structure should be treated as
+ * opaque.
+ */
+public struct GtkTargetList{}
+// GList *list;
+// gtk-Selections.html
+// uint refCount;
+// gtk-Selections.html
+
+
+/**
+ * Internally used structure in the drag-and-drop and
+ * selection handling code.
+ */
+public struct GtkTargetPair{}
+// GdkAtom target;
+// gtk-Selections.html
+// uint flags;
+// gtk-Selections.html
+// uint info;
+// gtk-Selections.html
+
+
+/**
+ * Warning
+ * GtkArg is deprecated and should not be used in newly-written code.
+ * This is a structure that we use to pass in typed values (and names).
+ */
+public struct GtkArg{}
+// GtkType type;
+// gtk-Types.html
+// char *name;
+// gtk-Types.html
+// /+* this unio only defines the required storage types for
+// gtk-Types.html
+// * the possibile values, thus there is no int enumData field,
+// gtk-Types.html
+// * because that would just be a mere alias for int intData.
+// gtk-Types.html
+// * use the GTK_VALUE_*() and GTK_RETLOC_*() macros to access
+// gtk-Types.html
+// * the discrete memebers.
+// gtk-Types.html
+// +/
+// gtk-Types.html
+// unio {
+	// gtk-Types.html
+	// /+* flat values +/
+	// gtk-Types.html
+	// char charData;
+	// gtk-Types.html
+	// char ucharData;
+	// gtk-Types.html
+	// int boolData;
+	// gtk-Types.html
+	// int intData;
+	// gtk-Types.html
+	// uint uintData;
+	// gtk-Types.html
+	// int longData;
+	// gtk-Types.html
+	// uint ulongData;
+	// gtk-Types.html
+	// float floatData;
+	// gtk-Types.html
+	// double doubleData;
+	// gtk-Types.html
+	// char *stringData;
+	// gtk-Types.html
+	// GtkObject *objectData;
+	// gtk-Types.html
+	// void* pointerData;
+	// gtk-Types.html
+	// /+* structured values +/
+	// gtk-Types.html
+	// struct {
+		// gtk-Types.html
+		// GtkSignalFunc f;
+		// gtk-Types.html
+		// void* d;
+		// gtk-Types.html
+	// } signalData;
+	// gtk-Types.html
+// } d;
+// gtk-Types.html
+
+
+/**
+ * Warning
+ * GtkTypeInfo is deprecated and should not be used in newly-written code.
+ * Holds information about the type. gtk_type_name() returns the name.
+ * object_size is somehow set to the number of bytes that an instance of
+ * the object will occupy. class_init_func holds the type's
+ * initialization function. object_init_func holds the initialization
+ * function for an instance of the object. reserved_1 is used for
+ * GtkEnumValue to hold the enumerated values.
+ */
+public struct GtkTypeInfo{}
+// char *typeName;
+// gtk-Types.html
+// uint objectSize;
+// gtk-Types.html
+// uint classSize;
+// gtk-Types.html
+// GtkClassInitFunc classInitFunc;
+// gtk-Types.html
+// GtkObjectInitFunc objectInitFunc;
+// gtk-Types.html
+// void* reserved1;
+// gtk-Types.html
+// void* reserved2;
+// gtk-Types.html
+// GtkClassInitFunc baseClassInitFunc;
+// gtk-Types.html
+
+
+/**
+ * Main Gtk struct.
+ * vbox is a GtkVBox - the main part of the
+ * dialog box.
+ * action_area is a GtkHButtonBox packed below the
+ * dividing GtkHSeparator in the dialog. It is treated exactly the same
+ * as any other GtkHButtonBox.
+ */
+public struct GtkDialog{}
+// GtkWidget *vbox;
+// GtkDialog.html
+// GtkWidget *actionArea;
+// GtkDialog.html
+
+
+/**
+ * Main Gtk struct.
+ * The GtkInvisible struct contains no public fields.
+ */
+public struct GtkInvisible{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkMessageDialog{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkWindow{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkWindowGroup{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkAboutDialog struct contains
+ * only private fields and should not be directly accessed.
+ */
+public struct GtkAboutDialog{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkAssistant{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkAccelLabel struct contains private data only, and
+ * should be accessed using the functions below.
+ */
+public struct GtkAccelLabel{}
+
+
+/**
+ * Main Gtk struct.
+ * This struct contain private data only and should be accessed by the functions
+ * below.
+ */
+public struct GtkImage{}
+
+
+/**
+ * Main Gtk struct.
+ * This should not be accessed directly. Use the accessor functions as
+ * described below.
+ */
+public struct GtkLabel{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkProgressBar struct contains private data only,
+ * and should be accessed using the functions below.
+ */
+public struct GtkProgressBar{}
+
+
+/**
+ * Main Gtk struct.
+ * Contains private data that should be modified with the functions described
+ * below.
+ */
+public struct GtkStatusbar{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkStatusIcon{}
+
+
+/**
+ * Main Gtk struct.
+ * This should not be accessed directly. Use the accessor functions below.
+ */
+public struct GtkButton{}
+
+
+/**
+ * Main Gtk struct.
+ * toggle_button is a GtkToggleButton representing the actual toggle button that composes the check button.
+ */
+public struct GtkCheckButton{}
+
+
+/**
+ * Main Gtk struct.
+ * Contains only private data that should be read and manipulated using the
+ * functions below.
+ */
+public struct GtkRadioButton{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkToggleButton struct contains private data only, and should be manipulated using the functions below.
+ */
+public struct GtkToggleButton{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkLinkButton struct contains private data only, and should be
+ * manipulated using the functions below.
+ */
+public struct GtkLinkButton{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkScaleButton{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkVolumeButton{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkEntry struct contains only private data.
+ */
+public struct GtkEntry{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkEntryCompletion struct contains only private data.
+ */
+public struct GtkEntryCompletion{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkHScale struct contains private data only, and
+ * should be accessed using the functions below.
+ */
+public struct GtkHScale{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkVScale struct contains private data only, and
+ * should be accessed using the functions below.
+ */
+public struct GtkVScale{}
+
+
+/**
+ * Main Gtk struct.
+ * entry is the GtkEntry part of the GtkSpinButton
+ * widget, and can be used accordingly. All other fields contain private data
+ * and should only be modified using the functions below.
+ */
+public struct GtkSpinButton{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkEditable structure contains the following fields.
+ * (These fields should be considered read-only. They should
+ * never be set by an application.)
+ * guint selection_start;
+ * the starting position of the selected characters
+ */
+public struct GtkEditable{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkTextMark{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkTextBuffer{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkTextTag{}
+
+
+/**
+ * Using GtkTextAttributes directly should rarely be necessary. It's
+ * primarily useful with gtk_text_iter_get_attributes(). As with most
+ * GTK+ structs, the fields in this struct should only be read, never
+ * modified directly.
+ * GtkTextAppearanceappearance;
+ * pointer to sub-struct containing certain attributes
+ * GtkJustificationjustification;
+ * GtkTextDirectiondirection;
+ * PangoFontDescription*font;
+ * gdoublefont_scale;
+ * gintleft_margin;
+ * gintindent;
+ * gintright_margin;
+ * gintpixels_above_lines;
+ * gintpixels_below_lines;
+ * gintpixels_inside_wrap;
+ * PangoTabArray*tabs;
+ * GtkWrapModewrap_mode;
+ * PangoLanguage*language;
+ * guintinvisible:1;
+ * guintbg_full_height:1;
+ * guinteditable:1;
+ * guintrealized:1;
+ */
+public struct GtkTextAttributes{}
+// GtkTextAppearance appearance;
+// GtkTextTag.html
+// GtkJustification justification;
+// GtkTextTag.html
+// GtkTextDirection direction;
+// GtkTextTag.html
+// /+* Individual chunks of this can be set/unset as a group +/
+// GtkTextTag.html
+// PangoFontDescription *font;
+// GtkTextTag.html
+// double fontScale;
+// GtkTextTag.html
+// int leftMargin;
+// GtkTextTag.html
+// int indent;
+// GtkTextTag.html
+// int rightMargin;
+// GtkTextTag.html
+// int pixelsAboveLines;
+// GtkTextTag.html
+// int pixelsBelowLines;
+// GtkTextTag.html
+// int pixelsInsideWrap;
+// GtkTextTag.html
+// PangoTabArray *tabs;
+// GtkTextTag.html
+// GtkWrapMode wrapMode; /+* How to handle wrap-around for this tag.
+// GtkTextTag.html
+// * Must be GTK_WRAPMODE_CHAR,
+// GtkTextTag.html
+// * GTK_WRAPMODE_NONE, GTK_WRAPMODE_WORD
+// GtkTextTag.html
+// +/
+// GtkTextTag.html
+// PangoLanguage *language;
+// GtkTextTag.html
+// /+* hide the text +/
+// GtkTextTag.html
+// uint invisible : 1;
+// GtkTextTag.html
+// /+* Background is fit to full line height rather than
+// GtkTextTag.html
+// * baseline +/- ascent/descent (font height)
+// GtkTextTag.html
+// +/
+// GtkTextTag.html
+// uint bgFullHeight : 1;
+// GtkTextTag.html
+// /+* can edit this text +/
+// GtkTextTag.html
+// uint editable : 1;
+// GtkTextTag.html
+// /+* colors are allocated etc. +/
+// GtkTextTag.html
+// uint realized : 1;
+// GtkTextTag.html
+
+
+public struct GtkTextAppearance{}
+// GdkColor bgColor;
+// GtkTextTag.html
+// GdkColor fgColor;
+// GtkTextTag.html
+// GdkBitmap *bgStipple;
+// GtkTextTag.html
+// GdkBitmap *fgStipple;
+// GtkTextTag.html
+// /+* super/subscript rise, can be negative +/
+// GtkTextTag.html
+// int rise;
+// GtkTextTag.html
+// uint underline : 4; /+* PangoUnderline +/
+// GtkTextTag.html
+// uint strikethrough : 1;
+// GtkTextTag.html
+// /+* Whether to use background-related values; this is irrelevant for
+// GtkTextTag.html
+// * the values struct when inn a tag, but is used for the composite
+// GtkTextTag.html
+// * values struct; it's true if any of the tags being composited
+// GtkTextTag.html
+// * had background stuff set.
+// GtkTextTag.html
+// +/
+// GtkTextTag.html
+// uint drawBg : 1;
+// GtkTextTag.html
+// /+* These are only used when we are actually laying out and rendering
+// GtkTextTag.html
+// * a paragraph; not when a GtkTextAppearance is part of a
+// GtkTextTag.html
+// * GtkTextAttributes.
+// GtkTextTag.html
+// +/
+// GtkTextTag.html
+// uint insideSelection : 1;
+// GtkTextTag.html
+// uint isText : 1;
+// GtkTextTag.html
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkTextTagTable{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkTextView{}
+
+
+/**
+ * A GtkTextChildAnchor is a spot in the buffer
+ * where child widgets can be "anchored" (inserted inline, as if they were
+ * characters). The anchor can have multiple widgets anchored, to allow for
+ * multiple views.
+ */
+public struct GtkTextChildAnchor{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkTreeModel{}
+
+
+/**
+ * The GtkTreeIter is the primary structure for
+ * accessing a structure. Models are expected to put a unique integer in
+ * the stamp member, and put model-specific
+ * data in the three user_data members.
+ * gintstamp;
+ * A unique stamp to catch invalid iterators
+ * gpointeruser_data;
+ * Model specific data
+ * gpointeruser_data2;
+ * Model specific data
+ * gpointeruser_data3;
+ * Model specific data
+ */
+public struct GtkTreeIter
+{
+	int stamp;
+	void* userData;
+	void* userData2;
+	void* userData3;
+}
+
+
+public struct GtkTreePath{}
+
+
+public struct GtkTreeRowReference{}
+
+
+public struct GtkTreeModelIface{}
+// GTypeInterface gIface;
+// GtkTreeModel.html
+// /+* Signals +/
+// GtkTreeModel.html
+// void (* rowChanged) (GtkTreeModel *treeModel,
+// GtkTreeModel.html
+// GtkTreePath *path,
+// GtkTreeModel.html
+// GtkTreeIter *iter);
+// GtkTreeModel.html
+// void (* rowInserted) (GtkTreeModel *treeModel,
+// GtkTreeModel.html
+// GtkTreePath *path,
+// GtkTreeModel.html
+// GtkTreeIter *iter);
+// GtkTreeModel.html
+// void (* rowHasChildToggled) (GtkTreeModel *treeModel,
+// GtkTreeModel.html
+// GtkTreePath *path,
+// GtkTreeModel.html
+// GtkTreeIter *iter);
+// GtkTreeModel.html
+// void (* rowDeleted) (GtkTreeModel *treeModel,
+// GtkTreeModel.html
+// GtkTreePath *path);
+// GtkTreeModel.html
+// void (* rowsReordered) (GtkTreeModel *treeModel,
+// GtkTreeModel.html
+// GtkTreePath *path,
+// GtkTreeModel.html
+// GtkTreeIter *iter,
+// GtkTreeModel.html
+// int *newOrder);
+// GtkTreeModel.html
+// /+* Virtual Table +/
+// GtkTreeModel.html
+// GtkTreeModelFlags (* getFlags) (GtkTreeModel *treeModel);
+// GtkTreeModel.html
+// int (* getNColumns) (GtkTreeModel *treeModel);
+// GtkTreeModel.html
+// GType (* getColumnType) (GtkTreeModel *treeModel,
+// GtkTreeModel.html
+// int index);
+// GtkTreeModel.html
+// int (* getIter) (GtkTreeModel *treeModel,
+// GtkTreeModel.html
+// GtkTreeIter *iter,
+// GtkTreeModel.html
+// GtkTreePath *path);
+// GtkTreeModel.html
+// GtkTreePath *(* getPath) (GtkTreeModel *treeModel,
+// GtkTreeModel.html
+// GtkTreeIter *iter);
+// GtkTreeModel.html
+// void (* getValue) (GtkTreeModel *treeModel,
+// GtkTreeModel.html
+// GtkTreeIter *iter,
+// GtkTreeModel.html
+// int column,
+// GtkTreeModel.html
+// GValue *value);
+// GtkTreeModel.html
+// int (* iterNext) (GtkTreeModel *treeModel,
+// GtkTreeModel.html
+// GtkTreeIter *iter);
+// GtkTreeModel.html
+// int (* iterChildren) (GtkTreeModel *treeModel,
+// GtkTreeModel.html
+// GtkTreeIter *iter,
+// GtkTreeModel.html
+// GtkTreeIter *parent);
+// GtkTreeModel.html
+// int (* iterHasChild) (GtkTreeModel *treeModel,
+// GtkTreeModel.html
+// GtkTreeIter *iter);
+// GtkTreeModel.html
+// int (* iterNChildren) (GtkTreeModel *treeModel,
+// GtkTreeModel.html
+// GtkTreeIter *iter);
+// GtkTreeModel.html
+// int (* iterNthChild) (GtkTreeModel *treeModel,
+// GtkTreeModel.html
+// GtkTreeIter *iter,
+// GtkTreeModel.html
+// GtkTreeIter *parent,
+// GtkTreeModel.html
+// int n);
+// GtkTreeModel.html
+// int (* iterParent) (GtkTreeModel *treeModel,
+// GtkTreeModel.html
+// GtkTreeIter *iter,
+// GtkTreeModel.html
+// GtkTreeIter *child);
+// GtkTreeModel.html
+// void (* refNode) (GtkTreeModel *treeModel,
+// GtkTreeModel.html
+// GtkTreeIter *iter);
+// GtkTreeModel.html
+// void (* unrefNode) (GtkTreeModel *treeModel,
+// GtkTreeModel.html
+// GtkTreeIter *iter);
+// GtkTreeModel.html
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkTreeSelection{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkTreeViewColumn{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkTreeView{}
+
+
+/**
+ * A private struct for internal use only. The definition of this
+ * structure is not publically available.
+ */
+public struct GtkTreeViewPrivate{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkTreeDragSource{}
+
+
+public struct GtkTreeDragSourceIface{}
+// GTypeInterface gIface;
+// gtk-GtkTreeView-drag-and-drop.html
+// /+* VTable - not signals +/
+// gtk-GtkTreeView-drag-and-drop.html
+// int (* rowDraggable) (GtkTreeDragSource *dragSource,
+// gtk-GtkTreeView-drag-and-drop.html
+// GtkTreePath *path);
+// gtk-GtkTreeView-drag-and-drop.html
+// int (* dragDataGet) (GtkTreeDragSource *dragSource,
+// gtk-GtkTreeView-drag-and-drop.html
+// GtkTreePath *path,
+// gtk-GtkTreeView-drag-and-drop.html
+// GtkSelectionData *selectionData);
+// gtk-GtkTreeView-drag-and-drop.html
+// int (* dragDataDelete) (GtkTreeDragSource *dragSource,
+// gtk-GtkTreeView-drag-and-drop.html
+// GtkTreePath *path);
+// gtk-GtkTreeView-drag-and-drop.html
+
+
+public struct GtkTreeDragDest{}
+
+
+public struct GtkTreeDragDestIface{}
+// GTypeInterface gIface;
+// gtk-GtkTreeView-drag-and-drop.html
+// /+* VTable - not signals +/
+// gtk-GtkTreeView-drag-and-drop.html
+// int (* dragDataReceived) (GtkTreeDragDest *dragDest,
+// gtk-GtkTreeView-drag-and-drop.html
+// GtkTreePath *dest,
+// gtk-GtkTreeView-drag-and-drop.html
+// GtkSelectionData *selectionData);
+// gtk-GtkTreeView-drag-and-drop.html
+// int (* rowDropPossible) (GtkTreeDragDest *dragDest,
+// gtk-GtkTreeView-drag-and-drop.html
+// GtkTreePath *destPath,
+// gtk-GtkTreeView-drag-and-drop.html
+// GtkSelectionData *selectionData);
+// gtk-GtkTreeView-drag-and-drop.html
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkCellView{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkIconView struct contains only
+ * private fields and should not be directly accessed.
+ */
+public struct GtkIconView{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkTreeSortable{}
+
+
+public struct GtkTreeSortableIface{}
+// GTypeInterface gIface;
+// GtkTreeSortable.html
+// /+* signals +/
+// GtkTreeSortable.html
+// void (* sortColumnChanged) (GtkTreeSortable *sortable);
+// GtkTreeSortable.html
+// /+* virtual table +/
+// GtkTreeSortable.html
+// int (* getSortColumnId) (GtkTreeSortable *sortable,
+// GtkTreeSortable.html
+// int *sortColumnId,
+// GtkTreeSortable.html
+// GtkSortType *order);
+// GtkTreeSortable.html
+// void (* setSortColumnId) (GtkTreeSortable *sortable,
+// GtkTreeSortable.html
+// int sortColumnId,
+// GtkTreeSortable.html
+// GtkSortType order);
+// GtkTreeSortable.html
+// void (* setSortFunc) (GtkTreeSortable *sortable,
+// GtkTreeSortable.html
+// int sortColumnId,
+// GtkTreeSortable.html
+// GtkTreeIterCompareFunc func,
+// GtkTreeSortable.html
+// void* data,
+// GtkTreeSortable.html
+// GtkDestroyNotify destroy);
+// GtkTreeSortable.html
+// void (* setDefaultSortFunc) (GtkTreeSortable *sortable,
+// GtkTreeSortable.html
+// GtkTreeIterCompareFunc func,
+// GtkTreeSortable.html
+// void* data,
+// GtkTreeSortable.html
+// GtkDestroyNotify destroy);
+// GtkTreeSortable.html
+// int (* hasDefaultSortFunc) (GtkTreeSortable *sortable);
+// GtkTreeSortable.html
+
+
+/**
+ * Main Gtk struct.
+ * This should not be accessed directly. Use the accessor functions below.
+ */
+public struct GtkTreeModelSort{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkTreeModelFilter struct contains only private fields.
+ */
+public struct GtkTreeModelFilter{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkCellLayout{}
+
+
+public struct GtkCellLayoutIface{}
+// GTypeInterface gIface;
+// GtkCellLayout.html
+// /+* Virtual Table +/
+// GtkCellLayout.html
+// void (* packStart) (GtkCellLayout *cellLayout,
+// GtkCellLayout.html
+// GtkCellRenderer *cell,
+// GtkCellLayout.html
+// int expand);
+// GtkCellLayout.html
+// void (* packEnd) (GtkCellLayout *cellLayout,
+// GtkCellLayout.html
+// GtkCellRenderer *cell,
+// GtkCellLayout.html
+// int expand);
+// GtkCellLayout.html
+// void (* clear) (GtkCellLayout *cellLayout);
+// GtkCellLayout.html
+// void (* addAttribute) (GtkCellLayout *cellLayout,
+// GtkCellLayout.html
+// GtkCellRenderer *cell,
+// GtkCellLayout.html
+// char *attribute,
+// GtkCellLayout.html
+// int column);
+// GtkCellLayout.html
+// void (* setCellDataFunc) (GtkCellLayout *cellLayout,
+// GtkCellLayout.html
+// GtkCellRenderer *cell,
+// GtkCellLayout.html
+// GtkCellLayoutDataFunc func,
+// GtkCellLayout.html
+// void* funcData,
+// GtkCellLayout.html
+// GDestroyNotify destroy);
+// GtkCellLayout.html
+// void (* clearAttributes) (GtkCellLayout *cellLayout,
+// GtkCellLayout.html
+// GtkCellRenderer *cell);
+// GtkCellLayout.html
+// void (* reorder) (GtkCellLayout *cellLayout,
+// GtkCellLayout.html
+// GtkCellRenderer *cell,
+// GtkCellLayout.html
+// int position);
+// GtkCellLayout.html
+// GList* (* getCells) (GtkCellLayout *cellLayout);
+// GtkCellLayout.html
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkCellRenderer{}
+
+
+public struct GtkCellRendererClass{}
+// GtkObjectClass parentClass;
+// GtkCellRenderer.html
+// /+* vtable - not signals +/
+// GtkCellRenderer.html
+// void (* getSize) (GtkCellRenderer *cell,
+// GtkCellRenderer.html
+// GtkWidget *widget,
+// GtkCellRenderer.html
+// GdkRectangle *cellArea,
+// GtkCellRenderer.html
+// int *xOffset,
+// GtkCellRenderer.html
+// int *yOffset,
+// GtkCellRenderer.html
+// int *width,
+// GtkCellRenderer.html
+// int *height);
+// GtkCellRenderer.html
+// void (* render) (GtkCellRenderer *cell,
+// GtkCellRenderer.html
+// GdkDrawable *window,
+// GtkCellRenderer.html
+// GtkWidget *widget,
+// GtkCellRenderer.html
+// GdkRectangle *backgroundArea,
+// GtkCellRenderer.html
+// GdkRectangle *cellArea,
+// GtkCellRenderer.html
+// GdkRectangle *exposeArea,
+// GtkCellRenderer.html
+// GtkCellRendererState flags);
+// GtkCellRenderer.html
+// int (* activate) (GtkCellRenderer *cell,
+// GtkCellRenderer.html
+// GdkEvent *event,
+// GtkCellRenderer.html
+// GtkWidget *widget,
+// GtkCellRenderer.html
+// char *path,
+// GtkCellRenderer.html
+// GdkRectangle *backgroundArea,
+// GtkCellRenderer.html
+// GdkRectangle *cellArea,
+// GtkCellRenderer.html
+// GtkCellRendererState flags);
+// GtkCellRenderer.html
+// GtkCellEditable *(* startEditing) (GtkCellRenderer *cell,
+// GtkCellRenderer.html
+// GdkEvent *event,
+// GtkCellRenderer.html
+// GtkWidget *widget,
+// GtkCellRenderer.html
+// char *path,
+// GtkCellRenderer.html
+// GdkRectangle *backgroundArea,
+// GtkCellRenderer.html
+// GdkRectangle *cellArea,
+// GtkCellRenderer.html
+// GtkCellRendererState flags);
+// GtkCellRenderer.html
+// /+* Signals +/
+// GtkCellRenderer.html
+// void (* editingCanceled) (GtkCellRenderer *cell);
+// GtkCellRenderer.html
+// void (* editingStarted) (GtkCellRenderer *cell,
+// GtkCellRenderer.html
+// GtkCellEditable *editable,
+// GtkCellRenderer.html
+// char *path);
+// GtkCellRenderer.html
+// /+* Padding for future expansion +/
+// GtkCellRenderer.html
+// void (*_GtkReserved1) (void);
+// GtkCellRenderer.html
+// void (*_GtkReserved2) (void);
+// GtkCellRenderer.html
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkCellEditable{}
+
+
+public struct GtkCellEditableIface{}
+// GTypeInterface gIface;
+// GtkCellEditable.html
+// /+* signals +/
+// GtkCellEditable.html
+// void (* editingDone) (GtkCellEditable *cellEditable);
+// GtkCellEditable.html
+// void (* removeWidget) (GtkCellEditable *cellEditable);
+// GtkCellEditable.html
+// /+* virtual table +/
+// GtkCellEditable.html
+// void (* startEditing) (GtkCellEditable *cellEditable,
+// GtkCellEditable.html
+// GdkEvent *event);
+// GtkCellEditable.html
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkCellRendererAccel{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkCellRendererCombo{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkCellRendererPixbuf{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkCellRendererProgress{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkCellRendererSpin{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkCellRendererText{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkCellRendererToggle{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkListStore{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkTreeStore{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkComboBox{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkComboBoxEntry{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkMenu struct contains private data only, and
+ * should be accessed using the functions below.
+ */
+public struct GtkMenu{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkMenuBar struct contains the following fields. (These fields should be considered read-only. They should never be set by an application.)
+ */
+public struct GtkMenuBar{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkMenuItem{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkImageMenuItem{}
+
+
+/**
+ * Main Gtk struct.
+ * The structure contains only private data that must be accessed through
+ * the interface functions.
+ */
+public struct GtkRadioMenuItem{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkCheckMenuItem struct contains the following fields.
+ * (These fields should be considered read-only. They should never be set by
+ * an application.)
+ * guint active;
+ * TRUE if the check box is active.
+ */
+public struct GtkCheckMenuItem{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkSeparatorMenuItem struct contains private data only, and
+ * should be accessed using the functions below.
+ */
+public struct GtkSeparatorMenuItem{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkTearoffMenuItem struct contains private data only, and
+ * should be accessed using the functions below.
+ */
+public struct GtkTearoffMenuItem{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkToolbar struct only contains private data and should only be
+ * accessed through the function described below.
+ */
+public struct GtkToolbar{}
+// int numChildren;
+// GtkToolbar.html
+// GList *children;
+// GtkToolbar.html
+// GtkOrientation orientation;
+// GtkToolbar.html
+// GtkToolbarStyle style;
+// GtkToolbar.html
+// GtkIconSize iconSize;
+// GtkToolbar.html
+// #ifndef GTK_DISABLE_DEPRECATED
+// GtkToolbar.html
+// GtkTooltips *tooltips;
+// GtkToolbar.html
+// #else
+// GtkToolbar.html
+// void* _Tooltips;
+// GtkToolbar.html
+// #endif
+// GtkToolbar.html
+
+
+/**
+ * Warning
+ * GtkToolbarChild is deprecated and should not be used in newly-written code.
+ */
+public struct GtkToolbarChild{}
+// GtkToolbarChildType type;
+// GtkToolbar.html
+// GtkWidget *widget;
+// GtkToolbar.html
+// GtkWidget *icon;
+// GtkToolbar.html
+// GtkWidget *label;
+// GtkToolbar.html
+
+
+/**
+ * Main Gtk struct.
+ * The GtkToolItem struct contains only private data. It should only be
+ * accessed through the functions described below.
+ */
+public struct GtkToolItem{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkSeparatorToolItem struct contains only private data and
+ * should only be accessed through the functions described below.
+ */
+public struct GtkSeparatorToolItem{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkToolButton struct contains only private. It should only be
+ * accessed with the function described below.
+ */
+public struct GtkToolButton{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkMenuToolButton{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkToggleToolButton{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkRadioToolButton{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkUIManager struct contains only private
+ * members and should not be accessed directly.
+ */
+public struct GtkUIManager{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkActionGroup struct contains only private
+ * members and should not be accessed directly.
+ */
+public struct GtkActionGroup{}
+
+
+/**
+ * GtkActionEntry structs are used with
+ * gtk_action_group_add_actions() to construct actions.
+ * constgchar*name;
+ * The name of the action.
+ * constgchar*stock_id;
+ * The stock id for the action, or the name of an icon from the icon
+ */
+public struct GtkActionEntry{}
+// char *name;
+// GtkActionGroup.html
+// char *stockId;
+// GtkActionGroup.html
+// char *label;
+// GtkActionGroup.html
+// char *accelerator;
+// GtkActionGroup.html
+// char *tooltip;
+// GtkActionGroup.html
+// GCallback callback;
+// GtkActionGroup.html
+
+
+/**
+ * GtkToggleActionEntry structs are used with
+ * gtk_action_group_add_toggle_actions() to construct toggle actions.
+ * constgchar*name;
+ * The name of the action.
+ * constgchar*stock_id;
+ * The stock id for the action, or the name of an icon from the icon
+ */
+public struct GtkToggleActionEntry{}
+// char *name;
+// GtkActionGroup.html
+// char *stockId;
+// GtkActionGroup.html
+// char *label;
+// GtkActionGroup.html
+// char *accelerator;
+// GtkActionGroup.html
+// char *tooltip;
+// GtkActionGroup.html
+// GCallback callback;
+// GtkActionGroup.html
+// int isActive;
+// GtkActionGroup.html
+
+
+/**
+ * GtkRadioActionEntry structs are used with
+ * gtk_action_group_add_radio_actions() to construct groups of radio actions.
+ * constgchar*name;
+ * The name of the action.
+ * constgchar*stock_id;
+ * The stock id for the action, or the name of an icon from the icon
+ */
+public struct GtkRadioActionEntry
+{
+	char *name;
+	char *stockId;
+	char *label;
+	char *accelerator;
+	char *tooltip;
+	int value;
+}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkAction struct contains only private members
+ * and should not be accessed directly.
+ */
+public struct GtkAction{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkToggleAction struct contains only
+ * private members and should not be accessed directly.
+ */
+public struct GtkToggleAction{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkRadioAction struct contains
+ * only private members and should not be accessed directly.
+ */
+public struct GtkRadioAction{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkRecentAction{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkColorButton struct has only private fields and
+ * should not be used directly.
+ */
+public struct GtkColorButton{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkColorSelection struct contains private data only,
+ * and should be accessed using the functions below.
+ */
+public struct GtkColorSelection{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkColorSelectionDialog struct contains the following fields.
+ * (These fields should be considered read-only. They should never be set by
+ * an application.)
+ * GtkWidget *colorsel;
+ * The GtkColorSelection widget contained within the
+ * dialog. Use this widget and its gtk_color_selection_get_current_color()
+ * function to gain access to the selected color. Connect a handler
+ * for this widget's color_changed signal to be notified when the
+ * color changes.
+ * GtkWidget *ok_button;
+ * The OK button widget contained within the dialog.
+ * Connect a handler for the clicked event.
+ * GtkWidget *cancel_button;
+ * The cancel button widget contained within the dialog.
+ * Connect a handler for the clicked event.
+ * GtkWidget *help_button;
+ * The help button widget contained within the dialog.
+ * Connect a handler for the clicked event.
+ */
+public struct GtkColorSelectionDialog{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkFileChooser{}
+
+
+/**
+ * Main Gtk struct.
+ * This should not be accessed directly. Use the accessor functions below.
+ */
+public struct GtkFileChooserButton{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkFileChooserDialog{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkFileChooserWidget{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkFileFilter struct contains
+ * only private fields and should not be directly accessed.
+ */
+public struct GtkFileFilter{}
+
+
+/**
+ * A GtkFileFilterInfo struct is used
+ * to pass information about the tested file to
+ * gtk_file_filter_filter().
+ * GtkFileFilterFlagscontains;
+ * Flags indicating which of the following fields need
+ */
+public struct GtkFileFilterInfo{}
+// GtkFileFilterFlags contains;
+// gtk-gtkfilefilter.html
+// char *filename;
+// gtk-gtkfilefilter.html
+// char *uri;
+// gtk-gtkfilefilter.html
+// char *displayName;
+// gtk-gtkfilefilter.html
+// char *mimeType;
+// gtk-gtkfilefilter.html
+
+
+/**
+ * Main Gtk struct.
+ * The GtkFontButton struct has only private members and should not be used
+ * directly.
+ */
+public struct GtkFontButton{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkFontSelection struct contains private data only, and should
+ * only be accessed using the functions below.
+ */
+public struct GtkFontSelection{}
+
+
+/**
+ * Main Gtk struct.
+ * GtkWidget*ok_button;
+ * The OK button of the dialog
+ * GtkWidget*apply_button;
+ * The Apply button of the dialog. This button is hidden
+ * by default but you can show/hide it
+ * GtkWidget*cancel_button;
+ * The Cancel button of the dialog
+ */
+public struct GtkFontSelectionDialog{}
+// GtkWidget *okButton;
+// GtkFontSelectionDialog.html
+// GtkWidget *applyButton;
+// GtkFontSelectionDialog.html
+// GtkWidget *cancelButton;
+// GtkFontSelectionDialog.html
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkInputDialog{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkAlignment struct contains private data only, and should
+ * be accessed using the functions below.
+ */
+public struct GtkAlignment{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkAspectFrame{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkHBox{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkVBox{}
+
+
+/**
+ * Main Gtk struct.
+ * GtkHButtonBox does not contain any public fields.
+ */
+public struct GtkHButtonBox{}
+
+
+/**
+ * Main Gtk struct.
+ * GtkVButtonBox does not contain any public fields.
+ */
+public struct GtkVButtonBox{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkFixed struct contains the following fields.
+ * (These fields should be considered read-only. They should never be set by
+ * an application.)
+ * GList *children;
+ * a list of GtkFixedChild elements, containing the child widgets and
+ * their positions.
+ */
+public struct GtkFixed{}
+
+
+/**
+ * The GtkFixedChild struct contains the following fields.
+ * (These fields should be considered read-only. They should never be set by
+ * an application.)
+ * GtkWidget *widget;
+ * the child GtkWidget.
+ * gint x;
+ * the horizontal position of the widget within the GtkFixed
+ * container.
+ * gint y;
+ * the vertical position of the widget within the GtkFixed
+ * container.
+ */
+public struct GtkFixedChild{}
+// GtkWidget *widget;
+// GtkFixed.html
+// int x;
+// GtkFixed.html
+// int y;
+// GtkFixed.html
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkHPaned{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkVPaned{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkLayout{}
+// GdkWindow *binWindow;
+// GtkLayout.html
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkNotebook{}
+
+
+/**
+ * The GtkNotebookPage is an opaque implementation detail of GtkNotebook.
+ */
+public struct GtkNotebookPage{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkTable structure holds the data for the actual table itself.
+ * children is a GList of all the widgets the table contains. rows and columns are pointers to GtkTableRowCol structures, which contain the default spacing and expansion details for the GtkTable's rows and columns, respectively.
+ * nrows and ncols are 16bit integers storing the number of rows and columns the table has.
+ */
+public struct GtkTable{}
+
+
+/**
+ * The widget field is a pointer to the widget that
+ * this GtkTableChild structure is keeping track of.
+ * The left_attach,
+ * right_attach,
+ * top_attach, and
+ * bottom_attach fields specify the row and column
+ * numbers which make up the invisible rectangle that the child widget is packed into.
+ * xpadding and ypadding
+ * specify the space between this widget and the surrounding table cells.
+ */
+public struct GtkTableChild{}
+// GtkWidget *widget;
+// GtkTable.html
+// ushort leftAttach;
+// GtkTable.html
+// ushort rightAttach;
+// GtkTable.html
+// ushort topAttach;
+// GtkTable.html
+// ushort bottomAttach;
+// GtkTable.html
+// ushort xpadding;
+// GtkTable.html
+// ushort ypadding;
+// GtkTable.html
+// uint xexpand : 1;
+// GtkTable.html
+// uint yexpand : 1;
+// GtkTable.html
+// uint xshrink : 1;
+// GtkTable.html
+// uint yshrink : 1;
+// GtkTable.html
+// uint xfill : 1;
+// GtkTable.html
+// uint yfill : 1;
+// GtkTable.html
+
+
+/**
+ * These fields should be considered read-only and not be modified directly.
+ */
+public struct GtkTableRowCol
+{
+	ushort requisition;
+	ushort allocation;
+	ushort spacing;
+	uint bitfield;
+	//uint needExpand : 1;
+}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkExpander{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkFrame{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkHSeparator struct contains private data only, and
+ * should be accessed using the functions below.
+ */
+public struct GtkHSeparator{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkVSeparator struct contains private data only, and
+ * should be accessed using the functions below.
+ */
+public struct GtkVSeparator{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkHScrollbar struct contains private data and should be accessed
+ * using the functions below.
+ */
+public struct GtkHScrollbar{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkVScrollbar{}
+
+
+/**
+ * Main Gtk struct.
+ * There are no public fields in the GtkScrolledWindow struct; it should
+ * only be accessed using the functions below.
+ */
+public struct GtkScrolledWindow{}
+// GtkWidget *hscrollbar;
+// GtkScrolledWindow.html
+// GtkWidget *vscrollbar;
+// GtkScrolledWindow.html
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkPrintOperation{}
+
+
+public struct GtkPrintOperationPreview{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkPrintContext{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkPrintSettings{}
+
+
+public struct GtkPageRange
+{
+	int start;
+	int end;
+}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkPageSetup{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkPaperSize{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkPrinter{}
+
+
+public struct GtkPrintBackend{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkPrintJob struct contains only private members
+ * and should not be directly accessed.
+ */
+public struct GtkPrintJob{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkPrintUnixDialog{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkPageSetupUnixDialog{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkAdjustment struct contains the following fields.
+ * gdouble lower;
+ * the minimum value.
+ * gdouble upper;
+ * the maximum value.
+ * gdouble value;
+ * the current value.
+ * gdouble step_increment;
+ * the increment to use to make minor changes to the value.
+ * In a GtkScrollbar this increment is used when the mouse is clicked on the
+ * arrows at the top and bottom of the scrollbar, to scroll by a small amount.
+ * gdouble page_increment;
+ * the increment to use to make major changes to the value.
+ * In a GtkScrollbar this increment is used when the mouse is clicked in the
+ * trough, to scroll by a large amount.
+ * gdouble page_size;
+ * the page size.
+ * In a GtkScrollbar this is the size of the area which is currently visible.
+ */
+public struct GtkAdjustment{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkArrow struct containes the following fields.
+ * (These fields should be considered read-only. They should never be set by
+ * an application.)
+ */
+public struct GtkArrow{}
+
+
+/**
+ * Main Gtk struct.
+ * num_marked_dates is an integer containing the
+ * number of days that have a mark over them.
+ * marked_date is an array containing the day numbers
+ * that currently have a mark over them.
+ * month, year, and
+ * selected_day contain the currently visible month,
+ * year, and selected day respectively.
+ * All of these fields should be considered read only, and everything in this
+ * struct should only be modified using the functions provided below.
+ * Note
+ * Note that month is zero-based (i.e it allowed values
+ * are 0-11) while selected_day is one-based
+ * (i.e. allowed values are 1-31).
+ */
+public struct GtkCalendar{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkDrawingArea struct contains private data only, and
+ * should be accessed using the functions below.
+ */
+public struct GtkDrawingArea{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkEventBox struct contains private data only, and
+ * should be accessed using the functions below.
+ */
+public struct GtkEventBox{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkHandleBox struct contains the following fields.
+ * (These fields should be considered read-only. They should never be set by
+ * an application.)
+ * GtkShadowType shadow_type;
+ * The shadow type for the entry. (See gtk_handle_box_set_shadow_type()).
+ * GtkPositionType handle_position;
+ * The position of the handlebox's handle with respect
+ * to the child. (See gtk_handle_box_set_handle_position())
+ * gint snap_edge;
+ * A value of type GtkPosition type indicating snap edge for the widget.
+ * (See gtk_handle_box_set_snap_edge). The value of -1 indicates
+ * that this value has not been set.
+ * gboolean child_detached;
+ * A boolean value indicating whether the handlebox's
+ * child is attached or detached.
+ */
+public struct GtkHandleBox{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkIMContextSimple{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkIMMulticontext{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkSizeGroup{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkTooltip{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkViewport{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkAccessible{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkBin struct contains the following fields.
+ * (These fields should be considered read-only. They should never be set by
+ * an application.)
+ * GtkWidget *child;
+ * the child widget.
+ */
+public struct GtkBin{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkBox describes an instance of GtkBox and contains the
+ * following fields. (These fields should be considered read-only.
+ * They should never be set by an application.)
+ * GList*children;
+ * a list of children belonging the GtkBox.
+ */
+public struct GtkBox{}
+// GList *children;
+// GtkBox.html
+// short spacing;
+// GtkBox.html
+// uint homogeneous : 1;
+// GtkBox.html
+
+
+/**
+ * The GtkBoxChild holds a child widget of GtkBox and describes
+ * how the child is to be packed into the GtkBox. Use
+ * gtk_box_query_child_packing() and gtk_box_set_child_packing() to query
+ * and reset the padding,
+ * expand, fill,
+ * and pack fields.
+ * GtkBoxChild contains the following fields. (These fields
+ * should be considered read-only. They should never be directly set by an
+ * application.)
+ * GtkWidget*widget;
+ * the child widget, packed into the GtkBox.
+ * guint16padding;
+ * the number of extra pixels to put between this child and its
+ */
+public struct GtkBoxChild{}
+// GtkWidget *widget;
+// GtkBox.html
+// ushort padding;
+// GtkBox.html
+// uint expand : 1;
+// GtkBox.html
+// uint fill : 1;
+// GtkBox.html
+// uint pack : 1;
+// GtkBox.html
+// uint isSecondary : 1;
+// GtkBox.html
+
+
+/**
+ * Main Gtk struct.
+ * This is a read-only struct; no members should be modified directly.
+ */
+public struct GtkButtonBox{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkContainer{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkItem struct contains private data only, and
+ * should be accessed using the functions below.
+ */
+public struct GtkItem{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkMenuShell struct contains the following fields.
+ * (These fields should be considered read-only. They should never be set by
+ * an application.)
+ * GList *children;
+ * The list of GtkMenuItem objects contained by this GtkMenuShell.
+ */
+public struct GtkMenuShell{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkMisc struct contains the following fields.
+ * (These fields should be considered read-only. They should never be set by
+ * an application.)
+ * gfloat xalign;
+ * the horizontal alignment, from 0 (left) to 1 (right).
+ * gfloat yalign;
+ * the vertical alignment, from 0 (top) to 1 (bottom).
+ * guint16 xpad;
+ * the amount of space to add on the left and right of the widget,
+ * in pixels.
+ * guint16 ypad;
+ * the amount of space to add on the top and bottom of the widget,
+ * in pixels.
+ */
+public struct GtkMisc{}
+
+
+/**
+ * Main Gtk struct.
+ * The object itself. You should never use these members directly -
+ */
+public struct GtkObject{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkPaned{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkRange{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkScale struct contains the following fields.
+ * (These fields should be considered read-only. They should never be set by
+ * an application.)
+ * guint draw_value;
+ * non-zero if the scale's current value is displayed next to the
+ * slider.
+ * guint value_pos;
+ * the position in which the textual value is displayed, selected from
+ * GtkPositionType.
+ */
+public struct GtkScale{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkScrollbar struct does not contain any public data.
+ * Style Property Details
+ * The "fixed-slider-length" style property
+ */
+public struct GtkScrollbar{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkSeparator struct contains private data only.
+ */
+public struct GtkSeparator{}
+
+
+/**
+ * Main Gtk struct.
+ * GtkStyle*style;
+ * The style for the widget. The style contains the colors the widget should be
+ */
+public struct GtkWidget{}
+// /+* The style for the widget. The style contains the
+// GtkWidget.html
+// * colors the widget should be drawn inn for each state
+// GtkWidget.html
+// * along with graphics contexts used to draw with and
+// GtkWidget.html
+// * the font to use for text.
+// GtkWidget.html
+// +/
+// GtkWidget.html
+// GtkStyle *style;
+// GtkWidget.html
+// /+* The widget's desired size.
+// GtkWidget.html
+// +/
+// GtkWidget.html
+// GtkRequisition requisition;
+// GtkWidget.html
+// /+* The widget's allocated size.
+// GtkWidget.html
+// +/
+// GtkWidget.html
+// GtkAllocation allocation;
+// GtkWidget.html
+// /+* The widget's window or its parent window if it does
+// GtkWidget.html
+// * not have a window. (Which will be indicated by the
+// GtkWidget.html
+// * GTK_NO_WINDOW flag being set).
+// GtkWidget.html
+// +/
+// GtkWidget.html
+// GdkWindow *window;
+// GtkWidget.html
+// /+* The widget's parent.
+// GtkWidget.html
+// +/
+// GtkWidget.html
+// GtkWidget *parent;
+// GtkWidget.html
+
+
+/**
+ * activate_signal
+ * The signal to emit when a widget of this class is activated,
+ * gtk_widget_activate() handles the emission. Implementation of this
+ * signal is optional.
+ * set_scroll_adjustment_signal
+ * This signal is emitted when a widget of this class is added
+ * to a scrolling aware parent, gtk_widget_set_scroll_adjustments()
+ * handles the emission.
+ * Implementation of this signal is optional.
+ */
+public struct GtkWidgetClass{}
+// /+* The object class structure needs to be the first
+// GtkWidget.html
+// * element inn the widget class structure inn order for
+// GtkWidget.html
+// * the class mechanism to work correctly. This allows a
+// GtkWidget.html
+// * GtkWidgetClass pointer to be cast to a GtkObjectClass
+// GtkWidget.html
+// * pointer.
+// GtkWidget.html
+// +/
+// GtkWidget.html
+// GtkObjectClass parentClass;
+// GtkWidget.html
+// uint activateSignal;
+// GtkWidget.html
+// uint setScrollAdjustmentsSignal;
+// GtkWidget.html
+
+
+/**
+ * A GtkRequisition represents the desired size of a widget. See
+ * the section called Size Requisition for more information.
+ * gintwidth;
+ * the widget's desired width
+ * gintheight;
+ * the widget's desired height
+ */
+public struct GtkRequisition
+{
+	int width;
+	int height;
+}
+
+
+/**
+ * A GtkAllocation of a widget represents region which has been allocated to the
+ * widget by its parent. It is a subregion of its parents allocation. See
+ * the section called Size Allocation for more information.
+ * gintx;
+ * the X position of the widget's area relative to its parents allocation.
+ * ginty;
+ * the Y position of the widget's area relative to its parents allocation.
+ * gintwidth;
+ * the width of the widget's allocated area.
+ * gintheight;
+ * the height of the widget's allocated area.
+ */
+public struct GtkAllocation
+{
+	int x;
+	int y;
+	int width;
+	int height;
+}
+
+
+public struct GtkSelectionData{}
+// GdkAtom selection;
+// GtkWidget.html
+// GdkAtom target;
+// GtkWidget.html
+// GdkAtom type;
+// GtkWidget.html
+// int format;
+// GtkWidget.html
+// char *data;
+// GtkWidget.html
+// int length;
+// GtkWidget.html
+// GdkDisplay *display;
+// GtkWidget.html
+
+
+public struct GtkWidgetAuxInfo
+{
+	int x;
+	int y;
+	int width;
+	int height;
+	uint bitfield;
+	//uint xSet : 1;
+}
+
+
+public struct GtkWidgetShapeInfo{}
+// short offsetX;
+// GtkWidget.html
+// short offsetY;
+// GtkWidget.html
+// GdkBitmap *shapeMask;
+// GtkWidget.html
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkIMContext{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkPlug{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkSocket structure contains the plug_window
+ * field. (This field should be considered read-only. It should
+ * never be set by an application.)
+ */
+public struct GtkSocket{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkCurve struct contains private data only, and
+ * should be accessed using the functions below.
+ */
+public struct GtkCurve{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkGammaCurve struct contains private data only, and
+ * should be accessed using the functions below.
+ */
+public struct GtkGammaCurve{}
+
+
+/**
+ * Main Gtk struct.
+ * All distances are in 1/72nd's of an inch. (According to Adobe thats a point, but
+ * points are really 1/72.27 in.)
+ */
+public struct GtkRuler{}
+
+
+/**
+ * This should be points_per_unit. This is the size of the unit in 1/72nd's of an inch and has nothing to do with screen pixels.
+ */
+public struct GtkRulerMetric{}
+// char *metricName;
+// GtkRuler.html
+// char *abbrev;
+// GtkRuler.html
+// /+* This should be pointsPerUnit. This is the size of the unit
+// GtkRuler.html
+// * inn 1/72nd's of an inch and has nothing to do with screen pixels +/
+// GtkRuler.html
+// double pixelsPerUnit;
+// GtkRuler.html
+// double rulerScale[10];
+// GtkRuler.html
+// int subdivide[5]; /+* five possible modes of subdivision +/
+// GtkRuler.html
+
+
+/**
+ * Main Gtk struct.
+ * The GtkHRuler struct contains private data and should be accessed
+ * with the functions below.
+ */
+public struct GtkHRuler{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkVRuler struct contains private data and should be accessed
+ * using the functions below.
+ */
+public struct GtkVRuler{}
+
+
+/**
+ * Main Gtk struct.
+ * Acts as a database of information about the list of recently
+ * used files. Normally, you retrieve the recent manager for a
+ * particular screen using gtk_recent_manager_get_for_screen()
+ * and it will contain information about current recent manager
+ * for that screen.
+ */
+public struct GtkRecentManager{}
+
+
+/**
+ * Contains informations found when looking up an entry of the
+ * recently used files list.
+ */
+public struct GtkRecentInfo{}
+
+
+/**
+ * Meta-data to be passed to gtk_recent_manager_add_full() when
+ * registering a recently used resource.
+ * gchar*display_name;
+ */
+public struct GtkRecentData
+{
+	char *displayName;
+	char *description;
+	char *mimeType;
+	char *appName;
+	char *appExec;
+	char **groups;
+	int isPrivate;
+}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkRecentChooser{}
+
+
+public struct GtkRecentChooserIface{}
+// GTypeInterface baseIface;
+// GtkRecentChooser.html
+// /+*
+// GtkRecentChooser.html
+// * Methods
+// GtkRecentChooser.html
+// +/
+// GtkRecentChooser.html
+// int (* setCurrentUri) (GtkRecentChooser *chooser,
+// GtkRecentChooser.html
+// char *uri,
+// GtkRecentChooser.html
+// GError **error);
+// GtkRecentChooser.html
+// char * (* getCurrentUri) (GtkRecentChooser *chooser);
+// GtkRecentChooser.html
+// int (* selectUri) (GtkRecentChooser *chooser,
+// GtkRecentChooser.html
+// char *uri,
+// GtkRecentChooser.html
+// GError **error);
+// GtkRecentChooser.html
+// void (* unselectUri) (GtkRecentChooser *chooser,
+// GtkRecentChooser.html
+// char *uri);
+// GtkRecentChooser.html
+// void (* selectAll) (GtkRecentChooser *chooser);
+// GtkRecentChooser.html
+// void (* unselectAll) (GtkRecentChooser *chooser);
+// GtkRecentChooser.html
+// GList * (* getItems) (GtkRecentChooser *chooser);
+// GtkRecentChooser.html
+// GtkRecentManager *(* getRecentManager) (GtkRecentChooser *chooser);
+// GtkRecentChooser.html
+// void (* addFilter) (GtkRecentChooser *chooser,
+// GtkRecentChooser.html
+// GtkRecentFilter *filter);
+// GtkRecentChooser.html
+// void (* removeFilter) (GtkRecentChooser *chooser,
+// GtkRecentChooser.html
+// GtkRecentFilter *filter);
+// GtkRecentChooser.html
+// GSList * (* listFilters) (GtkRecentChooser *chooser);
+// GtkRecentChooser.html
+// void (* setSortFunc) (GtkRecentChooser *chooser,
+// GtkRecentChooser.html
+// GtkRecentSortFunc sortFunc,
+// GtkRecentChooser.html
+// void* data,
+// GtkRecentChooser.html
+// GDestroyNotify destroy);
+// GtkRecentChooser.html
+// /+*
+// GtkRecentChooser.html
+// * Signals
+// GtkRecentChooser.html
+// +/
+// GtkRecentChooser.html
+// void (* itemActivated) (GtkRecentChooser *chooser);
+// GtkRecentChooser.html
+// void (* selectionChanged) (GtkRecentChooser *chooser);
+// GtkRecentChooser.html
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkRecentChooserDialog{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkRecentChooserMenu{}
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkRecentChooserWidget{}
+
+
+/**
+ * Main Gtk struct.
+ * The GtkRecentFilter struct contains
+ * only private fields and should not be directly accessed.
+ */
+public struct GtkRecentFilter{}
+
+
+/**
+ * A GtkRecentFilterInfo struct is used
+ * to pass information about the tested file to gtk_recent_filter_filter().
+ * GtkRecentFilterFlagscontains;
+ * Flags indicating which of the following fields need
+ */
+public struct GtkRecentFilterInfo{}
+// GtkRecentFilterFlags contains;
+// GtkRecentFilter.html
+// char *uri;
+// GtkRecentFilter.html
+// char *displayName;
+// GtkRecentFilter.html
+// char *mimeType;
+// GtkRecentFilter.html
+// char **applications;
+// GtkRecentFilter.html
+// char **groups;
+// GtkRecentFilter.html
+// int age;
+// GtkRecentFilter.html
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkBuildable{}
+
+
+/**
+ * The GtkBuildableIface interface contains method that are
+ * necessary to allow GtkBuilder to construct an object from
+ * a GtkBuilder UI definition.
+ * GTypeInterfaceg_iface;
+ * the parent class
+ * set_name()
+ * Stores the name attribute given in the GtkBuilder UI definition.
+ */
+public struct GtkBuildableIface{}
+// GTypeInterface gIface;
+// gtk-gtkbuildable.html
+// /+* virtual table +/
+// gtk-gtkbuildable.html
+// void (* setName) (GtkBuildable *buildable,
+// gtk-gtkbuildable.html
+// char *name);
+// gtk-gtkbuildable.html
+// char * (* getName) (GtkBuildable *buildable);
+// gtk-gtkbuildable.html
+// void (* addChild) (GtkBuildable *buildable,
+// gtk-gtkbuildable.html
+// GtkBuilder *builder,
+// gtk-gtkbuildable.html
+// GObject *child,
+// gtk-gtkbuildable.html
+// char *type);
+// gtk-gtkbuildable.html
+// void (* setBuildableProperty) (GtkBuildable *buildable,
+// gtk-gtkbuildable.html
+// GtkBuilder *builder,
+// gtk-gtkbuildable.html
+// char *name,
+// gtk-gtkbuildable.html
+// GValue *value);
+// gtk-gtkbuildable.html
+// GObject * (* constructChild) (GtkBuildable *buildable,
+// gtk-gtkbuildable.html
+// GtkBuilder *builder,
+// gtk-gtkbuildable.html
+// char *name);
+// gtk-gtkbuildable.html
+// int (* customTagStart) (GtkBuildable *buildable,
+// gtk-gtkbuildable.html
+// GtkBuilder *builder,
+// gtk-gtkbuildable.html
+// GObject *child,
+// gtk-gtkbuildable.html
+// char *tagname,
+// gtk-gtkbuildable.html
+// GMarkupParser *parser,
+// gtk-gtkbuildable.html
+// void* *data);
+// gtk-gtkbuildable.html
+// void (* customTagEnd) (GtkBuildable *buildable,
+// gtk-gtkbuildable.html
+// GtkBuilder *builder,
+// gtk-gtkbuildable.html
+// GObject *child,
+// gtk-gtkbuildable.html
+// char *tagname,
+// gtk-gtkbuildable.html
+// void* *data);
+// gtk-gtkbuildable.html
+// void (* customFinished) (GtkBuildable *buildable,
+// gtk-gtkbuildable.html
+// GtkBuilder *builder,
+// gtk-gtkbuildable.html
+// GObject *child,
+// gtk-gtkbuildable.html
+// char *tagname,
+// gtk-gtkbuildable.html
+// void* data);
+// gtk-gtkbuildable.html
+// void (* parserFinished) (GtkBuildable *buildable,
+// gtk-gtkbuildable.html
+// GtkBuilder *builder);
+// gtk-gtkbuildable.html
+// GObject * (* getInternalChild) (GtkBuildable *buildable,
+// gtk-gtkbuildable.html
+// GtkBuilder *builder,
+// gtk-gtkbuildable.html
+// char *childname);
+// gtk-gtkbuildable.html
+
+
+/**
+ * Main Gtk struct.
+ */
+public struct GtkBuilder{}
+
+
+/**
+ * Main Gtk struct.
+ * Warning
+ * GtkFileSelection is deprecated and should not be used in newly-written code.
+ * The GtkFileSelection struct contains the following GtkWidget fields:
+ * GtkWidget*dir_list;
+ * GtkWidget*file_list;
+ * GtkWidget*selection_entry;
+ * GtkWidget*selection_text;
+ * GtkWidget*main_vbox;
+ * GtkWidget*ok_button;
+ * GtkWidget*cancel_button;
+ * the two main buttons that signals should be connected
+ */
+public struct GtkFileSelection{}
+// GtkWidget *dirList;
+// GtkFileSelection.html
+// GtkWidget *fileList;
+// GtkFileSelection.html
+// GtkWidget *selectionEntry;
+// GtkFileSelection.html
+// GtkWidget *selectionText;
+// GtkFileSelection.html
+// GtkWidget *mainVbox;
+// GtkFileSelection.html
+// GtkWidget *okButton;
+// GtkFileSelection.html
+// GtkWidget *cancelButton;
+// GtkFileSelection.html
+// GtkWidget *helpButton;
+// GtkFileSelection.html
+// GtkWidget *historyPulldown;
+// GtkFileSelection.html
+// GtkWidget *historyMenu;
+// GtkFileSelection.html
+// GList *historyList;
+// GtkFileSelection.html
+// GtkWidget *fileopDialog;
+// GtkFileSelection.html
+// GtkWidget *fileopEntry;
+// GtkFileSelection.html
+// char *fileopFile;
+// GtkFileSelection.html
+// void* cmplState;
+// GtkFileSelection.html
+// GtkWidget *fileopCDir;
+// GtkFileSelection.html
+// GtkWidget *fileopDelFile;
+// GtkFileSelection.html
+// GtkWidget *fileopRenFile;
+// GtkFileSelection.html
+// GtkWidget *buttonArea;
+// GtkFileSelection.html
+// GtkWidget *actionArea;
+// GtkFileSelection.html
+
+
+/**
+ * Main Gtk struct.
+ * Warning
+ * GtkItemFactory is deprecated and should not be used in newly-written code.
+ */
+public struct GtkItemFactory{}
+
+
+/**
+ * Warning
+ * GtkItemFactoryEntry is deprecated and should not be used in newly-written code.
+ */
+public struct GtkItemFactoryEntry{}
+// char *path;
+// GtkItemFactory.html
+// char *accelerator;
+// GtkItemFactory.html
+// GtkItemFactoryCallback callback;
+// GtkItemFactory.html
+// uint callbackAction;
+// GtkItemFactory.html
+// /+* possible values:
+// GtkItemFactory.html
+// * NULL -> "<Item>"
+// GtkItemFactory.html
+// * "" -> "<Item>"
+// GtkItemFactory.html
+// * "<Title>" -> create a title item
+// GtkItemFactory.html
+// * "<Item>" -> create a simple item
+// GtkItemFactory.html
+// * "<ImageItem>" -> create an item holding an image
+// GtkItemFactory.html
+// * "<StockItem>" -> create an item holding a stock image
+// GtkItemFactory.html
+// * "<CheckItem>" -> create a check item
+// GtkItemFactory.html
+// * "<ToggleItem>" -> create a toggle item
+// GtkItemFactory.html
+// * "<RadioItem>" -> create a radio item
+// GtkItemFactory.html
+// * <path> -> path of a radio item to link against
+// GtkItemFactory.html
+// * "<Separator>" -> create a separator
+// GtkItemFactory.html
+// * "<Tearoff>" -> create a tearoff separator
+// GtkItemFactory.html
+// * "<Branch>" -> create an item to hold sub items
+// GtkItemFactory.html
+// * "<LastBranch>" -> create a right justified item to hold sub items
+// GtkItemFactory.html
+// +/
+// GtkItemFactory.html
+// char *itemType;
+// GtkItemFactory.html
+// /+* Extra data for some item types:
+// GtkItemFactory.html
+// * ImageItem -> pointer to inlined pixbuf stream
+// GtkItemFactory.html
+// * StockItem -> name of stock item
+// GtkItemFactory.html
+// +/
+// GtkItemFactory.html
+// void* extraData;
+// GtkItemFactory.html
+
+
+/**
+ * Warning
+ * GtkItemFactoryItem is deprecated and should not be used in newly-written code.
+ */
+public struct GtkItemFactoryItem{}
+// char *path;
+// GtkItemFactory.html
+// GSList *widgets;
+// GtkItemFactory.html
+
+
+/**
+ * Main Gtk struct.
+ * Warning
+ * GtkTooltips is deprecated and should not be used in newly-written code.
+ * Holds information about a group of tooltips. Fields should be changed using the functions provided, rather than directly accessing the struct's members.
+ */
+public struct GtkTooltips{}
+
+
+/**
+ * Warning
+ * GtkTooltipsData has been deprecated since version 2.12 and should not be used in newly-written code.
+ * tooltips is the GtkTooltips group that this tooltip belongs to. widget is the GtkWidget that this tooltip data is associated with. tip_text is a string containing the tooltip message itself.
+ * tip_private is a string that is not shown as the default tooltip. Instead, this message may be more informative and go towards forming a context-sensitive help system for your application. (FIXME: how to actually "switch on" private tips?)
+ */
+public struct GtkTooltipsData{}
+// GtkTooltips *tooltips;
+// GtkTooltips.html
+// GtkWidget *widget;
+// GtkTooltips.html
+// char *tipText;
+// GtkTooltips.html
+// char *tipPrivate;
+// GtkTooltips.html
+
+
+/**
+ * Main Gtk struct.
+ * The GtkProgress struct contains private data only.
+ * and should be accessed using the functions below.
+ */
+public struct GtkProgress{}
+
+
+/*
+ * Returns whether the style is attached to a window.
+ * style:
+ * a GtkStyle.
+ */
+// TODO
+// #define GTK_STYLE_ATTACHED(style)	(GTK_STYLE (style)->attach_count > 0)
+
+/*
+ * Warning
+ * gtk_style_apply_default_pixmap is deprecated and should not be used in newly-written code.
+ * Deprecated alias for gtk_style_apply_default_background().
+ * s:
+ * gw:
+ * st:
+ * a:
+ * x:
+ * y:
+ * w:
+ * h:
+ */
+// TODO
+// #define gtk_style_apply_default_pixmap(s,gw,st,a,x,y,w,h) gtk_style_apply_default_background (s,gw,1,st,a,x,y,w,h)
+
+/*
+ * Returns TRUE if the version of the GTK+ header files is the same
+ * as or newer than the passed-in version.
+ * major:
+ * major version (e.g. 1 for version 1.2.5)
+ * minor:
+ * minor version (e.g. 2 for version 1.2.5)
+ * micro:
+ * micro version (e.g. 5 for version 1.2.5)
+ */
+// TODO
+// #define GTK_CHECK_VERSION(major,minor,micro)
+
+/*
+ * Warning
+ * gtk_signal_lookup is deprecated and should not be used in newly-written code. Use g_signal_lookup() instead.
+ * Given the name of the signal and the type of object it connects
+ * to, get the signal's identifying integer. Emitting the signal
+ * by number is somewhat faster than using the name each time.
+ * It also tries the ancestors of the given type.
+ * name:
+ * the signal's name, e.g. clicked.
+ * object_type:
+ * the type that the signal operates on, e.g. GTK_TYPE_BUTTON.
+ * Returns:
+ * the signal's identifying number, or 0 if no signal was found.
+ */
+// TODO
+// #define gtk_signal_lookup(name,object_type)
+
+/*
+ * Warning
+ * gtk_signal_name is deprecated and should not be used in newly-written code. Use g_signal_name() instead.
+ * Given the signal's identifier, finds its name.
+ * Two different signals may have the same name, if they have differing types.
+ * signal_id:
+ * the signal's identifying number.
+ * Returns:
+ * the signal name, or NULL if the signal number was invalid.
+ */
+// TODO
+// #define gtk_signal_name(signal_id)
+
+/*
+ * Warning
+ * gtk_signal_emit_stop is deprecated and should not be used in newly-written code. Use g_signal_stop_emission() instead.
+ * This function aborts a signal's current emission.
+ * It will prevent the default method from running,
+ * if the signal was GTK_RUN_LAST and you connected
+ * normally (i.e. without the "after" flag).
+ * It will print a warning if used on a signal which
+ * isn't being emitted.
+ * object:
+ * the object whose signal handlers you wish to stop.
+ * signal_id:
+ * the signal identifier, as returned by g_signal_lookup().
+ */
+// TODO
+// #define gtk_signal_emit_stop(object,signal_id)
+
+/*
+ * Warning
+ * gtk_signal_connect is deprecated and should not be used in newly-written code. Use g_signal_connect() instead.
+ * Attaches a function pointer and user data to a signal for
+ * a particular object.
+ * The GtkSignalFunction takes a GtkObject as its first parameter.
+ * It will be the same object as the one you're connecting
+ * the hook to. The func_data will be passed as the last parameter
+ * to the hook.
+ * All else being equal, signal handlers are invoked in the order
+ * connected (see gtk_signal_emit() for the other details of
+ * which order things are called in).
+ * Here is how one passes an integer as user data,
+ * for when you just want to specify a constant int
+ * as parameter to your function:
+ * static void button_clicked_int (GtkButton* button, gpointer func_data)
+ * {
+	 * 	g_print ("button pressed: %d\n", GPOINTER_TO_INT (func_data));
+ * }
+ * /+* By calling this function, you will make the g_print above
+ *  * execute, printing the number passed as `to_print'. +/
+ * static void attach_print_signal (GtkButton* button, gint to_print)
+ * {
+	 * 	gtk_signal_connect (GTK_OBJECT (button), "clicked",
+	 * 		GTK_SIGNAL_FUNC (button_clicked_int),
+	 * 		GINT_TO_POINTER (to_print));
+ * }
+ * object:
+ * the object associated with the signal, e.g. if a button
+ * is getting pressed, this is that button.
+ * name:
+ * name of the signal.
+ * func:
+ * function pointer to attach to the signal.
+ * func_data:
+ * value to pass as to your function (through the marshaller).
+ * Returns:
+ * the connection id.
+ */
+// TODO
+// #define gtk_signal_connect(object,name,func,func_data)
+
+/*
+ * Warning
+ * gtk_signal_connect_after is deprecated and should not be used in newly-written code. Use g_signal_connect_after() instead.
+ * Attaches a function pointer and user data to a signal
+ * so that this handler will be called after the other handlers.
+ * object:
+ * the object associated with the signal.
+ * name:
+ * name of the signal.
+ * func:
+ * function pointer to attach to the signal.
+ * func_data:
+ * value to pass as to your function (through the marshaller).
+ * Returns:
+ * the unique identifier for this attachment: the connection id.
+ */
+// TODO
+// #define gtk_signal_connect_after(object,name,func,func_data)
+
+/*
+ * Warning
+ * gtk_signal_connect_object is deprecated and should not be used in newly-written code. Use g_signal_connect_swapped() instead.
+ * This function is for registering a callback that will
+ * call another object's callback. That is,
+ * instead of passing the object which is responsible
+ * for the event as the first parameter of the callback,
+ * it is switched with the user data (so the object which emits
+ * the signal will be the last parameter, which is where the
+ * user data usually is).
+ * This is useful for passing a standard function in as a callback.
+ * For example, if you wanted a button's press to gtk_widget_show()
+ * some widget, you could write:
+ * gtk_signal_connect_object (button, "clicked", gtk_widget_show, window);
+ * object:
+ * the object which emits the signal.
+ * name:
+ * the name of the signal.
+ * func:
+ * the function to callback.
+ * slot_object:
+ * the object to pass as the first parameter to func.
+ * (Though it pretends to take an object, you can
+ * really pass any gpointer as the slot_object .)
+ * Returns:
+ * the connection id.
+ */
+// TODO
+// #define gtk_signal_connect_object(object,name,func,slot_object)
+
+/*
+ * Warning
+ * gtk_signal_connect_object_after is deprecated and should not be used in newly-written code. Use g_signal_connect_data() instead, passing
+ * G_CONNECT_AFTER|G_CONNECT_SWAPPED as connect_flags.
+ * Attaches a signal hook to a signal, passing in an alternate
+ * object as the first parameter, and guaranteeing
+ * that the default handler and all normal
+ * handlers are called first.
+ * object:
+ * the object associated with the signal.
+ * name:
+ * name of the signal.
+ * func:
+ * function pointer to attach to the signal.
+ * slot_object:
+ * the object to pass as the first parameter to func.
+ * Returns:
+ * the connection id.
+ */
+// TODO
+// #define gtk_signal_connect_object_after(object,name,func,slot_object)
+
+/*
+ * Warning
+ * gtk_signal_disconnect is deprecated and should not be used in newly-written code. Use g_signal_handler_disconnect() instead.
+ * Destroys a user-defined handler connection.
+ * object:
+ * the object which the handler pertains to.
+ * handler_id:
+ * the connection id.
+ */
+// TODO
+// #define gtk_signal_disconnect(object,handler_id)
+
+/*
+ * Warning
+ * gtk_signal_disconnect_by_func is deprecated and should not be used in newly-written code. Use g_signal_handlers_disconnect_by_func() instead.
+ * Destroys all connections for a particular object, with
+ * the given function-pointer and user-data.
+ * object:
+ * the object which emits the signal.
+ * func:
+ * the function pointer to search for.
+ * data:
+ * the user data to search for.
+ */
+// TODO
+// #define gtk_signal_disconnect_by_func(object,func,data)
+
+/*
+ * Warning
+ * gtk_signal_disconnect_by_data is deprecated and should not be used in newly-written code. Use g_signal_handlers_disconnect_matched() instead.
+ * Destroys all connections for a particular object, with
+ * the given user-data.
+ * object:
+ * the object which emits the signal.
+ * data:
+ * the user data to search for.
+ */
+// TODO
+// #define gtk_signal_disconnect_by_data(object,data)
+
+/*
+ * Warning
+ * gtk_signal_handler_block is deprecated and should not be used in newly-written code. Use g_signal_handler_block() instead.
+ * Prevents a user-defined handler from being invoked. All other
+ * signal processing will go on as normal, but this particular
+ * handler will ignore it.
+ * object:
+ * the object which emits the signal to block.
+ * handler_id:
+ * the connection id.
+ */
+// TODO
+// #define gtk_signal_handler_block(object,handler_id)
+
+/*
+ * Warning
+ * gtk_signal_handler_block_by_func is deprecated and should not be used in newly-written code. Use g_signal_handlers_block_by_func() instead.
+ * Prevents a user-defined handler from being invoked, by reference to
+ * the user-defined handler's function pointer and user data. (It may result in
+ * multiple hooks being blocked, if you've called connect multiple times.)
+ * object:
+ * the object which emits the signal to block.
+ * func:
+ * the function pointer of the handler to block.
+ * data:
+ * the user data of the handler to block.
+ */
+// TODO
+// #define gtk_signal_handler_block_by_func(object,func,data)
+
+/*
+ * Warning
+ * gtk_signal_handler_block_by_data is deprecated and should not be used in newly-written code. Use g_signal_handlers_block_matched() instead.
+ * Prevents all user-defined handlers with a certain user data from being invoked.
+ * object:
+ * the object which emits the signal we want to block.
+ * data:
+ * the user data of the handlers to block.
+ */
+// TODO
+// #define gtk_signal_handler_block_by_data(object,data)
+
+/*
+ * Warning
+ * gtk_signal_handler_unblock is deprecated and should not be used in newly-written code. Use g_signal_handler_unblock() instead.
+ * Undoes a block, by connection id. Note that undoing a block doesn't
+ * necessarily make the hook callable, because if you block a
+ * hook twice, you must unblock it twice.
+ * object:
+ * the object which emits the signal we want to unblock.
+ * handler_id:
+ * the emission handler identifier, as returned by
+ * gtk_signal_connect(), etc.
+ */
+// TODO
+// #define gtk_signal_handler_unblock(object,handler_id)
+
+/*
+ * Warning
+ * gtk_signal_handler_unblock_by_func is deprecated and should not be used in newly-written code. Use g_signal_handlers_unblock_by_func() instead.
+ * Undoes a block, by function pointer and data.
+ * Note that undoing a block doesn't
+ * necessarily make the hook callable, because if you block a
+ * hook twice, you must unblock it twice.
+ * object:
+ * the object which emits the signal we want to unblock.
+ * func:
+ * the function pointer to search for.
+ * data:
+ * the user data to search for.
+ */
+// TODO
+// #define gtk_signal_handler_unblock_by_func(object,func,data)
+
+/*
+ * Warning
+ * gtk_signal_handler_unblock_by_data is deprecated and should not be used in newly-written code. Use g_signal_handlers_unblock_matched() instead.
+ * Undoes block(s), to all signals for a particular object
+ * with a particular user-data pointer
+ * object:
+ * the object which emits the signal we want to unblock.
+ * data:
+ * the user data to search for.
+ */
+// TODO
+// #define gtk_signal_handler_unblock_by_data(object,data)
+
+/*
+ * Warning
+ * gtk_signal_handler_pending is deprecated and should not be used in newly-written code. Use g_signal_has_handler_pending() instead.
+ * Returns a connection id corresponding to a given signal id and object.
+ * One example of when you might use this is when the arguments
+ * to the signal are difficult to compute. A class implementor
+ * may opt to not emit the signal if no one is attached anyway,
+ * thus saving the cost of building the arguments.
+ * object:
+ * the object to search for the desired user-defined handler.
+ * signal_id:
+ * the number of the signal to search for.
+ * may_be_blocked:
+ * whether it is acceptable to return a blocked
+ * handler.
+ * Returns:
+ * the connection id, if a connection was found. 0 otherwise.
+ */
+// TODO
+// #define gtk_signal_handler_pending(object,signal_id,may_be_blocked)
+
+/*
+ * Warning
+ * gtk_signal_handler_pending_by_func is deprecated and should not be used in newly-written code.
+ * Returns a connection id corresponding to a given signal id, object, function
+ * pointer and user data.
+ * object:
+ * the object to search for the desired handler.
+ * signal_id:
+ * the number of the signal to search for.
+ * may_be_blocked:
+ * whether it is acceptable to return a blocked
+ * handler.
+ * func:
+ * the function pointer to search for.
+ * data:
+ * the user data to search for.
+ * Returns:
+ * the connection id, if a handler was found. 0 otherwise.
+ */
+// TODO
+// #define gtk_signal_handler_pending_by_func(object,signal_id,may_be_blocked,func,data)
+
+/*
+ * Warning
+ * GTK_CLASS_NAME is deprecated and should not be used in newly-written code. Use g_type_name() and G_TYPE_FROM_CLASS() instead.
+ * Returns the type name of class.
+ * class:
+ * a GtkTypeClass.
+ */
+// TODO
+// #define GTK_CLASS_NAME(class)		(g_type_name (G_TYPE_FROM_CLASS (class)))
+
+/*
+ * Warning
+ * GTK_CLASS_TYPE is deprecated and should not be used in newly-written code. Use G_TYPE_FROM_CLASS() instead.
+ * Returns the type of class.
+ * class:
+ * a GtkTypeClass.
+ */
+// TODO
+// #define GTK_CLASS_TYPE(class)		(G_TYPE_FROM_CLASS (class))
+
+/*
+ * Warning
+ * GTK_TYPE_IS_OBJECT is deprecated and should not be used in newly-written code. Use G_TYPE_IS_OBJECT() instead.
+ * Returns TRUE if type is a GTK_TYPE_OBJECT.
+ * type:
+ * a GtkType.
+ */
+// TODO
+// #define GTK_TYPE_IS_OBJECT(type)	(g_type_is_a ((type), GTK_TYPE_OBJECT))
+
+/*
+ * Just a macroized cast into a GtkSignalFunc.
+ * f:
+ */
+// TODO
+// #define GTK_SIGNAL_FUNC(f)	 ((GtkSignalFunc) (f))
+
+/*
+ * Warning
+ * GTK_VALUE_CHAR is deprecated and should not be used in newly-written code.
+ * Gets the value of a GtkArg whose GtkType is GTK_TYPE_CHAR.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_VALUE_CHAR(a)	((a).d.char_data)
+
+/*
+ * Warning
+ * GTK_VALUE_UCHAR is deprecated and should not be used in newly-written code.
+ * Gets the value of a GtkArg whose GtkType is GTK_TYPE_UCHAR.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_VALUE_UCHAR(a)	((a).d.uchar_data)
+
+/*
+ * Warning
+ * GTK_VALUE_BOOL is deprecated and should not be used in newly-written code.
+ * Gets the value of a GtkArg whose GtkType is GTK_TYPE_BOOL.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_VALUE_BOOL(a)	((a).d.bool_data)
+
+/*
+ * Warning
+ * GTK_VALUE_INT is deprecated and should not be used in newly-written code.
+ * Gets the value of a GtkArg whose GtkType is GTK_TYPE_INT.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_VALUE_INT(a)	((a).d.int_data)
+
+/*
+ * Warning
+ * GTK_VALUE_UINT is deprecated and should not be used in newly-written code.
+ * Gets the value of a GtkArg whose GtkType is GTK_TYPE_UINT.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_VALUE_UINT(a)	((a).d.uint_data)
+
+/*
+ * Warning
+ * GTK_VALUE_LONG is deprecated and should not be used in newly-written code.
+ * Gets the value of a GtkArg whose GtkType is GTK_TYPE_LONG.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_VALUE_LONG(a)	((a).d.long_data)
+
+/*
+ * Warning
+ * GTK_VALUE_ULONG is deprecated and should not be used in newly-written code.
+ * Gets the value of a GtkArg whose GtkType is GTK_TYPE_ULONG.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_VALUE_ULONG(a)	((a).d.ulong_data)
+
+/*
+ * Warning
+ * GTK_VALUE_FLOAT is deprecated and should not be used in newly-written code.
+ * Gets the value of a GtkArg whose GtkType is GTK_TYPE_FLOAT.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_VALUE_FLOAT(a)	((a).d.float_data)
+
+/*
+ * Warning
+ * GTK_VALUE_DOUBLE is deprecated and should not be used in newly-written code.
+ * Gets the value of a GtkArg whose GtkType is GTK_TYPE_DOUBLE.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_VALUE_DOUBLE(a)	((a).d.double_data)
+
+/*
+ * Warning
+ * GTK_VALUE_STRING is deprecated and should not be used in newly-written code.
+ * Gets the value of a GtkArg whose GtkType is GTK_TYPE_STRING.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_VALUE_STRING(a)	((a).d.string_data)
+
+/*
+ * Warning
+ * GTK_VALUE_ENUM is deprecated and should not be used in newly-written code.
+ * Gets the value of a GtkArg whose GtkType is GTK_TYPE_ENUM.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_VALUE_ENUM(a)	((a).d.int_data)
+
+/*
+ * Warning
+ * GTK_VALUE_FLAGS is deprecated and should not be used in newly-written code.
+ * Gets the value of a GtkArg whose GtkType is GTK_TYPE_FLAGS.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_VALUE_FLAGS(a)	((a).d.uint_data)
+
+/*
+ * Warning
+ * GTK_VALUE_BOXED is deprecated and should not be used in newly-written code.
+ * Gets the value of a GtkArg whose GtkType is GTK_TYPE_BOXED.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_VALUE_BOXED(a)	((a).d.pointer_data)
+
+/*
+ * Warning
+ * GTK_VALUE_POINTER is deprecated and should not be used in newly-written code.
+ * Gets the value of a GtkArg whose GtkType is GTK_TYPE_POINTER.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_VALUE_POINTER(a)	((a).d.pointer_data)
+
+/*
+ * Warning
+ * GTK_VALUE_OBJECT is deprecated and should not be used in newly-written code.
+ * Gets the value of a GtkArg whose GtkType is GTK_TYPE_OBJECT.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_VALUE_OBJECT(a)	((a).d.object_data)
+
+/*
+ * Warning
+ * GTK_VALUE_SIGNAL is deprecated and should not be used in newly-written code.
+ * Gets the value of a GtkArg whose GtkType is GTK_TYPE_SIGNAL.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_VALUE_SIGNAL(a)	((a).d.signal_data)
+
+/*
+ * Warning
+ * GTK_RETLOC_CHAR is deprecated and should not be used in newly-written code.
+ * If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_CHAR.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_RETLOC_CHAR(a)	((gchar*)	(a).d.pointer_data)
+
+/*
+ * Warning
+ * GTK_RETLOC_UCHAR is deprecated and should not be used in newly-written code.
+ * If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_UCHAR.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_RETLOC_UCHAR(a)	((guchar*)	(a).d.pointer_data)
+
+/*
+ * Warning
+ * GTK_RETLOC_BOOL is deprecated and should not be used in newly-written code.
+ * If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_BOOL.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_RETLOC_BOOL(a)	((gboolean*)	(a).d.pointer_data)
+
+/*
+ * Warning
+ * GTK_RETLOC_INT is deprecated and should not be used in newly-written code.
+ * If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_INT.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_RETLOC_INT(a)	((gint*)	(a).d.pointer_data)
+
+/*
+ * Warning
+ * GTK_RETLOC_UINT is deprecated and should not be used in newly-written code.
+ * If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_UINT.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_RETLOC_UINT(a)	((guint*)	(a).d.pointer_data)
+
+/*
+ * Warning
+ * GTK_RETLOC_LONG is deprecated and should not be used in newly-written code.
+ * If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_LONG.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_RETLOC_LONG(a)	((glong*)	(a).d.pointer_data)
+
+/*
+ * Warning
+ * GTK_RETLOC_ULONG is deprecated and should not be used in newly-written code.
+ * If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_ULONG.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_RETLOC_ULONG(a)	((gulong*)	(a).d.pointer_data)
+
+/*
+ * Warning
+ * GTK_RETLOC_FLOAT is deprecated and should not be used in newly-written code.
+ * If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_FLOAT.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_RETLOC_FLOAT(a)	((gfloat*)	(a).d.pointer_data)
+
+/*
+ * Warning
+ * GTK_RETLOC_DOUBLE is deprecated and should not be used in newly-written code.
+ * If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_DOUBLE.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_RETLOC_DOUBLE(a)	((gdouble*)	(a).d.pointer_data)
+
+/*
+ * Warning
+ * GTK_RETLOC_STRING is deprecated and should not be used in newly-written code.
+ * If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_STRING.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_RETLOC_STRING(a)	((gchar**)	(a).d.pointer_data)
+
+/*
+ * Warning
+ * GTK_RETLOC_ENUM is deprecated and should not be used in newly-written code.
+ * If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_ENUM.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_RETLOC_ENUM(a)	((gint*)	(a).d.pointer_data)
+
+/*
+ * Warning
+ * GTK_RETLOC_FLAGS is deprecated and should not be used in newly-written code.
+ * If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_FLAGS.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_RETLOC_FLAGS(a)	((guint*)	(a).d.pointer_data)
+
+/*
+ * Warning
+ * GTK_RETLOC_BOXED is deprecated and should not be used in newly-written code.
+ * If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_BOXED.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_RETLOC_BOXED(a)	((gpointer*)	(a).d.pointer_data)
+
+/*
+ * Warning
+ * GTK_RETLOC_POINTER is deprecated and should not be used in newly-written code.
+ * If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_POINTER.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_RETLOC_POINTER(a)	((gpointer*)	(a).d.pointer_data)
+
+/*
+ * Warning
+ * GTK_RETLOC_OBJECT is deprecated and should not be used in newly-written code.
+ * If the GtkArg contains a pointer to the value, this macro will be a pointer to a GTK_TYPE_OBJECT.
+ * a:
+ * a GtkArg.
+ */
+// TODO
+// #define GTK_RETLOC_OBJECT(a)	((GtkObject**)	(a).d.pointer_data)
+
+/*
+ * Warning
+ * gtk_type_name is deprecated and should not be used in newly-written code.
+ * Returns a pointer to the name of a type, or NULL if it has none.
+ * type:
+ * a GtkType.
+ * Returns:
+ * a pointer to the name of a type, or NULL if it has none.
+ */
+// TODO
+// #define	gtk_type_name(type)		 g_type_name (type)
+
+/*
+ * Warning
+ * gtk_type_from_name is deprecated and should not be used in newly-written code.
+ * Gets the internal representation of a type, given its name.
+ * name:
+ * the name of a GTK+ type
+ * Returns:
+ * a GtkType.
+ */
+// TODO
+// #define	gtk_type_from_name(name)	 g_type_from_name (name)
+
+/*
+ * Warning
+ * gtk_type_parent is deprecated and should not be used in newly-written code.
+ * Returns the parent type of a GtkType.
+ * type:
+ * a GtkType.
+ * Returns:
+ * the GtkType of the parent.
+ */
+// TODO
+// #define	gtk_type_parent(type)		 g_type_parent (type)
+
+/*
+ * Warning
+ * gtk_type_is_a is deprecated and should not be used in newly-written code.
+ * Looks in the type hierarchy to see if type has is_a_type among its
+ * ancestors. Do so with a simple lookup, not a loop.
+ * type:
+ * a GtkType.
+ * is_a_type:
+ * another GtkType.
+ * Returns:
+ * TRUE if type is a is_a_type.
+ */
+// TODO
+// #define	gtk_type_is_a(type, is_a_type)	 g_type_is_a ((type), (is_a_type))
+
+/*
+ * Warning
+ * gtk_tree_model_get_iter_root is deprecated and should not be used in newly-written code.
+ * A alternate name for gtk_tree_model_get_iter_first() provided for
+ * compatibility reasons; this macro will be deprecated in future
+ * versions of GTK+.
+ * tree_model:
+ *  A GtkTreeModel.
+ * iter:
+ * uninitialized GtkTreeIter.
+ * Returns:
+ *  TRUE, if iter was set.
+ */
+// TODO
+// #define gtk_tree_model_get_iter_root(tree_model, iter) gtk_tree_model_get_iter_first(tree_model, iter)
+
+/*
+ * Warning
+ * gtk_menu_append is deprecated and should not be used in newly-written code. Use gtk_menu_shell_append() instead.
+ * Adds a new GtkMenuItem to the end of the menu's item list.
+ * menu:
+ * a GtkMenu.
+ * child:
+ * The GtkMenuItem to add.
+ */
+// TODO
+// #define gtk_menu_append(menu,child)	gtk_menu_shell_append ((GtkMenuShell *)(menu),(child))
+
+/*
+ * Warning
+ * gtk_menu_prepend is deprecated and should not be used in newly-written code. Use gtk_menu_shell_prepend() instead.
+ * Adds a new GtkMenuItem to the beginning of the menu's item list.
+ * menu:
+ * a GtkMenu.
+ * child:
+ * The GtkMenuItem to add.
+ */
+// TODO
+// #define gtk_menu_prepend(menu,child) gtk_menu_shell_prepend ((GtkMenuShell *)(menu),(child))
+
+/*
+ * Warning
+ * gtk_menu_insert is deprecated and should not be used in newly-written code. Use gtk_menu_shell_insert() instead.
+ * Adds a new GtkMenuItem to the menu's item list at the position
+ * indicated by position.
+ * menu:
+ * a GtkMenu.
+ * child:
+ * The GtkMenuItem to add.
+ * pos:
+ * The position in the item list where child is added.
+ *  Positions are numbered from 0 to n-1.
+ */
+// TODO
+// #define gtk_menu_insert(menu,child,pos)	gtk_menu_shell_insert ((GtkMenuShell *)(menu),(child),(pos))
+
+/*
+ * Warning
+ * gtk_menu_bar_append is deprecated and should not be used in newly-written code. Use gtk_menu_shell_append() instead.
+ * Adds a new GtkMenuItem to the end of the GtkMenuBar
+ * menu:
+ * a GtkMenuBar
+ * child:
+ * the GtkMenuItem to add
+ */
+// TODO
+// #define gtk_menu_bar_append(menu,child)	 gtk_menu_shell_append ((GtkMenuShell *)(menu),(child))
+
+/*
+ * Warning
+ * gtk_menu_bar_prepend is deprecated and should not be used in newly-written code. Use gtk_menu_shell_prepend() instead.
+ * Adds a new GtkMenuItem to the beginning of the GtkMenuBar
+ * menu:
+ * a GtkMenuBar
+ * child:
+ * the GtkMenuItem to add
+ */
+// TODO
+// #define gtk_menu_bar_prepend(menu,child) gtk_menu_shell_prepend ((GtkMenuShell *)(menu),(child))
+
+/*
+ * Warning
+ * gtk_menu_bar_insert is deprecated and should not be used in newly-written code. Use gtk_menu_shell_insert() instead.
+ * Adds a new GtkMenuItem to the GtkMenuBar at the position defined by position
+ * menu:
+ * a GtkMenuBar
+ * child:
+ * the GtkMenuItem to add
+ * pos:
+ * the position in the item list where the child is added.
+ */
+// TODO
+// #define gtk_menu_bar_insert(menu,child,pos) gtk_menu_shell_insert ((GtkMenuShell *)(menu),(child),(pos))
+
+/*
+ * Warning
+ * gtk_menu_item_right_justify is deprecated and should not be used in newly-written code.
+ * Sets the menu item to be right-justified. Only useful for menu bars.
+ * menu_item:
+ * the menu item
+ */
+// TODO
+// #define gtk_menu_item_right_justify(menu_item) gtk_menu_item_set_right_justified ((menu_item), TRUE)
+
+/*
+ * Warning
+ * gtk_button_box_get_spacing is deprecated and should not be used in newly-written code.
+ * Retrieves how much space a button box is placing between each child button.
+ * b:
+ * a GtkButtonBox
+ * Returns:
+ * the current spacing applied to the buttons in widget.
+ */
+// TODO
+// #define gtk_button_box_get_spacing(b) gtk_box_get_spacing (GTK_BOX (b))
+
+/*
+ * Warning
+ * gtk_button_box_set_spacing is deprecated and should not be used in newly-written code.
+ * Sets the amount of spacing between buttons in a given button box.
+ * b:
+ * a GtkButtonBox.
+ * s:
+ * the number of pixels of spacing.
+ */
+// TODO
+// #define gtk_button_box_set_spacing(b,s) gtk_box_set_spacing (GTK_BOX (b), s)
+
+/*
+ * widget:
+ */
+// TODO
+// #define GTK_IS_RESIZE_CONTAINER(widget) (GTK_IS_CONTAINER (widget)  ((GtkContainer*) (widget))->resize_mode != GTK_RESIZE_PARENT)
+
+/*
+ * This macro should be used to emit a standard warning about unexpected
+ * properties in set_child_property() and get_child_property() implementations.
+ * object:
+ * the GObject on which set_child_property() or get_child_property()
+ *  was called
+ * property_id:
+ * the numeric id of the property
+ * pspec:
+ * the GParamSpec of the property
+ */
+// TODO
+// #define GTK_CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID(object, property_id, pspec)
+
+/*
+ * Gets the type of an object.
+ * object:
+ * a GtkObject.
+ */
+// TODO
+// #define GTK_OBJECT_TYPE(object)		 (G_TYPE_FROM_INSTANCE (object))
+
+/*
+ * Gets the name of an objects type.
+ * object:
+ * a GtkObject.
+ */
+// TODO
+// #define GTK_OBJECT_TYPE_NAME(object)	 (g_type_name (GTK_OBJECT_TYPE (object)))
+
+/*
+ * Gets the GtkObjectFlags for an object without directly
+ * accessing its members.
+ * obj:
+ * the object whose flags are returned.
+ */
+// TODO
+// #define GTK_OBJECT_FLAGS(obj)		 (GTK_OBJECT (obj)->flags)
+
+/*
+ * Warning
+ * GTK_OBJECT_FLOATING is deprecated and should not be used in newly-written code.
+ * Evaluates to TRUE if the object still has its floating reference count.
+ * See the overview documentation for GtkObject.
+ * obj:
+ * the object to examine.
+ */
+// TODO
+// #define GTK_OBJECT_FLOATING(obj)	 (g_object_is_floating (obj))
+
+/*
+ * Warning
+ * gtk_paned_gutter_size is deprecated and should not be used in newly-written code.
+ * Old name for gtk_paned_set_gutter_size().
+ * p:
+ * a paned widget
+ * s:
+ * the width of the gutter in pixels
+ */
+// TODO
+// #define	gtk_paned_gutter_size(p,s)		(void) 0
+
+/*
+ * Warning
+ * gtk_paned_set_gutter_size is deprecated and should not be used in newly-written code.
+ * In older versions of GTK+, this function used to set the width of the
+ * gutter (the area between the two panes). It does nothing now.
+ * p:
+ * a paned widget
+ * s:
+ * the width of the gutter in pixels
+ */
+// TODO
+// #define	gtk_paned_set_gutter_size(p,s)		(void) 0
+
+/*
+ * Gets the type of a widget.
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_TYPE(wid)		 (GTK_OBJECT_TYPE (wid))
+
+/*
+ * Returns the current state of the widget, as a GtkStateType.
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_STATE(wid)		 (GTK_WIDGET (wid)->state)
+
+/*
+ * Returns the saved state of the widget, as a GtkStateType.
+ * The saved state will be restored when a widget gets sensitive
+ * again, after it has been made insensitive with gtk_widget_set_state()
+ * or gtk_widget_set_sensitive().
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_SAVED_STATE(wid)	 (GTK_WIDGET (wid)->saved_state)
+
+/*
+ * Returns the widget flags from wid.
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_FLAGS(wid)		 (GTK_OBJECT_FLAGS (wid))
+
+/*
+ * Evaluates to TRUE if the widget is a toplevel widget.
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_TOPLEVEL(wid)	 ((GTK_WIDGET_FLAGS (wid)  GTK_TOPLEVEL) != 0)
+
+/*
+ * Evaluates to TRUE if the widget doesn't have an own GdkWindow.
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_NO_WINDOW(wid)	 ((GTK_WIDGET_FLAGS (wid)  GTK_NO_WINDOW) != 0)
+
+/*
+ * Evaluates to TRUE if the widget is realized.
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_REALIZED(wid)	 ((GTK_WIDGET_FLAGS (wid)  GTK_REALIZED) != 0)
+
+/*
+ * Evaluates to TRUE if the widget is mapped.
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_MAPPED(wid)		 ((GTK_WIDGET_FLAGS (wid)  GTK_MAPPED) != 0)
+
+/*
+ * Evaluates to TRUE if the widget is visible.
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_VISIBLE(wid)		 ((GTK_WIDGET_FLAGS (wid)  GTK_VISIBLE) != 0)
+
+/*
+ * Evaluates to TRUE if the widget is mapped and visible.
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_DRAWABLE(wid)	 (GTK_WIDGET_VISIBLE (wid)  GTK_WIDGET_MAPPED (wid))
+
+/*
+ * Evaluates to TRUE if the GTK_SENSITIVE flag has be set on the widget.
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_SENSITIVE(wid)	 ((GTK_WIDGET_FLAGS (wid)  GTK_SENSITIVE) != 0)
+
+/*
+ * Evaluates to TRUE if the GTK_PARENT_SENSITIVE flag has be set on the widget.
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_PARENT_SENSITIVE(wid) ((GTK_WIDGET_FLAGS (wid)  GTK_PARENT_SENSITIVE) != 0)
+
+/*
+ * Evaluates to TRUE if the widget is effectively sensitive.
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_IS_SENSITIVE(wid)
+
+/*
+ * Evaluates to TRUE if the widget is able to handle focus grabs.
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_CAN_FOCUS(wid)	 ((GTK_WIDGET_FLAGS (wid)  GTK_CAN_FOCUS) != 0)
+
+/*
+ * Evaluates to TRUE if the widget has grabbed the focus and no other
+ * widget has done so more recently.
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_HAS_FOCUS(wid)	 ((GTK_WIDGET_FLAGS (wid)  GTK_HAS_FOCUS) != 0)
+
+/*
+ * Evaluates to TRUE if the widget is allowed to receive the default action
+ * via gtk_widget_grab_default().
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_CAN_DEFAULT(wid)	 ((GTK_WIDGET_FLAGS (wid)  GTK_CAN_DEFAULT) != 0)
+
+/*
+ * Evaluates to TRUE if the widget when focused will receive the default action
+ * even if there is a different widget set as default.
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_RECEIVES_DEFAULT(wid) ((GTK_WIDGET_FLAGS (wid)  GTK_RECEIVES_DEFAULT) != 0)
+
+/*
+ * Evaluates to TRUE if the widget currently is receiving the default action.
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_HAS_DEFAULT(wid)	 ((GTK_WIDGET_FLAGS (wid)  GTK_HAS_DEFAULT) != 0)
+
+/*
+ * Evaluates to TRUE if the widget is in the grab_widgets stack, and will be
+ * the preferred one for receiving events other than ones of cosmetic value.
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_HAS_GRAB(wid)	 ((GTK_WIDGET_FLAGS (wid)  GTK_HAS_GRAB) != 0)
+
+/*
+ * Evaluates to TRUE if the widget's style has been looked up through the rc
+ * mechanism.
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_RC_STYLE(wid)	 ((GTK_WIDGET_FLAGS (wid)  GTK_RC_STYLE) != 0)
+
+/*
+ * Evaluates to TRUE if the widget is a composite child of its parent.
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_COMPOSITE_CHILD(wid)	 ((GTK_WIDGET_FLAGS (wid)  GTK_COMPOSITE_CHILD) != 0)
+
+/*
+ * Evaluates to TRUE if the GTK_APP_PAINTABLE flag has been set on the widget.
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_APP_PAINTABLE(wid)	 ((GTK_WIDGET_FLAGS (wid)  GTK_APP_PAINTABLE) != 0)
+
+/*
+ * Evaluates to TRUE if the GTK_DOUBLE_BUFFERED flag has been set on the widget.
+ * wid:
+ * a GtkWidget.
+ */
+// TODO
+// #define GTK_WIDGET_DOUBLE_BUFFERED(wid)	 ((GTK_WIDGET_FLAGS (wid)  GTK_DOUBLE_BUFFERED) != 0)
+
+/*
+ * Turns on certain widget flags.
+ * wid:
+ * a GtkWidget.
+ * flag:
+ * the flags to set.
+ */
+// TODO
+// #define GTK_WIDGET_SET_FLAGS(wid,flag)	 G_STMT_START{ (GTK_WIDGET_FLAGS (wid) |= (flag)); }G_STMT_END
+
+/*
+ * Turns off certain widget flags.
+ * wid:
+ * a GtkWidget.
+ * flag:
+ * the flags to unset.
+ */
+// TODO
+// #define GTK_WIDGET_UNSET_FLAGS(wid,flag) G_STMT_START{ (GTK_WIDGET_FLAGS (wid) = ~(flag)); }G_STMT_END
+
+/*
+ * Warning
+ * gtk_widget_set_rc_style is deprecated and should not be used in newly-written code.
+ * Equivalent to gtk_widget_set_style (widget, NULL).
+ * widget:
+ * a GtkWidget.
+ */
+// TODO
+// #define gtk_widget_set_rc_style(widget) (gtk_widget_set_style (widget, NULL))
+
+/*
+ * Warning
+ * gtk_widget_restore_default_style is deprecated and should not be used in newly-written code.
+ * Equivalent to gtk_widget_set_style (widget, NULL).
+ * widget:
+ * a GtkWidget.
+ */
+// TODO
+// #define gtk_widget_restore_default_style(widget) (gtk_widget_set_style (widget, NULL))
+
+/*
+ * Warning
+ * gtk_widget_pop_visual is deprecated and should not be used in newly-written code.
+ * This function is deprecated; it does nothing.
+ */
+// TODO
+// #define gtk_widget_pop_visual() ((void) 0)
+
+/*
+ * Warning
+ * gtk_widget_push_visual is deprecated and should not be used in newly-written code.
+ * This function is deprecated; it does nothing.
+ * visual:
+ */
+// TODO
+// #define gtk_widget_push_visual(visual) ((void) 0)
+
+/*
+ * Warning
+ * gtk_widget_set_default_visual is deprecated and should not be used in newly-written code.
+ * This function is deprecated; it does nothing.
+ * visual:
+ */
+// TODO
+// #define gtk_widget_set_default_visual(visual) ((void) 0)
+
+/*
+ * Warning
+ * gtk_widget_set_visual is deprecated and should not be used in newly-written code.
+ * This function is deprecated; it does nothing.
+ * widget:
+ * visual:
+ */
+// TODO
+// #define gtk_widget_set_visual(widget,visual) ((void) 0)
+
+/*
+ * object:
+ * type:
+ */
+// TODO
+// #define GTK_BUILDER_WARN_INVALID_CHILD_TYPE(object, type)
+
+/*
+ * Each GTK+ module must have a function gtk_module_init() with this prototype.
+ * This function is called after loading the module with the argc and argv
+ * cleaned from any arguments that GTK+ handles itself.
+ * argc:
+ * Pointer to the number of arguments remaining after gtk_init().
+ * argv:
+ * Points to the argument vector.
+ */
+// void (*GtkModuleInitFunc) (gint *argc,  gchar ***argv);
+public typedef extern(C) void  function (gint*, gchar***) GtkModuleInitFunc;
+
+/*
+ * display:
+ * Since 2.2
+ */
+// void (*GtkModuleDisplayInitFunc) (GdkDisplay *display);
+public typedef extern(C) void  function (GdkDisplay*) GtkModuleDisplayInitFunc;
+
+/*
+ * Key snooper functions are called before normal event delivery.
+ * They can be used to implement custom key event handling.
+ * grab_widget:
+ * the widget to which the event will be delivered.
+ * event:
+ * the key event.
+ * func_data:
+ * the func_data supplied to gtk_key_snooper_install().
+ * Returns:
+ * TRUE to stop further processing of event, FALSE to continue.
+ */
+// gint (*GtkKeySnoopFunc) (GtkWidget *grab_widget,  GdkEventKey *event,  gpointer func_data);
+public typedef extern(C) int  function (GtkWidget*, GdkEventKey*, void*) GtkKeySnoopFunc;
+
+/*
+ * accel_group:
+ * acceleratable:
+ * keyval:
+ * modifier:
+ * Returns:
+ */
+// gboolean (*GtkAccelGroupActivate) (GtkAccelGroup *accel_group,  GObject *acceleratable,  guint keyval,  GdkModifierType modifier);
+public typedef extern(C) int  function (GtkAccelGroup*, GObject*, uint, GdkModifierType) GtkAccelGroupActivate;
+
+/*
+ * key:
+ * closure:
+ * data:
+ * Returns:
+ * Since 2.2
+ */
+// gboolean (*GtkAccelGroupFindFunc) (GtkAccelKey *key,  GClosure *closure,  gpointer data);
+public typedef extern(C) int  function (GtkAccelKey*, GClosure*, void*) GtkAccelGroupFindFunc;
+
+/*
+ * data:
+ * accel_path:
+ * accel_key:
+ * accel_mods:
+ * changed:
+ */
+// void (*GtkAccelMapForeach) (gpointer data,  const gchar *accel_path,  guint accel_key,  GdkModifierType accel_mods,  gboolean changed);
+public typedef extern(C) void  function (void*, char[], uint, GdkModifierType, int) GtkAccelMapForeach;
+
+/*
+ *  A function to be called when the results of gtk_clipboard_request_contents()
+ *  are received, or when the request fails.
+ * clipboard:
+ * the GtkClipboard
+ * selection_data:
+ * a GtkSelectionData containing the data was received.
+ *  If retrieving the data failed, then then length field
+ *  of selection_data will be negative.
+ * data:
+ * the user_data supplied to gtk_clipboard_request_contents().
+ */
+// void (*GtkClipboardReceivedFunc) (GtkClipboard *clipboard,  GtkSelectionData *selection_data,  gpointer data);
+public typedef extern(C) void  function (GtkClipboard*, GtkSelectionData*, void*) GtkClipboardReceivedFunc;
+
+/*
+ *  A function to be called when the results of gtk_clipboard_request_text()
+ *  are received, or when the request fails.
+ * clipboard:
+ * the GtkClipboard
+ * text:
+ * the text received, as a UTF-8 encoded string, or NULL
+ *  if retrieving the data failed.
+ * data:
+ * the user_data supplied to gtk_clipboard_request_text().
+ */
+// void (*GtkClipboardTextReceivedFunc) (GtkClipboard *clipboard,  const gchar *text,  gpointer data);
+public typedef extern(C) void  function (GtkClipboard*, char[], void*) GtkClipboardTextReceivedFunc;
+
+/*
+ *  A function to be called when the results of gtk_clipboard_request_image()
+ *  are received, or when the request fails.
+ * clipboard:
+ * the GtkClipboard
+ * pixbuf:
+ * the received image
+ * data:
+ * the user_data supplied to gtk_clipboard_request_image().
+ * Since 2.6
+ */
+// void (*GtkClipboardImageReceivedFunc) (GtkClipboard *clipboard,  GdkPixbuf *pixbuf,  gpointer data);
+public typedef extern(C) void  function (GtkClipboard*, GdkPixbuf*, void*) GtkClipboardImageReceivedFunc;
+
+/*
+ *  A function to be called when the results of gtk_clipboard_request_targets()
+ *  are received, or when the request fails.
+ * clipboard:
+ * the GtkClipboard
+ * atoms:
+ * the supported targets, as array of GdkAtom, or NULL
+ *  if retrieving the data failed.
+ * n_atoms:
+ * the length of the atoms array.
+ * data:
+ * the user_data supplied to gtk_clipboard_request_targets().
+ * Since 2.4
+ */
+// void (*GtkClipboardTargetsReceivedFunc) (GtkClipboard *clipboard,  GdkAtom *atoms,  gint n_atoms,  gpointer data);
+public typedef extern(C) void  function (GtkClipboard*, GdkAtom*, int, void*) GtkClipboardTargetsReceivedFunc;
+
+/*
+ * clipboard:
+ * format:
+ * text:
+ * length:
+ * data:
+ */
+// void (*GtkClipboardRichTextReceivedFunc) (GtkClipboard *clipboard,  GdkAtom format,  const guint8 *text,  gsize length,  gpointer data);
+public typedef extern(C) void  function (GtkClipboard*, GdkAtom, guint8*, uint, void*) GtkClipboardRichTextReceivedFunc;
+
+/*
+ * A function that will be called to provide the contents of the selection.
+ * If multiple types of data were advertised, the requested type can
+ * be determined from the info parameter or by checking the target field
+ * of selection_data. If the data could successfully be converted into
+ * then it should be stored into the selection_data object by
+ * calling gtk_selection_data_set() (or related functions such
+ * as gtk_selection_data_set_text()). If no data is set, the requestor
+ * will be informed that the attempt to get the data failed.
+ * clipboard:
+ * the GtkClipboard
+ * selection_data:
+ * a GtkSelectionData argument in which the requested
+ *  data should be stored.
+ * info:
+ * the info field corresponding to the requested
+ *  target from the GtkTargetEntry array passed to
+ *  gtk_clipboard_set_with_data() or gtk_clipboard_set_with_owner().
+ * user_data_or_owner:
+ * the user_data argument passed to gtk_clipboard_set_with_data(), or
+ *  the owner argument passed to gtk_clipboard_set_with_owner()
+ */
+// void (*GtkClipboardGetFunc) (GtkClipboard *clipboard,  GtkSelectionData *selection_data,  guint info,  gpointer user_data_or_owner);
+public typedef extern(C) void  function (GtkClipboard*, GtkSelectionData*, uint, void*) GtkClipboardGetFunc;
+
+/*
+ * A function that will be called when the contents of the clipboard are changed
+ * or cleared. Once this has called, the user_data_or_owner argument
+ * will not be used again.
+ * clipboard:
+ * the GtkClipboard
+ * user_data_or_owner:
+ * the user_data argument passed to gtk_clipboard_set_with_data(), or
+ *  the owner argument passed to gtk_clipboard_set_with_owner()
+ */
+// void (*GtkClipboardClearFunc) (GtkClipboard *clipboard,  gpointer user_data_or_owner);
+public typedef extern(C) void  function (GtkClipboard*, void*) GtkClipboardClearFunc;
+
+/*
+ * pspec:
+ * rc_string:
+ * property_value:
+ * Returns:
+ * Signal Details
+ * The "realize" signal
+ * void user_function (GtkStyle *style,
+ *  gpointer user_data) : Run First
+ * Emitted when the style has been initialized for a particular
+ * colormap and depth. Connecting to this signal is probably seldom
+ * useful since most of the time applications and widgets only
+ * deal with styles that have been already realized.
+ * style:
+ *  the object which received the signal
+ * user_data:
+ * user data set when the signal handler was connected.
+ * Since 2.4
+ */
+// gboolean (*GtkRcPropertyParser) (const GParamSpec *pspec,  const GString *rc_string,  GValue *property_value);
+public typedef extern(C) int  function (GParamSpec*, GString*, GValue*) GtkRcPropertyParser;
+
+/*
+ * Defines a function pointer.
+ */
+// void (*GtkSignalFunc) (void);
+public typedef extern(C) void  function () GtkSignalFunc;
+
+/*
+ * Defines a function pointer.
+ * data:
+ * gpointer
+ * Returns:
+ * gint
+ */
+// gboolean (*GtkFunction) (gpointer data);
+public typedef extern(C) int  function (void*) GtkFunction;
+
+/*
+ * Defines a function pointer.
+ * data:
+ * gpointer
+ */
+// void (*GtkDestroyNotify) (gpointer data);
+public typedef extern(C) void  function (void*) GtkDestroyNotify;
+
+/*
+ * Defines a function pointer.
+ * object:
+ * GtkObject*
+ * data:
+ * gpointer
+ * n_args:
+ * guint
+ * args:
+ * GtkArg*
+ */
+// void (*GtkCallbackMarshal) (GtkObject *object,  gpointer data,  guint n_args,  GtkArg *args);
+public typedef extern(C) void  function (GtkObject*, void*, uint, GtkArg*) GtkCallbackMarshal;
+
+/*
+ * The type of a function which is called when a URL or email
+ * link is activated.
+ * about:
+ * the GtkAboutDialog in which the link was activated
+ * link_:
+ * the URL or email address to which the activated link points
+ * data:
+ * user data that was passed when the function was registered
+ *  with gtk_about_dialog_set_email_hook() or
+ *  gtk_about_dialog_set_url_hook()
+ */
+// void (*GtkAboutDialogActivateLinkFunc) (GtkAboutDialog *about,  const gchar *link_,  gpointer data);
+public typedef extern(C) void  function (GtkAboutDialog*, char[], void*) GtkAboutDialogActivateLinkFunc;
+
+/*
+ * A function used by gtk_assistant_set_forward_page_func() to know which
+ * is the next page given a current one. It's called both for computing the
+ * next page when the user presses the "forward" button and for handling
+ * the behavior of the "last" button.
+ * current_page:
+ * The page number used to calculate the next page.
+ * data:
+ * user data.
+ * Returns:
+ * The next page number.
+ */
+// gint (*GtkAssistantPageFunc) (gint current_page,  gpointer data);
+public typedef extern(C) int  function (int, void*) GtkAssistantPageFunc;
+
+/*
+ * The type of a function which is called when the GtkLinkButton is
+ * clicked.
+ * button:
+ * the GtkLinkButton which was clicked
+ * link_:
+ * user_data:
+ * user data that was passed when the function was registered
+ *  with gtk_link_button_set_uri_hook()
+ */
+// void (*GtkLinkButtonUriFunc) (GtkLinkButton *button,  const gchar *link_,  gpointer user_data);
+public typedef extern(C) void  function (GtkLinkButton*, char[], void*) GtkLinkButtonUriFunc;
+
+/*
+ * A function which decides whether the row indicated by iter matches a given
+ * key, and should be displayed as a possible completion for key. Note that
+ * key is normalized and case-folded (see g_utf8_normalize() and
+ * g_utf8_casefold()). If this is not appropriate, match functions have access
+ * to the unmodified key via gtk_entry_get_text (GTK_ENTRY (gtk_entry_completion_get_entry ())).
+ * completion:
+ * the GtkEntryCompletion
+ * key:
+ * the string to match, normalized and case-folded
+ * iter:
+ * a GtkTreeIter indicating the row to match
+ * user_data:
+ * user data given to gtk_entry_completion_set_match_func()
+ * Returns:
+ * TRUE if iter should be displayed as a possible completion for key
+ */
+// gboolean (*GtkEntryCompletionMatchFunc) (GtkEntryCompletion *completion,  const gchar *key,  GtkTreeIter *iter,  gpointer user_data);
+public typedef extern(C) int  function (GtkEntryCompletion*, char[], GtkTreeIter*, void*) GtkEntryCompletionMatchFunc;
+
+/*
+ * ch:
+ * user_data:
+ * Returns:
+ */
+// gboolean (*GtkTextCharPredicate) (gunichar ch,  gpointer user_data);
+public typedef extern(C) int  function (gunichar, void*) GtkTextCharPredicate;
+
+/*
+ * A function that is called to deserialize rich text that has been
+ * serialized with gtk_text_buffer_serialize(), and insert it at iter.
+ * register_buffer:
+ * the GtkTextBuffer the format is registered with
+ * content_buffer:
+ * the GtkTextBuffer to deserialize into
+ * iter:
+ * insertion point for the deserialized text
+ * data:
+ * data to deserialize
+ * length:
+ * length of data
+ * create_tags:
+ * TRUE if deserializing may create tags
+ * user_data:
+ * user data that was specified when registering the format
+ * error:
+ * return location for a GError
+ * Returns:
+ * TRUE on success, FALSE otherwise
+ */
+// gboolean (*GtkTextBufferDeserializeFunc) (GtkTextBuffer *register_buffer,  GtkTextBuffer *content_buffer,  GtkTextIter *iter,  const guint8 *data,  gsize length,  gboolean create_tags,  gpointer user_data,  GError **error);
+public typedef extern(C) int  function (GtkTextBuffer*, GtkTextBuffer*, GtkTextIter*, guint8*, uint, int, void*, GError**) GtkTextBufferDeserializeFunc;
+
+/*
+ * A function that is called to serialize the content of a text buffer.
+ * It must return the serialized form of the content.
+ * register_buffer:
+ * the GtkTextBuffer for which the format is registered
+ * content_buffer:
+ * the GtkTextsBuffer to serialize
+ * start:
+ * start of the block of text to serialize
+ * end:
+ * end of the block of text to serialize
+ * length:
+ * Return location for the length of the serialized data
+ * user_data:
+ * user data that was specified when registering the format
+ * Returns:
+ * a newly-allocated array of guint8 which contains the serialized
+ *  data, or NULL if an error occurred
+ */
+// guint8* (*GtkTextBufferSerializeFunc) (GtkTextBuffer *register_buffer,  GtkTextBuffer *content_buffer,  const GtkTextIter *start,  const GtkTextIter *end,  gsize *length,  gpointer user_data);
+public typedef extern(C) byte*  function (GtkTextBuffer*, GtkTextBuffer*, GtkTextIter*, GtkTextIter*, gsize*, void*) GtkTextBufferSerializeFunc;
+
+/*
+ * tag:
+ * data:
+ */
+// void (*GtkTextTagTableForeach) (GtkTextTag *tag,  gpointer data);
+public typedef extern(C) void  function (GtkTextTag*, void*) GtkTextTagTableForeach;
+
+/*
+ * model:
+ * The GtkTreeModel currently being iterated
+ * path:
+ * The current GtkTreePath
+ * iter:
+ * The current GtkTreeIter
+ * data:
+ * The user data passed to gtk_tree_model_foreach()
+ * Returns:
+ * TRUE to stop iterating, FALSE to continue.
+ */
+// gboolean (*GtkTreeModelForeachFunc) (GtkTreeModel *model,  GtkTreePath *path,  GtkTreeIter *iter,  gpointer data);
+public typedef extern(C) int  function (GtkTreeModel*, GtkTreePath*, GtkTreeIter*, void*) GtkTreeModelForeachFunc;
+
+/*
+ * A function used by gtk_tree_selection_set_select_function() to filter
+ * whether or not a row may be selected. It is called whenever a row's
+ * state might change. A return value of TRUE indicates to selection
+ * that it is okay to change the selection.
+ * selection:
+ * A GtkTreeSelection
+ * model:
+ * A GtkTreeModel being viewed
+ * path:
+ * The GtkTreePath of the row in question
+ * path_currently_selected:
+ * TRUE, if the path is currently selected
+ * data:
+ * user data
+ * Returns:
+ * TRUE, if the selection state of the row can be toggled
+ */
+// gboolean (*GtkTreeSelectionFunc) (GtkTreeSelection *selection,  GtkTreeModel *model,  GtkTreePath *path,  gboolean path_currently_selected,  gpointer data);
+public typedef extern(C) int  function (GtkTreeSelection*, GtkTreeModel*, GtkTreePath*, int, void*) GtkTreeSelectionFunc;
+
+/*
+ * A function used by gtk_tree_selection_selected_foreach() to map all
+ * selected rows. It will be called on every selected row in the view.
+ * model:
+ * The GtkTreeModel being viewed
+ * path:
+ * The GtkTreePath of a selected row
+ * iter:
+ * A GtkTreeIter pointing to a selected row
+ * data:
+ * user data
+ */
+// void (*GtkTreeSelectionForeachFunc) (GtkTreeModel *model,  GtkTreePath *path,  GtkTreeIter *iter,  gpointer data);
+public typedef extern(C) void  function (GtkTreeModel*, GtkTreePath*, GtkTreeIter*, void*) GtkTreeSelectionForeachFunc;
+
+/*
+ * A function to set the properties of a cell instead of just using the
+ * straight mapping between the cell and the model. This is useful for
+ * customizing the cell renderer. For example, a function might get an
+ * integer from the tree_model, and render it to the "text" attribute of
+ * "cell" by converting it to its written equivilent. This is set by
+ * calling gtk_tree_view_column_set_cell_data_func()
+ * tree_column:
+ * A GtkTreeColumn
+ * cell:
+ * The GtkCellRenderer that is being rendered by tree_column
+ * tree_model:
+ * The GtkTreeModel being rendered
+ * iter:
+ * A GtkTreeIter of the current row rendered
+ * data:
+ * user data
+ */
+// void (*GtkTreeCellDataFunc) (GtkTreeViewColumn *tree_column,  GtkCellRenderer *cell,  GtkTreeModel *tree_model,  GtkTreeIter *iter,  gpointer data);
+public typedef extern(C) void  function (GtkTreeViewColumn*, GtkCellRenderer*, GtkTreeModel*, GtkTreeIter*, void*) GtkTreeCellDataFunc;
+
+/*
+ * Function type for determining whether column can be dropped in a
+ * particular spot (as determined by prev_column and next_column). In
+ * left to right locales, prev_column is on the left of the potential drop
+ * spot, and next_column is on the right. In right to left mode, this is
+ * reversed. This function should return TRUE if the spot is a valid drop
+ * spot. Please note that returning TRUE does not actually indicate that
+ * the column drop was made, but is meant only to indicate a possible drop
+ * spot to the user.
+ * tree_view:
+ * A GtkTreeView
+ * column:
+ * The GtkTreeViewColumn being dragged
+ * prev_column:
+ * A GtkTreeViewColumn on one side of column
+ * next_column:
+ * A GtkTreeViewColumn on the other side of column
+ * data:
+ * user data
+ * Returns:
+ * TRUE, if column can be dropped in this spot
+ */
+// gboolean (*GtkTreeViewColumnDropFunc) (GtkTreeView *tree_view,  GtkTreeViewColumn *column,  GtkTreeViewColumn *prev_column,  GtkTreeViewColumn *next_column,  gpointer data);
+public typedef extern(C) int  function (GtkTreeView*, GtkTreeViewColumn*, GtkTreeViewColumn*, GtkTreeViewColumn*, void*) GtkTreeViewColumnDropFunc;
+
+/*
+ * Function used for gtk_tree_view_map_expanded_rows.
+ * tree_view:
+ * A GtkTreeView
+ * path:
+ * The path that's expanded
+ * user_data:
+ * user data
+ */
+// void (*GtkTreeViewMappingFunc) (GtkTreeView *tree_view,  GtkTreePath *path,  gpointer user_data);
+public typedef extern(C) void  function (GtkTreeView*, GtkTreePath*, void*) GtkTreeViewMappingFunc;
+
+/*
+ * A function used for checking whether a row in model matches
+ * a search key string entered by the user. Note the return value
+ * is reversed from what you would normally expect, though it
+ * has some similarity to strcmp() returning 0 for equal strings.
+ * model:
+ * the GtkTreeModel being searched
+ * column:
+ * the search column set by gtk_tree_view_set_search_column()
+ * key:
+ * the key string to compare with
+ * iter:
+ * a GtkTreeIter pointing the row of model that should be compared
+ *  with key.
+ * search_data:
+ * user data from gtk_tree_view_set_search_equal_func()
+ * Returns:
+ * FALSE if the row matches, TRUE otherwise.
+ */
+// gboolean (*GtkTreeViewSearchEqualFunc) (GtkTreeModel *model,  gint column,  const gchar *key,  GtkTreeIter *iter,  gpointer search_data);
+public typedef extern(C) int  function (GtkTreeModel*, int, char[], GtkTreeIter*, void*) GtkTreeViewSearchEqualFunc;
+
+/*
+ * tree_view:
+ * search_dialog:
+ * user_data:
+ */
+// void (*GtkTreeViewSearchPositionFunc) (GtkTreeView *tree_view,  GtkWidget *search_dialog,  gpointer user_data);
+public typedef extern(C) void  function (GtkTreeView*, GtkWidget*, void*) GtkTreeViewSearchPositionFunc;
+
+/*
+ * tree_view:
+ * path:
+ * children:
+ * user_data:
+ */
+// void (*GtkTreeDestroyCountFunc) (GtkTreeView *tree_view,  GtkTreePath *path,  gint children,  gpointer user_data);
+public typedef extern(C) void  function (GtkTreeView*, GtkTreePath*, int, void*) GtkTreeDestroyCountFunc;
+
+/*
+ * Function type for determining whether the row pointed to by iter should
+ * be rendered as a separator. A common way to implement this is to have a
+ * boolean column in the model, whose values the GtkTreeViewRowSeparatorFunc
+ * returns.
+ * model:
+ * the GtkTreeModel
+ * iter:
+ * a GtkTreeIter pointing at a row in model
+ * data:
+ * user data
+ * Returns:
+ * TRUE if the row is a separator
+ */
+// gboolean (*GtkTreeViewRowSeparatorFunc) (GtkTreeModel *model,  GtkTreeIter *iter,  gpointer data);
+public typedef extern(C) int  function (GtkTreeModel*, GtkTreeIter*, void*) GtkTreeViewRowSeparatorFunc;
+
+/*
+ * A function used by gtk_icon_view_selected_foreach() to map all
+ * selected rows. It will be called on every selected row in the view.
+ * icon_view:
+ * a GtkIconView
+ * path:
+ * The GtkTreePath of a selected row
+ * data:
+ * user data
+ */
+// void (*GtkIconViewForeachFunc) (GtkIconView *icon_view,  GtkTreePath *path,  gpointer data);
+public typedef extern(C) void  function (GtkIconView*, GtkTreePath*, void*) GtkIconViewForeachFunc;
+
+/*
+ * A GtkTreeIterCompareFunc should return a negative integer, zero, or a positive
+ * integer if a sorts before b, a sorts with b, or a sorts after b
+ * respectively. If two iters compare as equal, their order in the sorted model
+ * is undefined. In order to ensure that the GtkTreeSortable behaves as
+ * expected, the GtkTreeIterCompareFunc must define a partial order on
+ * the model, i.e. it must be reflexive, antisymmetric and transitive.
+ * For example, if model is a product catalogue, then a compare function
+ * for the "price" column could be one which returns
+ * price_of(a) - price_of(b).
+ * model:
+ * The GtkTreeModel the comparison is within
+ * a:
+ * A GtkTreeIter in model
+ * b:
+ * Another GtkTreeIter in model
+ * user_data:
+ * Data passed when the compare func is assigned e.g. by
+ * gtk_tree_sortable_set_sort_func()
+ * Returns:
+ */
+// gint (*GtkTreeIterCompareFunc) (GtkTreeModel *model,  GtkTreeIter *a,  GtkTreeIter *b,  gpointer user_data);
+public typedef extern(C) int  function (GtkTreeModel*, GtkTreeIter*, GtkTreeIter*, void*) GtkTreeIterCompareFunc;
+
+/*
+ * A function which decides whether the row indicated by iter is visible.
+ * model:
+ * the child model of the GtkTreeModelFilter
+ * iter:
+ * a GtkTreeIter pointing to the row in model whose visibility
+ *  is determined
+ * data:
+ * user data given to gtk_tree_model_filter_set_visible_func()
+ * Returns:
+ * Whether the row indicated by iter is visible.
+ */
+// gboolean (*GtkTreeModelFilterVisibleFunc) (GtkTreeModel *model,  GtkTreeIter *iter,  gpointer data);
+public typedef extern(C) int  function (GtkTreeModel*, GtkTreeIter*, void*) GtkTreeModelFilterVisibleFunc;
+
+/*
+ * A function which calculates display values from raw values in the model.
+ * It must fill value with the display value for the column column in the
+ * row indicated by iter.
+ * Since this function is called for each data access, it's not a
+ * particularly efficient operation.
+ * model:
+ * the GtkTreeModelFilter
+ * iter:
+ * a GtkTreeIter pointing to the row whose display values are determined
+ * value:
+ * A GValue which is already initialized for with the correct type for
+ *  the column column.
+ * column:
+ * the column whose display value is determined
+ * data:
+ * user data given to gtk_tree_model_filter_set_modify_func()
+ */
+// void (*GtkTreeModelFilterModifyFunc) (GtkTreeModel *model,  GtkTreeIter *iter,  GValue *value,  gint column,  gpointer data);
+public typedef extern(C) void  function (GtkTreeModel*, GtkTreeIter*, GValue*, int, void*) GtkTreeModelFilterModifyFunc;
+
+/*
+ * A function which should set the value of cell_layout's cell renderer(s)
+ * as appropriate.
+ * cell_layout:
+ * a GtkCellLayout
+ * cell:
+ * the cell renderer whose value is to be set
+ * tree_model:
+ * the model
+ * iter:
+ * a GtkTreeIter indicating the row to set the value for
+ * data:
+ * user data passed to gtk_cell_layout_set_cell_data_func()
+ */
+// void (*GtkCellLayoutDataFunc) (GtkCellLayout *cell_layout,  GtkCellRenderer *cell,  GtkTreeModel *tree_model,  GtkTreeIter *iter,  gpointer data);
+public typedef extern(C) void  function (GtkCellLayout*, GtkCellRenderer*, GtkTreeModel*, GtkTreeIter*, void*) GtkCellLayoutDataFunc;
+
+/*
+ * A user function supplied when calling gtk_menu_popup() which controls the
+ * positioning of the menu when it is displayed. The function sets the x
+ * and y parameters to the coordinates where the menu is to be drawn.
+ * menu:
+ * a GtkMenu.
+ * x:
+ * address of the gint representing the horizontal position where the
+ * menu shall be drawn. This is an output parameter.
+ * y:
+ * address of the gint representing the vertical position where the
+ * menu shall be drawn. This is an output parameter.
+ * push_in:
+ * This parameter controls how menus placed outside the monitor are handled.
+ *  If this is set to TRUE and part of the menu is outside the monitor then
+ *  GTK+ pushes the window into the visible area, effectively modifying the
+ *  popup position.
+ *  Note that moving and possibly resizing the menu around will alter the
+ *  scroll position to keep the menu items "in place", i.e. at the same monitor
+ *  position they would have been without resizing.
+ *  In practice, this behavior is only useful for combobox popups or option
+ *  menus and cannot be used to simply confine a menu to monitor boundaries.
+ *  In that case, changing the scroll offset is not desirable.
+ *  To simply constrain the menu within the monitor, get its size with
+ *  gtk_widget_size_request() before showing it, and alter the coordinates
+ *  passed to gtk_menu_popup() accordingly.
+ * user_data:
+ * the data supplied by the user in the gtk_menu_popup() data
+ * parameter.
+ */
+// void (*GtkMenuPositionFunc) (GtkMenu *menu,  gint *x,  gint *y,  gboolean *push_in,  gpointer user_data);
+public typedef extern(C) void  function (GtkMenu*, gint*, gint*, gboolean*, void*) GtkMenuPositionFunc;
+
+/*
+ * A user function supplied when calling gtk_menu_attach_to_widget() which
+ * will be called when the menu is later detached from the widget.
+ * attach_widget:
+ * the GtkWidget that the menu is being detached from.
+ * menu:
+ * the GtkMenu being detached.
+ */
+// void (*GtkMenuDetachFunc) (GtkWidget *attach_widget,  GtkMenu *menu);
+public typedef extern(C) void  function (GtkWidget*, GtkMenu*) GtkMenuDetachFunc;
+
+/*
+ * colors:
+ * n_colors:
+ */
+// void (*GtkColorSelectionChangePaletteFunc)  (const GdkColor *colors,  gint n_colors);
+public typedef extern(C) void  function (GdkColor*, int) GtkColorSelectionChangePaletteFunc;
+
+/*
+ * screen:
+ * colors:
+ * n_colors:
+ * Since 2.2
+ */
+// void (*GtkColorSelectionChangePaletteWithScreenFunc)  (GdkScreen *screen,  const GdkColor *colors,  gint n_colors);
+public typedef extern(C) void  function (GdkScreen*, GdkColor*, int) GtkColorSelectionChangePaletteWithScreenFunc;
+
+/*
+ * The type of function that is used with custom filters,
+ * see gtk_file_filter_add_custom().
+ * filter_info:
+ * a GtkFileFilterInfo that is filled according
+ *  to the needed flags passed to gtk_file_filter_add_custom()
+ * data:
+ * user data passed to gtk_file_filter_add_custom()
+ * Returns:
+ * TRUE if the file should be displayed
+ */
+// gboolean (*GtkFileFilterFunc) (const GtkFileFilterInfo *filter_info,  gpointer data);
+public typedef extern(C) int  function (GtkFileFilterInfo*, void*) GtkFileFilterFunc;
+
+/*
+ * A function used by GtkNotebook when a detachable tab is dropped
+ * in the root window, it's used to create a window containing a notebook
+ * where the tab will be attached. This function will also be responsible
+ * of moving/resizing the window and adding the necessary properties to
+ * the notebook (i.e.: group-id).
+ * If the function returns NULL, the drag will be cancelled.
+ * source:
+ * The source GtkNotebook of the drag operation
+ * page:
+ * the child GtkWidget affected
+ * x:
+ * the X coordinate where the drop happens
+ * y:
+ * the Y coordinate where the drop happens
+ * data:
+ * user data
+ * Returns:
+ * The created GtkNotebook where the tab will be attached, or NULL to cancel the drag
+ */
+// GtkNotebook* (*GtkNotebookWindowCreationFunc) (GtkNotebook *source,  GtkWidget *page,  gint x,  gint y,  gpointer data);
+public typedef extern(C) GtkNotebook*  function (GtkNotebook*, GtkWidget*, int, int, void*) GtkNotebookWindowCreationFunc;
+
+/*
+ * The type of function that is passed to gtk_print_run_page_setup_dialog_async().
+ * This function will be called when the page setup dialog is dismissed, and
+ * also serves as destroy notify for data.
+ * page_setup:
+ * the GtkPageSetup that has been
+ * data:
+ * user data that has been passed to
+ *  gtk_print_run_page_setup_dialog_async().
+ */
+// void (*GtkPageSetupDoneFunc) (GtkPageSetup *page_setup,  gpointer data);
+public typedef extern(C) void  function (GtkPageSetup*, void*) GtkPageSetupDoneFunc;
+
+/*
+ * key:
+ * value:
+ * user_data:
+ */
+// void (*GtkPrintSettingsFunc) (const gchar *key,  const gchar *value,  gpointer user_data);
+public typedef extern(C) void  function (char[], char[], void*) GtkPrintSettingsFunc;
+
+/*
+ * The type of function passed to gtk_enumerate_printers().
+ * Note that you need to ref printer, if you want to keep
+ * a reference to it after the function has returned.
+ * printer:
+ * a GtkPrinter
+ * data:
+ * user data passed to gtk_enumerate_printers()
+ * Returns:
+ * TRUE to stop the enumeration, FALSE to continue
+ */
+// gboolean (*GtkPrinterFunc) (GtkPrinter *printer,  gpointer data);
+public typedef extern(C) int  function (GtkPrinter*, void*) GtkPrinterFunc;
+
+/*
+ * The type of callback that is passed to gtk_print_job_send().
+ * It is called when the print job has been completely sent.
+ * print_job:
+ * the GtkPrintJob
+ * user_data:
+ * user data that has been passed to gtk_print_job_send()
+ * error:
+ * a GError that contains error information if the sending
+ *  of the print job failed, otherwise NULL
+ */
+// void (*GtkPrintJobCompleteFunc) (GtkPrintJob *print_job,  gpointer user_data,  GError *error);
+public typedef extern(C) void  function (GtkPrintJob*, void*, GError*) GtkPrintJobCompleteFunc;
+
+/*
+ * The type of the callback functions used for e.g. iterating over
+ * the children of a container, see gtk_container_foreach().
+ * widget:
+ * the widget to operate on
+ * data:
+ * user-supplied data
+ */
+// void (*GtkCallback) (GtkWidget *widget,  gpointer data);
+public typedef extern(C) void  function (GtkWidget*, void*) GtkCallback;
+
+/*
+ * a:
+ * b:
+ * user_data:
+ * Returns:
+ */
+// gint (*GtkRecentSortFunc) (GtkRecentInfo *a,  GtkRecentInfo *b,  gpointer user_data);
+public typedef extern(C) int  function (GtkRecentInfo*, GtkRecentInfo*, void*) GtkRecentSortFunc;
+
+/*
+ * The type of function that is used with custom filters,
+ * see gtk_recent_filter_add_custom().
+ * filter_info:
+ * a GtkRecentFilterInfo that is filled according
+ *  to the needed flags passed to gtk_recent_filter_add_custom()
+ * user_data:
+ * user data passed to gtk_recent_filter_add_custom()
+ * Returns:
+ * TRUE if the file should be displayed
+ */
+// gboolean (*GtkRecentFilterFunc) (const GtkRecentFilterInfo *filter_info,  gpointer user_data);
+public typedef extern(C) int  function (GtkRecentFilterInfo*, void*) GtkRecentFilterFunc;
+
+/*
+ * This is the signature of a function used to connect signals. It is used
+ * by the gtk_builder_connect_signals() and gtk_builder_connect_signals_full()
+ * methods. It is mainly intended for interpreted language bindings, but
+ * could be useful where the programmer wants more control over the signal
+ * connection process.
+ * builder:
+ *  a GtkBuilder
+ * object:
+ *  object to connect a signal to
+ * signal_name:
+ *  name of the signal
+ * handler_name:
+ *  name of the handler
+ * connect_object:
+ *  a GObject, if non-NULL, use g_signal_connect_object()
+ * flags:
+ *  GConnectFlags to use
+ * user_data:
+ *  user data
+ * Since 2.12
+ */
+// void (*GtkBuilderConnectFunc) (GtkBuilder *builder,  GObject *object,  const gchar *signal_name,  const gchar *handler_name,  GObject *connect_object,  GConnectFlags flags,  gpointer user_data);
+public typedef extern(C) void  function (GtkBuilder*, GObject*, char[], char[], GObject*, GConnectFlags, void*) GtkBuilderConnectFunc;
+
+/*
+ * Warning
+ * GtkPrintFunc is deprecated and should not be used in newly-written code.
+ * func_data:
+ * str:
+ */
+// void (*GtkPrintFunc) (gpointer func_data,  const gchar *str);
+public typedef extern(C) void  function (void*, char[]) GtkPrintFunc;
+
+/*
+ * The function used to translate messages in e.g. GtkIconFactory
+ * and GtkActionGroup.
+ * path:
+ * The id of the message. In GtkItemFactory this will be a path
+ *  from a GtkItemFactoryEntry, in GtkActionGroup, it will be a label
+ *  or tooltip from a GtkActionEntry.
+ * func_data:
+ * user data passed in when registering the function
+ * Returns:
+ * the translated message
+ */
+// gchar* (*GtkTranslateFunc) (const gchar *path,  gpointer func_data);
+public typedef extern(C) char*  function (char[], void*) GtkTranslateFunc;
+
+/*
+ * Warning
+ * GtkItemFactoryCallback is deprecated and should not be used in newly-written code.
+ */
+// void (*GtkItemFactoryCallback) ();
+public typedef extern(C) void  function () GtkItemFactoryCallback;
+
+/*
+ * Warning
+ * GtkItemFactoryCallback1 is deprecated and should not be used in newly-written code.
+ * callback_data:
+ * callback_action:
+ * widget:
+ */
+// void (*GtkItemFactoryCallback1) (gpointer callback_data,  guint callback_action,  GtkWidget *widget);
+public typedef extern(C) void  function (void*, uint, GtkWidget*) GtkItemFactoryCallback1;
+
+/*
+ * Warning
+ * GtkItemFactoryCallback2 is deprecated and should not be used in newly-written code.
+ * widget:
+ * callback_data:
+ * callback_action:
+ */
+// void (*GtkItemFactoryCallback2) (GtkWidget *widget,  gpointer callback_data,  guint callback_action);
+public typedef extern(C) void  function (GtkWidget*, void*, uint) GtkItemFactoryCallback2;
+
+
+// StockIDs
+enum StockID
+{
+	
+	/**
+	 * The "About" item.
+	 * Since 2.6
+	 */
+	ABOUT,
+	
+	/**
+	 * The "Add" item.
+	 */
+	ADD,
+	
+	/**
+	 * The "Apply" item.
+	 */
+	APPLY,
+	
+	/**
+	 * The "Bold" item.
+	 */
+	BOLD,
+	
+	/**
+	 * The "Cancel" item.
+	 */
+	CANCEL,
+	
+	/**
+	 * The "CD-Rom" item.
+	 */
+	CDROM,
+	
+	/**
+	 * The "Clear" item.
+	 */
+	CLEAR,
+	
+	/**
+	 * The "Close" item.
+	 */
+	CLOSE,
+	
+	/**
+	 * The "Color Picker" item.
+	 * Since 2.2
+	 */
+	COLOR_PICKER,
+	
+	/**
+	 * The "Convert" item.
+	 */
+	CONVERT,
+	
+	/**
+	 * The "Connect" icon.
+	 * Since 2.6
+	 */
+	CONNECT,
+	
+	/**
+	 * The "Copy" item.
+	 */
+	COPY,
+	
+	/**
+	 * The "Cut" item.
+	 */
+	CUT,
+	
+	/**
+	 * The "Delete" item.
+	 */
+	DELETE,
+	
+	/**
+	 * The "Error" item.
+	 */
+	DIALOG_ERROR,
+	
+	/**
+	 * The "Information" item.
+	 */
+	DIALOG_INFO,
+	
+	/**
+	 * The "Question" item.
+	 */
+	DIALOG_QUESTION,
+	
+	/**
+	 * The "Warning" item.
+	 */
+	DIALOG_WARNING,
+	
+	/**
+	 * The "Directory" icon.
+	 * Since 2.6
+	 */
+	DIRECTORY,
+	
+	/**
+	 * The "Discard" item.
+	 * Since 2.12
+	 */
+	DISCARD,
+	
+	/**
+	 * The "Disconnect" icon.
+	 * Since 2.6
+	 */
+	DISCONNECT,
+	
+	/**
+	 * The "Drag-And-Drop" icon.
+	 */
+	DND,
+	
+	/**
+	 * The "Drag-And-Drop multiple" icon.
+	 */
+	DND_MULTIPLE,
+	
+	/**
+	 * The "Edit" item.
+	 * Since 2.6
+	 */
+	EDIT,
+	
+	/**
+	 * The "Execute" item.
+	 */
+	EXECUTE,
+	
+	/**
+	 * The "File" icon.
+	 * Since 2.6
+	 */
+	FILE,
+	
+	/**
+	 * The "Find" item.
+	 */
+	FIND,
+	
+	/**
+	 * The "Find and Replace" item.
+	 */
+	FIND_AND_REPLACE,
+	
+	/**
+	 * The "Floppy" item.
+	 */
+	FLOPPY,
+	
+	/**
+	 * The "Fullscreen" item.
+	 * Since 2.8
+	 */
+	FULLSCREEN,
+	
+	/**
+	 * The "Bottom" item.
+	 */
+	GOTO_BOTTOM,
+	
+	/**
+	 * The "First" item.
+	 * RTL variant
+	 */
+	GOTO_FIRST,
+	
+	/**
+	 * The "Last" item.
+	 * RTL variant
+	 */
+	GOTO_LAST,
+	
+	/**
+	 * The "Top" item.
+	 */
+	GOTO_TOP,
+	
+	/**
+	 * The "Back" item.
+	 * RTL variant
+	 */
+	GO_BACK,
+	
+	/**
+	 * The "Down" item.
+	 */
+	GO_DOWN,
+	
+	/**
+	 * The "Forward" item.
+	 * RTL variant
+	 */
+	GO_FORWARD,
+	
+	/**
+	 * The "Up" item.
+	 */
+	GO_UP,
+	
+	/**
+	 * The "Harddisk" item.
+	 * Since 2.4
+	 */
+	HARDDISK,
+	
+	/**
+	 * The "Help" item.
+	 */
+	HELP,
+	
+	/**
+	 * The "Home" item.
+	 */
+	HOME,
+	
+	/**
+	 * The "Indent" item.
+	 * RTL variant
+	 * Since 2.4
+	 */
+	INDENT,
+	
+	/**
+	 * The "Index" item.
+	 */
+	INDEX,
+	
+	/**
+	 * The "Info" item.
+	 * Since 2.8
+	 */
+	INFO,
+	
+	/**
+	 * The "Italic" item.
+	 */
+	ITALIC,
+	
+	/**
+	 * The "Jump to" item.
+	 * RTL-variant
+	 */
+	JUMP_TO,
+	
+	/**
+	 * The "Center" item.
+	 */
+	JUSTIFY_CENTER,
+	
+	/**
+	 * The "Fill" item.
+	 */
+	JUSTIFY_FILL,
+	
+	/**
+	 * The "Left" item.
+	 */
+	JUSTIFY_LEFT,
+	
+	/**
+	 * The "Right" item.
+	 */
+	JUSTIFY_RIGHT,
+	
+	/**
+	 * The "Leave Fullscreen" item.
+	 * Since 2.8
+	 */
+	LEAVE_FULLSCREEN,
+	
+	/**
+	 * The "Media Forward" item.
+	 * RTL variant
+	 * Since 2.6
+	 */
+	MEDIA_FORWARD,
+	
+	/**
+	 * The "Media Next" item.
+	 * RTL variant
+	 * Since 2.6
+	 */
+	MEDIA_NEXT,
+	
+	/**
+	 * The "Media Pause" item.
+	 * Since 2.6
+	 */
+	MEDIA_PAUSE,
+	
+	/**
+	 * The "Media Play" item.
+	 * RTL variant
+	 * Since 2.6
+	 */
+	MEDIA_PLAY,
+	
+	/**
+	 * The "Media Previous" item.
+	 * RTL variant
+	 * Since 2.6
+	 */
+	MEDIA_PREVIOUS,
+	
+	/**
+	 * The "Media Record" item.
+	 * Since 2.6
+	 */
+	MEDIA_RECORD,
+	
+	/**
+	 * The "Media Rewind" item.
+	 * RTL variant
+	 * Since 2.6
+	 */
+	MEDIA_REWIND,
+	
+	/**
+	 * The "Media Stop" item.
+	 * Since 2.6
+	 */
+	MEDIA_STOP,
+	
+	/**
+	 * The "Missing image" icon.
+	 */
+	MISSING_IMAGE,
+	
+	/**
+	 * The "Network" item.
+	 * Since 2.4
+	 */
+	NETWORK,
+	
+	/**
+	 * The "New" item.
+	 */
+	NEW,
+	
+	/**
+	 * The "No" item.
+	 */
+	NO,
+	
+	/**
+	 * The "OK" item.
+	 */
+	OK,
+	
+	/**
+	 * The "Open" item.
+	 */
+	OPEN,
+	
+	/**
+	 * The "Landscape Orientation" item.
+	 * Since 2.10
+	 */
+	ORIENTATION_LANDSCAPE,
+	
+	/**
+	 * The "Portrait Orientation" item.
+	 * Since 2.10
+	 */
+	ORIENTATION_PORTRAIT,
+	
+	/**
+	 * The "Reverse Landscape Orientation" item.
+	 * Since 2.10
+	 */
+	ORIENTATION_REVERSE_LANDSCAPE,
+	
+	/**
+	 * The "Reverse Portrait Orientation" item.
+	 * Since 2.10
+	 */
+	ORIENTATION_REVERSE_PORTRAIT,
+	
+	/**
+	 * The "Paste" item.
+	 */
+	PASTE,
+	
+	/**
+	 * The "Preferences" item.
+	 */
+	PREFERENCES,
+	
+	/**
+	 * The "Print" item.
+	 */
+	PRINT,
+	
+	/**
+	 * The "Print Preview" item.
+	 */
+	PRINT_PREVIEW,
+	
+	/**
+	 * The "Properties" item.
+	 */
+	PROPERTIES,
+	
+	/**
+	 * The "Quit" item.
+	 */
+	QUIT,
+	
+	/**
+	 * The "Redo" item.
+	 * RTL variant
+	 */
+	REDO,
+	
+	/**
+	 * The "Refresh" item.
+	 */
+	REFRESH,
+	
+	/**
+	 * The "Remove" item.
+	 */
+	REMOVE,
+	
+	/**
+	 * The "Revert" item.
+	 * RTL variant
+	 */
+	REVERT_TO_SAVED,
+	
+	/**
+	 * The "Save" item.
+	 */
+	SAVE,
+	
+	/**
+	 * The "Save As" item.
+	 */
+	SAVE_AS,
+	
+	/**
+	 * The "Select All" item.
+	 * Since 2.10
+	 */
+	SELECT_ALL,
+	
+	/**
+	 * The "Color" item.
+	 */
+	SELECT_COLOR,
+	
+	/**
+	 * The "Font" item.
+	 */
+	SELECT_FONT,
+	
+	/**
+	 * The "Ascending" item.
+	 */
+	SORT_ASCENDING,
+	
+	/**
+	 * The "Descending" item.
+	 */
+	SORT_DESCENDING,
+	
+	/**
+	 * The "Spell Check" item.
+	 */
+	SPELL_CHECK,
+	
+	/**
+	 * The "Stop" item.
+	 */
+	STOP,
+	
+	/**
+	 * The "Strikethrough" item.
+	 */
+	STRIKETHROUGH,
+	
+	/**
+	 * The "Undelete" item.
+	 * RTL variant
+	 */
+	UNDELETE,
+	
+	/**
+	 * The "Underline" item.
+	 */
+	UNDERLINE,
+	
+	/**
+	 * The "Undo" item.
+	 * RTL variant
+	 */
+	UNDO,
+	
+	/**
+	 * The "Unindent" item.
+	 * RTL variant
+	 * Since 2.4
+	 */
+	UNINDENT,
+	
+	/**
+	 * The "Yes" item.
+	 */
+	YES,
+	
+	/**
+	 * The "Zoom 100%" item.
+	 */
+	ZOOM_100,
+	
+	/**
+	 * The "Zoom to Fit" item.
+	 */
+	ZOOM_FIT,
+	
+	/**
+	 * The "Zoom In" item.
+	 */
+	ZOOM_IN,
+	
+	/**
+	 * The "Zoom Out" item.
+	 */
+	ZOOM_OUT,
+
+}
+
+// Stock strings
+char[][] StockDesc = 
+[	"gtk-about",
+	"gtk-add",
+	"gtk-apply",
+	"gtk-bold",
+	"gtk-cancel",
+	"gtk-cdrom",
+	"gtk-clear",
+	"gtk-close",
+	"gtk-color-picker",
+	"gtk-convert",
+	"gtk-connect",
+	"gtk-copy",
+	"gtk-cut",
+	"gtk-delete",
+	"gtk-dialog-error",
+	"gtk-dialog-info",
+	"gtk-dialog-question",
+	"gtk-dialog-warning",
+	"gtk-directory",
+	"gtk-discard",
+	"gtk-disconnect",
+	"gtk-dnd",
+	"gtk-dnd-multiple",
+	"gtk-edit",
+	"gtk-execute",
+	"gtk-file",
+	"gtk-find",
+	"gtk-find-and-replace",
+	"gtk-floppy",
+	"gtk-fullscreen",
+	"gtk-goto-bottom",
+	"gtk-goto-first",
+	"gtk-goto-last",
+	"gtk-goto-top",
+	"gtk-go-back",
+	"gtk-go-down",
+	"gtk-go-forward",
+	"gtk-go-up",
+	"gtk-harddisk",
+	"gtk-help",
+	"gtk-home",
+	"gtk-indent",
+	"gtk-index",
+	"gtk-info",
+	"gtk-italic",
+	"gtk-jump-to",
+	"gtk-justify-center",
+	"gtk-justify-fill",
+	"gtk-justify-left",
+	"gtk-justify-right",
+	"gtk-leave-fullscreen",
+	"gtk-media-forward",
+	"gtk-media-next",
+	"gtk-media-pause",
+	"gtk-media-play",
+	"gtk-media-previous",
+	"gtk-media-record",
+	"gtk-media-rewind",
+	"gtk-media-stop",
+	"gtk-missing-image",
+	"gtk-network",
+	"gtk-new",
+	"gtk-no",
+	"gtk-ok",
+	"gtk-open",
+	"gtk-orientation-landscape",
+	"gtk-orientation-portrait",
+	"gtk-orientation-reverse-landscape",
+	"gtk-orientation-reverse-portrait",
+	"gtk-paste",
+	"gtk-preferences",
+	"gtk-print",
+	"gtk-print-preview",
+	"gtk-properties",
+	"gtk-quit",
+	"gtk-redo",
+	"gtk-refresh",
+	"gtk-remove",
+	"gtk-revert-to-saved",
+	"gtk-save",
+	"gtk-save-as",
+	"gtk-select-all",
+	"gtk-select-color",
+	"gtk-select-font",
+	"gtk-sort-ascending",
+	"gtk-sort-descending",
+	"gtk-spell-check",
+	"gtk-stop",
+	"gtk-strikethrough",
+	"gtk-undelete",
+	"gtk-underline",
+	"gtk-undo",
+	"gtk-unindent",
+	"gtk-yes",
+	"gtk-zoom-100",
+	"gtk-zoom-fit",
+	"gtk-zoom-in",
+	"gtk-zoom-out",
+
+];
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/gtk/c/pango.d	Sat Jan 05 15:13:44 2008 -0800
@@ -0,0 +1,709 @@
+/******************************************************************************
+
+    This file is part of gtkD.
+
+    gtkD is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation; either version 2.1 of the License, or
+    (at your option) any later version.
+ 
+    gtkD is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with gtkD; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+******************************************************************************/
+
+module dwt.internal.gtk.c.pango;
+
+private import dwt.internal.gtk.c.pangotypes;
+private import dwt.internal.gtk.runtime.Loader;
+
+/******************************************************************************
+
+******************************************************************************/
+
+private Linker pangoLinker;
+
+/******************************************************************************
+
+******************************************************************************/
+
+static this()
+{
+    pangoLinker = new Linker( getLibraryPath ~ importLibs[LIBRARY.PANGO] );
+    pangoLinker.link( pangoLinks );
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+static ~this()
+{
+    delete pangoLinker;
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+extern(C) 
+{	
+	// pango.PgContext
+	
+	GList* function(PangoContext* context, char* text, int startIndex, int length, PangoAttrList* attrs, PangoAttrIterator* cachedIter)pango_itemize;
+	GList* function(PangoContext* context, PangoDirection baseDir, char* text, int startIndex, int length, PangoAttrList* attrs, PangoAttrIterator* cachedIter)pango_itemize_with_base_dir;
+	GList* function(GList* logicalItems)pango_reorder_items;
+	PangoContext* function()pango_context_new;
+	void function(PangoContext* context, PangoFontMap* fontMap)pango_context_set_font_map;
+	PangoFontMap* function(PangoContext* context)pango_context_get_font_map;
+	PangoFontDescription* function(PangoContext* context)pango_context_get_font_description;
+	void function(PangoContext* context, PangoFontDescription* desc)pango_context_set_font_description;
+	PangoLanguage* function(PangoContext* context)pango_context_get_language;
+	void function(PangoContext* context, PangoLanguage* language)pango_context_set_language;
+	PangoDirection function(PangoContext* context)pango_context_get_base_dir;
+	void function(PangoContext* context, PangoDirection direction)pango_context_set_base_dir;
+	PangoGravity function(PangoContext* context)pango_context_get_base_gravity;
+	void function(PangoContext* context, PangoGravity gravity)pango_context_set_base_gravity;
+	PangoGravity function(PangoContext* context)pango_context_get_gravity;
+	PangoGravityHint function(PangoContext* context)pango_context_get_gravity_hint;
+	void function(PangoContext* context, PangoGravityHint hint)pango_context_set_gravity_hint;
+	PangoMatrix* function(PangoContext* context)pango_context_get_matrix;
+	void function(PangoContext* context, PangoMatrix* matrix)pango_context_set_matrix;
+	PangoFont* function(PangoContext* context, PangoFontDescription* desc)pango_context_load_font;
+	PangoFontset* function(PangoContext* context, PangoFontDescription* desc, PangoLanguage* language)pango_context_load_fontset;
+	PangoFontMetrics* function(PangoContext* context, PangoFontDescription* desc, PangoLanguage* language)pango_context_get_metrics;
+	void function(PangoContext* context, PangoFontFamily*** families, int* nFamilies)pango_context_list_families;
+	gboolean function(gunichar ch, gunichar* mirroredCh)pango_get_mirror_char;
+	PangoDirection function(gunichar ch)pango_unichar_direction;
+	PangoDirection function(gchar* text, gint length)pango_find_base_dir;
+	double function(PangoGravity gravity)pango_gravity_to_rotation;
+	void function(gchar* text, int length, PangoAnalysis* analysis, PangoLogAttr* attrs, int attrsLen)pango_break;
+	void function(char* text, int length, int level, PangoLanguage* language, PangoLogAttr* logAttrs, int attrsLen)pango_get_log_attrs;
+	void function(gchar* text, gint length, gint* paragraphDelimiterIndex, gint* nextParagraphStart)pango_find_paragraph_boundary;
+	void function(gchar* text, int length, PangoAnalysis* analysis, PangoLogAttr* attrs, int attrsLen)pango_default_break;
+	void function(gchar* text, gint length, PangoAnalysis* analysis, PangoGlyphString* glyphs)pango_shape;
+	
+	// pango.PgItem
+	
+	void function(PangoItem* item)pango_item_free;
+	PangoItem* function(PangoItem* item)pango_item_copy;
+	PangoItem* function()pango_item_new;
+	PangoItem* function(PangoItem* orig, int splitIndex, int splitOffset)pango_item_split;
+	
+	// pango.PgGlyphString
+	
+	double function(int i)pango_units_to_double;
+	int function(double d)pango_units_from_double;
+	void function(PangoRectangle* inkRect, PangoRectangle* logicalRect)pango_extents_to_pixels;
+	PangoMatrix* function(PangoMatrix* matrix)pango_matrix_copy;
+	void function(PangoMatrix* matrix)pango_matrix_free;
+	void function(PangoMatrix* matrix, double tx, double ty)pango_matrix_translate;
+	void function(PangoMatrix* matrix, double scaleX, double scaleY)pango_matrix_scale;
+	void function(PangoMatrix* matrix, double degrees)pango_matrix_rotate;
+	void function(PangoMatrix* matrix, PangoMatrix* newMatrix)pango_matrix_concat;
+	void function(PangoMatrix* matrix, double* x, double* y)pango_matrix_transform_point;
+	void function(PangoMatrix* matrix, double* dx, double* dy)pango_matrix_transform_distance;
+	void function(PangoMatrix* matrix, PangoRectangle* rect)pango_matrix_transform_rectangle;
+	void function(PangoMatrix* matrix, PangoRectangle* rect)pango_matrix_transform_pixel_rectangle;
+	double function(PangoMatrix* matrix)pango_matrix_get_font_scale_factor;
+	PangoGlyphString* function()pango_glyph_string_new;
+	PangoGlyphString* function(PangoGlyphString* string)pango_glyph_string_copy;
+	void function(PangoGlyphString* string, gint newLen)pango_glyph_string_set_size;
+	void function(PangoGlyphString* string)pango_glyph_string_free;
+	void function(PangoGlyphString* glyphs, PangoFont* font, PangoRectangle* inkRect, PangoRectangle* logicalRect)pango_glyph_string_extents;
+	void function(PangoGlyphString* glyphs, int start, int end, PangoFont* font, PangoRectangle* inkRect, PangoRectangle* logicalRect)pango_glyph_string_extents_range;
+	int function(PangoGlyphString* glyphs)pango_glyph_string_get_width;
+	void function(PangoGlyphString* glyphs, char* text, int length, PangoAnalysis* analysis, int index, gboolean trailing, int* xPos)pango_glyph_string_index_to_x;
+	void function(PangoGlyphString* glyphs, char* text, int length, PangoAnalysis* analysis, int xPos, int* index, int* trailing)pango_glyph_string_x_to_index;
+	void function(PangoGlyphString* glyphs, char* text, int length, int embeddingLevel, int* logicalWidths)pango_glyph_string_get_logical_widths;
+	PangoGlyphItem* function(PangoGlyphItem* orig, char* text, int splitIndex)pango_glyph_item_split;
+	GSList* function(PangoGlyphItem* glyphItem, char* text, PangoAttrList* list)pango_glyph_item_apply_attrs;
+	void function(PangoGlyphItem* glyphItem, char* text, PangoLogAttr* logAttrs, int letterSpacing)pango_glyph_item_letter_space;
+	void function(PangoGlyphItem* glyphItem)pango_glyph_item_free;
+	
+	// pango.PgFontDescription
+	
+	PangoFontDescription* function()pango_font_description_new;
+	PangoFontDescription* function(PangoFontDescription* desc)pango_font_description_copy;
+	PangoFontDescription* function(PangoFontDescription* desc)pango_font_description_copy_static;
+	guint function(PangoFontDescription* desc)pango_font_description_hash;
+	gboolean function(PangoFontDescription* desc1, PangoFontDescription* desc2)pango_font_description_equal;
+	void function(PangoFontDescription* desc)pango_font_description_free;
+	void function(PangoFontDescription** descs, int nDescs)pango_font_descriptions_free;
+	void function(PangoFontDescription* desc, char* family)pango_font_description_set_family;
+	void function(PangoFontDescription* desc, char* family)pango_font_description_set_family_static;
+	char* function(PangoFontDescription* desc)pango_font_description_get_family;
+	void function(PangoFontDescription* desc, PangoStyle style)pango_font_description_set_style;
+	PangoStyle function(PangoFontDescription* desc)pango_font_description_get_style;
+	void function(PangoFontDescription* desc, PangoVariant variant)pango_font_description_set_variant;
+	PangoVariant function(PangoFontDescription* desc)pango_font_description_get_variant;
+	void function(PangoFontDescription* desc, PangoWeight weight)pango_font_description_set_weight;
+	PangoWeight function(PangoFontDescription* desc)pango_font_description_get_weight;
+	void function(PangoFontDescription* desc, PangoStretch stretch)pango_font_description_set_stretch;
+	PangoStretch function(PangoFontDescription* desc)pango_font_description_get_stretch;
+	void function(PangoFontDescription* desc, gint size)pango_font_description_set_size;
+	gint function(PangoFontDescription* desc)pango_font_description_get_size;
+	void function(PangoFontDescription* desc, double size)pango_font_description_set_absolute_size;
+	gboolean function(PangoFontDescription* desc)pango_font_description_get_size_is_absolute;
+	void function(PangoFontDescription* desc, PangoGravity gravity)pango_font_description_set_gravity;
+	PangoGravity function(PangoFontDescription* desc)pango_font_description_get_gravity;
+	PangoFontMask function(PangoFontDescription* desc)pango_font_description_get_set_fields;
+	void function(PangoFontDescription* desc, PangoFontMask toUnset)pango_font_description_unset_fields;
+	void function(PangoFontDescription* desc, PangoFontDescription* descToMerge, gboolean replaceExisting)pango_font_description_merge;
+	void function(PangoFontDescription* desc, PangoFontDescription* descToMerge, gboolean replaceExisting)pango_font_description_merge_static;
+	gboolean function(PangoFontDescription* desc, PangoFontDescription* oldMatch, PangoFontDescription* newMatch)pango_font_description_better_match;
+	PangoFontDescription* function(char* str)pango_font_description_from_string;
+	char* function(PangoFontDescription* desc)pango_font_description_to_string;
+	char* function(PangoFontDescription* desc)pango_font_description_to_filename;
+	PangoEngineShape* function(PangoFont* font, PangoLanguage* language, guint32 ch)pango_font_find_shaper;
+	PangoFontDescription* function(PangoFont* font)pango_font_describe;
+	PangoFontDescription* function(PangoFont* font)pango_font_describe_with_absolute_size;
+	PangoCoverage* function(PangoFont* font, PangoLanguage* language)pango_font_get_coverage;
+	void function(PangoFont* font, PangoGlyph glyph, PangoRectangle* inkRect, PangoRectangle* logicalRect)pango_font_get_glyph_extents;
+	PangoFontMetrics* function(PangoFont* font, PangoLanguage* language)pango_font_get_metrics;
+	PangoFontMap* function(PangoFont* font)pango_font_get_font_map;
+	PangoFont* function(PangoFontset* fontset, guint wc)pango_fontset_get_font;
+	PangoFontMetrics* function(PangoFontset* fontset)pango_fontset_get_metrics;
+	void function(PangoFontset* fontset, PangoFontsetForeachFunc func, gpointer data)pango_fontset_foreach;
+	
+	// pango.PgFontMetrics
+	
+	PangoFontMetrics* function(PangoFontMetrics* metrics)pango_font_metrics_ref;
+	void function(PangoFontMetrics* metrics)pango_font_metrics_unref;
+	int function(PangoFontMetrics* metrics)pango_font_metrics_get_ascent;
+	int function(PangoFontMetrics* metrics)pango_font_metrics_get_descent;
+	int function(PangoFontMetrics* metrics)pango_font_metrics_get_approximate_char_width;
+	int function(PangoFontMetrics* metrics)pango_font_metrics_get_approximate_digit_width;
+	int function(PangoFontMetrics* metrics)pango_font_metrics_get_underline_thickness;
+	int function(PangoFontMetrics* metrics)pango_font_metrics_get_underline_position;
+	int function(PangoFontMetrics* metrics)pango_font_metrics_get_strikethrough_thickness;
+	int function(PangoFontMetrics* metrics)pango_font_metrics_get_strikethrough_position;
+	
+	// pango.PgFontFamily
+	
+	char* function(PangoFontFamily* family)pango_font_family_get_name;
+	gboolean function(PangoFontFamily* family)pango_font_family_is_monospace;
+	void function(PangoFontFamily* family, PangoFontFace*** faces, int* nFaces)pango_font_family_list_faces;
+	
+	// pango.PgFontFace
+	
+	char* function(PangoFontFace* face)pango_font_face_get_face_name;
+	void function(PangoFontFace* face, int** sizes, int* nSizes)pango_font_face_list_sizes;
+	PangoFontDescription* function(PangoFontFace* face)pango_font_face_describe;
+	gboolean function(PangoFontFace* face)pango_font_face_is_synthesized;
+	
+	// pango.PgFontMap
+	
+	PangoFont* function(PangoFontMap* fontmap, PangoContext* context, PangoFontDescription* desc)pango_font_map_load_font;
+	PangoFontset* function(PangoFontMap* fontmap, PangoContext* context, PangoFontDescription* desc, PangoLanguage* language)pango_font_map_load_fontset;
+	void function(PangoFontMap* fontmap, PangoFontFamily*** families, int* nFamilies)pango_font_map_list_families;
+	char* function(PangoFontMap* fontmap)pango_font_map_get_shape_engine_type;
+	
+	// pango.PgFontsetSimple
+	
+	PangoFontsetSimple* function(PangoLanguage* language)pango_fontset_simple_new;
+	void function(PangoFontsetSimple* fontset, PangoFont* font)pango_fontset_simple_append;
+	int function(PangoFontsetSimple* fontset)pango_fontset_simple_size;
+	
+	// pango.PgAttribute
+	
+	gboolean function(char* markupText, int length, gunichar accelMarker, PangoAttrList** attrList, char** text, gunichar* accelChar, GError** error)pango_parse_markup;
+	PangoAttrType function(gchar* name)pango_attr_type_register;
+	PangoAttribute* function(PangoAttribute* attr)pango_attribute_copy;
+	gboolean function(PangoAttribute* attr1, PangoAttribute* attr2)pango_attribute_equal;
+	void function(PangoAttribute* attr)pango_attribute_destroy;
+	PangoAttribute* function(PangoLanguage* language)pango_attr_language_new;
+	PangoAttribute* function(char* family)pango_attr_family_new;
+	PangoAttribute* function(PangoStyle style)pango_attr_style_new;
+	PangoAttribute* function(PangoVariant variant)pango_attr_variant_new;
+	PangoAttribute* function(PangoStretch stretch)pango_attr_stretch_new;
+	PangoAttribute* function(PangoWeight weight)pango_attr_weight_new;
+	PangoAttribute* function(int size)pango_attr_size_new;
+	PangoAttribute* function(int size)pango_attr_size_new_absolute;
+	PangoAttribute* function(PangoFontDescription* desc)pango_attr_font_desc_new;
+	PangoAttribute* function(guint16 red, guint16 green, guint16 blue)pango_attr_foreground_new;
+	PangoAttribute* function(guint16 red, guint16 green, guint16 blue)pango_attr_background_new;
+	PangoAttribute* function(gboolean strikethrough)pango_attr_strikethrough_new;
+	PangoAttribute* function(guint16 red, guint16 green, guint16 blue)pango_attr_strikethrough_color_new;
+	PangoAttribute* function(PangoUnderline underline)pango_attr_underline_new;
+	PangoAttribute* function(guint16 red, guint16 green, guint16 blue)pango_attr_underline_color_new;
+	PangoAttribute* function(PangoRectangle* inkRect, PangoRectangle* logicalRect)pango_attr_shape_new;
+	PangoAttribute* function(PangoRectangle* inkRect, PangoRectangle* logicalRect, gpointer data, PangoAttrDataCopyFunc copyFunc, GDestroyNotify destroyFunc)pango_attr_shape_new_with_data;
+	PangoAttribute* function(double scaleFactor)pango_attr_scale_new;
+	PangoAttribute* function(int rise)pango_attr_rise_new;
+	PangoAttribute* function(int letterSpacing)pango_attr_letter_spacing_new;
+	PangoAttribute* function(gboolean enableFallback)pango_attr_fallback_new;
+	PangoAttribute* function(PangoGravity gravity)pango_attr_gravity_new;
+	PangoAttribute* function(PangoGravityHint hint)pango_attr_gravity_hint_new;
+	gboolean function(PangoColor* color, char* spec)pango_color_parse;
+	PangoColor* function(PangoColor* src)pango_color_copy;
+	void function(PangoColor* color)pango_color_free;
+	gchar* function(PangoColor* color)pango_color_to_string;
+	PangoAttrList* function()pango_attr_list_new;
+	PangoAttrList* function(PangoAttrList* list)pango_attr_list_ref;
+	void function(PangoAttrList* list)pango_attr_list_unref;
+	PangoAttrList* function(PangoAttrList* list)pango_attr_list_copy;
+	void function(PangoAttrList* list, PangoAttribute* attr)pango_attr_list_insert;
+	void function(PangoAttrList* list, PangoAttribute* attr)pango_attr_list_insert_before;
+	void function(PangoAttrList* list, PangoAttribute* attr)pango_attr_list_change;
+	void function(PangoAttrList* list, PangoAttrList* other, gint pos, gint len)pango_attr_list_splice;
+	PangoAttrList* function(PangoAttrList* list, PangoAttrFilterFunc func, gpointer data)pango_attr_list_filter;
+	PangoAttrIterator* function(PangoAttrList* list)pango_attr_list_get_iterator;
+	PangoAttrIterator* function(PangoAttrIterator* iterator)pango_attr_iterator_copy;
+	gboolean function(PangoAttrIterator* iterator)pango_attr_iterator_next;
+	void function(PangoAttrIterator* iterator, gint* start, gint* end)pango_attr_iterator_range;
+	PangoAttribute* function(PangoAttrIterator* iterator, PangoAttrType type)pango_attr_iterator_get;
+	void function(PangoAttrIterator* iterator, PangoFontDescription* desc, PangoLanguage** language, GSList** extraAttrs)pango_attr_iterator_get_font;
+	GSList* function(PangoAttrIterator* iterator)pango_attr_iterator_get_attrs;
+	void function(PangoAttrIterator* iterator)pango_attr_iterator_destroy;
+	
+	// pango.PgAttributeList
+	
+	
+	// pango.PgLanguage
+	
+	PangoLanguage* function(char* language)pango_language_from_string;
+	gboolean function(PangoLanguage* language, char* rangeList)pango_language_matches;
+	
+	// pango.PgTabArray
+	
+	PangoTabArray* function(gint initialSize, gboolean positionsInPixels)pango_tab_array_new;
+	PangoTabArray* function(gint size, gboolean positionsInPixels, PangoTabAlign firstAlignment, gint firstPosition, ... )pango_tab_array_new_with_positions;
+	PangoTabArray* function(PangoTabArray* src)pango_tab_array_copy;
+	void function(PangoTabArray* tabArray)pango_tab_array_free;
+	gint function(PangoTabArray* tabArray)pango_tab_array_get_size;
+	void function(PangoTabArray* tabArray, gint newSize)pango_tab_array_resize;
+	void function(PangoTabArray* tabArray, gint tabIndex, PangoTabAlign alignment, gint location)pango_tab_array_set_tab;
+	void function(PangoTabArray* tabArray, gint tabIndex, PangoTabAlign* alignment, gint* location)pango_tab_array_get_tab;
+	void function(PangoTabArray* tabArray, PangoTabAlign** alignments, gint** locations)pango_tab_array_get_tabs;
+	gboolean function(PangoTabArray* tabArray)pango_tab_array_get_positions_in_pixels;
+	
+	// pango.PgLayout
+	
+	PangoLayout* function(PangoContext* context)pango_layout_new;
+	PangoLayout* function(PangoLayout* src)pango_layout_copy;
+	PangoContext* function(PangoLayout* layout)pango_layout_get_context;
+	void function(PangoLayout* layout)pango_layout_context_changed;
+	void function(PangoLayout* layout, char* text, int length)pango_layout_set_text;
+	char* function(PangoLayout* layout)pango_layout_get_text;
+	void function(PangoLayout* layout, char* markup, int length)pango_layout_set_markup;
+	void function(PangoLayout* layout, char* markup, int length, gunichar accelMarker, gunichar* accelChar)pango_layout_set_markup_with_accel;
+	void function(PangoLayout* layout, PangoAttrList* attrs)pango_layout_set_attributes;
+	PangoAttrList* function(PangoLayout* layout)pango_layout_get_attributes;
+	void function(PangoLayout* layout, PangoFontDescription* desc)pango_layout_set_font_description;
+	PangoFontDescription* function(PangoLayout* layout)pango_layout_get_font_description;
+	void function(PangoLayout* layout, int width)pango_layout_set_width;
+	int function(PangoLayout* layout)pango_layout_get_width;
+	void function(PangoLayout* layout, PangoWrapMode wrap)pango_layout_set_wrap;
+	PangoWrapMode function(PangoLayout* layout)pango_layout_get_wrap;
+	gboolean function(PangoLayout* layout)pango_layout_is_wrapped;
+	void function(PangoLayout* layout, PangoEllipsizeMode ellipsize)pango_layout_set_ellipsize;
+	PangoEllipsizeMode function(PangoLayout* layout)pango_layout_get_ellipsize;
+	gboolean function(PangoLayout* layout)pango_layout_is_ellipsized;
+	void function(PangoLayout* layout, int indent)pango_layout_set_indent;
+	int function(PangoLayout* layout)pango_layout_get_indent;
+	int function(PangoLayout* layout)pango_layout_get_spacing;
+	void function(PangoLayout* layout, int spacing)pango_layout_set_spacing;
+	void function(PangoLayout* layout, gboolean justify)pango_layout_set_justify;
+	gboolean function(PangoLayout* layout)pango_layout_get_justify;
+	void function(PangoLayout* layout, gboolean autoDir)pango_layout_set_auto_dir;
+	gboolean function(PangoLayout* layout)pango_layout_get_auto_dir;
+	void function(PangoLayout* layout, PangoAlignment alignment)pango_layout_set_alignment;
+	PangoAlignment function(PangoLayout* layout)pango_layout_get_alignment;
+	void function(PangoLayout* layout, PangoTabArray* tabs)pango_layout_set_tabs;
+	PangoTabArray* function(PangoLayout* layout)pango_layout_get_tabs;
+	void function(PangoLayout* layout, gboolean setting)pango_layout_set_single_paragraph_mode;
+	gboolean function(PangoLayout* layout)pango_layout_get_single_paragraph_mode;
+	int function(PangoLayout* layout)pango_layout_get_unknown_glyphs_count;
+	void function(PangoLayout* layout, PangoLogAttr** attrs, gint* nAttrs)pango_layout_get_log_attrs;
+	void function(PangoLayout* layout, int index, PangoRectangle* pos)pango_layout_index_to_pos;
+	void function(PangoLayout* layout, int index, gboolean trailing, int* line, int* xPos)pango_layout_index_to_line_x;
+	gboolean function(PangoLayout* layout, int x, int y, int* index, int* trailing)pango_layout_xy_to_index;
+	void function(PangoLayout* layout, int index, PangoRectangle* strongPos, PangoRectangle* weakPos)pango_layout_get_cursor_pos;
+	void function(PangoLayout* layout, gboolean strong, int oldIndex, int oldTrailing, int direction, int* newIndex, int* newTrailing)pango_layout_move_cursor_visually;
+	void function(PangoLayout* layout, PangoRectangle* inkRect, PangoRectangle* logicalRect)pango_layout_get_extents;
+	void function(PangoLayout* layout, PangoRectangle* inkRect, PangoRectangle* logicalRect)pango_layout_get_pixel_extents;
+	void function(PangoLayout* layout, int* width, int* height)pango_layout_get_size;
+	void function(PangoLayout* layout, int* width, int* height)pango_layout_get_pixel_size;
+	int function(PangoLayout* layout)pango_layout_get_line_count;
+	PangoLayoutLine* function(PangoLayout* layout, int line)pango_layout_get_line;
+	PangoLayoutLine* function(PangoLayout* layout, int line)pango_layout_get_line_readonly;
+	GSList* function(PangoLayout* layout)pango_layout_get_lines;
+	GSList* function(PangoLayout* layout)pango_layout_get_lines_readonly;
+	PangoLayoutIter* function(PangoLayout* layout)pango_layout_get_iter;
+	PangoLayoutLine* function(PangoLayoutLine* line)pango_layout_line_ref;
+	void function(PangoLayoutLine* line)pango_layout_line_unref;
+	void function(PangoLayoutLine* line, PangoRectangle* inkRect, PangoRectangle* logicalRect)pango_layout_line_get_extents;
+	void function(PangoLayoutLine* layoutLine, PangoRectangle* inkRect, PangoRectangle* logicalRect)pango_layout_line_get_pixel_extents;
+	void function(PangoLayoutLine* line, int index, gboolean trailing, int* xPos)pango_layout_line_index_to_x;
+	gboolean function(PangoLayoutLine* line, int xPos, int* index, int* trailing)pango_layout_line_x_to_index;
+	void function(PangoLayoutLine* line, int startIndex, int endIndex, int** ranges, int* nRanges)pango_layout_line_get_x_ranges;
+	
+	// pango.PgLayoutIter
+	
+	void function(PangoLayoutIter* iter)pango_layout_iter_free;
+	gboolean function(PangoLayoutIter* iter)pango_layout_iter_next_run;
+	gboolean function(PangoLayoutIter* iter)pango_layout_iter_next_char;
+	gboolean function(PangoLayoutIter* iter)pango_layout_iter_next_cluster;
+	gboolean function(PangoLayoutIter* iter)pango_layout_iter_next_line;
+	gboolean function(PangoLayoutIter* iter)pango_layout_iter_at_last_line;
+	int function(PangoLayoutIter* iter)pango_layout_iter_get_index;
+	int function(PangoLayoutIter* iter)pango_layout_iter_get_baseline;
+	PangoLayoutRun* function(PangoLayoutIter* iter)pango_layout_iter_get_run;
+	PangoLayoutRun* function(PangoLayoutIter* iter)pango_layout_iter_get_run_readonly;
+	PangoLayoutLine* function(PangoLayoutIter* iter)pango_layout_iter_get_line;
+	PangoLayoutLine* function(PangoLayoutIter* iter)pango_layout_iter_get_line_readonly;
+	void function(PangoLayoutIter* iter, PangoRectangle* logicalRect)pango_layout_iter_get_char_extents;
+	void function(PangoLayoutIter* iter, PangoRectangle* inkRect, PangoRectangle* logicalRect)pango_layout_iter_get_cluster_extents;
+	void function(PangoLayoutIter* iter, PangoRectangle* inkRect, PangoRectangle* logicalRect)pango_layout_iter_get_run_extents;
+	void function(PangoLayoutIter* iter, int* y0_, int* y1_)pango_layout_iter_get_line_yrange;
+	void function(PangoLayoutIter* iter, PangoRectangle* inkRect, PangoRectangle* logicalRect)pango_layout_iter_get_line_extents;
+	void function(PangoLayoutIter* iter, PangoRectangle* inkRect, PangoRectangle* logicalRect)pango_layout_iter_get_layout_extents;
+	
+	// pango.PgScriptIter
+	
+	PangoScript function(gunichar ch)pango_script_for_unichar;
+	PangoLanguage* function(PangoScript script)pango_script_get_sample_language;
+	gboolean function(PangoLanguage* language, PangoScript script)pango_language_includes_script;
+	PangoScriptIter* function(char* text, int length)pango_script_iter_new;
+	void function(PangoScriptIter* iter, char** start, char** end, PangoScript* script)pango_script_iter_get_range;
+	gboolean function(PangoScriptIter* iter)pango_script_iter_next;
+	void function(PangoScriptIter* iter)pango_script_iter_free;
+	
+	// pango.PgCoverage
+	
+	PangoCoverage* function()pango_coverage_new;
+	PangoCoverage* function(PangoCoverage* coverage)pango_coverage_ref;
+	void function(PangoCoverage* coverage)pango_coverage_unref;
+	PangoCoverage* function(PangoCoverage* coverage)pango_coverage_copy;
+	PangoCoverageLevel function(PangoCoverage* coverage, int index)pango_coverage_get;
+	void function(PangoCoverage* coverage, PangoCoverage* other)pango_coverage_max;
+	void function(PangoCoverage* coverage, int index, PangoCoverageLevel level)pango_coverage_set;
+	void function(PangoCoverage* coverage, guchar** bytes, int* nBytes)pango_coverage_to_bytes;
+	PangoCoverage* function(guchar* bytes, int nBytes)pango_coverage_from_bytes;
+	
+	// pango.PgEngine
+	
+	void function(PangoEngineInfo** engines, int* nEngines)script_engine_list;
+	void function(GTypeModule* modul)script_engine_init;
+	void function()script_engine_exit;
+	PangoEngine* function(char* id)script_engine_create;
+	
+	// pango.PgEngineLang
+	
+	
+	// pango.PgEngineShape
+	
+	
+	// pango.PgVertical
+	
+	PangoGravity function(PangoMatrix* matrix)pango_gravity_get_for_matrix;
+	PangoGravity function(PangoScript script, PangoGravity baseGravity, PangoGravityHint hint)pango_gravity_get_for_script;
+
+
+}
+
+/******************************************************************************
+
+******************************************************************************/
+
+Symbol[] pangoLinks = 
+[
+
+	{ "pango_itemize",  cast(void**)& pango_itemize},
+	{ "pango_itemize_with_base_dir",  cast(void**)& pango_itemize_with_base_dir},
+	{ "pango_reorder_items",  cast(void**)& pango_reorder_items},
+	{ "pango_context_new",  cast(void**)& pango_context_new},
+	{ "pango_context_set_font_map",  cast(void**)& pango_context_set_font_map},
+	{ "pango_context_get_font_map",  cast(void**)& pango_context_get_font_map},
+	{ "pango_context_get_font_description",  cast(void**)& pango_context_get_font_description},
+	{ "pango_context_set_font_description",  cast(void**)& pango_context_set_font_description},
+	{ "pango_context_get_language",  cast(void**)& pango_context_get_language},
+	{ "pango_context_set_language",  cast(void**)& pango_context_set_language},
+	{ "pango_context_get_base_dir",  cast(void**)& pango_context_get_base_dir},
+	{ "pango_context_set_base_dir",  cast(void**)& pango_context_set_base_dir},
+	{ "pango_context_get_base_gravity",  cast(void**)& pango_context_get_base_gravity},
+	{ "pango_context_set_base_gravity",  cast(void**)& pango_context_set_base_gravity},
+	{ "pango_context_get_gravity",  cast(void**)& pango_context_get_gravity},
+	{ "pango_context_get_gravity_hint",  cast(void**)& pango_context_get_gravity_hint},
+	{ "pango_context_set_gravity_hint",  cast(void**)& pango_context_set_gravity_hint},
+	{ "pango_context_get_matrix",  cast(void**)& pango_context_get_matrix},
+	{ "pango_context_set_matrix",  cast(void**)& pango_context_set_matrix},
+	{ "pango_context_load_font",  cast(void**)& pango_context_load_font},
+	{ "pango_context_load_fontset",  cast(void**)& pango_context_load_fontset},
+	{ "pango_context_get_metrics",  cast(void**)& pango_context_get_metrics},
+	{ "pango_context_list_families",  cast(void**)& pango_context_list_families},
+	{ "pango_get_mirror_char",  cast(void**)& pango_get_mirror_char},
+	{ "pango_unichar_direction",  cast(void**)& pango_unichar_direction},
+	{ "pango_find_base_dir",  cast(void**)& pango_find_base_dir},
+	{ "pango_gravity_to_rotation",  cast(void**)& pango_gravity_to_rotation},
+	{ "pango_break",  cast(void**)& pango_break},
+	{ "pango_get_log_attrs",  cast(void**)& pango_get_log_attrs},
+	{ "pango_find_paragraph_boundary",  cast(void**)& pango_find_paragraph_boundary},
+	{ "pango_default_break",  cast(void**)& pango_default_break},
+	{ "pango_shape",  cast(void**)& pango_shape},
+	{ "pango_item_free",  cast(void**)& pango_item_free},
+	{ "pango_item_copy",  cast(void**)& pango_item_copy},
+	{ "pango_item_new",  cast(void**)& pango_item_new},
+	{ "pango_item_split",  cast(void**)& pango_item_split},
+	{ "pango_units_to_double",  cast(void**)& pango_units_to_double},
+	{ "pango_units_from_double",  cast(void**)& pango_units_from_double},
+	{ "pango_extents_to_pixels",  cast(void**)& pango_extents_to_pixels},
+	{ "pango_matrix_copy",  cast(void**)& pango_matrix_copy},
+	{ "pango_matrix_free",  cast(void**)& pango_matrix_free},
+	{ "pango_matrix_translate",  cast(void**)& pango_matrix_translate},
+	{ "pango_matrix_scale",  cast(void**)& pango_matrix_scale},
+	{ "pango_matrix_rotate",  cast(void**)& pango_matrix_rotate},
+	{ "pango_matrix_concat",  cast(void**)& pango_matrix_concat},
+	{ "pango_matrix_transform_point",  cast(void**)& pango_matrix_transform_point},
+	{ "pango_matrix_transform_distance",  cast(void**)& pango_matrix_transform_distance},
+	{ "pango_matrix_transform_rectangle",  cast(void**)& pango_matrix_transform_rectangle},
+	{ "pango_matrix_transform_pixel_rectangle",  cast(void**)& pango_matrix_transform_pixel_rectangle},
+	{ "pango_matrix_get_font_scale_factor",  cast(void**)& pango_matrix_get_font_scale_factor},
+	{ "pango_glyph_string_new",  cast(void**)& pango_glyph_string_new},
+	{ "pango_glyph_string_copy",  cast(void**)& pango_glyph_string_copy},
+	{ "pango_glyph_string_set_size",  cast(void**)& pango_glyph_string_set_size},
+	{ "pango_glyph_string_free",  cast(void**)& pango_glyph_string_free},
+	{ "pango_glyph_string_extents",  cast(void**)& pango_glyph_string_extents},
+	{ "pango_glyph_string_extents_range",  cast(void**)& pango_glyph_string_extents_range},
+	{ "pango_glyph_string_get_width",  cast(void**)& pango_glyph_string_get_width},
+	{ "pango_glyph_string_index_to_x",  cast(void**)& pango_glyph_string_index_to_x},
+	{ "pango_glyph_string_x_to_index",  cast(void**)& pango_glyph_string_x_to_index},
+	{ "pango_glyph_string_get_logical_widths",  cast(void**)& pango_glyph_string_get_logical_widths},
+	{ "pango_glyph_item_split",  cast(void**)& pango_glyph_item_split},
+	{ "pango_glyph_item_apply_attrs",  cast(void**)& pango_glyph_item_apply_attrs},
+	{ "pango_glyph_item_letter_space",  cast(void**)& pango_glyph_item_letter_space},
+	{ "pango_glyph_item_free",  cast(void**)& pango_glyph_item_free},
+	{ "pango_font_description_new",  cast(void**)& pango_font_description_new},
+	{ "pango_font_description_copy",  cast(void**)& pango_font_description_copy},
+	{ "pango_font_description_copy_static",  cast(void**)& pango_font_description_copy_static},
+	{ "pango_font_description_hash",  cast(void**)& pango_font_description_hash},
+	{ "pango_font_description_equal",  cast(void**)& pango_font_description_equal},
+	{ "pango_font_description_free",  cast(void**)& pango_font_description_free},
+	{ "pango_font_descriptions_free",  cast(void**)& pango_font_descriptions_free},
+	{ "pango_font_description_set_family",  cast(void**)& pango_font_description_set_family},
+	{ "pango_font_description_set_family_static",  cast(void**)& pango_font_description_set_family_static},
+	{ "pango_font_description_get_family",  cast(void**)& pango_font_description_get_family},
+	{ "pango_font_description_set_style",  cast(void**)& pango_font_description_set_style},
+	{ "pango_font_description_get_style",  cast(void**)& pango_font_description_get_style},
+	{ "pango_font_description_set_variant",  cast(void**)& pango_font_description_set_variant},
+	{ "pango_font_description_get_variant",  cast(void**)& pango_font_description_get_variant},
+	{ "pango_font_description_set_weight",  cast(void**)& pango_font_description_set_weight},
+	{ "pango_font_description_get_weight",  cast(void**)& pango_font_description_get_weight},
+	{ "pango_font_description_set_stretch",  cast(void**)& pango_font_description_set_stretch},
+	{ "pango_font_description_get_stretch",  cast(void**)& pango_font_description_get_stretch},
+	{ "pango_font_description_set_size",  cast(void**)& pango_font_description_set_size},
+	{ "pango_font_description_get_size",  cast(void**)& pango_font_description_get_size},
+	{ "pango_font_description_set_absolute_size",  cast(void**)& pango_font_description_set_absolute_size},
+	{ "pango_font_description_get_size_is_absolute",  cast(void**)& pango_font_description_get_size_is_absolute},
+	{ "pango_font_description_set_gravity",  cast(void**)& pango_font_description_set_gravity},
+	{ "pango_font_description_get_gravity",  cast(void**)& pango_font_description_get_gravity},
+	{ "pango_font_description_get_set_fields",  cast(void**)& pango_font_description_get_set_fields},
+	{ "pango_font_description_unset_fields",  cast(void**)& pango_font_description_unset_fields},
+	{ "pango_font_description_merge",  cast(void**)& pango_font_description_merge},
+	{ "pango_font_description_merge_static",  cast(void**)& pango_font_description_merge_static},
+	{ "pango_font_description_better_match",  cast(void**)& pango_font_description_better_match},
+	{ "pango_font_description_from_string",  cast(void**)& pango_font_description_from_string},
+	{ "pango_font_description_to_string",  cast(void**)& pango_font_description_to_string},
+	{ "pango_font_description_to_filename",  cast(void**)& pango_font_description_to_filename},
+	{ "pango_font_find_shaper",  cast(void**)& pango_font_find_shaper},
+	{ "pango_font_describe",  cast(void**)& pango_font_describe},
+	{ "pango_font_describe_with_absolute_size",  cast(void**)& pango_font_describe_with_absolute_size},
+	{ "pango_font_get_coverage",  cast(void**)& pango_font_get_coverage},
+	{ "pango_font_get_glyph_extents",  cast(void**)& pango_font_get_glyph_extents},
+	{ "pango_font_get_metrics",  cast(void**)& pango_font_get_metrics},
+	{ "pango_font_get_font_map",  cast(void**)& pango_font_get_font_map},
+	{ "pango_fontset_get_font",  cast(void**)& pango_fontset_get_font},
+	{ "pango_fontset_get_metrics",  cast(void**)& pango_fontset_get_metrics},
+	{ "pango_fontset_foreach",  cast(void**)& pango_fontset_foreach},
+	{ "pango_font_metrics_ref",  cast(void**)& pango_font_metrics_ref},
+	{ "pango_font_metrics_unref",  cast(void**)& pango_font_metrics_unref},
+	{ "pango_font_metrics_get_ascent",  cast(void**)& pango_font_metrics_get_ascent},
+	{ "pango_font_metrics_get_descent",  cast(void**)& pango_font_metrics_get_descent},
+	{ "pango_font_metrics_get_approximate_char_width",  cast(void**)& pango_font_metrics_get_approximate_char_width},
+	{ "pango_font_metrics_get_approximate_digit_width",  cast(void**)& pango_font_metrics_get_approximate_digit_width},
+	{ "pango_font_metrics_get_underline_thickness",  cast(void**)& pango_font_metrics_get_underline_thickness},
+	{ "pango_font_metrics_get_underline_position",  cast(void**)& pango_font_metrics_get_underline_position},
+	{ "pango_font_metrics_get_strikethrough_thickness",  cast(void**)& pango_font_metrics_get_strikethrough_thickness},
+	{ "pango_font_metrics_get_strikethrough_position",  cast(void**)& pango_font_metrics_get_strikethrough_position},
+	{ "pango_font_family_get_name",  cast(void**)& pango_font_family_get_name},
+	{ "pango_font_family_is_monospace",  cast(void**)& pango_font_family_is_monospace},
+	{ "pango_font_family_list_faces",  cast(void**)& pango_font_family_list_faces},
+	{ "pango_font_face_get_face_name",  cast(void**)& pango_font_face_get_face_name},
+	{ "pango_font_face_list_sizes",  cast(void**)& pango_font_face_list_sizes},
+	{ "pango_font_face_describe",  cast(void**)& pango_font_face_describe},
+	{ "pango_font_face_is_synthesized",  cast(void**)& pango_font_face_is_synthesized},
+	{ "pango_font_map_load_font",  cast(void**)& pango_font_map_load_font},
+	{ "pango_font_map_load_fontset",  cast(void**)& pango_font_map_load_fontset},
+	{ "pango_font_map_list_families",  cast(void**)& pango_font_map_list_families},
+	{ "pango_font_map_get_shape_engine_type",  cast(void**)& pango_font_map_get_shape_engine_type},
+	{ "pango_fontset_simple_new",  cast(void**)& pango_fontset_simple_new},
+	{ "pango_fontset_simple_append",  cast(void**)& pango_fontset_simple_append},
+	{ "pango_fontset_simple_size",  cast(void**)& pango_fontset_simple_size},
+	{ "pango_parse_markup",  cast(void**)& pango_parse_markup},
+	{ "pango_attr_type_register",  cast(void**)& pango_attr_type_register},
+	{ "pango_attribute_copy",  cast(void**)& pango_attribute_copy},
+	{ "pango_attribute_equal",  cast(void**)& pango_attribute_equal},
+	{ "pango_attribute_destroy",  cast(void**)& pango_attribute_destroy},
+	{ "pango_attr_language_new",  cast(void**)& pango_attr_language_new},
+	{ "pango_attr_family_new",  cast(void**)& pango_attr_family_new},
+	{ "pango_attr_style_new",  cast(void**)& pango_attr_style_new},
+	{ "pango_attr_variant_new",  cast(void**)& pango_attr_variant_new},
+	{ "pango_attr_stretch_new",  cast(void**)& pango_attr_stretch_new},
+	{ "pango_attr_weight_new",  cast(void**)& pango_attr_weight_new},
+	{ "pango_attr_size_new",  cast(void**)& pango_attr_size_new},
+	{ "pango_attr_size_new_absolute",  cast(void**)& pango_attr_size_new_absolute},
+	{ "pango_attr_font_desc_new",  cast(void**)& pango_attr_font_desc_new},
+	{ "pango_attr_foreground_new",  cast(void**)& pango_attr_foreground_new},
+	{ "pango_attr_background_new",  cast(void**)& pango_attr_background_new},
+	{ "pango_attr_strikethrough_new",  cast(void**)& pango_attr_strikethrough_new},
+	{ "pango_attr_strikethrough_color_new",  cast(void**)& pango_attr_strikethrough_color_new},
+	{ "pango_attr_underline_new",  cast(void**)& pango_attr_underline_new},
+	{ "pango_attr_underline_color_new",  cast(void**)& pango_attr_underline_color_new},
+	{ "pango_attr_shape_new",  cast(void**)& pango_attr_shape_new},
+	{ "pango_attr_shape_new_with_data",  cast(void**)& pango_attr_shape_new_with_data},
+	{ "pango_attr_scale_new",  cast(void**)& pango_attr_scale_new},
+	{ "pango_attr_rise_new",  cast(void**)& pango_attr_rise_new},
+	{ "pango_attr_letter_spacing_new",  cast(void**)& pango_attr_letter_spacing_new},
+	{ "pango_attr_fallback_new",  cast(void**)& pango_attr_fallback_new},
+	{ "pango_attr_gravity_new",  cast(void**)& pango_attr_gravity_new},
+	{ "pango_attr_gravity_hint_new",  cast(void**)& pango_attr_gravity_hint_new},
+	{ "pango_color_parse",  cast(void**)& pango_color_parse},
+	{ "pango_color_copy",  cast(void**)& pango_color_copy},
+	{ "pango_color_free",  cast(void**)& pango_color_free},
+	{ "pango_color_to_string",  cast(void**)& pango_color_to_string},
+	{ "pango_attr_list_new",  cast(void**)& pango_attr_list_new},
+	{ "pango_attr_list_ref",  cast(void**)& pango_attr_list_ref},
+	{ "pango_attr_list_unref",  cast(void**)& pango_attr_list_unref},
+	{ "pango_attr_list_copy",  cast(void**)& pango_attr_list_copy},
+	{ "pango_attr_list_insert",  cast(void**)& pango_attr_list_insert},
+	{ "pango_attr_list_insert_before",  cast(void**)& pango_attr_list_insert_before},
+	{ "pango_attr_list_change",  cast(void**)& pango_attr_list_change},
+	{ "pango_attr_list_splice",  cast(void**)& pango_attr_list_splice},
+	{ "pango_attr_list_filter",  cast(void**)& pango_attr_list_filter},
+	{ "pango_attr_list_get_iterator",  cast(void**)& pango_attr_list_get_iterator},
+	{ "pango_attr_iterator_copy",  cast(void**)& pango_attr_iterator_copy},
+	{ "pango_attr_iterator_next",  cast(void**)& pango_attr_iterator_next},
+	{ "pango_attr_iterator_range",  cast(void**)& pango_attr_iterator_range},
+	{ "pango_attr_iterator_get",  cast(void**)& pango_attr_iterator_get},
+	{ "pango_attr_iterator_get_font",  cast(void**)& pango_attr_iterator_get_font},
+	{ "pango_attr_iterator_get_attrs",  cast(void**)& pango_attr_iterator_get_attrs},
+	{ "pango_attr_iterator_destroy",  cast(void**)& pango_attr_iterator_destroy},
+	{ "pango_language_from_string",  cast(void**)& pango_language_from_string},
+	{ "pango_language_matches",  cast(void**)& pango_language_matches},
+	{ "pango_tab_array_new",  cast(void**)& pango_tab_array_new},
+	{ "pango_tab_array_new_with_positions",  cast(void**)& pango_tab_array_new_with_positions},
+	{ "pango_tab_array_copy",  cast(void**)& pango_tab_array_copy},
+	{ "pango_tab_array_free",  cast(void**)& pango_tab_array_free},
+	{ "pango_tab_array_get_size",  cast(void**)& pango_tab_array_get_size},
+	{ "pango_tab_array_resize",  cast(void**)& pango_tab_array_resize},
+	{ "pango_tab_array_set_tab",  cast(void**)& pango_tab_array_set_tab},
+	{ "pango_tab_array_get_tab",  cast(void**)& pango_tab_array_get_tab},
+	{ "pango_tab_array_get_tabs",  cast(void**)& pango_tab_array_get_tabs},
+	{ "pango_tab_array_get_positions_in_pixels",  cast(void**)& pango_tab_array_get_positions_in_pixels},
+	{ "pango_layout_new",  cast(void**)& pango_layout_new},
+	{ "pango_layout_copy",  cast(void**)& pango_layout_copy},
+	{ "pango_layout_get_context",  cast(void**)& pango_layout_get_context},
+	{ "pango_layout_context_changed",  cast(void**)& pango_layout_context_changed},
+	{ "pango_layout_set_text",  cast(void**)& pango_layout_set_text},
+	{ "pango_layout_get_text",  cast(void**)& pango_layout_get_text},
+	{ "pango_layout_set_markup",  cast(void**)& pango_layout_set_markup},
+	{ "pango_layout_set_markup_with_accel",  cast(void**)& pango_layout_set_markup_with_accel},
+	{ "pango_layout_set_attributes",  cast(void**)& pango_layout_set_attributes},
+	{ "pango_layout_get_attributes",  cast(void**)& pango_layout_get_attributes},
+	{ "pango_layout_set_font_description",  cast(void**)& pango_layout_set_font_description},
+	{ "pango_layout_get_font_description",  cast(void**)& pango_layout_get_font_description},
+	{ "pango_layout_set_width",  cast(void**)& pango_layout_set_width},
+	{ "pango_layout_get_width",  cast(void**)& pango_layout_get_width},
+	{ "pango_layout_set_wrap",  cast(void**)& pango_layout_set_wrap},
+	{ "pango_layout_get_wrap",  cast(void**)& pango_layout_get_wrap},
+	{ "pango_layout_is_wrapped",  cast(void**)& pango_layout_is_wrapped},
+	{ "pango_layout_set_ellipsize",  cast(void**)& pango_layout_set_ellipsize},
+	{ "pango_layout_get_ellipsize",  cast(void**)& pango_layout_get_ellipsize},
+	{ "pango_layout_is_ellipsized",  cast(void**)& pango_layout_is_ellipsized},
+	{ "pango_layout_set_indent",  cast(void**)& pango_layout_set_indent},
+	{ "pango_layout_get_indent",  cast(void**)& pango_layout_get_indent},
+	{ "pango_layout_get_spacing",  cast(void**)& pango_layout_get_spacing},
+	{ "pango_layout_set_spacing",  cast(void**)& pango_layout_set_spacing},
+	{ "pango_layout_set_justify",  cast(void**)& pango_layout_set_justify},
+	{ "pango_layout_get_justify",  cast(void**)& pango_layout_get_justify},
+	{ "pango_layout_set_auto_dir",  cast(void**)& pango_layout_set_auto_dir},
+	{ "pango_layout_get_auto_dir",  cast(void**)& pango_layout_get_auto_dir},
+	{ "pango_layout_set_alignment",  cast(void**)& pango_layout_set_alignment},
+	{ "pango_layout_get_alignment",  cast(void**)& pango_layout_get_alignment},
+	{ "pango_layout_set_tabs",  cast(void**)& pango_layout_set_tabs},
+	{ "pango_layout_get_tabs",  cast(void**)& pango_layout_get_tabs},
+	{ "pango_layout_set_single_paragraph_mode",  cast(void**)& pango_layout_set_single_paragraph_mode},
+	{ "pango_layout_get_single_paragraph_mode",  cast(void**)& pango_layout_get_single_paragraph_mode},
+	{ "pango_layout_get_unknown_glyphs_count",  cast(void**)& pango_layout_get_unknown_glyphs_count},
+	{ "pango_layout_get_log_attrs",  cast(void**)& pango_layout_get_log_attrs},
+	{ "pango_layout_index_to_pos",  cast(void**)& pango_layout_index_to_pos},
+	{ "pango_layout_index_to_line_x",  cast(void**)& pango_layout_index_to_line_x},
+	{ "pango_layout_xy_to_index",  cast(void**)& pango_layout_xy_to_index},
+	{ "pango_layout_get_cursor_pos",  cast(void**)& pango_layout_get_cursor_pos},
+	{ "pango_layout_move_cursor_visually",  cast(void**)& pango_layout_move_cursor_visually},
+	{ "pango_layout_get_extents",  cast(void**)& pango_layout_get_extents},
+	{ "pango_layout_get_pixel_extents",  cast(void**)& pango_layout_get_pixel_extents},
+	{ "pango_layout_get_size",  cast(void**)& pango_layout_get_size},
+	{ "pango_layout_get_pixel_size",  cast(void**)& pango_layout_get_pixel_size},
+	{ "pango_layout_get_line_count",  cast(void**)& pango_layout_get_line_count},
+	{ "pango_layout_get_line",  cast(void**)& pango_layout_get_line},
+	{ "pango_layout_get_line_readonly",  cast(void**)& pango_layout_get_line_readonly},
+	{ "pango_layout_get_lines",  cast(void**)& pango_layout_get_lines},
+	{ "pango_layout_get_lines_readonly",  cast(void**)& pango_layout_get_lines_readonly},
+	{ "pango_layout_get_iter",  cast(void**)& pango_layout_get_iter},
+	{ "pango_layout_line_ref",  cast(void**)& pango_layout_line_ref},
+	{ "pango_layout_line_unref",  cast(void**)& pango_layout_line_unref},
+	{ "pango_layout_line_get_extents",  cast(void**)& pango_layout_line_get_extents},
+	{ "pango_layout_line_get_pixel_extents",  cast(void**)& pango_layout_line_get_pixel_extents},
+	{ "pango_layout_line_index_to_x",  cast(void**)& pango_layout_line_index_to_x},
+	{ "pango_layout_line_x_to_index",  cast(void**)& pango_layout_line_x_to_index},
+	{ "pango_layout_line_get_x_ranges",  cast(void**)& pango_layout_line_get_x_ranges},
+	{ "pango_layout_iter_free",  cast(void**)& pango_layout_iter_free},
+	{ "pango_layout_iter_next_run",  cast(void**)& pango_layout_iter_next_run},
+	{ "pango_layout_iter_next_char",  cast(void**)& pango_layout_iter_next_char},
+	{ "pango_layout_iter_next_cluster",  cast(void**)& pango_layout_iter_next_cluster},
+	{ "pango_layout_iter_next_line",  cast(void**)& pango_layout_iter_next_line},
+	{ "pango_layout_iter_at_last_line",  cast(void**)& pango_layout_iter_at_last_line},
+	{ "pango_layout_iter_get_index",  cast(void**)& pango_layout_iter_get_index},
+	{ "pango_layout_iter_get_baseline",  cast(void**)& pango_layout_iter_get_baseline},
+	{ "pango_layout_iter_get_run",  cast(void**)& pango_layout_iter_get_run},
+	{ "pango_layout_iter_get_run_readonly",  cast(void**)& pango_layout_iter_get_run_readonly},
+	{ "pango_layout_iter_get_line",  cast(void**)& pango_layout_iter_get_line},
+	{ "pango_layout_iter_get_line_readonly",  cast(void**)& pango_layout_iter_get_line_readonly},
+	{ "pango_layout_iter_get_char_extents",  cast(void**)& pango_layout_iter_get_char_extents},
+	{ "pango_layout_iter_get_cluster_extents",  cast(void**)& pango_layout_iter_get_cluster_extents},
+	{ "pango_layout_iter_get_run_extents",  cast(void**)& pango_layout_iter_get_run_extents},
+	{ "pango_layout_iter_get_line_yrange",  cast(void**)& pango_layout_iter_get_line_yrange},
+	{ "pango_layout_iter_get_line_extents",  cast(void**)& pango_layout_iter_get_line_extents},
+	{ "pango_layout_iter_get_layout_extents",  cast(void**)& pango_layout_iter_get_layout_extents},
+	{ "pango_script_for_unichar",  cast(void**)& pango_script_for_unichar},
+	{ "pango_script_get_sample_language",  cast(void**)& pango_script_get_sample_language},
+	{ "pango_language_includes_script",  cast(void**)& pango_language_includes_script},
+	{ "pango_script_iter_new",  cast(void**)& pango_script_iter_new},
+	{ "pango_script_iter_get_range",  cast(void**)& pango_script_iter_get_range},
+	{ "pango_script_iter_next",  cast(void**)& pango_script_iter_next},
+	{ "pango_script_iter_free",  cast(void**)& pango_script_iter_free},
+	{ "pango_coverage_new",  cast(void**)& pango_coverage_new},
+	{ "pango_coverage_ref",  cast(void**)& pango_coverage_ref},
+	{ "pango_coverage_unref",  cast(void**)& pango_coverage_unref},
+	{ "pango_coverage_copy",  cast(void**)& pango_coverage_copy},
+	{ "pango_coverage_get",  cast(void**)& pango_coverage_get},
+	{ "pango_coverage_max",  cast(void**)& pango_coverage_max},
+	{ "pango_coverage_set",  cast(void**)& pango_coverage_set},
+	{ "pango_coverage_to_bytes",  cast(void**)& pango_coverage_to_bytes},
+	{ "pango_coverage_from_bytes",  cast(void**)& pango_coverage_from_bytes},
+	{ "script_engine_list",  cast(void**)& script_engine_list},
+	{ "script_engine_init",  cast(void**)& script_engine_init},
+	{ "script_engine_exit",  cast(void**)& script_engine_exit},
+	{ "script_engine_create",  cast(void**)& script_engine_create},
+	{ "pango_gravity_get_for_matrix",  cast(void**)& pango_gravity_get_for_matrix},
+	{ "pango_gravity_get_for_script",  cast(void**)& pango_gravity_get_for_script},
+
+];
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/gtk/c/pangotypes.d	Sat Jan 05 15:13:44 2008 -0800
@@ -0,0 +1,1706 @@
+/******************************************************************************
+
+    This file is part of gtkD.
+
+    gtkD is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation; either version 2.1 of the License, or
+    (at your option) any later version.
+ 
+    gtkD is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public License
+    along with gtkD; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+******************************************************************************/
+
+module dwt.internal.gtk.c.pangotypes;
+
+public import dwt.internal.gtk.c.glibtypes;
+public import dwt.internal.gtk.c.gobjecttypes;
+
+/******************************************************************************
+
+******************************************************************************/
+
+///* The pango Basic Types */
+public alias void FcPattern;
+public alias void FcCharSet;
+//public alias void LOGFONT;
+//struct Display;
+//struct FT_Bitmap;
+struct FT_Face;
+//struct XftDraw;
+//struct XftColor;
+
+
+const int PANGO_SCALE = 1024;
+const double PANGO_SCALE_XX_SMALL = 0.5787037037037;	/// The scale factor for three shrinking steps (1 / (1.2 * 1.2 * 1.2)).
+const double PANGO_SCALE_X_SMALL  = 0.6444444444444;	/// The scale factor for two shrinking steps (1 / (1.2 * 1.2)).
+const double PANGO_SCALE_SMALL    = 0.8333333333333;	/// The scale factor for one shrinking step (1 / 1.2).
+const double PANGO_SCALE_MEDIUM   = 1.0;	/// The scale factor for normal size (1.0).
+const double PANGO_SCALE_LARGE    = 1.2;	/// The scale factor for one magnification step (1.2)
+const double PANGO_SCALE_X_LARGE  = 1.4399999999999;	/// The scale factor for two magnification steps (1.2 * 1.2).
+const double PANGO_SCALE_XX_LARGE = 1.728;	/// The scale factor for three magnification steps (1.2 * 1.2 * 1.2).
+
+
+/**
+ * typedef guint32 PangoGlyph;
+ * A PangoGlyph represents a single glyph in the output form of a string.
+ */
+public alias uint PangoGlyph;
+
+/**
+ * typedef gint32 PangoGlyphUnit;
+ * The PangoGlyphUnit type is used to store dimensions within
+ * Pango. Dimensions are stored in 1/PANGO_SCALE of a device unit.
+ * (A device unit might be a pixel for screen display, or
+ * a point on a printer.) PANGO_SCALE is currently 1024, and
+ * may change in the future (unlikely though), but you should not
+ * depend on its exact value. The PANGO_PIXELS() macro can be used
+ * to convert from glyph units into device units with correct rounding.
+ */
+public alias int PangoGlyphUnit;
+
+/**
+ * typedef PangoGlyphItem PangoLayoutRun;
+ * The PangoLayoutRun structure represents a single run within
+ * a PangoLayoutLine; it is simply an alternate name for
+ * PangoGlyphItem, present for backwards compatibility.
+ * See the PangoGlyphItem docs for details on the fields.
+ */
+public alias PangoGlyphItem PangoLayoutRun;
+/**
+ * The PangoDirection type represents a direction in the
+ * Unicode bidirectional algorithm; not every value in this
+ * enumeration makes sense for every usage of PangoDirection;
+ * for example, the return value of pango_unichar_direction()
+ * and pango_find_base_dir() cannot be PANGO_DIRECTION_WEAK_LTR
+ * or PANGO_DIRECTION_WEAK_RTL, since every character is either
+ * neutral or has a strong direction; on the other hand
+ * PANGO_DIRECTION_NEUTRAL doesn't make sense to pass
+ * to pango_itemize_with_base_dir().
+ * The PANGO_DIRECTION_TTB_LTR, PANGO_DIRECTION_TTB_RTL
+ * values come from an earlier interpretation of this
+ * enumeration as the writing direction of a block of
+ * text and are no longer used; See PangoGravity for how
+ * vertical text is handled in Pango.
+ * PANGO_DIRECTION_LTR
+ */
+public enum PangoDirection
+{
+	LTR,
+	RTL,
+	TTB_LTR,
+	TTB_RTL,
+	WEAK_LTR,
+	WEAK_RTL,
+	NEUTRAL
+}
+/**
+ * An enumeration specifying the various slant styles possible for a font.
+ * PANGO_STYLE_NORMAL
+ */
+public enum PangoStyle
+{
+	NORMAL,
+	OBLIQUE,
+	ITALIC
+}
+/**
+ * An enumeration specifying the weight (boldness) of a font. This is a numerical
+ * value ranging from 100 to 900, but there are some predefined values:
+ * PANGO_WEIGHT_ULTRALIGHT
+ * the ultralight weight (= 200)
+ * PANGO_WEIGHT_LIGHT
+ */
+public enum PangoWeight
+{
+	ULTRALIGHT = 200,
+	LIGHT = 300,
+	NORMAL = 400,
+	SEMIBOLD = 600,
+	BOLD = 700,
+	ULTRABOLD = 800,
+	HEAVY = 900
+}
+/**
+ * An enumeration specifying capitalization variant of the font.
+ * PANGO_VARIANT_NORMAL
+ * A normal font.
+ * PANGO_VARIANT_SMALL_CAPS
+ * A font with the lower case characters
+ */
+public enum PangoVariant
+{
+	NORMAL,
+	SMALL_CAPS
+}
+/**
+ * An enumeration specifying the width of the font relative to other designs
+ * within a family.
+ * PANGO_STRETCH_ULTRA_CONDENSED
+ * ultra condensed width
+ * PANGO_STRETCH_EXTRA_CONDENSED
+ * extra condensed width
+ * PANGO_STRETCH_CONDENSED
+ * condensed width
+ * PANGO_STRETCH_SEMI_CONDENSED
+ * semi condensed width
+ * PANGO_STRETCH_NORMAL
+ * the normal width
+ * PANGO_STRETCH_SEMI_EXPANDED
+ * semi expanded width
+ * PANGO_STRETCH_EXPANDED
+ * expanded width
+ * PANGO_STRETCH_EXTRA_EXPANDED
+ * extra expanded width
+ * PANGO_STRETCH_ULTRA_EXPANDED
+ * ultra expanded width
+ */
+public enum PangoStretch
+{
+	ULTRA_CONDENSED,
+	EXTRA_CONDENSED,
+	CONDENSED,
+	SEMI_CONDENSED,
+	NORMAL,
+	SEMI_EXPANDED,
+	EXPANDED,
+	EXTRA_EXPANDED,
+	ULTRA_EXPANDED
+}
+/**
+ * The bits in a PangoFontMask correspond to fields in a
+ * PangoFontDescription that have been set.
+ * PANGO_FONT_MASK_FAMILY
+ * the font family is specified.
+ * PANGO_FONT_MASK_STYLE
+ * the font style is specified.
+ * PANGO_FONT_MASK_VARIANT
+ * the font variant is specified.
+ * PANGO_FONT_MASK_WEIGHT
+ * the font weight is specified.
+ * PANGO_FONT_MASK_STRETCH
+ * the font stretch is specified.
+ * PANGO_FONT_MASK_SIZE
+ * the font size is specified.
+ * PANGO_FONT_MASK_GRAVITY
+ * the font gravity is specified (Since: 1.16.)
+ */
+public enum PangoFontMask
+{
+	FAMILY = 1 << 0,
+	STYLE = 1 << 1,
+	VARIANT = 1 << 2,
+	WEIGHT = 1 << 3,
+	STRETCH = 1 << 4,
+	SIZE = 1 << 5,
+	GRAVITY = 1 << 6
+}
+/**
+ * The PangoAttrType
+ * distinguishes between different types of attributes. Along with the
+ * predefined values, it is possible to allocate additional values
+ * for custom attributes using pango_attr_type_register(). The predefined
+ * values are given below. The type of structure used to store the
+ * attribute is listed in parentheses after the description.
+ * PANGO_ATTR_INVALID
+ * does not happen
+ * PANGO_ATTR_LANGUAGE
+ * language (PangoAttrLanguage)
+ * PANGO_ATTR_FAMILY
+ * font family name list (PangoAttrString)
+ * PANGO_ATTR_STYLE
+ * font slant style (PangoAttrInt)
+ * PANGO_ATTR_WEIGHT
+ * font weight (PangoAttrInt)
+ * PANGO_ATTR_VARIANT
+ * font variant (normal or small caps) (PangoAttrInt)
+ * PANGO_ATTR_STRETCH
+ * font stretch (PangoAttrInt)
+ * PANGO_ATTR_SIZE
+ * font size in points scaled by PANGO_SCALE (PangoAttrInt)
+ * PANGO_ATTR_FONT_DESC
+ * font description (PangoAttrFontDesc)
+ * PANGO_ATTR_FOREGROUND
+ * foreground color (PangoAttrColor)
+ * PANGO_ATTR_BACKGROUND
+ * background color (PangoAttrColor)
+ * PANGO_ATTR_UNDERLINE
+ * whether the text has an underline (PangoAttrInt)
+ * PANGO_ATTR_STRIKETHROUGH
+ * whether the text is struck-through (PangoAttrInt)
+ * PANGO_ATTR_RISE
+ * baseline displacement (PangoAttrInt)
+ * PANGO_ATTR_SHAPE
+ * shape (PangoAttrShape)
+ * PANGO_ATTR_SCALE
+ * font size scale factor (PangoAttrFloat)
+ * PANGO_ATTR_FALLBACK
+ * whether fallback is enabled (PangoAttrInt)
+ * PANGO_ATTR_LETTER_SPACING
+ * letter spacing (PangoAttrInt)
+ * PANGO_ATTR_UNDERLINE_COLOR
+ * underline color (PangoAttrColor)
+ * PANGO_ATTR_STRIKETHROUGH_COLOR
+ * strikethrough color (PangoAttrColor)
+ * PANGO_ATTR_ABSOLUTE_SIZE
+ * font size in pixels scaled by PANGO_SCALE (PangoAttrInt)
+ * PANGO_ATTR_GRAVITY
+ * base text gravity (PangoAttrInt)
+ * PANGO_ATTR_GRAVITY_HINT
+ * gravity hint (PangoAttrInt)
+ */
+public enum PangoAttrType
+{
+	INVALID, /+* 0 is an invalid attribute type +/
+	LANGUAGE, /+* PangoAttrLanguage +/
+	FAMILY, /+* PangoAttrString +/
+	STYLE, /+* PangoAttrInt +/
+	WEIGHT, /+* PangoAttrInt +/
+	VARIANT, /+* PangoAttrInt +/
+	STRETCH, /+* PangoAttrInt +/
+	SIZE, /+* PangoAttrSize +/
+	FONT_DESC, /+* PangoAttrFontDesc +/
+	FOREGROUND, /+* PangoAttrColor +/
+	BACKGROUND, /+* PangoAttrColor +/
+	UNDERLINE, /+* PangoAttrInt +/
+	STRIKETHROUGH, /+* PangoAttrInt +/
+	RISE, /+* PangoAttrInt +/
+	SHAPE, /+* PangoAttrShape +/
+	SCALE, /+* PangoAttrFloat +/
+	FALLBACK, /+* PangoAttrInt +/
+	LETTER_SPACING, /+* PangoAttrInt +/
+	UNDERLINE_COLOR, /+* PangoAttrColor +/
+	STRIKETHROUGH_COLOR,/+* PangoAttrColor +/
+	ABSOLUTE_SIZE, /+* PangoAttrSize +/
+	GRAVITY, /+* PangoAttrInt +/
+	GRAVITY_HINT /+* PangoAttrInt +/
+}
+/**
+ * the PangoUnderline enumeration is used to specify
+ * whether text should be underlined, and if so, the type
+ * of underlining.
+ * PANGO_UNDERLINE_NONE
+ * no underline should be drawn
+ * PANGO_UNDERLINE_SINGLE
+ * a single underline should be drawn
+ * PANGO_UNDERLINE_DOUBLE
+ * a double underline should be drawn
+ * PANGO_UNDERLINE_LOW
+ * a single underline should be drawn at a position
+ */
+public enum PangoUnderline
+{
+	NONE,
+	SINGLE,
+	DOUBLE,
+	LOW,
+	ERROR
+}
+/**
+ * A PangoTabAlign specifies where a tab stop appears relative to the text.
+ * PANGO_TAB_LEFT
+ * the tab stop appears to the left of the text.
+ */
+public enum PangoTabAlign
+{
+	LEFT
+	/+* These are not supported now, but may be inn the
+	 * future.
+	 *
+	 * RIGHT,
+	 * CENTER,
+	 * NUMERIC
+	+/
+}
+/**
+ * A PangoWrapMode describes how to wrap the lines of a PangoLayout to the desired width.
+ * PANGO_WRAP_WORD
+ * wrap lines at word boundaries.
+ * PANGO_WRAP_CHAR
+ * wrap lines at character boundaries.
+ * PANGO_WRAP_WORD_CHAR
+ * wrap lines at word boundaries, but fall back to character boundaries if there is not
+ * enough space for a full word.
+ */
+public enum PangoWrapMode
+{
+	WORD,
+	CHAR,
+	WORD_CHAR
+}
+/**
+ * The PangoEllipsizeMode type describes what sort of (if any)
+ * ellipsization should be applied to a line of text. In
+ * the ellipsization process characters are removed from the
+ * text in order to make it fit to a given width and replaced
+ * with an ellipsis.
+ * PANGO_ELLIPSIZE_NONE
+ */
+public enum PangoEllipsizeMode
+{
+	NONE,
+	START,
+	MIDDLE,
+	END
+}
+/**
+ * A PangoAlignment describes how to align the lines of a PangoLayout within the
+ * available space. If the PangoLayout is set to justify
+ * using pango_layout_set_justify(), this only has effect for partial lines.
+ * PANGO_ALIGN_LEFT
+ * Put all available space on the right
+ * PANGO_ALIGN_CENTER
+ * Center the line within the available space
+ * PANGO_ALIGN_RIGHT
+ * Put all available space on the left
+ */
+public enum PangoAlignment
+{
+	LEFT,
+	CENTER,
+	RIGHT
+}
+/**
+ * The PangoScript enumeration identifies different writing
+ * systems. The values correspond to the names as defined in the
+ * Unicode standard.
+ * Note that new types may be added in the future. Applications should be ready
+ * to handle unknown values. This enumeration is interchangeable with
+ * GUnicodeScript. See Unicode Standard Annex
+ * 24: Script names.
+ * PANGO_SCRIPT_INVALID_CODE
+ * a value never returned from pango_script_for_unichar()
+ * PANGO_SCRIPT_COMMON
+ * a character used by multiple different scripts
+ * PANGO_SCRIPT_INHERITED
+ * a mark glyph that takes its script from the
+ */
+public enum PangoScript
+{
+	INVALID_CODE = -1,
+	COMMON = 0, /+* Zyyy +/
+	INHERITED, /+* Qaai +/
+	ARABIC, /+* Arab +/
+	ARMENIAN, /+* Armn +/
+	BENGALI, /+* Beng +/
+	BOPOMOFO, /+* Bopo +/
+	CHEROKEE, /+* Cher +/
+	COPTIC, /+* Qaac +/
+	CYRILLIC, /+* Cyrl (Cyrs) +/
+	DESERET, /+* Dsrt +/
+	DEVANAGARI, /+* Deva +/
+	ETHIOPIC, /+* Ethi +/
+	GEORGIAN, /+* Geor (Geon, Geoa) +/
+	GOTHIC, /+* Goth +/
+	GREEK, /+* Grek +/
+	GUJARATI, /+* Gujr +/
+	GURMUKHI, /+* Guru +/
+	HAN, /+* Hani +/
+	HANGUL, /+* Hang +/
+	HEBREW, /+* Hebr +/
+	HIRAGANA, /+* Hira +/
+	KANNADA, /+* Knda +/
+	KATAKANA, /+* Kana +/
+	KHMER, /+* Khmr +/
+	LAO, /+* Laoo +/
+	LATIN, /+* Latn (Latf, Latg) +/
+	MALAYALAM, /+* Mlym +/
+	MONGOLIAN, /+* Mong +/
+	MYANMAR, /+* Mymr +/
+	OGHAM, /+* Ogam +/
+	OLD_ITALIC, /+* Ital +/
+	ORIYA, /+* Orya +/
+	RUNIC, /+* Runr +/
+	SINHALA, /+* Sinh +/
+	SYRIAC, /+* Syrc (Syrj, Syrn, Syre) +/
+	TAMIL, /+* Taml +/
+	TELUGU, /+* Telu +/
+	THAANA, /+* Thaa +/
+	THAI, /+* Thai +/
+	TIBETAN, /+* Tibt +/
+	CANADIAN_ABORIGINAL, /+* Cans +/
+	YI, /+* Yiii +/
+	TAGALOG, /+* Tglg +/
+	HANUNOO, /+* Hano +/
+	BUHID, /+* Buhd +/
+	TAGBANWA, /+* Tagb +/
+	/+* Unicode-4.0 additions +/
+	BRAILLE, /+* Brai +/
+	CYPRIOT, /+* Cprt +/
+	LIMBU, /+* Limb +/
+	OSMANYA, /+* Osma +/
+	SHAVIAN, /+* Shaw +/
+	LINEAR_B, /+* Linb +/
+	TAI_LE, /+* Tale +/
+	UGARITIC, /+* Ugar +/
+	/+* Unicode-4.1 additions +/
+	NEW_TAI_LUE, /+* Talu +/
+	BUGINESE, /+* Bugi +/
+	GLAGOLITIC, /+* Glag +/
+	TIFINAGH, /+* Tfng +/
+	SYLOTI_NAGRI, /+* Sylo +/
+	OLD_PERSIAN, /+* Xpeo +/
+	KHAROSHTHI, /+* Khar +/
+	/+* Unicode-5.0 additions +/
+	UNKNOWN, /+* Zzzz +/
+	BALINESE, /+* Bali +/
+	CUNEIFORM, /+* Xsux +/
+	PHOENICIAN, /+* Phnx +/
+	PHAGS_PA, /+* Phag +/
+	NKO /+* Nkoo +/
+}
+/**
+ * Used to indicate how well a font can represent a particular Unicode
+ * character point for a particular script.
+ * PANGO_COVERAGE_NONE
+ * The character is not representable with the font.
+ * PANGO_COVERAGE_FALLBACK
+ * The character is represented in a way that may be
+ */
+public enum PangoCoverageLevel
+{
+	NONE,
+	FALLBACK,
+	APPROXIMATE,
+	EXACT
+}
+/**
+ * The PangoGravity type represents the orientation of glyphs in a segment
+ * of text. This is useful when rendering vertical text layouts. In
+ * those situations, the layout is rotated using a non-identity PangoMatrix,
+ * and then glyph orientation is controlled using PangoGravity.
+ * Not every value in this enumeration makes sense for every usage of
+ * PangoGravity; for example, PANGO_GRAVITY_AUTO only can be passed to
+ * pango_context_set_base_gravity() and can only be returned by
+ * pango_context_get_base_gravity().
+ * See also: PangoGravityHint
+ * PANGO_GRAVITY_SOUTH
+ */
+public enum PangoGravity
+{
+	SOUTH,
+	EAST,
+	NORTH,
+	WEST,
+	AUTO
+}
+/**
+ * The PangoGravityHint defines how horizontal scripts should behave in a
+ * vertical context. That is, English excerpt in a vertical paragraph for
+ * example.
+ * See PangoGravity.
+ * PANGO_GRAVITY_HINT_NATURAL
+ */
+public enum PangoGravityHint
+{
+	NATURAL,
+	STRONG,
+	LINE
+}
+
+/**
+ * Main Gtk struct.
+ * The PangoContext structure stores global information
+ * used to control the itemization process.
+ */
+public struct PangoContext{}
+
+
+/**
+ * The PangoItem structure stores information about
+ * a segment of text. It contains the following fields:
+ * gintoffset;
+ * the offset of the segment from the beginning of the
+ */
+public struct PangoItem{}
+// int offset;
+// pango-Text-Processing.html
+// int length;
+// pango-Text-Processing.html
+// int numChars;
+// pango-Text-Processing.html
+// PangoAnalysis analysis;
+// pango-Text-Processing.html
+
+
+/**
+ * The PangoAnalysis structure stores information about
+ * the properties of a segment of text. It has the following
+ * fields:
+ * PangoEngineShape*shape_engine;
+ * the engine for doing rendering-system-dependent processing.
+ * PangoEngineLang*lang_engine;
+ * the engine for doing rendering-system-independent processing.
+ * PangoFont*font;
+ * the font for this segment.
+ * guint8level;
+ * the bidirectional level for this segment.
+ * guint8gravity;
+ * the glyph orientation for this segment (A PangoGravity).
+ * guint8flags;
+ * boolean flags for this segment (currently only one) (Since: 1.16).
+ * guint8script;
+ * the detected script for this segment (A PangoScript) (Since: 1.18).
+ * PangoLanguage*language;
+ * the detected language for this segment.
+ * GSList*extra_attrs;
+ * extra attributes for this segment.
+ */
+public struct PangoAnalysis{}
+// PangoEngineShape *shapeEngine;
+// pango-Text-Processing.html
+// PangoEngineLang *langEngine;
+// pango-Text-Processing.html
+// PangoFont *font;
+// pango-Text-Processing.html
+// byte level;
+// pango-Text-Processing.html
+// byte gravity; /+* PangoGravity +/
+// pango-Text-Processing.html
+// byte flags;
+// pango-Text-Processing.html
+// byte script; /+* PangoScript +/
+// pango-Text-Processing.html
+// PangoLanguage *language;
+// pango-Text-Processing.html
+// GSList *extraAttrs;
+// pango-Text-Processing.html
+
+
+/**
+ * The PangoLogAttr structure stores information
+ * about the attributes of a single character.
+ * guintis_line_break:1;
+ * if set, can break line in front of character
+ * guintis_mandatory_break:1;
+ * if set, must break line in front of character
+ * guintis_char_break:1;
+ * if set, can break here when doing character wrapping
+ * guintis_white:1;
+ * is whitespace character
+ * guintis_cursor_position:1;
+ * if set, cursor can appear in front of character.
+ */
+public struct PangoLogAttr{}
+// uint isLineBreak : 1; /+* Can break line inn front of character +/
+// pango-Text-Processing.html
+// uint isMandatoryBreak : 1; /+* Must break line inn front of character +/
+// pango-Text-Processing.html
+// uint isCharBreak : 1; /+* Can break here when doing char wrap +/
+// pango-Text-Processing.html
+// uint isWhite : 1; /+* Whitespace character +/
+// pango-Text-Processing.html
+// /+* Cursor can appear inn front of character (i.e. this is a grapheme
+// pango-Text-Processing.html
+// * boundary, or the first character inn the text).
+// pango-Text-Processing.html
+// +/
+// pango-Text-Processing.html
+// uint isCursorPosition : 1;
+// pango-Text-Processing.html
+// /+* Note that inn degenerate cases, you could have both start/end set on
+// pango-Text-Processing.html
+// * some text, most likely for sentences (e.g. no space after a period, so
+// pango-Text-Processing.html
+// * the next sentence starts right away).
+// pango-Text-Processing.html
+// +/
+// pango-Text-Processing.html
+// uint isWordStart : 1; /+* first character inn a word +/
+// pango-Text-Processing.html
+// uint isWordEnd : 1; /+* is first non-word char after a word +/
+// pango-Text-Processing.html
+// /+* There are two ways to divide sentences. The first assigns all
+// pango-Text-Processing.html
+// * intersentence whitespace/control/format chars to some sentence,
+// pango-Text-Processing.html
+// * so all chars are inn some sentence; isSentenceBoundary denotes
+// pango-Text-Processing.html
+// * the boundaries there. The second way doesn't assign
+// pango-Text-Processing.html
+// * between-sentence spaces, etc. to any sentence, so
+// pango-Text-Processing.html
+// * isSentenceStart/isSentenceEnd mark the boundaries of those
+// pango-Text-Processing.html
+// * sentences.
+// pango-Text-Processing.html
+// +/
+// pango-Text-Processing.html
+// uint isSentenceBoundary : 1;
+// pango-Text-Processing.html
+// uint isSentenceStart : 1; /+* first character inn a sentence +/
+// pango-Text-Processing.html
+// uint isSentenceEnd : 1; /+* first non-sentence char after a sentence +/
+// pango-Text-Processing.html
+// /+* If set, backspace deletes one character rather than
+// pango-Text-Processing.html
+// * the entire grapheme cluster.
+// pango-Text-Processing.html
+// +/
+// pango-Text-Processing.html
+// uint backspaceDeletesCharacter : 1;
+// pango-Text-Processing.html
+// /+* Only few space variants (U+0020 and U+00A0) have variable
+// pango-Text-Processing.html
+// * width during justification.
+// pango-Text-Processing.html
+// +/
+// pango-Text-Processing.html
+// uint isExpandableSpace : 1;
+// pango-Text-Processing.html
+
+
+/**
+ * The PangoRectangle structure represents a rectangle. It is frequently
+ * used to represent the logical or ink extents of a single glyph or section
+ * of text. (See, for instance, pango_font_get_glyph_extents())
+ * intx;
+ * X coordinate of the left side of the rectangle.
+ * inty;
+ * Y coordinate of the the top side of the rectangle.
+ * intwidth;
+ * width of the rectangle.
+ * intheight;
+ * height of the rectangle.
+ */
+public struct PangoRectangle{}
+// int x;
+// pango-Glyph-Storage.html
+// int y;
+// pango-Glyph-Storage.html
+// int width;
+// pango-Glyph-Storage.html
+// int height;
+// pango-Glyph-Storage.html
+
+
+/**
+ * A structure specifying a transformation between user-space
+ * coordinates and device coordinates. The transformation
+ * is given by
+ * x_device = x_user * matrix->xx + y_user * matrix->xy + matrix->x0;
+ * y_device = x_user * matrix->yx + y_user * matrix->yy + matrix->y0;
+ * doublexx;
+ */
+public struct PangoMatrix{}
+// double xx;
+// pango-Glyph-Storage.html
+// double xy;
+// pango-Glyph-Storage.html
+// double yx;
+// pango-Glyph-Storage.html
+// double yy;
+// pango-Glyph-Storage.html
+// double x0;
+// pango-Glyph-Storage.html
+// double y0;
+// pango-Glyph-Storage.html
+
+
+/**
+ * The PangoGlyphInfo structure represents a single glyph together with
+ * positioning information and visual attributes.
+ * It contains the following fields.
+ * PangoGlyphglyph;
+ * the glyph itself.
+ * PangoGlyphGeometrygeometry;
+ * the positional information about the glyph.
+ * PangoGlyphVisAttrattr;
+ * the visual attributes of the glyph.
+ */
+public struct PangoGlyphInfo{}
+// PangoGlyph glyph;
+// pango-Glyph-Storage.html
+// PangoGlyphGeometry geometry;
+// pango-Glyph-Storage.html
+// PangoGlyphVisAttr attr;
+// pango-Glyph-Storage.html
+
+
+/**
+ * The PangoGlyphGeometry structure contains width and positioning
+ * information for a single glyph.
+ * PangoGlyphUnitwidth;
+ * the logical width to use for the the character.
+ * PangoGlyphUnitx_offset;
+ * horizontal offset from nominal character position.
+ * PangoGlyphUnity_offset;
+ * vertical offset from nominal character position.
+ */
+public struct PangoGlyphGeometry{}
+// PangoGlyphUnit width;
+// pango-Glyph-Storage.html
+// PangoGlyphUnit xOffset;
+// pango-Glyph-Storage.html
+// PangoGlyphUnit yOffset;
+// pango-Glyph-Storage.html
+
+
+/**
+ * The PangoGlyphVisAttr is used to communicate information between
+ * the shaping phase and the rendering phase. More attributes may be
+ * added in the future.
+ * guintis_cluster_start:1;
+ * set for the first logical glyph in each cluster. (Clusters
+ */
+public struct PangoGlyphVisAttr
+{
+	uint bitfield;
+	//uint isClusterStart : 1;
+}
+
+
+/**
+ * Main Gtk struct.
+ * The PangoGlyphString structure is used to store strings
+ * of glyphs with geometry and visual attribute information.
+ * The storage for the glyph information is owned
+ * by the structure which simplifies memory management.
+ * gintnum_glyphs;
+ * the number of glyphs in the string.
+ * PangoGlyphInfo*glyphs;
+ * an array of PangoGlyphInfo structures of length num_glyphs.
+ * gint*log_clusters;
+ * for each glyph, byte index of the starting character for the
+ * cluster. The indices are relative to the start of the text
+ * corresponding to the PangoGlyphString.
+ */
+public struct PangoGlyphString{}
+// int numGlyphs;
+// pango-Glyph-Storage.html
+// PangoGlyphInfo *glyphs;
+// pango-Glyph-Storage.html
+// /+* This is a memory inefficient way of representing the information
+// pango-Glyph-Storage.html
+// * here - each value gives the byte index within the text
+// pango-Glyph-Storage.html
+// * corresponding to the glyph string of the start of the cluster to
+// pango-Glyph-Storage.html
+// * which the glyph belongs.
+// pango-Glyph-Storage.html
+// +/
+// pango-Glyph-Storage.html
+// int *logClusters;
+// pango-Glyph-Storage.html
+
+
+/**
+ * A PangoGlyphItem is a pair of a PangoItem and the glyphs
+ * resulting from shaping the text corresponding to an item.
+ * As an example of the usage of PangoGlyphItem, the results
+ * of shaping text with PangoLayout is a list of PangoLayoutLine,
+ * each of which contains a list of PangoGlyphItem.
+ * PangoItem*item;
+ * a PangoItem structure that provides information
+ */
+public struct PangoGlyphItem{}
+// PangoItem *item;
+// pango-Glyph-Storage.html
+// PangoGlyphString *glyphs;
+// pango-Glyph-Storage.html
+
+
+/**
+ * Main Gtk struct.
+ * The PangoFontDescription structure represents the description
+ * of an ideal font. These structures are used both to list
+ * what fonts are available on the system and also for specifying
+ * the characteristics of a font to load.
+ */
+public struct PangoFontDescription{}
+
+
+/**
+ * A PangoFontMetrics structure holds the overall metric information
+ * for a font (possibly restricted to a script). The fields of this
+ * structure are private to implementations of a font backend. See
+ * the documentation of the corresponding getters for documentation
+ * of their meaning.
+ * guintref_count;
+ * reference count. Used internally. See pango_font_metrics_ref()
+ */
+public struct PangoFontMetrics{}
+// uint refCount;
+// pango-Fonts.html
+// int ascent;
+// pango-Fonts.html
+// int descent;
+// pango-Fonts.html
+// int approximateCharWidth;
+// pango-Fonts.html
+// int approximateDigitWidth;
+// pango-Fonts.html
+// int underlinePosition;
+// pango-Fonts.html
+// int underlineThickness;
+// pango-Fonts.html
+// int strikethroughPosition;
+// pango-Fonts.html
+// int strikethroughThickness;
+// pango-Fonts.html
+
+
+/**
+ * The PangoFont structure is used to represent
+ * a font in a rendering-system-independent matter.
+ * To create an implementation of a PangoFont,
+ * the rendering-system specific code should allocate
+ * a larger structure that contains a nested
+ * PangoFont, fill in the klass member of
+ * the nested PangoFont with a pointer to
+ * a appropriate PangoFontClass, then call
+ * pango_font_init() on the structure.
+ * The PangoFont structure contains one member
+ * which the implementation fills in.
+ */
+public struct PangoFont{}
+
+
+/**
+ * The PangoFontFamily structure is used to represent a family of related
+ * font faces. The faces in a family share a common design, but differ in
+ * slant, weight, width and other aspects.
+ */
+public struct PangoFontFamily{}
+
+
+/**
+ * The PangoFontFace structure is used to represent a group of fonts with
+ * the same family, slant, weight, width, but varying sizes.
+ */
+public struct PangoFontFace{}
+
+
+/**
+ * The PangoFontMap represents the set of fonts available for a
+ * particular rendering system. This is a virtual object with
+ * implementations being specific to particular rendering systems. To
+ * create an implementation of a PangoFontMap, the rendering-system
+ * specific code should allocate a larger structure that contains a nested
+ * PangoFontMap, fill in the klass member of the nested PangoFontMap with a
+ * pointer to a appropriate PangoFontMapClass, then call
+ * pango_font_map_init() on the structure.
+ * The PangoFontMap structure contains one member which the implementation
+ * fills in.
+ */
+public struct PangoFontMap{}
+
+
+/**
+ * The PangoFontMapClass structure holds the virtual functions for
+ * a particular PangoFontMap implementation.
+ * GObjectClassparent_class;
+ * parent GObjectClass.
+ * load_font()
+ * a function to load a font with a given description. See
+ */
+public struct PangoFontMapClass{}
+// GObjectClass parentClass;
+// pango-Fonts.html
+// PangoFont * (*loadFont) (PangoFontMap *fontmap,
+// pango-Fonts.html
+// PangoContext *context,
+// pango-Fonts.html
+// PangoFontDescription *desc);
+// pango-Fonts.html
+// void (*listFamilies) (PangoFontMap *fontmap,
+// pango-Fonts.html
+// PangoFontFamily ***families,
+// pango-Fonts.html
+// int *nFamilies);
+// pango-Fonts.html
+// PangoFontset *(*loadFontset) (PangoFontMap *fontmap,
+// pango-Fonts.html
+// PangoContext *context,
+// pango-Fonts.html
+// PangoFontDescription *desc,
+// pango-Fonts.html
+// PangoLanguage *language);
+// pango-Fonts.html
+// char *shapeEngineType;
+// pango-Fonts.html
+
+
+/**
+ * A PangoFontset represents a set of PangoFont to use
+ * when rendering text. It is the result of resolving a
+ * PangoFontDescription against a particular PangoContext.
+ * It has operations for finding the component font for
+ * a particular Unicode character, and for finding a composite
+ * set of metrics for the entire fontset.
+ */
+public struct PangoFontset{}
+
+
+/**
+ * The PangoFontsetClass structure holds the virtual functions for
+ * a particular PangoFontset implementation.
+ * GObjectClassparent_class;
+ * parent GObjectClass.
+ * get_font()
+ * a function to get the font in the fontset that contains the
+ */
+public struct PangoFontsetClass{}
+// GObjectClass parentClass;
+// pango-Fonts.html
+// PangoFont * (*getFont) (PangoFontset *fontset,
+// pango-Fonts.html
+// uint wc);
+// pango-Fonts.html
+// PangoFontMetrics *(*getMetrics) (PangoFontset *fontset);
+// pango-Fonts.html
+// PangoLanguage * (*getLanguage) (PangoFontset *fontset);
+// pango-Fonts.html
+// void (*foreac) (PangoFontset *fontset,
+// pango-Fonts.html
+// PangoFontsetForeachFunc func,
+// pango-Fonts.html
+// void* data);
+// pango-Fonts.html
+
+
+/**
+ * PangoFontsetSimple is a implementation of the abstract
+ * PangoFontset base class in terms of an array of fonts,
+ * which the creator provides when constructing the
+ * PangoFontsetSimple.
+ */
+public struct PangoFontsetSimple{}
+
+
+/**
+ * The PangoAttrClass structure stores the type and operations for
+ * a particular type of attribute. The functions in this structure should
+ * not be called directly. Instead, one should use the wrapper functions
+ * provided for PangoAttribute.
+ * PangoAttrTypetype;
+ * the type ID for this attribute
+ * copy()
+ * function to duplicate an attribute of this type (see pango_attribute_copy())
+ * destroy()
+ * function to free an attribute of this type (see pango_attribute_destroy())
+ * equal()
+ * function to check two attributes of this type for equality (see pango_attribute_equal())
+ */
+public struct PangoAttrClass{}
+// PangoAttrType type;
+// pango-Text-Attributes.html
+// PangoAttribute * (*copy) ( PangoAttribute *attr);
+// pango-Text-Attributes.html
+// void (*destroy) (PangoAttribute *attr);
+// pango-Text-Attributes.html
+// int (*equal) ( PangoAttribute *attr1, PangoAttribute *attr2);
+// pango-Text-Attributes.html
+
+
+/**
+ * Main Gtk struct.
+ * The PangoAttribute structure represents the common portions of all
+ * attributes. Particular types of attributes include this structure
+ * as their initial portion. The common portion of the attribute holds
+ * the range to which the value in the type-specific part of the attribute
+ * applies.
+ * constPangoAttrClass*klass;
+ * the class structure holding information about the type of the attribute
+ * guintstart_index;
+ * the start index of the range (in bytes).
+ * guintend_index;
+ * end index of the range (in bytes). The character at this index
+ */
+public struct PangoAttribute
+{
+	PangoAttrClass *klass;
+	uint startIndex; /+* inn bytes +/
+	uint endIndex; /+* inn bytes. The character at this index is not included +/
+}
+
+
+/**
+ * The PangoAttrString structure is used to represent attributes with
+ * a string value.
+ * PangoAttributeattr;
+ * the common portion of the attribute
+ * char*value;
+ * the string which is the value of the attribute
+ */
+public struct PangoAttrString{}
+// PangoAttribute attr;
+// pango-Text-Attributes.html
+// char *value;
+// pango-Text-Attributes.html
+
+
+/**
+ * The PangoAttrLanguage structure is used to represent attributes that
+ * are languages.
+ * PangoAttributeattr;
+ * the common portion of the attribute
+ * PangoLanguage*value;
+ * the PangoLanguage which is the value of the attribute
+ */
+public struct PangoAttrLanguage{}
+// PangoAttribute attr;
+// pango-Text-Attributes.html
+// PangoLanguage *value;
+// pango-Text-Attributes.html
+
+
+/**
+ * The PangoAttrColor structure is used to represent attributes that
+ * are colors.
+ * PangoAttributeattr;
+ * the common portion of the attribute
+ * PangoColorcolor;
+ * the PangoColor which is the value of the attribute
+ */
+public struct PangoAttrColor{}
+// PangoAttribute attr;
+// pango-Text-Attributes.html
+// PangoColor color;
+// pango-Text-Attributes.html
+
+
+/**
+ * The PangoAttrInt structure is used to represent attributes with
+ * an integer or enumeration value.
+ * PangoAttributeattr;
+ * the common portion of the attribute
+ * intvalue;
+ * the value of the attribute
+ */
+public struct PangoAttrInt{}
+// PangoAttribute attr;
+// pango-Text-Attributes.html
+// int value;
+// pango-Text-Attributes.html
+
+
+/**
+ * The PangoAttrFloat structure is used to represent attributes with
+ * a float or double value.
+ * PangoAttributeattr;
+ * the common portion of the attribute
+ * doublevalue;
+ * the value of the attribute
+ */
+public struct PangoAttrFloat{}
+// PangoAttribute attr;
+// pango-Text-Attributes.html
+// double value;
+// pango-Text-Attributes.html
+
+
+/**
+ * The PangoAttrFontDesc structure is used to store an attribute that
+ * sets all aspects of the font description at once.
+ * PangoAttributeattr;
+ * the common portion of the attribute
+ * PangoFontDescription*desc;
+ * the font description which is the value of this attribute
+ */
+public struct PangoAttrFontDesc{}
+// PangoAttribute attr;
+// pango-Text-Attributes.html
+// PangoFontDescription *desc;
+// pango-Text-Attributes.html
+
+
+/**
+ * The PangoAttrShape structure is used to represent attributes which
+ * impose shape restrictions.
+ * PangoAttributeattr;
+ * the common portion of the attribute
+ * PangoRectangleink_rect;
+ * the ink rectangle to restrict to
+ * PangoRectanglelogical_rect;
+ * the logical rectangle to restrict to
+ * gpointerdata;
+ * user data set (see pango_attr_shape_new_with_data())
+ * PangoAttrDataCopyFunccopy_func;
+ * copy function for the user data
+ * GDestroyNotifydestroy_func;
+ * destroy function for the user data
+ */
+public struct PangoAttrShape{}
+// PangoAttribute attr;
+// pango-Text-Attributes.html
+// PangoRectangle inkRect;
+// pango-Text-Attributes.html
+// PangoRectangle logicalRect;
+// pango-Text-Attributes.html
+// void* data;
+// pango-Text-Attributes.html
+// PangoAttrDataCopyFunc copyFunc;
+// pango-Text-Attributes.html
+// GDestroyNotify destroyFunc;
+// pango-Text-Attributes.html
+
+
+/**
+ * The PangoAttrShape structure is used to represent attributes which
+ * set font size.
+ * PangoAttributeattr;
+ * the common portion of the attribute
+ * intsize;
+ * size of font, in units of 1/PANGO_SCALE of a point (for
+ */
+public struct PangoAttrSize{}
+// PangoAttribute attr;
+// pango-Text-Attributes.html
+// int size;
+// pango-Text-Attributes.html
+// uint absolute : 1;
+// pango-Text-Attributes.html
+
+
+/**
+ * The PangoColor structure is used to
+ * represent a color in an uncalibrated RGB color-space.
+ * guint16red;
+ * The red component of the color. This is a value between 0 and 65535,
+ */
+public struct PangoColor
+{
+	ushort red;
+	ushort green;
+	ushort blue;
+}
+
+
+/**
+ * The PangoLanguage structure is used to
+ * represent a language.
+ * PangoLanguage pointers can be efficiently
+ * copied and compared with each other.
+ */
+public struct PangoLanguage{}
+
+
+/**
+ * The PangoAttrList structure represents a list of attributes
+ * that apply to a section of text. The attributes are, in general,
+ * allowed to overlap in an arbitrary fashion, however, if the
+ * attributes are manipulated only through pango_attr_list_change(),
+ * the overlap between properties will meet stricter criteria.
+ * Since the PangoAttrList structure is stored as a linear list,
+ * it is not suitable for storing attributes for large amounts
+ * of text. In general, you should not use a single PangoAttrList
+ * for more than one paragraph of text.
+ */
+public struct PangoAttrList{}
+
+
+/**
+ * The PangoAttrIterator structure is used to represent an
+ * iterator through a PangoAttrList. A new iterator is created
+ * with pango_attr_list_get_iterator(). Once the iterator
+ * is created, it can be advanced through the style changes
+ * in the text using pango_attr_iterator_next(). At each
+ * style change, the range of the current style segment and the
+ * attributes currently in effect can be queried.
+ */
+public struct PangoAttrIterator{}
+
+
+/**
+ * Main Gtk struct.
+ * A PangoTabArray struct contains an array
+ * of tab stops. Each tab stop has an alignment and a position.
+ */
+public struct PangoTabArray{}
+
+
+/**
+ * Main Gtk struct.
+ * The PangoLayout structure represents and entire paragraph
+ * of text. It is initialized with a PangoContext, UTF-8 string
+ * and set of attributes for that string. Once that is done, the
+ * set of formatted lines can be extracted from the object,
+ * the layout can be rendered, and conversion between logical
+ * character positions within the layout's text, and the physical
+ * position of the resulting glyphs can be made.
+ * There are also a number of parameters to adjust the formatting
+ * of a PangoLayout, which are illustrated in Figure1, Adjustable parameters for a PangoLayout.
+ * It is possible, as well, to ignore the 2-D setup, and simply
+ * treat the results of a PangoLayout as a list of lines.
+ * Figure1.Adjustable parameters for a PangoLayout
+ * The PangoLayout structure is opaque, and has no user-visible
+ * fields.
+ */
+public struct PangoLayout{}
+
+
+/**
+ * A PangoLayoutIter structure can be used to
+ * iterate over the visual extents of a PangoLayout.
+ * The PangoLayoutIter structure is opaque, and
+ * has no user-visible fields.
+ */
+public struct PangoLayoutIter{}
+
+
+/**
+ * The PangoLayoutLine structure represents one of the lines resulting
+ * from laying out a paragraph via PangoLayout. PangoLayoutLine
+ * structures are obtained by calling pango_layout_get_line() and
+ * are only valid until the text, attributes, or settings of the
+ * parent PangoLayout are modified.
+ * Routines for rendering PangoLayout objects are provided in
+ * code specific to each rendering system.
+ * PangoLayout*layout;
+ * the parent layout for this line
+ * gintstart_index;
+ * the start of the line as byte index into layout->text
+ * gintlength;
+ * the length of the line in bytes
+ * GSList*runs;
+ * a list containing the runs of the line in visual order
+ * guintis_paragraph_start:1;
+ * TRUE if this is the first line of the paragraph
+ * guintresolved_dir:3;
+ * the resolved PangoDirection of the line
+ */
+public struct PangoLayoutLine{}
+// PangoLayout *layout;
+// pango-Layout-Objects.html
+// int startIndex; /+* start of line as byte index into layout->text +/
+// pango-Layout-Objects.html
+// int length; /+* length of line inn bytes +/
+// pango-Layout-Objects.html
+// GSList *runs;
+// pango-Layout-Objects.html
+// uint isParagraphStart : 1; /+* TRUE if this is the first line of the paragraph +/
+// pango-Layout-Objects.html
+// uint resolvedDir : 3; /+* Resolved PangoDirection of line +/
+// pango-Layout-Objects.html
+
+
+/**
+ * Main Gtk struct.
+ * A PangoScriptIter is used to iterate through a string
+ * and identify ranges in different scripts.
+ */
+public struct PangoScriptIter{}
+
+
+/**
+ * The PangoCoverage structure represents a map from Unicode characters
+ * to PangoCoverageLevel. It is an opaque structure with no public fields.
+ */
+public struct PangoCoverage{}
+
+
+/**
+ * The PangoEngineInfo structure contains information about a particular
+ * engine. It contains the following fields:
+ * constgchar*id;
+ * a unique string ID for the engine.
+ * constgchar*engine_type;
+ * a string identifying the engine type.
+ * constgchar*render_type;
+ * a string identifying the render type.
+ * PangoEngineScriptInfo*scripts;
+ * array of scripts this engine supports.
+ * gintn_scripts;
+ * number of items in scripts.
+ */
+public struct PangoEngineInfo{}
+// char *id;
+// pango-Engines.html
+// char *engineType;
+// pango-Engines.html
+// char *renderType;
+// pango-Engines.html
+// PangoEngineScriptInfo *scripts;
+// pango-Engines.html
+// int nScripts;
+// pango-Engines.html
+
+
+/**
+ * The PangoEngineScriptInfo structure contains
+ * information about how the shaper covers a particular
+ * script.
+ * PangoScriptscript;
+ * a PangoScript. The value PANGO_SCRIPT_COMMON has
+ */
+public struct PangoEngineScriptInfo{}
+// PangoScript script;
+// pango-Engines.html
+// char *langs;
+// pango-Engines.html
+
+
+/**
+ * PangoEngine is the base class for all types of language and
+ * script specific engines. It has no functionality by itself.
+ */
+public struct PangoEngine{}
+
+
+/**
+ * Class structure for PangoEngine
+ */
+public struct PangoEngineClass{}
+
+
+/**
+ * The PangoEngineLang class is implemented by engines that
+ * customize the rendering-system independent part of the
+ * Pango pipeline for a particular script or language. For
+ * instance, a custom PangoEngineLang could be provided for
+ * Thai to implement the dictionary-based word boundary
+ * lookups needed for that language.
+ */
+public struct PangoEngineLang{}
+
+
+/**
+ * Class structure for PangoEngineLang
+ * script_break()
+ */
+public struct PangoEngineLangClass{}
+// void (*scriptBreak) (PangoEngineLang *engine,
+// PangoEngineLang.html
+// char *text,
+// PangoEngineLang.html
+// int len,
+// PangoEngineLang.html
+// PangoAnalysis *analysis,
+// PangoEngineLang.html
+// PangoLogAttr *attrs,
+// PangoEngineLang.html
+// int attrsLen);
+// PangoEngineLang.html
+
+
+/**
+ * The PangoEngineShape class is implemented by engines that
+ * customize the rendering-system dependent part of the
+ * Pango pipeline for a particular script or language.
+ * A PangoEngineShape implementation is then specific to both
+ * a particular rendering system or group of rendering systems
+ * and to a particular script. For instance, there is one
+ * PangoEngineShape implementation to handle shaping Arabic
+ * for Fontconfig-based backends.
+ */
+public struct PangoEngineShape{}
+
+
+/**
+ * Class structure for PangoEngineShape
+ * script_shape()
+ */
+public struct PangoEngineShapeClass{}
+// void (*scriptShape) (PangoEngineShape *engine,
+// PangoEngineShape.html
+// PangoFont *font,
+// PangoEngineShape.html
+// char *text,
+// PangoEngineShape.html
+// int length,
+// PangoEngineShape.html
+// PangoAnalysis *analysis,
+// PangoEngineShape.html
+// PangoGlyphString *glyphs);
+// PangoEngineShape.html
+// PangoCoverageLevel (*covers) (PangoEngineShape *engine,
+// PangoEngineShape.html
+// PangoFont *font,
+// PangoEngineShape.html
+// PangoLanguage *language,
+// PangoEngineShape.html
+// gunichar wc);
+// PangoEngineShape.html
+
+
+/*
+ * Converts a dimension to device units by rounding.
+ * d:
+ * a dimension in Pango units.
+ * Returns:
+ * rounded dimension in device units.
+ */
+// TODO
+// #define PANGO_PIXELS(d) (((int)(d) + 512) >> 10)
+
+/*
+ * Converts a dimension to device units by flooring.
+ * d:
+ * a dimension in Pango units.
+ * Returns:
+ * floored dimension in device units.
+ * Since 1.14
+ */
+// TODO
+// #define PANGO_PIXELS_FLOOR(d) (((int)(d)) >> 10)
+
+/*
+ * Converts a dimension to device units by ceiling.
+ * d:
+ * a dimension in Pango units.
+ * Returns:
+ * ceiled dimension in device units.
+ * Since 1.14
+ */
+// TODO
+// #define PANGO_PIXELS_CEIL(d) (((int)(d) + 1023) >> 10)
+
+/*
+ * Rounds a dimension to whole device units, but does not
+ * convert it to device units.
+ * d:
+ * a dimension in Pango units.
+ * Returns:
+ * rounded dimension in Pango units.
+ * Since 1.18
+ */
+// TODO
+// #define PANGO_UNITS_ROUND(d)
+
+/*
+ * Extracts the ascent from a PangoRectangle
+ * representing glyph extents. The ascent is the distance from the
+ * baseline to the highest point of the character. This is positive if the
+ * glyph ascends above the baseline.
+ * rect:
+ * a PangoRectangle
+ */
+// TODO
+// #define PANGO_ASCENT(rect) (-(rect).y)
+
+/*
+ * Extracts the descent from a PangoRectangle
+ * representing glyph extents. The descent is the distance from the
+ * baseline to the lowest point of the character. This is positive if the
+ * glyph descends below the baseline.
+ * rect:
+ * a PangoRectangle
+ */
+// TODO
+// #define PANGO_DESCENT(rect) ((rect).y + (rect).height)
+
+/*
+ * Extracts the left bearing from a PangoRectangle
+ * representing glyph extents. The left bearing is the distance from the
+ * horizontal origin to the farthest left point of the character.
+ * This is positive for characters drawn completely to the right of the
+ * glyph origin.
+ * rect:
+ * a PangoRectangle
+ */
+// TODO
+// #define PANGO_LBEARING(rect) ((rect).x)
+
+/*
+ * Extracts the right bearing from a PangoRectangle
+ * representing glyph extents. The right bearing is the distance from the
+ * horizontal origin to the farthest right point of the character.
+ * This is positive except for characters drawn completely to the left of the
+ * horizontal origin.
+ * rect:
+ * a PangoRectangle
+ */
+// TODO
+// #define PANGO_RBEARING(rect) ((rect).x + (rect).width)
+
+/*
+ * Returns a PangoGlyph value that means no glyph was found for wc.
+ * The way this unknown glyphs are rendered is backend specific. For example,
+ * a box with the hexadecimal Unicode code-point of the character written in it
+ * is what is done in the most common backends.
+ * wc:
+ * a Unicode character
+ */
+// TODO
+// #define PANGO_GET_UNKNOWN_GLYPH(wc) ((PangoGlyph)(wc)|PANGO_GLYPH_UNKNOWN_FLAG)
+
+/*
+ * Casts a GObject to a PangoFont.
+ * object:
+ * a GObject.
+ */
+// TODO
+// #define PANGO_FONT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONT, PangoFont))
+
+/*
+ * Returns TRUE if object is a PangoFont.
+ * object:
+ * a GObject.
+ */
+// TODO
+// #define PANGO_IS_FONT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONT))
+
+/*
+ * Casts a GObject to a PangoFontFamily.
+ * object:
+ * a GObject.
+ */
+// TODO
+// #define PANGO_FONT_FAMILY(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONT_FAMILY, PangoFontFamily))
+
+/*
+ * Returns TRUE if object is a PangoFontFamily.
+ * object:
+ * a GObject.
+ */
+// TODO
+// #define PANGO_IS_FONT_FAMILY(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONT_FAMILY))
+
+/*
+ * Casts a GObject to a PangoFontFace.
+ * object:
+ * a GObject.
+ */
+// TODO
+// #define PANGO_FONT_FACE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONT_FACE, PangoFontFace))
+
+/*
+ * Returns TRUE if object is a PangoFontFace.
+ * object:
+ * a GObject.
+ */
+// TODO
+// #define PANGO_IS_FONT_FACE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONT_FACE))
+
+/*
+ * Casts a GObject to a PangoFontMap.
+ * object:
+ * a GObject.
+ */
+// TODO
+// #define PANGO_FONT_MAP(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONT_MAP, PangoFontMap))
+
+/*
+ * Returns TRUE if object is a PangoFontMap.
+ * object:
+ * a GObject.
+ */
+// TODO
+// #define PANGO_IS_FONT_MAP(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONT_MAP))
+
+/*
+ * Casts a GObject to a PangoFontMapClass.
+ * klass:
+ * a GObject.
+ */
+// TODO
+// #define PANGO_FONT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_FONT_MAP, PangoFontMapClass))
+
+/*
+ * Returns TRUE if klass is a subtype of PangoFontMapClass.
+ * klass:
+ * a GObject.
+ */
+// TODO
+// #define PANGO_IS_FONT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_FONT_MAP))
+
+/*
+ * Returns the type of a PangoFontMap.
+ * obj:
+ * a PangoFontMap.
+ */
+// TODO
+// #define PANGO_FONT_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_FONT_MAP, PangoFontMapClass))
+
+/*
+ * Outputs the necessary code for GObject type registration for a
+ * PangoEngineLang class defined in a module. Two static symbols
+ * are defined.
+ *  static GType prefix_type;
+ *  static void prefix_register_type (GTypeModule module);
+ * The prefix, _register_type()
+ * function should be called in your script_engine_init() function for
+ * each type that your module implements, and then your script_engine_create()
+ * function can create instances of the object as follows:
+ *  PangoEngine *engine = g_object_new (prefix_type, NULL);
+ * name:
+ *  Name of the the type to register (for example:, ArabicEngineFc
+ * prefix:
+ *  Prefix for symbols that will be defined (for example:, arabic_engine_fc
+ * class_init:
+ *  Class initialization function for the new type, or NULL
+ * instance_init:
+ *  Instance initialization function for the new type, or NULL
+ */
+// TODO
+// #define PANGO_ENGINE_LANG_DEFINE_TYPE(name, prefix, class_init, instance_init)
+
+/*
+ * Outputs the necessary code for GObject type registration for a
+ * PangoEngineShape class defined in a module. Two static symbols
+ * are defined.
+ *  static GType prefix_type;
+ *  static void prefix_register_type (GTypeModule module);
+ * The prefix, _register_type()
+ * function should be called in your script_engine_init() function for
+ * each type that your module implements, and then your script_engine_create()
+ * function can create instances of the object as follows:
+ *  PangoEngine *engine = g_object_new (prefix_type, NULL);
+ * name:
+ *  Name of the the type to register (for example:, ArabicEngineFc
+ * prefix:
+ *  Prefix for symbols that will be defined (for example:, arabic_engine_fc
+ * class_init:
+ *  Class initialization function for the new type, or NULL
+ * instance_init:
+ *  Instance initialization function for the new type, or NULL
+ */
+// TODO
+// #define PANGO_ENGINE_SHAPE_DEFINE_TYPE(name, prefix, class_init, instance_init)
+
+/*
+ * Whether a PangoGravity represents vertical writing directions.
+ * gravity:
+ *  the PangoGravity to check
+ * Since 1.16
+ */
+// TODO
+// #define PANGO_GRAVITY_IS_VERTICAL(gravity)
+
+/*
+ * A callback function used by pango_fontset_foreach() when enumerating
+ * the fonts in a fontset.
+ * fontset:
+ *  a PangoFontset
+ * font:
+ *  a font from fontset
+ * data:
+ *  callback data
+ * Returns:
+ *  if TRUE, stop iteration and return immediately.
+ * Since 1.4
+ */
+// gboolean (*PangoFontsetForeachFunc) (PangoFontset *fontset,  PangoFont *font,  gpointer data);
+public typedef extern(C) int  function (PangoFontset*, PangoFont*, void*) PangoFontsetForeachFunc;
+
+/*
+ * A copy function passed to attribute new functions that take
+ * user data.
+ * data:
+ * the user data
+ * Returns:
+ * a new copy of data.
+ */
+// gpointer (*PangoAttrDataCopyFunc) (gconstpointer data);
+public typedef extern(C) void*  function (void*) PangoAttrDataCopyFunc;
+
+/*
+ * A predicate function used by pango_attr_list_filter()
+ * to filter out a subset of attributes for a list.
+ * attribute:
+ * a PangoAttribute
+ * data:
+ * callback data passed to pango_attr_list_filter()
+ * Returns:
+ * TRUE if the attribute should be filtered out
+ */
+// gboolean (*PangoAttrFilterFunc) (PangoAttribute *attribute,  gpointer data);
+public typedef extern(C) int  function (PangoAttribute*, void*) PangoAttrFilterFunc;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/internal/gtk/runtime/Loader.d	Sat Jan 05 15:13:44 2008 -0800
@@ -0,0 +1,324 @@
+/*****************************************************************************
+
+	license:
+
+	version:
+
+	         Dynamic loader for gtk symbol names
+
+	History: 2004-12-11 initial version by John Reimer
+			 2005-02-21 class and symbol names change; versioning modification
+			 2005-05-05 linux fixes
+			 2007-12-23 source cleanup
+			 2007-12-30 merge Paths.d into Loader.d
+             2008-01-05 Tango only version using tango.sys.SharedLib
+
+	Note: 	Design inspired by Kris Bell's ICU.d, the dynamic loader from
+			an early version of mango
+
+******************************************************************************/
+
+module dwt.internal.gtk.runtime.Loader;
+
+private import  tango.io.Stdout,
+                tango.sys.SharedLib;
+                
+/*****************************************************************************
+
+*****************************************************************************/
+
+enum LIBRARY
+{
+	ATK,
+	CAIRO,
+	GDK,
+	GDKPIXBUF,
+	GLIB,
+	GMODULE,
+	GOBJECT,
+	GTHREAD,
+	GTK,
+	PANGO,
+	GLGDK,
+	GLGTK,
+	GL,
+	GLU,
+	GLEXT,
+	GDA,
+	GLADE,
+	GSV,
+	GSTREAMER,
+	GSTINTERFACES
+}
+
+/*****************************************************************************
+
+*****************************************************************************/
+
+version (Windows)
+{
+	const char[][LIBRARY.max+1] importLibs = [
+		LIBRARY.ATK:			"libatk-1.0-0.dll",
+		LIBRARY.CAIRO:			"libcairo-2.dll",
+		LIBRARY.GDK: 			"libgdk-win32-2.0-0.dll",
+		LIBRARY.GDKPIXBUF:		"libgdk_pixbuf-2.0-0.dll",
+		LIBRARY.GLIB: 			"libglib-2.0-0.dll",
+		LIBRARY.GMODULE: 		"libgmodule-2.0-0.dll",
+		LIBRARY.GOBJECT:		"libgobject-2.0-0.dll",
+		LIBRARY.GTHREAD:		"libgthread-2.0-0.dll",
+		LIBRARY.GTK:			"libgtk-win32-2.0-0.dll",
+		LIBRARY.PANGO:			"libpango-1.0-0.dll",
+		LIBRARY.GLGDK:			"libgdkglext-win32-1.0-0.dll",
+		LIBRARY.GLGTK:			"libgtkglext-win32-1.0-0.dll",
+		LIBRARY.GL:				"opengl32.dll",
+		LIBRARY.GLU:			"glu32.dll",
+		LIBRARY.GDA:			"libgda-2.dll",
+		LIBRARY.GLADE:			"libglade-2.0.dll",
+		LIBRARY.GSV:			"libgtksourceview-1.0-0.dll",
+		LIBRARY.GSTREAMER:		"libgstreamer-0.10.dll",
+		LIBRARY.GSTINTERFACES:	"libgstinterfaces-0.10.dll"
+	];
+}
+
+/*****************************************************************************
+
+*****************************************************************************/
+
+version(linux)
+{
+	const char[][LIBRARY.max+1] importLibs = [
+		LIBRARY.ATK:			"libatk-1.0.so",
+		LIBRARY.CAIRO:			"libcairo.so.2",
+		LIBRARY.GDK:			"libgdk-x11-2.0.so",
+		LIBRARY.GDKPIXBUF:		"libgdk_pixbuf-2.0.so",
+		LIBRARY.GLIB:			"libglib-2.0.so",
+		LIBRARY.GMODULE:		"libgmodule-2.0.so",
+		LIBRARY.GOBJECT:		"libgobject-2.0.so",
+		LIBRARY.GTHREAD:		"libgthread-2.0.so",
+		LIBRARY.GTK:			"libgtk-x11-2.0.so",
+		LIBRARY.PANGO:			"libpango-1.0.so",
+		LIBRARY.GLGDK:			"libgdkglext-x11-1.0.so",
+		LIBRARY.GLGTK:			"libgtkglext-x11-1.0.so",
+		LIBRARY.GL:				"libGL.so",
+		LIBRARY.GLU:			"libGLU.so",
+		LIBRARY.GLEXT:			"libGL.so",
+		LIBRARY.GDA:			"libgda-2.so.3",
+		LIBRARY.GLADE:			"libglade-2.0.so",
+		LIBRARY.GSV:			"libgtksourceview-1.0.so",
+		LIBRARY.GSTREAMER:		"libgstreamer-0.10.so",
+		LIBRARY.GSTINTERFACES:	"libgstinterfaces-0.10.so"
+	];
+}
+
+/*****************************************************************************
+
+    getLibraryPath -- place holder for future expansion
+
+******************************************************************************/
+
+
+version(Windows)
+{
+	char[] getLibraryPath()
+	{
+			return "\\Program Files\\GTK2-Runtime\\lib\\";
+	}
+}
+
+/*****************************************************************************
+
+	getLibraryPath is empty for linux because default path is known by ld
+
+******************************************************************************/
+
+version(linux)
+{
+	char[] getLibraryPath() { return ""; }
+}
+
+/*****************************************************************************
+
+	ProcLink is used to record the library, function, and function name
+	that will be loaded by the dynamic loader.
+
+******************************************************************************/
+
+public struct Symbol
+{
+	char[]  name;
+	void**	pointer;
+}
+
+/*****************************************************************************
+
+	The Linker class: handles loading of the library and exported functions
+
+******************************************************************************/
+
+public class Linker
+{
+	static char[][][char[]] loadFailures;
+
+	/*************************************************************************
+
+		Gets all the failed loads for a specific library.  This is filled in
+		only if the default onFailure method is used during load.
+
+		returns: an array of the names that failed to load for a specific
+		library or null if none was found.
+
+	**************************************************************************/
+
+	public static char[][] getLoadFailures(char[] libName)
+	{
+		if ( libName in loadFailures )
+		{
+			return loadFailures[libName];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/*************************************************************************
+
+		Loads all libraries. This is filled in only if the default onFailure
+		method is used during load.
+
+		returns: an array of the library names.
+
+	**************************************************************************/
+
+	public static char[][] getLoadLibraries()
+	{
+		return loadFailures.keys;
+	}
+
+	/*************************************************************************
+
+		isPerfectLoad -- Checks if any symbol failed to load.
+		Returns: true if ALL symbols loaded.
+
+	**************************************************************************/
+
+	public static bool isPerfectLoad()
+	{
+		return loadFailures.keys.length == 0;
+	}
+
+	/*************************************************************************
+
+	**************************************************************************/
+
+	public static void dumpFailedLoads()
+	{
+		foreach ( char[] lib ; Linker.getLoadLibraries() )
+		{
+			foreach ( char[] symbol ; Linker.getLoadFailures(lib) )
+			{
+				version(Tango)
+					Stdout.formatln("failed ({}) {}", lib, symbol).newline;
+			}
+		}
+	}
+
+	/*************************************************************************
+
+	**************************************************************************/
+
+	private SharedLib primaryLib;
+	private SharedLib alternateLib;
+
+	private char[]  libraryName;
+	private char[]  alternateLibraryName;
+
+	alias void function( char[] libraryName, char[] symbolName, char[] message=null) FailureCallback;
+
+	private FailureCallback onLoadFailure;
+
+	/*************************************************************************
+
+	**************************************************************************/
+
+	this( char[] libraryName, char[] alternateLibraryName=null )
+	{
+		this(libraryName, alternateLibraryName, &(Linker.defaultFail));
+	}
+
+	/*************************************************************************
+
+	**************************************************************************/
+
+	this (char[] libraryName, char[] alternateLibraryName, FailureCallback fn )
+	{
+		this.libraryName = libraryName;
+		this.alternateLibraryName = alternateLibraryName;
+		onLoadFailure = fn;
+
+        SharedLib.throwExceptions = false;
+
+		primaryLib = SharedLib.load( this.libraryName );
+        
+        version(linux)
+        {
+            if (this.primaryLib is null)
+                primaryLib = SharedLib.load( this.libraryName ~ ".0\0" );
+        }
+    		
+        if ( alternateLibraryName !is null )
+		{
+			alternateLib = SharedLib.load( this.alternateLibraryName );
+		}
+		
+		if (primaryLib is null)
+		{
+			throw new Exception("Library load failed: " ~ libraryName);
+		}
+	}
+
+	/*************************************************************************
+
+		Default load failure callback. Logs the symbols that failed to load.
+
+	**************************************************************************/
+
+	static void defaultFail( char[] libraryName, char[] symbolName, char[] message=null )
+	{
+		if ( !(libraryName in loadFailures) )
+		{
+			char[][] cc;
+			loadFailures[libraryName] = cc;
+		}
+
+		loadFailures[libraryName] ~= symbolName.dup;
+	}
+
+	/*************************************************************************
+
+		Loads all the symbols for this library.
+
+	**************************************************************************/
+
+	void link( inout Symbol[] symbols )
+	{
+		foreach( Symbol link; symbols )
+		{
+			*link.pointer = primaryLib.getSymbol ( (link.name~"\0").ptr);
+
+			if (*link.pointer is null)
+			{
+				if ( alternateLib !is null )
+				{
+					*link.pointer = alternateLib.getSymbol( (link.name~"\0").ptr);
+                    Stdout("Loader.Linker.link trying alternate lib: ", link.name).newline;
+                }
+				if (*link.pointer is null)
+				{
+					onLoadFailure( libraryName, link.name );
+				}
+			}
+		}
+	}
+
+}