[glibmm] Glib::Variant<>: Use gmmproc files so wrapping is not done manually.



commit aaafa18c3ddca7339aedafe16ea1bd413c228f16
Author: José Alburquerque <jaalburqu svn gnome org>
Date:   Sat Jun 19 23:46:09 2010 -0400

    	Glib::Variant<>: Use gmmproc files so wrapping is not done manually.
    
    	* glib/src/glib_functions.defs: Regenerate to get the GVariant
    	functions.
    	* glib/src/variant.ccg:
    	* glib/src/variant.hg:
    	* glib/src/filelist.am: Add the new .hg and .ccg files and mention
    	them.  Wrapping is now done using gmmproc instead of handwriting the
    	methods.
    	* glib/glibmm/variant.cc:
    	* glib/glibmm/variant.h:
    	* glib/glibmm/filelist.am: Remove these files and their mentions
    	because now they are written as .hg and .ccg files.
    	* glib/src/variant_basictypes.h.m4: Add docs.

 ChangeLog                                   |   17 +
 glib/glibmm/filelist.am                     |    2 -
 glib/src/filelist.am                        |    3 +-
 glib/src/glib_functions.defs                | 3589 +++------------------------
 glib/{glibmm/variant.cc => src/variant.ccg} |   20 +-
 glib/{glibmm/variant.h => src/variant.hg}   |   70 +-
 glib/src/variant_basictypes.h.m4            |   21 +-
 7 files changed, 397 insertions(+), 3325 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 58138d5..f59aea0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2010-06-19  José Alburquerque  <jaalburqu svn gnome org>
+
+	Glib::Variant<>: Use gmmproc files so wrapping is not done manually.
+
+	* glib/src/glib_functions.defs: Regenerate to get the GVariant
+	functions.
+	* glib/src/variant.ccg:
+	* glib/src/variant.hg:
+	* glib/src/filelist.am: Add the new .hg and .ccg files and mention
+	them.  Wrapping is now done using gmmproc instead of handwriting the
+	methods.
+	* glib/glibmm/variant.cc:
+	* glib/glibmm/variant.h:
+	* glib/glibmm/filelist.am: Remove these files and their mentions
+	because now they are written as .hg and .ccg files.
+	* glib/src/variant_basictypes.h.m4: Add docs.
+
 2010-06-19  Koop Mast  <kwm freebsd org>
 
 	Restore lost #else block to fix build without __STDC_ISO_10646__
diff --git a/glib/glibmm/filelist.am b/glib/glibmm/filelist.am
index bd0b1ad..ccc7202 100644
--- a/glib/glibmm/filelist.am
+++ b/glib/glibmm/filelist.am
@@ -36,7 +36,6 @@ glibmm_files_extra_cc =			\
 	utility.cc			\
 	value.cc			\
 	value_custom.cc			\
-	variant.cc			\
 	wrap.cc
 
 glibmm_files_extra_h =			\
@@ -79,7 +78,6 @@ glibmm_files_extra_h =			\
 	utility.h			\
 	value.h				\
 	value_custom.h			\
-	variant.h			\
 	wrap.h				\
 	wrap_init.h
 
diff --git a/glib/src/filelist.am b/glib/src/filelist.am
index 791e4f9..3e56249 100644
--- a/glib/src/filelist.am
+++ b/glib/src/filelist.am
@@ -32,7 +32,8 @@ glibmm_files_hg =		\
 	thread.hg		\
 	unicode.hg		\
 	uriutils.hg		\
-	valuearray.hg
+	valuearray.hg		\
+	variant.hg
 
 glibmm_files_ccg = $(glibmm_files_hg:.hg=.ccg)
 
diff --git a/glib/src/glib_functions.defs b/glib/src/glib_functions.defs
index d705eb8..9897832 100644
--- a/glib/src/glib_functions.defs
+++ b/glib/src/glib_functions.defs
@@ -1,120 +1,7 @@
 ;; -*- scheme -*-
 ; object definitions ...
-(define-object Module
-  (in-module "GType")
-  (parent "GObject")
-  (c-name "GTypeModule")
-  (gtype-id "G_TYPE_TYPE_MODULE")
-)
-
-(define-object Plugin
-  (in-module "GType")
-  (c-name "GTypePlugin")
-  (gtype-id "G_TYPE_TYPE_PLUGIN")
-)
-
 ;; Enumerations and flags ...
 
-(define-flags Flags
-  (in-module "GBinding")
-  (c-name "GBindingFlags")
-  (gtype-id "G_TYPE_BINDING_FLAGS")
-  (values
-    '("default" "G_BINDING_DEFAULT")
-    '("bidirectional" "G_BINDING_BIDIRECTIONAL")
-  )
-)
-
-(define-flags Flags
-  (in-module "GParam")
-  (c-name "GParamFlags")
-  (gtype-id "G_TYPE_PARAM_FLAGS")
-  (values
-    '("readable" "G_PARAM_READABLE")
-    '("writable" "G_PARAM_WRITABLE")
-    '("construct" "G_PARAM_CONSTRUCT")
-    '("construct-only" "G_PARAM_CONSTRUCT_ONLY")
-    '("lax-validation" "G_PARAM_LAX_VALIDATION")
-    '("static-name" "G_PARAM_STATIC_NAME")
-    '("private" "G_PARAM_PRIVATE")
-    '("static-nick" "G_PARAM_STATIC_NICK")
-    '("static-blurb" "G_PARAM_STATIC_BLURB")
-  )
-)
-
-(define-flags Flags
-  (in-module "GSignal")
-  (c-name "GSignalFlags")
-  (gtype-id "G_TYPE_SIGNAL_FLAGS")
-  (values
-    '("run-first" "G_SIGNAL_RUN_FIRST")
-    '("run-last" "G_SIGNAL_RUN_LAST")
-    '("run-cleanup" "G_SIGNAL_RUN_CLEANUP")
-    '("no-recurse" "G_SIGNAL_NO_RECURSE")
-    '("detailed" "G_SIGNAL_DETAILED")
-    '("action" "G_SIGNAL_ACTION")
-    '("no-hooks" "G_SIGNAL_NO_HOOKS")
-  )
-)
-
-(define-flags Flags
-  (in-module "GConnect")
-  (c-name "GConnectFlags")
-  (gtype-id "G_TYPE_CONNECT_FLAGS")
-  (values
-    '("after" "G_CONNECT_AFTER")
-    '("swapped" "G_CONNECT_SWAPPED")
-  )
-)
-
-(define-flags MatchType
-  (in-module "GSignal")
-  (c-name "GSignalMatchType")
-  (gtype-id "G_TYPE_SIGNAL_MATCH_TYPE")
-  (values
-    '("id" "G_SIGNAL_MATCH_ID")
-    '("detail" "G_SIGNAL_MATCH_DETAIL")
-    '("closure" "G_SIGNAL_MATCH_CLOSURE")
-    '("func" "G_SIGNAL_MATCH_FUNC")
-    '("data" "G_SIGNAL_MATCH_DATA")
-    '("unblocked" "G_SIGNAL_MATCH_UNBLOCKED")
-  )
-)
-
-(define-flags DebugFlags
-  (in-module "GType")
-  (c-name "GTypeDebugFlags")
-  (gtype-id "G_TYPE_TYPE_DEBUG_FLAGS")
-  (values
-    '("none" "G_TYPE_DEBUG_NONE")
-    '("objects" "G_TYPE_DEBUG_OBJECTS")
-    '("signals" "G_TYPE_DEBUG_SIGNALS")
-    '("mask" "G_TYPE_DEBUG_MASK")
-  )
-)
-
-(define-flags FundamentalFlags
-  (in-module "GType")
-  (c-name "GTypeFundamentalFlags")
-  (gtype-id "G_TYPE_TYPE_FUNDAMENTAL_FLAGS")
-  (values
-    '("classed" "G_TYPE_FLAG_CLASSED")
-    '("instantiatable" "G_TYPE_FLAG_INSTANTIATABLE")
-    '("derivable" "G_TYPE_FLAG_DERIVABLE")
-    '("deep-derivable" "G_TYPE_FLAG_DEEP_DERIVABLE")
-  )
-)
-
-(define-flags Flags
-  (in-module "GType")
-  (c-name "GTypeFlags")
-  (gtype-id "G_TYPE_TYPE_FLAGS")
-  (values
-    '("abstract" "G_TYPE_FLAG_ABSTRACT")
-    '("value-abstract" "G_TYPE_FLAG_VALUE_ABSTRACT")
-  )
-)
-
 (define-enum FileError
   (in-module "GBookmark")
   (c-name "GBookmarkFileError")
@@ -131,6 +18,16 @@
   )
 )
 
+(define-flags ArrayFlags
+  (in-module "GBSearch")
+  (c-name "GBSearchArrayFlags")
+  (gtype-id "G_TYPE_B_SEARCH_ARRAY_FLAGS")
+  (values
+    '("lign-power2" "G_BSEARCH_ARRAY_ALIGN_POWER2")
+    '("uto-shrink" "G_BSEARCH_ARRAY_AUTO_SHRINK")
+  )
+)
+
 (define-enum Type
   (in-module "GChecksum")
   (c-name "GChecksumType")
@@ -204,6 +101,16 @@
   )
 )
 
+(define-flags Flag
+  (in-module "GDebug")
+  (c-name "GDebugFlag")
+  (gtype-id "G_TYPE_DEBUG_FLAG")
+  (values
+    '("warnings" "G_DEBUG_FATAL_WARNINGS")
+    '("criticals" "G_DEBUG_FATAL_CRITICALS")
+  )
+)
+
 (define-enum Error
   (in-module "GFile")
   (c-name "GFileError")
@@ -720,7 +627,7 @@
   (c-name "GThreadError")
   (gtype-id "G_TYPE_THREAD_ERROR")
   (values
-    '("again" "G_THREAD_ERROR_AGAIN")
+    '("n" "G_THREAD_ERROR_AGAIN")
   )
 )
 
@@ -975,3077 +882,8 @@
   )
 )
 
-(define-flags Flags
-  (in-module "GModule")
-  (c-name "GModuleFlags")
-  (gtype-id "G_TYPE_MODULE_FLAGS")
-  (values
-    '("lazy" "G_MODULE_BIND_LAZY")
-    '("local" "G_MODULE_BIND_LOCAL")
-    '("mask" "G_MODULE_BIND_MASK")
-  )
-)
-
-
-;; From gbinding.h
-
-(define-function g_binding_flags_get_type
-  (c-name "g_binding_flags_get_type")
-  (return-type "GType")
-)
-
-(define-function g_binding_get_type
-  (c-name "g_binding_get_type")
-  (return-type "GType")
-)
-
-(define-method get_flags
-  (of-object "GBinding")
-  (c-name "g_binding_get_flags")
-  (return-type "GBindingFlags")
-)
-
-(define-method get_source
-  (of-object "GBinding")
-  (c-name "g_binding_get_source")
-  (return-type "GObject*")
-)
-
-(define-method get_target
-  (of-object "GBinding")
-  (c-name "g_binding_get_target")
-  (return-type "GObject*")
-)
-
-(define-method get_source_property
-  (of-object "GBinding")
-  (c-name "g_binding_get_source_property")
-  (return-type "const-gchar*")
-)
-
-(define-method get_target_property
-  (of-object "GBinding")
-  (c-name "g_binding_get_target_property")
-  (return-type "const-gchar*")
-)
-
-(define-function g_object_bind_property
-  (c-name "g_object_bind_property")
-  (return-type "GBinding*")
-  (parameters
-    '("gpointer" "source")
-    '("const-gchar*" "source_property")
-    '("gpointer" "target")
-    '("const-gchar*" "target_property")
-    '("GBindingFlags" "flags")
-  )
-)
-
-(define-function g_object_bind_property_full
-  (c-name "g_object_bind_property_full")
-  (return-type "GBinding*")
-  (parameters
-    '("gpointer" "source")
-    '("const-gchar*" "source_property")
-    '("gpointer" "target")
-    '("const-gchar*" "target_property")
-    '("GBindingFlags" "flags")
-    '("GBindingTransformFunc" "transform_to")
-    '("GBindingTransformFunc" "transform_from")
-    '("gpointer" "user_data")
-    '("GDestroyNotify" "notify")
-  )
-)
-
-
-
-;; From gboxed.h
-
-(define-function g_boxed_copy
-  (c-name "g_boxed_copy")
-  (return-type "gpointer")
-  (parameters
-    '("GType" "boxed_type")
-    '("gconstpointer" "src_boxed")
-  )
-)
-
-(define-function g_boxed_free
-  (c-name "g_boxed_free")
-  (return-type "none")
-  (parameters
-    '("GType" "boxed_type")
-    '("gpointer" "boxed")
-  )
-)
-
-(define-method set_boxed
-  (of-object "GValue")
-  (c-name "g_value_set_boxed")
-  (return-type "none")
-  (parameters
-    '("gconstpointer" "v_boxed")
-  )
-)
-
-(define-method set_static_boxed
-  (of-object "GValue")
-  (c-name "g_value_set_static_boxed")
-  (return-type "none")
-  (parameters
-    '("gconstpointer" "v_boxed")
-  )
-)
-
-(define-method get_boxed
-  (of-object "GValue")
-  (c-name "g_value_get_boxed")
-  (return-type "gpointer")
-)
-
-(define-method dup_boxed
-  (of-object "GValue")
-  (c-name "g_value_dup_boxed")
-  (return-type "gpointer")
-)
-
-(define-function g_boxed_type_register_static
-  (c-name "g_boxed_type_register_static")
-  (return-type "GType")
-  (parameters
-    '("const-gchar*" "name")
-    '("GBoxedCopyFunc" "boxed_copy")
-    '("GBoxedFreeFunc" "boxed_free")
-  )
-)
-
-(define-method take_boxed
-  (of-object "GValue")
-  (c-name "g_value_take_boxed")
-  (return-type "none")
-  (parameters
-    '("gconstpointer" "v_boxed")
-  )
-)
-
-(define-method set_boxed_take_ownership
-  (of-object "GValue")
-  (c-name "g_value_set_boxed_take_ownership")
-  (return-type "none")
-  (parameters
-    '("gconstpointer" "v_boxed")
-  )
-)
-
-(define-function g_closure_get_type
-  (c-name "g_closure_get_type")
-  (return-type "GType")
-)
-
-(define-function g_value_get_type
-  (c-name "g_value_get_type")
-  (return-type "GType")
-)
-
-(define-function g_value_array_get_type
-  (c-name "g_value_array_get_type")
-  (return-type "GType")
-)
 
