diff options
author | Jasmine Hassan <[email protected]> | 2012-12-05 02:55:27 +0200 |
---|---|---|
committer | Jasmine Hassan <[email protected]> | 2012-12-06 18:48:25 +0200 |
commit | 6e182dc5cdb3451a4ec4bd443b1159df318541c8 (patch) | |
tree | 049d7a8d3c8e466ce9824c34faf4a7d33c5824ed /mate-settings-daemon | |
parent | 4006c217f458e936d77683b5974600070a253bac (diff) | |
download | mate-settings-daemon-6e182dc5cdb3451a4ec4bd443b1159df318541c8.tar.bz2 mate-settings-daemon-6e182dc5cdb3451a4ec4bd443b1159df318541c8.tar.xz |
[plugins] cleanup macro magic in plugin.h
And instead, use glib macros (since 2.14)
http://git.gnome.org/browse/gnome-settings-daemon/commit/?id=0dda56c4462e070dabdab68092b6574b5e894181
Diffstat (limited to 'mate-settings-daemon')
-rw-r--r-- | mate-settings-daemon/mate-settings-plugin.h | 126 |
1 files changed, 11 insertions, 115 deletions
diff --git a/mate-settings-daemon/mate-settings-plugin.h b/mate-settings-daemon/mate-settings-plugin.h index 0f90567..534034f 100644 --- a/mate-settings-daemon/mate-settings-plugin.h +++ b/mate-settings-daemon/mate-settings-plugin.h @@ -59,123 +59,19 @@ void mate_settings_plugin_deactivate (MateSettingsPlugin *pl * * use: MATE_SETTINGS_PLUGIN_REGISTER (PluginName, plugin_name) */ -#define MATE_SETTINGS_PLUGIN_REGISTER(PluginName, plugin_name) \ - \ -static GType plugin_name##_type = 0; \ -static GTypeModule *plugin_module_type = 0; \ - \ -GType \ -plugin_name##_get_type (void) \ -{ \ - return plugin_name##_type; \ -} \ - \ -static void plugin_name##_init (PluginName *self); \ -static void plugin_name##_class_init (PluginName##Class *klass); \ -static gpointer plugin_name##_parent_class = NULL; \ -static void plugin_name##_class_intern_init (gpointer klass) \ -{ \ - plugin_name##_parent_class = g_type_class_peek_parent (klass); \ - plugin_name##_class_init ((PluginName##Class *) klass); \ -} \ - \ -G_MODULE_EXPORT GType \ -register_mate_settings_plugin (GTypeModule *module) \ -{ \ - static const GTypeInfo our_info = \ - { \ - sizeof (PluginName##Class), \ - NULL, /* base_init */ \ - NULL, /* base_finalize */ \ - (GClassInitFunc) plugin_name##_class_intern_init, \ - NULL, \ - NULL, /* class_data */ \ - sizeof (PluginName), \ - 0, /* n_preallocs */ \ - (GInstanceInitFunc) plugin_name##_init \ - }; \ - \ - g_debug ("Registering " #PluginName); \ - \ - /* Initialise the i18n stuff */ \ - bindtextdomain (GETTEXT_PACKAGE, MATE_SETTINGS_LOCALEDIR); \ - bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); \ - \ - plugin_module_type = module; \ - plugin_name##_type = g_type_module_register_type (module, \ - MATE_TYPE_SETTINGS_PLUGIN, \ - #PluginName, \ - &our_info, \ - 0); \ - \ - return plugin_name##_type; \ +#define MATE_SETTINGS_PLUGIN_REGISTER(PluginName, plugin_name) \ + G_DEFINE_DYNAMIC_TYPE (PluginName, \ + plugin_name, \ + MATE_TYPE_SETTINGS_PLUGIN) \ + \ +G_MODULE_EXPORT GType \ +register_mate_settings_plugin (GTypeModule *type_module) \ +{ \ + plugin_name##_register_type (type_module); \ + \ + return plugin_name##_get_type(); \ } -/* - * Utility macro used to register gobject types in plugins with additional code - * - * use: MATE_SETTINGS_PLUGIN_DEFINE_TYPE_WITH_CODE(ObjectName, object_name, PARENT_TYPE, CODE) - */ -#define MATE_SETTINGS_PLUGIN_DEFINE_TYPE_WITH_CODE(ObjectName, object_name, PARENT_TYPE, CODE) \ -static void object_name##_init (ObjectName *self); \ -static void object_name##_class_init (ObjectName##Class *klass); \ -static gpointer object_name##_parent_class = ((void *)0); \ -static GType ojbect_name##_type_id = 0; \ - \ -static void object_name##_class_intern_init (gpointer klass) \ -{ \ - object_name##_parent_class = g_type_class_peek_parent (klass); \ - object_name##_class_init ((ObjectName##Class *) klass); \ -} \ - \ - \ -GType \ -object_name##_get_type (void) \ -{ \ - g_assert (object_name##_type_id != 0); \ - \ - return object_name##_type_id; \ -} \ - \ -GType \ -object_name##_register_type (GTypeModule *module) \ -{ \ - if ((object_name##_type_id == 0)) { \ - const GTypeInfo g_define_type_info = { \ - sizeof (ObjectName##Class), \ - (GBaseInitFunc) ((void *)0), \ - (GBaseFinalizeFunc) ((void *)0), \ - (GClassInitFunc) object_name##_class_intern_init, \ - (GClassFinalizeFunc) ((void *)0), \ - ((void *)0), \ - sizeof (ObjectName), \ - 0, \ - (GInstanceInitFunc) object_name##_init, \ - ((void *)0) \ - }; \ - object_name##_type_id = \ - g_type_module_register_type (module, \ - PARENT_TYPE, \ - #ObjectName, \ - &g_define_type_info, \ - (GTypeFlags) 0); \ - } \ - \ - g_debug ("Registering " #ObjectName); \ - \ - CODE \ - \ - return type_name##_type_id; \ -} - -/* - * Utility macro used to register gobject types in plugins - * - * use: MATE_SETTINGS_PLUGIN_DEFINE_TYPE(ObjectName, object_name, PARENT_TYPE) - */ -#define MATE_SETTINGS_PLUGIN_DEFINE_TYPE(ObjectName, object_name, PARENT_TYPE) \ - MATE_SETTINGS_PLUGIN_DEFINE_TYPE_WITH_CODE(ObjectName, object_name, PARENT_TYPE, ;) - #ifdef __cplusplus } #endif |