summaryrefslogtreecommitdiff
path: root/glib/glibmm
diff options
context:
space:
mode:
authorMurray Cumming <murrayc@murrayc.com>2009-06-29 13:27:17 +0200
committerMurray Cumming <murrayc@murrayc.com>2009-06-29 13:27:17 +0200
commit984f55ebfc37dc0f989c5e5005f6242930ebe0ac (patch)
tree67edf1b0ff830e6d5fb3eb7cf4157d20a82c2e21 /glib/glibmm
parentbd6a81cc903e7a788bac703354f04df512afdfac (diff)
downloadglibmm-984f55ebfc37dc0f989c5e5005f6242930ebe0ac.tar.gz
Increased versionglibmm-2.21.1-real
Diffstat (limited to 'glib/glibmm')
-rw-r--r--glib/glibmm/class.cc12
-rw-r--r--glib/glibmm/class.h7
2 files changed, 18 insertions, 1 deletions
diff --git a/glib/glibmm/class.cc b/glib/glibmm/class.cc
index 3127c696..af285170 100644
--- a/glib/glibmm/class.cc
+++ b/glib/glibmm/class.cc
@@ -29,6 +29,11 @@ namespace Glib
void Class::register_derived_type(GType base_type)
{
+ return register_derived_type(base_type, 0);
+}
+
+void Class::register_derived_type(GType base_type, GTypeModule* module)
+{
if(gtype_)
return; // already initialized
@@ -62,7 +67,12 @@ void Class::register_derived_type(GType base_type)
}
gchar* derived_name = g_strconcat("gtkmm__", base_query.type_name, NULL);
- gtype_ = g_type_register_static(base_type, derived_name, &derived_info, GTypeFlags(0));
+
+ if(module)
+ gtype_ = g_type_module_register_type(module, base_type, derived_name, &derived_info, GTypeFlags(0));
+ else
+ gtype_ = g_type_register_static(base_type, derived_name, &derived_info, GTypeFlags(0));
+
g_free(derived_name);
}
diff --git a/glib/glibmm/class.h b/glib/glibmm/class.h
index c961a763..2e7345da 100644
--- a/glib/glibmm/class.h
+++ b/glib/glibmm/class.h
@@ -57,8 +57,15 @@ protected:
GType gtype_;
GClassInitFunc class_init_func_;
+ /** Register a GType, derived from the @a base_type.
+ */
void register_derived_type(GType base_type);
+ /** Register a GType, derived from the @a base_type.
+ * @param module If this is not 0 then g_type_module_register_type() will be used. Otherwise g_type_register_static() will be used.
+ */
+ void register_derived_type(GType base_type, GTypeModule* module);
+
private:
static void custom_class_init_function(void* g_class, void* class_data);
};