-(define-function g_date_get_type
-  (c-name "g_date_get_type")
-  (return-type "GType")
-)
-
-(define-function g_strv_get_type
-  (c-name "g_strv_get_type")
-  (return-type "GType")
-)
-
-(define-function g_gstring_get_type
-  (c-name "g_gstring_get_type")
-  (return-type "GType")
-)
-
-(define-function g_hash_table_get_type
-  (c-name "g_hash_table_get_type")
-  (return-type "GType")
-)
-
-(define-function g_array_get_type
-  (c-name "g_array_get_type")
-  (return-type "GType")
-)
-
-(define-function g_byte_array_get_type
-  (c-name "g_byte_array_get_type")
-  (return-type "GType")
-)
-
-(define-function g_ptr_array_get_type
-  (c-name "g_ptr_array_get_type")
-  (return-type "GType")
-)
-
-(define-function g_variant_type_get_gtype
-  (c-name "g_variant_type_get_gtype")
-  (return-type "GType")
-)
-
-(define-function g_regex_get_type
-  (c-name "g_regex_get_type")
-  (return-type "GType")
-)
-
-(define-function g_error_get_type
-  (c-name "g_error_get_type")
-  (return-type "GType")
-)
-
-(define-function g_variant_get_gtype
-  (c-name "g_variant_get_gtype")
-  (return-type "GType")
-)
-
-
-
-;; From gclosure.h
-
-(define-function g_cclosure_new
-  (c-name "g_cclosure_new")
-  (is-constructor-of "GCclosure")
-  (return-type "GClosure*")
-  (parameters
-    '("GCallback" "callback_func")
-    '("gpointer" "user_data")
-    '("GClosureNotify" "destroy_data")
-  )
-)
-
-(define-function g_cclosure_new_swap
-  (c-name "g_cclosure_new_swap")
-  (return-type "GClosure*")
-  (parameters
-    '("GCallback" "callback_func")
-    '("gpointer" "user_data")
-    '("GClosureNotify" "destroy_data")
-  )
-)
-
-(define-function g_signal_type_cclosure_new
-  (c-name "g_signal_type_cclosure_new")
-  (is-constructor-of "GSignalTypeCclosure")
-  (return-type "GClosure*")
-  (parameters
-    '("GType" "itype")
-    '("guint" "struct_offset")
-  )
-)
-
-(define-method ref
-  (of-object "GClosure")
-  (c-name "g_closure_ref")
-  (return-type "GClosure*")
-)
-
-(define-method sink
-  (of-object "GClosure")
-  (c-name "g_closure_sink")
-  (return-type "none")
-)
-
-(define-method unref
-  (of-object "GClosure")
-  (c-name "g_closure_unref")
-  (return-type "none")
-)
-
-(define-function g_closure_new_simple
-  (c-name "g_closure_new_simple")
-  (return-type "GClosure*")
-  (parameters
-    '("guint" "sizeof_closure")
-    '("gpointer" "data")
-  )
-)
-
-(define-method add_finalize_notifier
-  (of-object "GClosure")
-  (c-name "g_closure_add_finalize_notifier")
-  (return-type "none")
-  (parameters
-    '("gpointer" "notify_data")
-    '("GClosureNotify" "notify_func")
-  )
-)
-
-(define-method remove_finalize_notifier
-  (of-object "GClosure")
-  (c-name "g_closure_remove_finalize_notifier")
-  (return-type "none")
-  (parameters
-    '("gpointer" "notify_data")
-    '("GClosureNotify" "notify_func")
-  )
-)
-
-(define-method add_invalidate_notifier
-  (of-object "GClosure")
-  (c-name "g_closure_add_invalidate_notifier")
-  (return-type "none")
-  (parameters
-    '("gpointer" "notify_data")
-    '("GClosureNotify" "notify_func")
-  )
-)
-
-(define-method remove_invalidate_notifier
-  (of-object "GClosure")
-  (c-name "g_closure_remove_invalidate_notifier")
-  (return-type "none")
-  (parameters
-    '("gpointer" "notify_data")
-    '("GClosureNotify" "notify_func")
-  )
-)
-
-(define-method add_marshal_guards
-  (of-object "GClosure")
-  (c-name "g_closure_add_marshal_guards")
-  (return-type "none")
-  (parameters
-    '("gpointer" "pre_marshal_data")
-    '("GClosureNotify" "pre_marshal_notify")
-    '("gpointer" "post_marshal_data")
-    '("GClosureNotify" "post_marshal_notify")
-  )
-)
-
-(define-method set_marshal
-  (of-object "GClosure")
-  (c-name "g_closure_set_marshal")
-  (return-type "none")
-  (parameters
-    '("GClosureMarshal" "marshal")
-  )
-)
-
-(define-method set_meta_marshal
-  (of-object "GClosure")
-  (c-name "g_closure_set_meta_marshal")
-  (return-type "none")
-  (parameters
-    '("gpointer" "marshal_data")
-    '("GClosureMarshal" "meta_marshal")
-  )
-)
-
-(define-method invalidate
-  (of-object "GClosure")
-  (c-name "g_closure_invalidate")
-  (return-type "none")
-)
-
-(define-method invoke
-  (of-object "GClosure")
-  (c-name "g_closure_invoke")
-  (return-type "none")
-  (parameters
-    '("GValue*" "return_value")
-    '("guint" "n_param_values")
-    '("const-GValue*" "param_values")
-    '("gpointer" "invocation_hint")
-  )
-)
-
-
-
-;; From genums.h
-
-(define-function g_enum_get_value
-  (c-name "g_enum_get_value")
-  (return-type "GEnumValue*")
-  (parameters
-    '("GEnumClass*" "enum_class")
-    '("gint" "value")
-  )
-)
-
-(define-function g_enum_get_value_by_name
-  (c-name "g_enum_get_value_by_name")
-  (return-type "GEnumValue*")
-  (parameters
-    '("GEnumClass*" "enum_class")
-    '("const-gchar*" "name")
-  )
-)
-
-(define-function g_enum_get_value_by_nick
-  (c-name "g_enum_get_value_by_nick")
-  (return-type "GEnumValue*")
-  (parameters
-    '("GEnumClass*" "enum_class")
-    '("const-gchar*" "nick")
-  )
-)
-
-(define-function g_flags_get_first_value
-  (c-name "g_flags_get_first_value")
-  (return-type "GFlagsValue*")
-  (parameters
-    '("GFlagsClass*" "flags_class")
-    '("guint" "value")
-  )
-)
-
-(define-function g_flags_get_value_by_name
-  (c-name "g_flags_get_value_by_name")
-  (return-type "GFlagsValue*")
-  (parameters
-    '("GFlagsClass*" "flags_class")
-    '("const-gchar*" "name")
-  )
-)
-
-(define-function g_flags_get_value_by_nick
-  (c-name "g_flags_get_value_by_nick")
-  (return-type "GFlagsValue*")
-  (parameters
-    '("GFlagsClass*" "flags_class")
-    '("const-gchar*" "nick")
-  )
-)
-
-(define-method set_enum
-  (of-object "GValue")
-  (c-name "g_value_set_enum")
-  (return-type "none")
-  (parameters
-    '("gint" "v_enum")
-  )
-)
-
-(define-method get_enum
-  (of-object "GValue")
-  (c-name "g_value_get_enum")
-  (return-type "gint")
-)
-
-(define-method set_flags
-  (of-object "GValue")
-  (c-name "g_value_set_flags")
-  (return-type "none")
-  (parameters
-    '("guint" "v_flags")
-  )
-)
-
-(define-method get_flags
-  (of-object "GValue")
-  (c-name "g_value_get_flags")
-  (return-type "guint")
-)
-
-(define-function g_enum_register_static
-  (c-name "g_enum_register_static")
-  (return-type "GType")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-GEnumValue*" "const_static_values")
-  )
-)
-
-(define-function g_flags_register_static
-  (c-name "g_flags_register_static")
-  (return-type "GType")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-GFlagsValue*" "const_static_values")
-  )
-)
-
-(define-function g_enum_complete_type_info
-  (c-name "g_enum_complete_type_info")
-  (return-type "none")
-  (parameters
-    '("GType" "g_enum_type")
-    '("GTypeInfo*" "info")
-    '("const-GEnumValue*" "const_values")
-  )
-)
-
-(define-function g_flags_complete_type_info
-  (c-name "g_flags_complete_type_info")
-  (return-type "none")
-  (parameters
-    '("GType" "g_flags_type")
-    '("GTypeInfo*" "info")
-    '("const-GFlagsValue*" "const_values")
-  )
-)
-
-
-
-;; From gmarshal.h
-
-
-
-;; From gobject.h
-
-(define-function g_initially_unowned_get_type
-  (c-name "g_initially_unowned_get_type")
-  (return-type "GType")
-)
-
-(define-method install_property
-  (of-object "GObjectClass")
-  (c-name "g_object_class_install_property")
-  (return-type "none")
-  (parameters
-    '("guint" "property_id")
-    '("GParamSpec*" "pspec")
-  )
-)
-
-(define-method find_property
-  (of-object "GObjectClass")
-  (c-name "g_object_class_find_property")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "property_name")
-  )
-)
-
-(define-method list_properties
-  (of-object "GObjectClass")
-  (c-name "g_object_class_list_properties")
-  (return-type "GParamSpec**")
-  (parameters
-    '("guint*" "n_properties")
-  )
-)
-
-(define-method override_property
-  (of-object "GObjectClass")
-  (c-name "g_object_class_override_property")
-  (return-type "none")
-  (parameters
-    '("guint" "property_id")
-    '("const-gchar*" "name")
-  )
-)
-
-(define-function g_object_interface_install_property
-  (c-name "g_object_interface_install_property")
-  (return-type "none")
-  (parameters
-    '("gpointer" "g_iface")
-    '("GParamSpec*" "pspec")
-  )
-)
-
-(define-function g_object_interface_find_property
-  (c-name "g_object_interface_find_property")
-  (return-type "GParamSpec*")
-  (parameters
-    '("gpointer" "g_iface")
-    '("const-gchar*" "property_name")
-  )
-)
-
-(define-function g_object_interface_list_properties
-  (c-name "g_object_interface_list_properties")
-  (return-type "GParamSpec**")
-  (parameters
-    '("gpointer" "g_iface")
-    '("guint*" "n_properties_p")
-  )
-)
-
-(define-function g_object_get_type
-  (c-name "g_object_get_type")
-  (return-type "GType")
-)
-
-(define-function g_object_new
-  (c-name "g_object_new")
-  (return-type "gpointer")
-  (parameters
-    '("GType" "object_type")
-    '("const-gchar*" "first_property_name")
-  )
-  (varargs #t)
-)
-
-(define-function g_object_newv
-  (c-name "g_object_newv")
-  (return-type "gpointer")
-  (parameters
-    '("GType" "object_type")
-    '("guint" "n_parameters")
-    '("GParameter*" "parameters")
-  )
-)
-
-(define-function g_object_new_valist
-  (c-name "g_object_new_valist")
-  (return-type "GObject*")
-  (parameters
-    '("GType" "object_type")
-    '("const-gchar*" "first_property_name")
-    '("va_list" "var_args")
-  )
-)
-
-(define-function g_object_set
-  (c-name "g_object_set")
-  (return-type "none")
-  (parameters
-    '("gpointer" "object")
-    '("const-gchar*" "first_property_name")
-  )
-  (varargs #t)
-)
-
-(define-function g_object_get
-  (c-name "g_object_get")
-  (return-type "none")
-  (parameters
-    '("gpointer" "object")
-    '("const-gchar*" "first_property_name")
-  )
-  (varargs #t)
-)
-
-(define-function g_object_connect
-  (c-name "g_object_connect")
-  (return-type "gpointer")
-  (parameters
-    '("gpointer" "object")
-    '("const-gchar*" "signal_spec")
-  )
-  (varargs #t)
-)
-
-(define-function g_object_disconnect
-  (c-name "g_object_disconnect")
-  (return-type "none")
-  (parameters
-    '("gpointer" "object")
-    '("const-gchar*" "signal_spec")
-  )
-  (varargs #t)
-)
-
-(define-method set_valist
-  (of-object "GObject")
-  (c-name "g_object_set_valist")
-  (return-type "none")
-  (parameters
-    '("const-gchar*" "first_property_name")
-    '("va_list" "var_args")
-  )
-)
-
-(define-method get_valist
-  (of-object "GObject")
-  (c-name "g_object_get_valist")
-  (return-type "none")
-  (parameters
-    '("const-gchar*" "first_property_name")
-    '("va_list" "var_args")
-  )
-)
-
-(define-method set_property
-  (of-object "GObject")
-  (c-name "g_object_set_property")
-  (return-type "none")
-  (parameters
-    '("const-gchar*" "property_name")
-    '("const-GValue*" "value")
-  )
-)
-
-(define-method get_property
-  (of-object "GObject")
-  (c-name "g_object_get_property")
-  (return-type "none")
-  (parameters
-    '("const-gchar*" "property_name")
-    '("GValue*" "value")
-  )
-)
-
-(define-method freeze_notify
-  (of-object "GObject")
-  (c-name "g_object_freeze_notify")
-  (return-type "none")
-)
-
-(define-method notify
-  (of-object "GObject")
-  (c-name "g_object_notify")
-  (return-type "none")
-  (parameters
-    '("const-gchar*" "property_name")
-  )
-)
-
-(define-method notify_by_pspec
-  (of-object "GObject")
-  (c-name "g_object_notify_by_pspec")
-  (return-type "none")
-  (parameters
-    '("GParamSpec*" "pspec")
-  )
-)
-
-(define-method thaw_notify
-  (of-object "GObject")
-  (c-name "g_object_thaw_notify")
-  (return-type "none")
-)
-
-(define-function g_object_is_floating
-  (c-name "g_object_is_floating")
-  (return-type "gboolean")
-  (parameters
-    '("gpointer" "object")
-  )
-)
-
-(define-function g_object_ref_sink
-  (c-name "g_object_ref_sink")
-  (return-type "gpointer")
-  (parameters
-    '("gpointer" "object")
-  )
-)
-
-(define-function g_object_ref
-  (c-name "g_object_ref")
-  (return-type "gpointer")
-  (parameters
-    '("gpointer" "object")
-  )
-)
-
-(define-function g_object_unref
-  (c-name "g_object_unref")
-  (return-type "none")
-  (parameters
-    '("gpointer" "object")
-  )
-)
-
-(define-method weak_ref
-  (of-object "GObject")
-  (c-name "g_object_weak_ref")
-  (return-type "none")
-  (parameters
-    '("GWeakNotify" "notify")
-    '("gpointer" "data")
-  )
-)
-
-(define-method weak_unref
-  (of-object "GObject")
-  (c-name "g_object_weak_unref")
-  (return-type "none")
-  (parameters
-    '("GWeakNotify" "notify")
-    '("gpointer" "data")
-  )
-)
-
-(define-method add_weak_pointer
-  (of-object "GObject")
-  (c-name "g_object_add_weak_pointer")
-  (return-type "none")
-  (parameters
-    '("gpointer*" "weak_pointer_location")
-  )
-)
-
-(define-method remove_weak_pointer
-  (of-object "GObject")
-  (c-name "g_object_remove_weak_pointer")
-  (return-type "none")
-  (parameters
-    '("gpointer*" "weak_pointer_location")
-  )
-)
-
-(define-method add_toggle_ref
-  (of-object "GObject")
-  (c-name "g_object_add_toggle_ref")
-  (return-type "none")
-  (parameters
-    '("GToggleNotify" "notify")
-    '("gpointer" "data")
-  )
-)
-
-(define-method remove_toggle_ref
-  (of-object "GObject")
-  (c-name "g_object_remove_toggle_ref")
-  (return-type "none")
-  (parameters
-    '("GToggleNotify" "notify")
-    '("gpointer" "data")
-  )
-)
-
-(define-method get_qdata
-  (of-object "GObject")
-  (c-name "g_object_get_qdata")
-  (return-type "gpointer")
-  (parameters
-    '("GQuark" "quark")
-  )
-)
-
-(define-method set_qdata
-  (of-object "GObject")
-  (c-name "g_object_set_qdata")
-  (return-type "none")
-  (parameters
-    '("GQuark" "quark")
-    '("gpointer" "data")
-  )
-)
-
-(define-method set_qdata_full
-  (of-object "GObject")
-  (c-name "g_object_set_qdata_full")
-  (return-type "none")
-  (parameters
-    '("GQuark" "quark")
-    '("gpointer" "data")
-    '("GDestroyNotify" "destroy")
-  )
-)
-
-(define-method steal_qdata
-  (of-object "GObject")
-  (c-name "g_object_steal_qdata")
-  (return-type "gpointer")
-  (parameters
-    '("GQuark" "quark")
-  )
-)
-
-(define-method get_data
-  (of-object "GObject")
-  (c-name "g_object_get_data")
-  (return-type "gpointer")
-  (parameters
-    '("const-gchar*" "key")
-  )
-)
-
-(define-method set_data
-  (of-object "GObject")
-  (c-name "g_object_set_data")
-  (return-type "none")
-  (parameters
-    '("const-gchar*" "key")
-    '("gpointer" "data")
-  )
-)
-
-(define-method set_data_full
-  (of-object "GObject")
-  (c-name "g_object_set_data_full")
-  (return-type "none")
-  (parameters
-    '("const-gchar*" "key")
-    '("gpointer" "data")
-    '("GDestroyNotify" "destroy")
-  )
-)
-
-(define-method steal_data
-  (of-object "GObject")
-  (c-name "g_object_steal_data")
-  (return-type "gpointer")
-  (parameters
-    '("const-gchar*" "key")
-  )
-)
-
-(define-method watch_closure
-  (of-object "GObject")
-  (c-name "g_object_watch_closure")
-  (return-type "none")
-  (parameters
-    '("GClosure*" "closure")
-  )
-)
-
-(define-function g_cclosure_new_object
-  (c-name "g_cclosure_new_object")
-  (return-type "GClosure*")
-  (parameters
-    '("GCallback" "callback_func")
-    '("GObject*" "object")
-  )
-)
-
-(define-function g_cclosure_new_object_swap
-  (c-name "g_cclosure_new_object_swap")
-  (return-type "GClosure*")
-  (parameters
-    '("GCallback" "callback_func")
-    '("GObject*" "object")
-  )
-)
-
-(define-function g_closure_new_object
-  (c-name "g_closure_new_object")
-  (return-type "GClosure*")
-  (parameters
-    '("guint" "sizeof_closure")
-    '("GObject*" "object")
-  )
-)
-
-(define-method set_object
-  (of-object "GValue")
-  (c-name "g_value_set_object")
-  (return-type "none")
-  (parameters
-    '("gpointer" "v_object")
-  )
-)
-
-(define-method get_object
-  (of-object "GValue")
-  (c-name "g_value_get_object")
-  (return-type "gpointer")
-)
-
-(define-method dup_object
-  (of-object "GValue")
-  (c-name "g_value_dup_object")
-  (return-type "gpointer")
-)
-
-(define-function g_signal_connect_object
-  (c-name "g_signal_connect_object")
-  (return-type "gulong")
-  (parameters
-    '("gpointer" "instance")
-    '("const-gchar*" "detailed_signal")
-    '("GCallback" "c_handler")
-    '("gpointer" "gobject")
-    '("GConnectFlags" "connect_flags")
-  )
-)
-
-(define-method force_floating
-  (of-object "GObject")
-  (c-name "g_object_force_floating")
-  (return-type "none")
-)
-
-(define-method run_dispose
-  (of-object "GObject")
-  (c-name "g_object_run_dispose")
-  (return-type "none")
-)
-
-(define-method take_object
-  (of-object "GValue")
-  (c-name "g_value_take_object")
-  (return-type "none")
-  (parameters
-    '("gpointer" "v_object")
-  )
-)
-
-(define-method set_object_take_ownership
-  (of-object "GValue")
-  (c-name "g_value_set_object_take_ownership")
-  (return-type "none")
-  (parameters
-    '("gpointer" "v_object")
-  )
-)
-
-(define-function g_object_compat_control
-  (c-name "g_object_compat_control")
-  (return-type "gsize")
-  (parameters
-    '("gsize" "what")
-    '("gpointer" "data")
-  )
-)
-
-
-
-;; From gparam.h
-
-(define-method ref
-  (of-object "GParamSpec")
-  (c-name "g_param_spec_ref")
-  (return-type "GParamSpec*")
-)
-
-(define-method unref
-  (of-object "GParamSpec")
-  (c-name "g_param_spec_unref")
-  (return-type "none")
-)
-
-(define-method sink
-  (of-object "GParamSpec")
-  (c-name "g_param_spec_sink")
-  (return-type "none")
-)
-
-(define-method ref_sink
-  (of-object "GParamSpec")
-  (c-name "g_param_spec_ref_sink")
-  (return-type "GParamSpec*")
-)
-
-(define-method get_qdata
-  (of-object "GParamSpec")
-  (c-name "g_param_spec_get_qdata")
-  (return-type "gpointer")
-  (parameters
-    '("GQuark" "quark")
-  )
-)
-
-(define-method set_qdata
-  (of-object "GParamSpec")
-  (c-name "g_param_spec_set_qdata")
-  (return-type "none")
-  (parameters
-    '("GQuark" "quark")
-    '("gpointer" "data")
-  )
-)
-
-(define-method set_qdata_full
-  (of-object "GParamSpec")
-  (c-name "g_param_spec_set_qdata_full")
-  (return-type "none")
-  (parameters
-    '("GQuark" "quark")
-    '("gpointer" "data")
-    '("GDestroyNotify" "destroy")
-  )
-)
-
-(define-method steal_qdata
-  (of-object "GParamSpec")
-  (c-name "g_param_spec_steal_qdata")
-  (return-type "gpointer")
-  (parameters
-    '("GQuark" "quark")
-  )
-)
-
-(define-method get_redirect_target
-  (of-object "GParamSpec")
-  (c-name "g_param_spec_get_redirect_target")
-  (return-type "GParamSpec*")
-)
-
-(define-function g_param_value_set_default
-  (c-name "g_param_value_set_default")
-  (return-type "none")
-  (parameters
-    '("GParamSpec*" "pspec")
-    '("GValue*" "value")
-  )
-)
-
-(define-function g_param_value_defaults
-  (c-name "g_param_value_defaults")
-  (return-type "gboolean")
-  (parameters
-    '("GParamSpec*" "pspec")
-    '("GValue*" "value")
-  )
-)
-
-(define-function g_param_value_validate
-  (c-name "g_param_value_validate")
-  (return-type "gboolean")
-  (parameters
-    '("GParamSpec*" "pspec")
-    '("GValue*" "value")
-  )
-)
-
-(define-function g_param_value_convert
-  (c-name "g_param_value_convert")
-  (return-type "gboolean")
-  (parameters
-    '("GParamSpec*" "pspec")
-    '("const-GValue*" "src_value")
-    '("GValue*" "dest_value")
-    '("gboolean" "strict_validation")
-  )
-)
-
-(define-function g_param_values_cmp
-  (c-name "g_param_values_cmp")
-  (return-type "gint")
-  (parameters
-    '("GParamSpec*" "pspec")
-    '("const-GValue*" "value1")
-    '("const-GValue*" "value2")
-  )
-)
-
-(define-method get_name
-  (of-object "GParamSpec")
-  (c-name "g_param_spec_get_name")
-  (return-type "const-gchar*")
-)
-
-(define-method get_nick
-  (of-object "GParamSpec")
-  (c-name "g_param_spec_get_nick")
-  (return-type "const-gchar*")
-)
-
-(define-method get_blurb
-  (of-object "GParamSpec")
-  (c-name "g_param_spec_get_blurb")
-  (return-type "const-gchar*")
-)
-
-(define-method set_param
-  (of-object "GValue")
-  (c-name "g_value_set_param")
-  (return-type "none")
-  (parameters
-    '("GParamSpec*" "param")
-  )
-)
-
-(define-method get_param
-  (of-object "GValue")
-  (c-name "g_value_get_param")
-  (return-type "GParamSpec*")
-)
-
-(define-method dup_param
-  (of-object "GValue")
-  (c-name "g_value_dup_param")
-  (return-type "GParamSpec*")
-)
-
-(define-method take_param
-  (of-object "GValue")
-  (c-name "g_value_take_param")
-  (return-type "none")
-  (parameters
-    '("GParamSpec*" "param")
-  )
-)
-
-(define-method set_param_take_ownership
-  (of-object "GValue")
-  (c-name "g_value_set_param_take_ownership")
-  (return-type "none")
-  (parameters
-    '("GParamSpec*" "param")
-  )
-)
-
-(define-function g_param_type_register_static
-  (c-name "g_param_type_register_static")
-  (return-type "GType")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-GParamSpecTypeInfo*" "pspec_info")
-  )
-)
-
-(define-function g_param_spec_internal
-  (c-name "g_param_spec_internal")
-  (return-type "gpointer")
-  (parameters
-    '("GType" "param_type")
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_pool_new
-  (c-name "g_param_spec_pool_new")
-  (is-constructor-of "GParamSpecPool")
-  (return-type "GParamSpecPool*")
-  (parameters
-    '("gboolean" "type_prefixing")
-  )
-)
-
-(define-method insert
-  (of-object "GParamSpecPool")
-  (c-name "g_param_spec_pool_insert")
-  (return-type "none")
-  (parameters
-    '("GParamSpec*" "pspec")
-    '("GType" "owner_type")
-  )
-)
-
-(define-method remove
-  (of-object "GParamSpecPool")
-  (c-name "g_param_spec_pool_remove")
-  (return-type "none")
-  (parameters
-    '("GParamSpec*" "pspec")
-  )
-)
-
-(define-method lookup
-  (of-object "GParamSpecPool")
-  (c-name "g_param_spec_pool_lookup")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "param_name")
-    '("GType" "owner_type")
-    '("gboolean" "walk_ancestors")
-  )
-)
-
-(define-method list_owned
-  (of-object "GParamSpecPool")
-  (c-name "g_param_spec_pool_list_owned")
-  (return-type "GList*")
-  (parameters
-    '("GType" "owner_type")
-  )
-)
-
-(define-method list
-  (of-object "GParamSpecPool")
-  (c-name "g_param_spec_pool_list")
-  (return-type "GParamSpec**")
-  (parameters
-    '("GType" "owner_type")
-    '("guint*" "n_pspecs_p")
-  )
-)
-
-
-
-;; From gparamspecs.h
-
-(define-function g_param_spec_char
-  (c-name "g_param_spec_char")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("gint8" "minimum")
-    '("gint8" "maximum")
-    '("gint8" "default_value")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_uchar
-  (c-name "g_param_spec_uchar")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("guint8" "minimum")
-    '("guint8" "maximum")
-    '("guint8" "default_value")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_boolean
-  (c-name "g_param_spec_boolean")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("gboolean" "default_value")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_int
-  (c-name "g_param_spec_int")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("gint" "minimum")
-    '("gint" "maximum")
-    '("gint" "default_value")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_uint
-  (c-name "g_param_spec_uint")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("guint" "minimum")
-    '("guint" "maximum")
-    '("guint" "default_value")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_long
-  (c-name "g_param_spec_long")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("glong" "minimum")
-    '("glong" "maximum")
-    '("glong" "default_value")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_ulong
-  (c-name "g_param_spec_ulong")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("gulong" "minimum")
-    '("gulong" "maximum")
-    '("gulong" "default_value")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_int64
-  (c-name "g_param_spec_int64")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("gint64" "minimum")
-    '("gint64" "maximum")
-    '("gint64" "default_value")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_uint64
-  (c-name "g_param_spec_uint64")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("guint64" "minimum")
-    '("guint64" "maximum")
-    '("guint64" "default_value")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_unichar
-  (c-name "g_param_spec_unichar")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("gunichar" "default_value")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_enum
-  (c-name "g_param_spec_enum")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("GType" "enum_type")
-    '("gint" "default_value")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_flags
-  (c-name "g_param_spec_flags")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("GType" "flags_type")
-    '("guint" "default_value")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_float
-  (c-name "g_param_spec_float")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("gfloat" "minimum")
-    '("gfloat" "maximum")
-    '("gfloat" "default_value")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_double
-  (c-name "g_param_spec_double")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("gdouble" "minimum")
-    '("gdouble" "maximum")
-    '("gdouble" "default_value")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_string
-  (c-name "g_param_spec_string")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("const-gchar*" "default_value")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_param
-  (c-name "g_param_spec_param")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("GType" "param_type")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_boxed
-  (c-name "g_param_spec_boxed")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("GType" "boxed_type")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_pointer
-  (c-name "g_param_spec_pointer")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_value_array
-  (c-name "g_param_spec_value_array")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("GParamSpec*" "element_spec")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_object
-  (c-name "g_param_spec_object")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("GType" "object_type")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_override
-  (c-name "g_param_spec_override")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("GParamSpec*" "overridden")
-  )
-)
-
-(define-function g_param_spec_gtype
-  (c-name "g_param_spec_gtype")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("GType" "is_a_type")
-    '("GParamFlags" "flags")
-  )
-)
-
-(define-function g_param_spec_variant
-  (c-name "g_param_spec_variant")
-  (return-type "GParamSpec*")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-gchar*" "nick")
-    '("const-gchar*" "blurb")
-    '("const-GVariantType*" "type")
-    '("GVariant*" "default_value")
-    '("GParamFlags" "flags")
-  )
-)
-
-
-
-;; From gsignal.h
-
-(define-function g_signal_newv
-  (c-name "g_signal_newv")
-  (return-type "guint")
-  (parameters
-    '("const-gchar*" "signal_name")
-    '("GType" "itype")
-    '("GSignalFlags" "signal_flags")
-    '("GClosure*" "class_closure")
-    '("GSignalAccumulator" "accumulator")
-    '("gpointer" "accu_data")
-    '("GSignalCMarshaller" "c_marshaller")
-    '("GType" "return_type")
-    '("guint" "n_params")
-    '("GType*" "param_types")
-  )
-)
-
-(define-function g_signal_new_valist
-  (c-name "g_signal_new_valist")
-  (return-type "guint")
-  (parameters
-    '("const-gchar*" "signal_name")
-    '("GType" "itype")
-    '("GSignalFlags" "signal_flags")
-    '("GClosure*" "class_closure")
-    '("GSignalAccumulator" "accumulator")
-    '("gpointer" "accu_data")
-    '("GSignalCMarshaller" "c_marshaller")
-    '("GType" "return_type")
-    '("guint" "n_params")
-    '("va_list" "args")
-  )
-)
-
-(define-function g_signal_new
-  (c-name "g_signal_new")
-  (return-type "guint")
-  (parameters
-    '("const-gchar*" "signal_name")
-    '("GType" "itype")
-    '("GSignalFlags" "signal_flags")
-    '("guint" "class_offset")
-    '("GSignalAccumulator" "accumulator")
-    '("gpointer" "accu_data")
-    '("GSignalCMarshaller" "c_marshaller")
-    '("GType" "return_type")
-    '("guint" "n_params")
-  )
-  (varargs #t)
-)
-
-(define-function g_signal_new_class_handler
-  (c-name "g_signal_new_class_handler")
-  (return-type "guint")
-  (parameters
-    '("const-gchar*" "signal_name")
-    '("GType" "itype")
-    '("GSignalFlags" "signal_flags")
-    '("GCallback" "class_handler")
-    '("GSignalAccumulator" "accumulator")
-    '("gpointer" "accu_data")
-    '("GSignalCMarshaller" "c_marshaller")
-    '("GType" "return_type")
-    '("guint" "n_params")
-  )
-  (varargs #t)
-)
-
-(define-function g_signal_emitv
-  (c-name "g_signal_emitv")
-  (return-type "none")
-  (parameters
-    '("const-GValue*" "instance_and_params")
-    '("guint" "signal_id")
-    '("GQuark" "detail")
-    '("GValue*" "return_value")
-  )
-)
-
-(define-function g_signal_emit_valist
-  (c-name "g_signal_emit_valist")
-  (return-type "none")
-  (parameters
-    '("gpointer" "instance")
-    '("guint" "signal_id")
-    '("GQuark" "detail")
-    '("va_list" "var_args")
-  )
-)
-
-(define-function g_signal_emit
-  (c-name "g_signal_emit")
-  (return-type "none")
-  (parameters
-    '("gpointer" "instance")
-    '("guint" "signal_id")
-    '("GQuark" "detail")
-  )
-  (varargs #t)
-)
-
-(define-function g_signal_emit_by_name
-  (c-name "g_signal_emit_by_name")
-  (return-type "none")
-  (parameters
-    '("gpointer" "instance")
-    '("const-gchar*" "detailed_signal")
-  )
-  (varargs #t)
-)
-
-(define-function g_signal_lookup
-  (c-name "g_signal_lookup")
-  (return-type "guint")
-  (parameters
-    '("const-gchar*" "name")
-    '("GType" "itype")
-  )
-)
-
-(define-function g_signal_name
-  (c-name "g_signal_name")
-  (return-type "const-gchar*")
-  (parameters
-    '("guint" "signal_id")
-  )
-)
-
-(define-function g_signal_query
-  (c-name "g_signal_query")
-  (return-type "none")
-  (parameters
-    '("guint" "signal_id")
-    '("GSignalQuery*" "query")
-  )
-)
-
-(define-function g_signal_list_ids
-  (c-name "g_signal_list_ids")
-  (return-type "guint*")
-  (parameters
-    '("GType" "itype")
-    '("guint*" "n_ids")
-  )
-)
-
-(define-function g_signal_parse_name
-  (c-name "g_signal_parse_name")
-  (return-type "gboolean")
-  (parameters
-    '("const-gchar*" "detailed_signal")
-    '("GType" "itype")
-    '("guint*" "signal_id_p")
-    '("GQuark*" "detail_p")
-    '("gboolean" "force_detail_quark")
-  )
-)
-
-(define-function g_signal_get_invocation_hint
-  (c-name "g_signal_get_invocation_hint")
-  (return-type "GSignalInvocationHint*")
-  (parameters
-    '("gpointer" "instance")
-  )
-)
-
-(define-function g_signal_stop_emission
-  (c-name "g_signal_stop_emission")
-  (return-type "none")
-  (parameters
-    '("gpointer" "instance")
-    '("guint" "signal_id")
-    '("GQuark" "detail")
-  )
-)
-
-(define-function g_signal_stop_emission_by_name
-  (c-name "g_signal_stop_emission_by_name")
-  (return-type "none")
-  (parameters
-    '("gpointer" "instance")
-    '("const-gchar*" "detailed_signal")
-  )
-)
-
-(define-function g_signal_add_emission_hook
-  (c-name "g_signal_add_emission_hook")
-  (return-type "gulong")
-  (parameters
-    '("guint" "signal_id")
-    '("GQuark" "detail")
-    '("GSignalEmissionHook" "hook_func")
-    '("gpointer" "hook_data")
-    '("GDestroyNotify" "data_destroy")
-  )
-)
-
-(define-function g_signal_remove_emission_hook
-  (c-name "g_signal_remove_emission_hook")
-  (return-type "none")
-  (parameters
-    '("guint" "signal_id")
-    '("gulong" "hook_id")
-  )
-)
-
-(define-function g_signal_has_handler_pending
-  (c-name "g_signal_has_handler_pending")
-  (return-type "gboolean")
-  (parameters
-    '("gpointer" "instance")
-    '("guint" "signal_id")
-    '("GQuark" "detail")
-    '("gboolean" "may_be_blocked")
-  )
-)
-
-(define-function g_signal_connect_closure_by_id
-  (c-name "g_signal_connect_closure_by_id")
-  (return-type "gulong")
-  (parameters
-    '("gpointer" "instance")
-    '("guint" "signal_id")
-    '("GQuark" "detail")
-    '("GClosure*" "closure")
-    '("gboolean" "after")
-  )
-)
-
-(define-function g_signal_connect_closure
-  (c-name "g_signal_connect_closure")
-  (return-type "gulong")
-  (parameters
-    '("gpointer" "instance")
-    '("const-gchar*" "detailed_signal")
-    '("GClosure*" "closure")
-    '("gboolean" "after")
-  )
-)
-
-(define-function g_signal_connect_data
-  (c-name "g_signal_connect_data")
-  (return-type "gulong")
-  (parameters
-    '("gpointer" "instance")
-    '("const-gchar*" "detailed_signal")
-    '("GCallback" "c_handler")
-    '("gpointer" "data")
-    '("GClosureNotify" "destroy_data")
-    '("GConnectFlags" "connect_flags")
-  )
-)
-
-(define-function g_signal_handler_block
-  (c-name "g_signal_handler_block")
-  (return-type "none")
-  (parameters
-    '("gpointer" "instance")
-    '("gulong" "handler_id")
-  )
-)
-
-(define-function g_signal_handler_unblock
-  (c-name "g_signal_handler_unblock")
-  (return-type "none")
-  (parameters
-    '("gpointer" "instance")
-    '("gulong" "handler_id")
-  )
-)
-
-(define-function g_signal_handler_disconnect
-  (c-name "g_signal_handler_disconnect")
-  (return-type "none")
-  (parameters
-    '("gpointer" "instance")
-    '("gulong" "handler_id")
-  )
-)
-
-(define-function g_signal_handler_is_connected
-  (c-name "g_signal_handler_is_connected")
-  (return-type "gboolean")
-  (parameters
-    '("gpointer" "instance")
-    '("gulong" "handler_id")
-  )
-)
-
-(define-function g_signal_handler_find
-  (c-name "g_signal_handler_find")
-  (return-type "gulong")
-  (parameters
-    '("gpointer" "instance")
-    '("GSignalMatchType" "mask")
-    '("guint" "signal_id")
-    '("GQuark" "detail")
-    '("GClosure*" "closure")
-    '("gpointer" "func")
-    '("gpointer" "data")
-  )
-)
-
-(define-function g_signal_handlers_block_matched
-  (c-name "g_signal_handlers_block_matched")
-  (return-type "guint")
-  (parameters
-    '("gpointer" "instance")
-    '("GSignalMatchType" "mask")
-    '("guint" "signal_id")
-    '("GQuark" "detail")
-    '("GClosure*" "closure")
-    '("gpointer" "func")
-    '("gpointer" "data")
-  )
-)
-
-(define-function g_signal_handlers_unblock_matched
-  (c-name "g_signal_handlers_unblock_matched")
-  (return-type "guint")
-  (parameters
-    '("gpointer" "instance")
-    '("GSignalMatchType" "mask")
-    '("guint" "signal_id")
-    '("GQuark" "detail")
-    '("GClosure*" "closure")
-    '("gpointer" "func")
-    '("gpointer" "data")
-  )
-)
-
-(define-function g_signal_handlers_disconnect_matched
-  (c-name "g_signal_handlers_disconnect_matched")
-  (return-type "guint")
-  (parameters
-    '("gpointer" "instance")
-    '("GSignalMatchType" "mask")
-    '("guint" "signal_id")
-    '("GQuark" "detail")
-    '("GClosure*" "closure")
-    '("gpointer" "func")
-    '("gpointer" "data")
-  )
-)
-
-(define-function g_signal_override_class_closure
-  (c-name "g_signal_override_class_closure")
-  (return-type "none")
-  (parameters
-    '("guint" "signal_id")
-    '("GType" "instance_type")
-    '("GClosure*" "class_closure")
-  )
-)
-
-(define-function g_signal_override_class_handler
-  (c-name "g_signal_override_class_handler")
-  (return-type "none")
-  (parameters
-    '("const-gchar*" "signal_name")
-    '("GType" "instance_type")
-    '("GCallback" "class_handler")
-  )
-)
-
-(define-function g_signal_chain_from_overridden
-  (c-name "g_signal_chain_from_overridden")
-  (return-type "none")
-  (parameters
-    '("const-GValue*" "instance_and_params")
-    '("GValue*" "return_value")
-  )
-)
-
-(define-function g_signal_chain_from_overridden_handler
-  (c-name "g_signal_chain_from_overridden_handler")
-  (return-type "none")
-  (parameters
-    '("gpointer" "instance")
-  )
-  (varargs #t)
-)
-
-(define-function g_signal_accumulator_true_handled
-  (c-name "g_signal_accumulator_true_handled")
-  (return-type "gboolean")
-  (parameters
-    '("GSignalInvocationHint*" "ihint")
-    '("GValue*" "return_accu")
-    '("const-GValue*" "handler_return")
-    '("gpointer" "dummy")
-  )
-)
-
-(define-function g_signal_handlers_destroy
-  (c-name "g_signal_handlers_destroy")
-  (return-type "none")
-  (parameters
-    '("gpointer" "instance")
-  )
-)
-
-
-
-;; From gsourceclosure.h
-
-(define-method set_closure
-  (of-object "GSource")
-  (c-name "g_source_set_closure")
-  (return-type "none")
-  (parameters
-    '("GClosure*" "closure")
-  )
-)
-
-(define-function g_io_channel_get_type
-  (c-name "g_io_channel_get_type")
-  (return-type "GType")
-)
-
-(define-function g_io_condition_get_type
-  (c-name "g_io_condition_get_type")
-  (return-type "GType")
-)
-
-
-
-;; From gtype.h
-
-(define-function g_type_init
-  (c-name "g_type_init")
-  (return-type "none")
-)
-
-(define-function g_type_init_with_debug_flags
-  (c-name "g_type_init_with_debug_flags")
-  (return-type "none")
-  (parameters
-    '("GTypeDebugFlags" "debug_flags")
-  )
-)
-
-(define-method name
-  (of-object "GType")
-  (c-name "g_type_name")
-  (return-type "const-gchar*")
-)
-
-(define-method qname
-  (of-object "GType")
-  (c-name "g_type_qname")
-  (return-type "GQuark")
-)
-
-(define-function g_type_from_name
-  (c-name "g_type_from_name")
-  (return-type "GType")
-  (parameters
-    '("const-gchar*" "name")
-  )
-)
-
-(define-method parent
-  (of-object "GType")
-  (c-name "g_type_parent")
-  (return-type "GType")
-)
-
-(define-method depth
-  (of-object "GType")
-  (c-name "g_type_depth")
-  (return-type "guint")
-)
-
-(define-method next_base
-  (of-object "GType")
-  (c-name "g_type_next_base")
-  (return-type "GType")
-  (parameters
-    '("GType" "root_type")
-  )
-)
-
-(define-method is_a
-  (of-object "GType")
-  (c-name "g_type_is_a")
-  (return-type "gboolean")
-  (parameters
-    '("GType" "is_a_type")
-  )
-)
-
-(define-method class_ref
-  (of-object "GType")
-  (c-name "g_type_class_ref")
-  (return-type "gpointer")
-)
-
-(define-method class_peek
-  (of-object "GType")
-  (c-name "g_type_class_peek")
-  (return-type "gpointer")
-)
-
-(define-method class_peek_static
-  (of-object "GType")
-  (c-name "g_type_class_peek_static")
-  (return-type "gpointer")
-)
-
-(define-function g_type_class_unref
-  (c-name "g_type_class_unref")
-  (return-type "none")
-  (parameters
-    '("gpointer" "g_class")
-  )
-)
-
-(define-function g_type_class_peek_parent
-  (c-name "g_type_class_peek_parent")
-  (return-type "gpointer")
-  (parameters
-    '("gpointer" "g_class")
-  )
-)
-
-(define-function g_type_interface_peek
-  (c-name "g_type_interface_peek")
-  (return-type "gpointer")
-  (parameters
-    '("gpointer" "instance_class")
-    '("GType" "iface_type")
-  )
-)
-
-(define-function g_type_interface_peek_parent
-  (c-name "g_type_interface_peek_parent")
-  (return-type "gpointer")
-  (parameters
-    '("gpointer" "g_iface")
-  )
-)
-
-(define-method default_interface_ref
-  (of-object "GType")
-  (c-name "g_type_default_interface_ref")
-  (return-type "gpointer")
-)
-
-(define-method default_interface_peek
-  (of-object "GType")
-  (c-name "g_type_default_interface_peek")
-  (return-type "gpointer")
-)
-
-(define-function g_type_default_interface_unref
-  (c-name "g_type_default_interface_unref")
-  (return-type "none")
-  (parameters
-    '("gpointer" "g_iface")
-  )
-)
-
-(define-method children
-  (of-object "GType")
-  (c-name "g_type_children")
-  (return-type "GType*")
-  (parameters
-    '("guint*" "n_children")
-  )
-)
-
-(define-method interfaces
-  (of-object "GType")
-  (c-name "g_type_interfaces")
-  (return-type "GType*")
-  (parameters
-    '("guint*" "n_interfaces")
-  )
-)
-
-(define-method set_qdata
-  (of-object "GType")
-  (c-name "g_type_set_qdata")
-  (return-type "none")
-  (parameters
-    '("GQuark" "quark")
-    '("gpointer" "data")
-  )
-)
-
-(define-method get_qdata
-  (of-object "GType")
-  (c-name "g_type_get_qdata")
-  (return-type "gpointer")
-  (parameters
-    '("GQuark" "quark")
-  )
-)
-
-(define-method query
-  (of-object "GType")
-  (c-name "g_type_query")
-  (return-type "none")
-  (parameters
-    '("GTypeQuery*" "query")
-  )
-)
-
-(define-method register_static
-  (of-object "GType")
-  (c-name "g_type_register_static")
-  (return-type "GType")
-  (parameters
-    '("const-gchar*" "type_name")
-    '("const-GTypeInfo*" "info")
-    '("GTypeFlags" "flags")
-  )
-)
-
-(define-method register_static_simple
-  (of-object "GType")
-  (c-name "g_type_register_static_simple")
-  (return-type "GType")
-  (parameters
-    '("const-gchar*" "type_name")
-    '("guint" "class_size")
-    '("GClassInitFunc" "class_init")
-    '("guint" "instance_size")
-    '("GInstanceInitFunc" "instance_init")
-    '("GTypeFlags" "flags")
-  )
-)
-
-(define-method register_dynamic
-  (of-object "GType")
-  (c-name "g_type_register_dynamic")
-  (return-type "GType")
-  (parameters
-    '("const-gchar*" "type_name")
-    '("GTypePlugin*" "plugin")
-    '("GTypeFlags" "flags")
-  )
-)
-
-(define-method register_fundamental
-  (of-object "GType")
-  (c-name "g_type_register_fundamental")
-  (return-type "GType")
-  (parameters
-    '("const-gchar*" "type_name")
-    '("const-GTypeInfo*" "info")
-    '("const-GTypeFundamentalInfo*" "finfo")
-    '("GTypeFlags" "flags")
-  )
-)
-
-(define-method add_interface_static
-  (of-object "GType")
-  (c-name "g_type_add_interface_static")
-  (return-type "none")
-  (parameters
-    '("GType" "interface_type")
-    '("const-GInterfaceInfo*" "info")
-  )
-)
-
-(define-method add_interface_dynamic
-  (of-object "GType")
-  (c-name "g_type_add_interface_dynamic")
-  (return-type "none")
-  (parameters
-    '("GType" "interface_type")
-    '("GTypePlugin*" "plugin")
-  )
-)
-
-(define-method interface_add_prerequisite
-  (of-object "GType")
-  (c-name "g_type_interface_add_prerequisite")
-  (return-type "none")
-  (parameters
-    '("GType" "prerequisite_type")
-  )
-)
-
-(define-method interface_prerequisites
-  (of-object "GType")
-  (c-name "g_type_interface_prerequisites")
-  (return-type "GType*")
-  (parameters
-    '("guint*" "n_prerequisites")
-  )
-)
-
-(define-function g_type_class_add_private
-  (c-name "g_type_class_add_private")
-  (return-type "none")
-  (parameters
-    '("gpointer" "g_class")
-    '("gsize" "private_size")
-  )
-)
-
-(define-method get_private
-  (of-object "GTypeInstance")
-  (c-name "g_type_instance_get_private")
-  (return-type "gpointer")
-  (parameters
-    '("GType" "private_type")
-  )
-)
-
-(define-method add_class_private
-  (of-object "GType")
-  (c-name "g_type_add_class_private")
-  (return-type "none")
-  (parameters
-    '("gsize" "private_size")
-  )
-)
-
-(define-method get_private
-  (of-object "GTypeClass")
-  (c-name "g_type_class_get_private")
-  (return-type "gpointer")
-  (parameters
-    '("GType" "private_type")
-  )
-)
-
-(define-method get_plugin
-  (of-object "GType")
-  (c-name "g_type_get_plugin")
-  (return-type "GTypePlugin*")
-)
-
-(define-method interface_get_plugin
-  (of-object "GType")
-  (c-name "g_type_interface_get_plugin")
-  (return-type "GTypePlugin*")
-  (parameters
-    '("GType" "interface_type")
-  )
-)
-
-(define-function g_type_fundamental_next
-  (c-name "g_type_fundamental_next")
-  (return-type "GType")
-)
-
-(define-method fundamental
-  (of-object "GType")
-  (c-name "g_type_fundamental")
-  (return-type "GType")
-)
-
-(define-method create_instance
-  (of-object "GType")
-  (c-name "g_type_create_instance")
-  (return-type "GTypeInstance*")
-)
-
-(define-function g_type_free_instance
-  (c-name "g_type_free_instance")
-  (return-type "none")
-  (parameters
-    '("GTypeInstance*" "instance")
-  )
-)
-
-(define-function g_type_add_class_cache_func
-  (c-name "g_type_add_class_cache_func")
-  (return-type "none")
-  (parameters
-    '("gpointer" "cache_data")
-    '("GTypeClassCacheFunc" "cache_func")
-  )
-)
-
-(define-function g_type_remove_class_cache_func
-  (c-name "g_type_remove_class_cache_func")
-  (return-type "none")
-  (parameters
-    '("gpointer" "cache_data")
-    '("GTypeClassCacheFunc" "cache_func")
-  )
-)
-
-(define-function g_type_class_unref_uncached
-  (c-name "g_type_class_unref_uncached")
-  (return-type "none")
-  (parameters
-    '("gpointer" "g_class")
-  )
-)
-
-(define-function g_type_add_interface_check
-  (c-name "g_type_add_interface_check")
-  (return-type "none")
-  (parameters
-    '("gpointer" "check_data")
-    '("GTypeInterfaceCheckFunc" "check_func")
-  )
-)
-
-(define-function g_type_remove_interface_check
-  (c-name "g_type_remove_interface_check")
-  (return-type "none")
-  (parameters
-    '("gpointer" "check_data")
-    '("GTypeInterfaceCheckFunc" "check_func")
-  )
-)
-
-(define-method value_table_peek
-  (of-object "GType")
-  (c-name "g_type_value_table_peek")
-  (return-type "GTypeValueTable*")
-)
-
-(define-function g_type_check_instance
-  (c-name "g_type_check_instance")
-  (return-type "gboolean")
-  (parameters
-    '("GTypeInstance*" "instance")
-  )
-)
-
-(define-function g_type_check_instance_cast
-  (c-name "g_type_check_instance_cast")
-  (return-type "GTypeInstance*")
-  (parameters
-    '("GTypeInstance*" "instance")
-    '("GType" "iface_type")
-  )
-)
-
-(define-function g_type_check_instance_is_a
-  (c-name "g_type_check_instance_is_a")
-  (return-type "gboolean")
-  (parameters
-    '("GTypeInstance*" "instance")
-    '("GType" "iface_type")
-  )
-)
-
-(define-function g_type_check_class_cast
-  (c-name "g_type_check_class_cast")
-  (return-type "GTypeClass*")
-  (parameters
-    '("GTypeClass*" "g_class")
-    '("GType" "is_a_type")
-  )
-)
-
-(define-function g_type_check_class_is_a
-  (c-name "g_type_check_class_is_a")
-  (return-type "gboolean")
-  (parameters
-    '("GTypeClass*" "g_class")
-    '("GType" "is_a_type")
-  )
-)
-
-(define-method check_is_value_type
-  (of-object "GType")
-  (c-name "g_type_check_is_value_type")
-  (return-type "gboolean")
-)
-
-(define-function g_type_check_value
-  (c-name "g_type_check_value")
-  (return-type "gboolean")
-  (parameters
-    '("GValue*" "value")
-  )
-)
-
-(define-function g_type_check_value_holds
-  (c-name "g_type_check_value_holds")
-  (return-type "gboolean")
-  (parameters
-    '("GValue*" "value")
-    '("GType" "type")
-  )
-)
-
-(define-method test_flags
-  (of-object "GType")
-  (c-name "g_type_test_flags")
-  (return-type "gboolean")
-  (parameters
-    '("guint" "flags")
-  )
-)
-
-(define-function g_type_name_from_instance
-  (c-name "g_type_name_from_instance")
-  (return-type "const-gchar*")
-  (parameters
-    '("GTypeInstance*" "instance")
-  )
-)
-
-(define-function g_type_name_from_class
-  (c-name "g_type_name_from_class")
-  (return-type "const-gchar*")
-  (parameters
-    '("GTypeClass*" "g_class")
-  )
-)
-
-
-
-;; From gtypemodule.h
-
-(define-function g_type_module_get_type
-  (c-name "g_type_module_get_type")
-  (return-type "GType")
-)
-
-(define-method use
-  (of-object "GTypeModule")
-  (c-name "g_type_module_use")
-  (return-type "gboolean")
-)
-
-(define-method unuse
-  (of-object "GTypeModule")
-  (c-name "g_type_module_unuse")
-  (return-type "none")
-)
-
-(define-method set_name
-  (of-object "GTypeModule")
-  (c-name "g_type_module_set_name")
-  (return-type "none")
-  (parameters
-    '("const-gchar*" "name")
-  )
-)
-
-(define-method register_type
-  (of-object "GTypeModule")
-  (c-name "g_type_module_register_type")
-  (return-type "GType")
-  (parameters
-    '("GType" "parent_type")
-    '("const-gchar*" "type_name")
-    '("const-GTypeInfo*" "type_info")
-    '("GTypeFlags" "flags")
-  )
-)
-
-(define-method add_interface
-  (of-object "GTypeModule")
-  (c-name "g_type_module_add_interface")
-  (return-type "none")
-  (parameters
-    '("GType" "instance_type")
-    '("GType" "interface_type")
-    '("const-GInterfaceInfo*" "interface_info")
-  )
-)
-
-(define-method register_enum
-  (of-object "GTypeModule")
-  (c-name "g_type_module_register_enum")
-  (return-type "GType")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-GEnumValue*" "const_static_values")
-  )
-)
-
-(define-method register_flags
-  (of-object "GTypeModule")
-  (c-name "g_type_module_register_flags")
-  (return-type "GType")
-  (parameters
-    '("const-gchar*" "name")
-    '("const-GFlagsValue*" "const_static_values")
-  )
-)
-
-
-
-;; From gtypeplugin.h
-
-(define-function g_type_plugin_get_type
-  (c-name "g_type_plugin_get_type")
-  (return-type "GType")
-)
-
-(define-method use
-  (of-object "GTypePlugin")
-  (c-name "g_type_plugin_use")
-  (return-type "none")
-)
-
-(define-method unuse
-  (of-object "GTypePlugin")
-  (c-name "g_type_plugin_unuse")
-  (return-type "none")
-)
-
-(define-method complete_type_info
-  (of-object "GTypePlugin")
-  (c-name "g_type_plugin_complete_type_info")
-  (return-type "none")
-  (parameters
-    '("GType" "g_type")
-    '("GTypeInfo*" "info")
-    '("GTypeValueTable*" "value_table")
-  )
-)
-
-(define-method complete_interface_info
-  (of-object "GTypePlugin")
-  (c-name "g_type_plugin_complete_interface_info")
-  (return-type "none")
-  (parameters
-    '("GType" "instance_type")
-    '("GType" "interface_type")
-    '("GInterfaceInfo*" "info")
-  )
-)
-
-
-
-;; From gvaluearray.h
-
-(define-method get_nth
-  (of-object "GValueArray")
-  (c-name "g_value_array_get_nth")
-  (return-type "GValue*")
-  (parameters
-    '("guint" "index_")
-  )
-)
-
-(define-function g_value_array_new
-  (c-name "g_value_array_new")
-  (is-constructor-of "GValueArray")
-  (return-type "GValueArray*")
-  (parameters
-    '("guint" "n_prealloced")
-  )
-)
-
-(define-method free
-  (of-object "GValueArray")
-  (c-name "g_value_array_free")
-  (return-type "none")
-)
-
-(define-method copy
-  (of-object "GValueArray")
-  (c-name "g_value_array_copy")
-  (return-type "GValueArray*")
-)
-
-(define-method prepend
-  (of-object "GValueArray")
-  (c-name "g_value_array_prepend")
-  (return-type "GValueArray*")
-  (parameters
-    '("const-GValue*" "value")
-  )
-)
-
-(define-method append
-  (of-object "GValueArray")
-  (c-name "g_value_array_append")
-  (return-type "GValueArray*")
-  (parameters
-    '("const-GValue*" "value")
-  )
-)
-
-(define-method insert
-  (of-object "GValueArray")
-  (c-name "g_value_array_insert")
-  (return-type "GValueArray*")
-  (parameters
-    '("guint" "index_")
-    '("const-GValue*" "value")
-  )
-)
-
-(define-method remove
-  (of-object "GValueArray")
-  (c-name "g_value_array_remove")
-  (return-type "GValueArray*")
-  (parameters
-    '("guint" "index_")
-  )
-)
-
-(define-method sort
-  (of-object "GValueArray")
-  (c-name "g_value_array_sort")
-  (return-type "GValueArray*")
-  (parameters
-    '("GCompareFunc" "compare_func")
-  )
-)
-
-(define-method sort_with_data
-  (of-object "GValueArray")
-  (c-name "g_value_array_sort_with_data")
-  (return-type "GValueArray*")
-  (parameters
-    '("GCompareDataFunc" "compare_func")
-    '("gpointer" "user_data")
-  )
-)
-
-
-
-;; From gvaluecollector.h
-
-
-
-;; From gvalue.h
-
-(define-method init
-  (of-object "GValue")
-  (c-name "g_value_init")
-  (return-type "GValue*")
-  (parameters
-    '("GType" "g_type")
-  )
-)
-
-(define-method copy
-  (of-object "GValue")
-  (c-name "g_value_copy")
-  (return-type "none")
-  (parameters
-    '("GValue*" "dest_value")
-  )
-)
-
-(define-method reset
-  (of-object "GValue")
-  (c-name "g_value_reset")
-  (return-type "GValue*")
-)
-
-(define-method unset
-  (of-object "GValue")
-  (c-name "g_value_unset")
-  (return-type "none")
-)
-
-(define-method set_instance
-  (of-object "GValue")
-  (c-name "g_value_set_instance")
-  (return-type "none")
-  (parameters
-    '("gpointer" "instance")
-  )
-)
-
-(define-method fits_pointer
-  (of-object "GValue")
-  (c-name "g_value_fits_pointer")
-  (return-type "gboolean")
-)
-
-(define-method peek_pointer
-  (of-object "GValue")
-  (c-name "g_value_peek_pointer")
-  (return-type "gpointer")
-)
-
-(define-function g_value_type_compatible
-  (c-name "g_value_type_compatible")
-  (return-type "gboolean")
-  (parameters
-    '("GType" "src_type")
-    '("GType" "dest_type")
-  )
-)
-
-(define-function g_value_type_transformable
-  (c-name "g_value_type_transformable")
-  (return-type "gboolean")
-  (parameters
-    '("GType" "src_type")
-    '("GType" "dest_type")
-  )
-)
-
-(define-method transform
-  (of-object "GValue")
-  (c-name "g_value_transform")
-  (return-type "gboolean")
-  (parameters
-    '("GValue*" "dest_value")
-  )
-)
-
-(define-function g_value_register_transform_func
-  (c-name "g_value_register_transform_func")
-  (return-type "none")
-  (parameters
-    '("GType" "src_type")
-    '("GType" "dest_type")
-    '("GValueTransform" "transform_func")
-  )
-)
-
-
-
-;; From gvaluetypes.h
-
-(define-method set_char
-  (of-object "GValue")
-  (c-name "g_value_set_char")
-  (return-type "none")
-  (parameters
-    '("gchar" "v_char")
-  )
-)
-
-(define-method get_char
-  (of-object "GValue")
-  (c-name "g_value_get_char")
-  (return-type "gchar")
-)
-
-(define-method set_uchar
-  (of-object "GValue")
-  (c-name "g_value_set_uchar")
-  (return-type "none")
-  (parameters
-    '("guchar" "v_uchar")
-  )
-)
-
-(define-method get_uchar
-  (of-object "GValue")
-  (c-name "g_value_get_uchar")
-  (return-type "guchar")
-)
-
-(define-method set_boolean
-  (of-object "GValue")
-  (c-name "g_value_set_boolean")
-  (return-type "none")
-  (parameters
-    '("gboolean" "v_boolean")
-  )
-)
-
-(define-method get_boolean
-  (of-object "GValue")
-  (c-name "g_value_get_boolean")
-  (return-type "gboolean")
-)
-
-(define-method set_int
-  (of-object "GValue")
-  (c-name "g_value_set_int")
-  (return-type "none")
-  (parameters
-    '("gint" "v_int")
-  )
-)
-
-(define-method get_int
-  (of-object "GValue")
-  (c-name "g_value_get_int")
-  (return-type "gint")
-)
-
-(define-method set_uint
-  (of-object "GValue")
-  (c-name "g_value_set_uint")
-  (return-type "none")
-  (parameters
-    '("guint" "v_uint")
-  )
-)
-
-(define-method get_uint
-  (of-object "GValue")
-  (c-name "g_value_get_uint")
-  (return-type "guint")
-)
-
-(define-method set_long
-  (of-object "GValue")
-  (c-name "g_value_set_long")
-  (return-type "none")
-  (parameters
-    '("glong" "v_long")
-  )
-)
-
-(define-method get_long
-  (of-object "GValue")
-  (c-name "g_value_get_long")
-  (return-type "glong")
-)
-
-(define-method set_ulong
-  (of-object "GValue")
-  (c-name "g_value_set_ulong")
-  (return-type "none")
-  (parameters
-    '("gulong" "v_ulong")
-  )
-)
-
-(define-method get_ulong
-  (of-object "GValue")
-  (c-name "g_value_get_ulong")
-  (return-type "gulong")
-)
-
-(define-method set_int64
-  (of-object "GValue")
-  (c-name "g_value_set_int64")
-  (return-type "none")
-  (parameters
-    '("gint64" "v_int64")
-  )
-)
-
-(define-method get_int64
-  (of-object "GValue")
-  (c-name "g_value_get_int64")
-  (return-type "gint64")
-)
-
-(define-method set_uint64
-  (of-object "GValue")
-  (c-name "g_value_set_uint64")
-  (return-type "none")
-  (parameters
-    '("guint64" "v_uint64")
-  )
-)
-
-(define-method get_uint64
-  (of-object "GValue")
-  (c-name "g_value_get_uint64")
-  (return-type "guint64")
-)
-
-(define-method set_float
-  (of-object "GValue")
-  (c-name "g_value_set_float")
-  (return-type "none")
-  (parameters
-    '("gfloat" "v_float")
-  )
-)
-
-(define-method get_float
-  (of-object "GValue")
-  (c-name "g_value_get_float")
-  (return-type "gfloat")
-)
-
-(define-method set_double
-  (of-object "GValue")
-  (c-name "g_value_set_double")
-  (return-type "none")
-  (parameters
-    '("gdouble" "v_double")
-  )
-)
-
-(define-method get_double
-  (of-object "GValue")
-  (c-name "g_value_get_double")
-  (return-type "gdouble")
-)
-
-(define-method set_string
-  (of-object "GValue")
-  (c-name "g_value_set_string")
-  (return-type "none")
-  (parameters
-    '("const-gchar*" "v_string")
-  )
-)
-
-(define-method set_static_string
-  (of-object "GValue")
-  (c-name "g_value_set_static_string")
-  (return-type "none")
-  (parameters
-    '("const-gchar*" "v_string")
-  )
-)
-
-(define-method get_string
-  (of-object "GValue")
-  (c-name "g_value_get_string")
-  (return-type "const-gchar*")
-)
-
-(define-method dup_string
-  (of-object "GValue")
-  (c-name "g_value_dup_string")
-  (return-type "gchar*")
-)
-
-(define-method set_pointer
-  (of-object "GValue")
-  (c-name "g_value_set_pointer")
-  (return-type "none")
-  (parameters
-    '("gpointer" "v_pointer")
-  )
-)
-
-(define-method get_pointer
-  (of-object "GValue")
-  (c-name "g_value_get_pointer")
-  (return-type "gpointer")
-)
-
-(define-function g_gtype_get_type
-  (c-name "g_gtype_get_type")
-  (return-type "GType")
-)
-
-(define-method set_gtype
-  (of-object "GValue")
-  (c-name "g_value_set_gtype")
-  (return-type "none")
-  (parameters
-    '("GType" "v_gtype")
-  )
-)
-
-(define-method get_gtype
-  (of-object "GValue")
-  (c-name "g_value_get_gtype")
-  (return-type "GType")
-)
-
-(define-method set_variant
-  (of-object "GValue")
-  (c-name "g_value_set_variant")
-  (return-type "none")
-  (parameters
-    '("GVariant*" "variant")
-  )
-)
-
-(define-method get_variant
-  (of-object "GValue")
-  (c-name "g_value_get_variant")
-  (return-type "GVariant*")
-)
-
-(define-method dup_variant
-  (of-object "GValue")
-  (c-name "g_value_dup_variant")
-  (return-type "GVariant*")
-)
-
-(define-function g_pointer_type_register_static
-  (c-name "g_pointer_type_register_static")
-  (return-type "GType")
-  (parameters
-    '("const-gchar*" "name")
-  )
-)
-
-(define-function g_strdup_value_contents
-  (c-name "g_strdup_value_contents")
-  (return-type "gchar*")
-  (parameters
-    '("const-GValue*" "value")
-  )
-)
-
-(define-method take_string
-  (of-object "GValue")
-  (c-name "g_value_take_string")
-  (return-type "none")
-  (parameters
-    '("gchar*" "v_string")
-  )
-)
-
-(define-method set_string_take_ownership
-  (of-object "GValue")
-  (c-name "g_value_set_string_take_ownership")
-  (return-type "none")
-  (parameters
-    '("gchar*" "v_string")
-  )
-)
+;; From galias.h
 
 
 
@@ -5228,6 +2066,30 @@
 
 
 
+;; From gbsearcharray.h
+
+(define-function if
+  (c-name "if")
+  (return-type "else")
+  (parameters
+    '("cmp-<" "0")
+  )
+)
+
+(define-function MIN
+  (c-name "MIN")
+  (return-type "return")
+  (parameters
+    '("barray->n_nodes-+" "1")
+  )
+)
+
+
+
+;; From gbuffer.h
+
+
+
 ;; From gcache.h
 
 (define-function g_cache_new
@@ -5462,7 +2324,7 @@
   )
 )
 
-(define-method
+(define-method 
   (of-object "GIConv")
   (c-name "g_iconv")
   (return-type "gsize")
@@ -5756,6 +2618,10 @@
 
 
 
+;; From gdatasetprivate.h
+
+
+
 ;; From gdate.h
 
 (define-function g_date_new
@@ -6148,6 +3014,10 @@
 
 
 
+;; From gdebug.h
+
+
+
 ;; From gdir.h
 
 (define-function g_dir_open
@@ -7891,6 +4761,30 @@
 
 
 
+;; From glib.h
+
+
+
+;; From glibintl.h
+
+(define-function glib_gettext
+  (c-name "glib_gettext")
+  (return-type "const-gchar*")
+  (parameters
+    '("const-gchar*" "str")
+  )
+)
+
+
+
+;; From glib-object.h
+
+
+
+;; From glib_trace.h
+
+
+
 ;; From glist.h
 
 (define-function g_list_alloc
@@ -9277,6 +6171,10 @@
 
 
 
+;; From gmirroringtable.h
+
+
+
 ;; From gnode.h
 
 (define-function g_node_new
@@ -9889,6 +6787,10 @@
 
 
 
+;; From gprintfint.h
+
+
+
 ;; From gqsort.h
 
 (define-function g_qsort_with_data
@@ -11008,6 +7910,10 @@
 
 
 
+;; From gscripttable.h
+
+
+
 ;; From gsequence.h
 
 (define-function g_sequence_new
@@ -12818,7 +9724,7 @@
   (return-type "none")
   (parameters
     '("const-char*" "testpath")
-    '("somefunc" "test_func")
+    '("void-(*" "test_func")
   )
 )
 
@@ -12828,7 +9734,7 @@
   (parameters
     '("const-char*" "testpath")
     '("gconstpointer" "test_data")
-    '("somefunc" "test_func")
+    '("void-(*" "test_func")
   )
 )
 
@@ -12943,7 +9849,7 @@
     '("const-char*" "test_name")
     '("gsize" "data_size")
     '("gconstpointer" "test_data")
-    '("somefunc" "data_setup")
+    '("void-(*" "data_setup")
   )
 )
 
@@ -13076,7 +9982,7 @@
     '("const-char*" "testpath")
     '("gsize" "data_size")
     '("gconstpointer" "test_data")
-    '("somefunc" "data_setup")
+    '("void-(*" "data_setup")
   )
 )
 
@@ -13137,7 +10043,7 @@
   (c-name "guint64")
   (return-type "GLIB_VAR")
   (parameters
-    '("something" "g_thread_gettime")
+    '("*" "g_thread_gettime")
   )
 )
 
@@ -13494,6 +10400,15 @@
 
 
 
+;; From gthreadprivate.h
+
+(define-function g_thread_init_glib
+  (c-name "g_thread_init_glib")
+  (return-type "none")
+)
+
+
+
 ;; From gtimer.h
 
 (define-function g_timer_new
@@ -13731,6 +10646,14 @@
 
 
 
+;; From gunibreak.h
+
+
+
+;; From gunichartables.h
+
+
+
 ;; From gunicode.h
 
 (define-function g_get_charset
@@ -14206,6 +11129,18 @@
 
 
 
+;; From gunicodeprivate.h
+
+
+
+;; From gunicomp.h
+
+
+
+;; From gunidecomp.h
+
+
+
 ;; From gurifuncs.h
 
 (define-function g_uri_unescape_string
@@ -14320,24 +11255,6 @@
   (return-type "const-gchar*")
 )
 
-(define-function g_get_system_data_dirs
-  (c-name "g_get_system_data_dirs")
-  (return-type "const-gchar**")
-)
-
-(define-function g_win32_get_system_data_dirs_for_module
-  (c-name "g_win32_get_system_data_dirs_for_module")
-  (return-type "const-gchar**")
-  (parameters
-    '("somefunc" "address_of_function")
-  )
-)
-
-(define-function g_get_language_names
-  (c-name "g_get_language_names")
-  (return-type "const-gchar**")
-)
-
 (define-function g_get_user_special_dir
   (c-name "g_get_user_special_dir")
   (return-type "const-gchar*")
@@ -14470,6 +11387,14 @@
   )
 )
 
+(define-function atexit
+  (c-name "atexit")
+  (return-type "int")
+  (parameters
+    '("void" "(*")
+  )
+)
+
 (define-function g_find_program_in_path
   (c-name "g_find_program_in_path")
   (return-type "gchar*")
@@ -14490,6 +11415,10 @@
 
 
 
+;; From gvariant-core.h
+
+
+
 ;; From gvariant.h
 
 (define-method unref
@@ -15197,6 +12126,110 @@
 
 
 
+;; From gvariant-internal.h
+
+(define-function g_variant_format_string_scan
+  (c-name "g_variant_format_string_scan")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "string")
+    '("const-gchar*" "limit")
+    '("const-gchar**" "endptr")
+  )
+)
+
+(define-function g_variant_format_string_scan_type
+  (c-name "g_variant_format_string_scan_type")
+  (return-type "GVariantType*")
+  (parameters
+    '("const-gchar*" "string")
+    '("const-gchar*" "limit")
+    '("const-gchar**" "endptr")
+  )
+)
+
+
+
+;; From gvariant-serialiser.h
+
+(define-method n_children
+  (of-object "GVariantSerialised")
+  (c-name "g_variant_serialised_n_children")
+  (return-type "gsize")
+)
+
+(define-method get_child
+  (of-object "GVariantSerialised")
+  (c-name "g_variant_serialised_get_child")
+  (return-type "GVariantSerialised")
+  (parameters
+    '("gsize" "index")
+  )
+)
+
+(define-function g_variant_serialiser_needed_size
+  (c-name "g_variant_serialiser_needed_size")
+  (return-type "gsize")
+  (parameters
+    '("GVariantTypeInfo*" "info")
+    '("GVariantSerialisedFiller" "gsv_filler")
+    '("const-gpointer*" "children")
+    '("gsize" "n_children")
+  )
+)
+
+(define-function g_variant_serialiser_serialise
+  (c-name "g_variant_serialiser_serialise")
+  (return-type "none")
+  (parameters
+    '("GVariantSerialised" "container")
+    '("GVariantSerialisedFiller" "gsv_filler")
+    '("const-gpointer*" "children")
+    '("gsize" "n_children")
+  )
+)
+
+(define-method is_normal
+  (of-object "GVariantSerialised")
+  (c-name "g_variant_serialised_is_normal")
+  (return-type "gboolean")
+)
+
+(define-method byteswap
+  (of-object "GVariantSerialised")
+  (c-name "g_variant_serialised_byteswap")
+  (return-type "none")
+)
+
+(define-function g_variant_serialiser_is_string
+  (c-name "g_variant_serialiser_is_string")
+  (return-type "gboolean")
+  (parameters
+    '("gconstpointer" "data")
+    '("gsize" "size")
+  )
+)
+
+(define-function g_variant_serialiser_is_object_path
+  (c-name "g_variant_serialiser_is_object_path")
+  (return-type "gboolean")
+  (parameters
+    '("gconstpointer" "data")
+    '("gsize" "size")
+  )
+)
+
+(define-function g_variant_serialiser_is_signature
+  (c-name "g_variant_serialiser_is_signature")
+  (return-type "gboolean")
+  (parameters
+    '("gconstpointer" "data")
+    '("gsize" "size")
+  )
+)
+
+
+
 ;; From gvarianttype.h
 
 (define-function g_variant_type_string_is_valid
@@ -15406,6 +12439,80 @@
 
 
 
+;; From gvarianttypeinfo.h
+
+(define-method get_type_string
+  (of-object "GVariantTypeInfo")
+  (c-name "g_variant_type_info_get_type_string")
+  (return-type "const-gchar*")
+)
+
+(define-method query
+  (of-object "GVariantTypeInfo")
+  (c-name "g_variant_type_info_query")
+  (return-type "none")
+  (parameters
+    '("guint*" "alignment")
+    '("gsize*" "size")
+  )
+)
+
+(define-method element
+  (of-object "GVariantTypeInfo")
+  (c-name "g_variant_type_info_element")
+  (return-type "GVariantTypeInfo*")
+)
+
+(define-method query_element
+  (of-object "GVariantTypeInfo")
+  (c-name "g_variant_type_info_query_element")
+  (return-type "none")
+  (parameters
+    '("guint*" "alignment")
+    '("gsize*" "size")
+  )
+)
+
+(define-method n_members
+  (of-object "GVariantTypeInfo")
+  (c-name "g_variant_type_info_n_members")
+  (return-type "gsize")
+)
+
+(define-method member_info
+  (of-object "GVariantTypeInfo")
+  (c-name "g_variant_type_info_member_info")
+  (return-type "const-GVariantMemberInfo*")
+  (parameters
+    '("gsize" "index")
+  )
+)
+
+(define-method info_get
+  (of-object "GVariantType")
+  (c-name "g_variant_type_info_get")
+  (return-type "GVariantTypeInfo*")
+)
+
+(define-method ref
+  (of-object "GVariantTypeInfo")
+  (c-name "g_variant_type_info_ref")
+  (return-type "GVariantTypeInfo*")
+)
+
+(define-method unref
+  (of-object "GVariantTypeInfo")
+  (c-name "g_variant_type_info_unref")
+  (return-type "none")
+)
+
+(define-function g_variant_type_info_assert_no_infos
+  (c-name "g_variant_type_info_assert_no_infos")
+  (return-type "none")
+)
+
+
+
 ;; From gwin32.h
 
 (define-function g_win32_ftruncate
@@ -15471,69 +12578,3 @@
 )
 
 
-
-;; From glib.h
-
-
-
-;; From glib-object.h
-
-
-
-;; From gmodule.h
-
-(define-function g_module_supported
-  (c-name "g_module_supported")
-  (return-type "gboolean")
-)
-
-(define-function g_module_open
-  (c-name "g_module_open")
-  (return-type "GModule*")
-  (parameters
-    '("const-gchar*" "file_name")
-    '("GModuleFlags" "flags")
-  )
-)
-
-(define-method close
-  (of-object "GModule")
-  (c-name "g_module_close")
-  (return-type "gboolean")
-)
-
-(define-method make_resident
-  (of-object "GModule")
-  (c-name "g_module_make_resident")
-  (return-type "none")
-)
-
-(define-function g_module_error
-  (c-name "g_module_error")
-  (return-type "const-gchar*")
-)
-
-(define-method symbol
-  (of-object "GModule")
-  (c-name "g_module_symbol")
-  (return-type "gboolean")
-  (parameters
-    '("const-gchar*" "symbol_name")
-    '("gpointer*" "symbol")
-  )
-)
-
-(define-method name
-  (of-object "GModule")
-  (c-name "g_module_name")
-  (return-type "const-gchar*")
-)
-
-(define-function g_module_build_path
-  (c-name "g_module_build_path")
-  (return-type "gchar*")
-  (parameters
-    '("const-gchar*" "directory")
-    '("const-gchar*" "module_name")
-  )
-)
diff --git a/glib/glibmm/variant.cc b/glib/src/variant.ccg
similarity index 87%
rename from glib/glibmm/variant.cc
rename to glib/src/variant.ccg
index 584270f..a6a2d8d 100644
--- a/glib/glibmm/variant.cc
+++ b/glib/src/variant.ccg
@@ -1,6 +1,4 @@
-/* $Id$ */
-
-/* Copyright 2010 The gtkmm Development Team
+/* Copyright 2010 The glibmm Development Team
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -18,10 +16,6 @@
  */
 
 #include <glibmm/variant.h>
-#include <glibmm/objectbase.h>
-#include <glibmm/utility.h>
-#include <glibmm/wrap.h>
-
 
 namespace Glib
 {
@@ -72,18 +66,6 @@ VariantBase::~VariantBase()
     g_variant_unref(gobject_);
 }
 
-bool VariantBase::is_container() const
-{
-  return
-    static_cast<bool>(g_variant_is_container(const_cast<GVariant*>(gobj())));
-}
-
-GVariantClass VariantBase::classify() const
-{
-  return g_variant_classify(const_cast<GVariant*>(gobj()));
-}
-
-
 /****************** Specializations ***********************************/
 
 // static
diff --git a/glib/glibmm/variant.h b/glib/src/variant.hg
similarity index 73%
rename from glib/glibmm/variant.h
rename to glib/src/variant.hg
index 7bc93f9..b1da904 100644
--- a/glib/glibmm/variant.h
+++ b/glib/src/variant.hg
@@ -1,7 +1,4 @@
-#ifndef _GLIBMM_VARIANT_H
-#define _GLIBMM_VARIANT_H
-
-/* Copyright 2010 The gtkmm Development Team
+/* Copyright 2010 The glibmm Development Team
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -18,9 +15,11 @@
  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+_DEFS(glibmm,glib)
+
 #include <glibmmconfig.h>
+#include <glib/gvariant.h>
 #include <glibmm/ustring.h>
-#include <glib-object.h>
 
 namespace Glib
 {
@@ -35,58 +34,48 @@ namespace Glib
  * API</a>.
  */
 
-/**
+/** The base class used to wrap glib's GVariant API.
+ * @newin{2,26}
  * @ingroup glibmmVariant
  */
 class VariantBase
 {
+  _CLASS_GENERIC(VariantBase, GVariant)
+  _IGNORE(g_variant_ref, g_variant_ref_sink, g_variant_unref,
+    g_variant_get, g_variant_get_va)
 public:
   /** Default constructor.
-   * @newin{2,26}
    */
   VariantBase();
 
   /** Constructs a VariantBase from a GVariant.
-   * @newin{2,26}
+   * @param casitem The GVariant.
    */
   explicit VariantBase(GVariant* castitem);
 
   /** Copy constructor.  Since GVariant is reference counted, the copy
    * constructor simply copies the underlying GVariant* and increases its
    * reference count.
-   * @newin{2,26}
    */
   VariantBase(const VariantBase& other);
 
   /** Assignment operator.  Since GVariant is reference counted, assignment
    * simply copies the underlying GVariant* and increases its reference count.
-   * @newin{2,26}
    */
   VariantBase& operator=(const VariantBase& other);
 
   /** Get the underlying GVariant.
    * @return The underlying GVariant.
-   * @newin{2,26}
    */
   GVariant*       gobj()       { return gobject_; }
 
   /** Get the underlying GVariant.
    * @return The underlying GVariant.
-   * @newin{2,26}
    */
   const GVariant* gobj() const { return gobject_; }
 
-  /** Tells if the variant contains another variant.
-   * @return Whether the variant is container.
-   * @newin{2,26}
-   */
-  bool is_container() const;
-    
-  /** Tells the class of the variant.
-   * @return The class of the variant.
-   * @newin{2,26}
-   */
-  GVariantClass classify() const;
+  _WRAP_METHOD(bool is_container() const, g_variant_is_container)
+  _WRAP_METHOD(GVariantClass classify() const, g_variant_classify)
 
   virtual ~VariantBase();
 
@@ -95,6 +84,7 @@ protected:
 };
 
 /** Template class from which other Glib::Variant<> specializations derive.
+ * @newin{2,26}
  * @ingroup glibmmVariant
  */
 template <class T>
@@ -105,9 +95,16 @@ public:
 };
 
 
+// Each specialization has (or should have) a variant_type() method that gets
+// the type so the C function can be ignored.
+_IGNORE(g_variant_get_type)
+
 /****************** Specializations ***********************************/
 
-/// @ingroup glibmmVariant
+/** Specialization of Glib::Variant containing a Glib::VariantBase.
+ * @newin{2,26}
+ * @ingroup glibmmVariant
+ */
 template <>
 class Variant<VariantBase> : public VariantBase
 {
@@ -116,11 +113,18 @@ class Variant<VariantBase> : public VariantBase
   Variant<VariantBase>() : VariantBase() { }
   Variant<VariantBase>(GVariant* castitem) : VariantBase(castitem) { }
   static const GVariantType* variant_type() G_GNUC_CONST;
+
   static Variant<VariantBase> create(Glib::VariantBase& data);
+  _IGNORE(g_variant_new_variant)
+
   VariantBase get() const;
+  _IGNORE(g_variant_get_variant)
 };
 
-/// @ingroup glibmmVariant
+/** Specialization of Glib::Variant containing a Glib::ustring.
+ * @newin{2,26}
+ * @ingroup glibmmVariant
+ */
 template <>
 class Variant<Glib::ustring> : public VariantBase
 {
@@ -130,17 +134,27 @@ class Variant<Glib::ustring> : public VariantBase
   Variant<Glib::ustring>(GVariant* castitem) : VariantBase(castitem) { }
   static const GVariantType* variant_type() G_GNUC_CONST;
   static Variant<Glib::ustring> create(const Glib::ustring& data);
+
   Glib::ustring get() const;
+  _IGNORE(g_variant_get_string, g_variant_dup_string)
 };
 
 } // namespace Glib
 
 
+_IGNORE(
+  g_variant_get_boolean,
+  g_variant_get_uint16,
+  g_variant_get_int64,
+  g_variant_get_int32,
+  g_variant_get_int16,
+  g_variant_get_uint32,
+  g_variant_get_uint64,
+  g_variant_get_double
+)
+
 /* Include generated specializations of Glib::Variant<> for fundamental types:
  */
 #define _GLIBMM_VARIANT_H_INCLUDE_VARIANT_BASICTYPES_H
 #include <glibmm/variant_basictypes.h>
 #undef _GLIBMM_VARIANT_H_INCLUDE_VARIANT_BASICTYPES_H
-
-
-#endif /* _GLIBMM_VARIANT_H */
diff --git a/glib/src/variant_basictypes.h.m4 b/glib/src/variant_basictypes.h.m4
index caaf26c..a7504f0 100644
--- a/glib/src/variant_basictypes.h.m4
+++ b/glib/src/variant_basictypes.h.m4
@@ -28,7 +28,8 @@ dnl
 define([GLIB_VARIANT_BASIC],[dnl
 LINE(]__line__[)dnl
 
-/**
+/** Specialization of Glib::Variant containing a $1 type.
+ * @newin{2,26}
  * @ingroup glibmmVariant
  */
 template <>
@@ -37,10 +38,28 @@ class Variant<$1> : public VariantBase
 public:
   typedef g$2 CType;
 
+  /// Default constructor.
   Variant<$1>() : VariantBase() { }
+
+  /** GVariant constructor.
+   * @param castitem The GVariant to wrap.
+   */
   Variant<$1>(GVariant* castitem) : VariantBase(castitem) { }
+
+  /** Gets the GVariantType.
+   * @return The GVariantType.
+   */
   static const GVariantType* variant_type() G_GNUC_CONST;
+
+  /** Creates a new Glib::Variant<$1>.
+   * @param data The value of the new Glib::Variant<$1>.
+   * @return The new Glib::Variant<$1>.
+   */
   static Variant<$1> create($1 data);
+
+  /** Gets the value of the Glib::Variant<$1>.
+   * @return The $1 value of the Glib::Variant<$1>.
+   */
   $1 get() const;
 };
 ])



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]