diff options
author | Murray Cumming <murrayc@murrayc.com> | 2009-06-29 13:27:17 +0200 |
---|---|---|
committer | Murray Cumming <murrayc@murrayc.com> | 2009-06-29 13:27:17 +0200 |
commit | 984f55ebfc37dc0f989c5e5005f6242930ebe0ac (patch) | |
tree | 67edf1b0ff830e6d5fb3eb7cf4157d20a82c2e21 /glib/glibmm | |
parent | bd6a81cc903e7a788bac703354f04df512afdfac (diff) | |
download | glibmm-984f55ebfc37dc0f989c5e5005f6242930ebe0ac.tar.gz |
Increased versionglibmm-2.21.1-real
Diffstat (limited to 'glib/glibmm')
-rw-r--r-- | glib/glibmm/class.cc | 12 | ||||
-rw-r--r-- | glib/glibmm/class.h | 7 |
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); }; |