diff -r 8d0af3b47338 -r 53cfb9400de8 pidgin/gtkconv-theme.c --- a/pidgin/gtkconv-theme.c Fri Sep 28 16:30:16 2018 -0500 +++ b/pidgin/gtkconv-theme.c Thu Oct 04 17:01:18 2018 -0500 @@ -36,9 +36,6 @@ #include #include -#define PIDGIN_CONV_THEME_GET_PRIVATE(Gobject) \ - (G_TYPE_INSTANCE_GET_PRIVATE((Gobject), PIDGIN_TYPE_CONV_THEME, PidginConvThemePrivate)) - /****************************************************************************** * Structs *****************************************************************************/ @@ -86,9 +83,11 @@ * Globals *****************************************************************************/ -static GObjectClass *parent_class = NULL; static GParamSpec *properties[PROP_LAST]; +G_DEFINE_TYPE_WITH_PRIVATE(PidginConvTheme, pidgin_conversation_theme, + PURPLE_TYPE_THEME); + /****************************************************************************** * Helper Functions *****************************************************************************/ @@ -436,13 +435,12 @@ } static void -pidgin_conv_theme_init(GTypeInstance *instance, - gpointer klass) +pidgin_conversation_theme_init(PidginConvTheme *theme) { #if 0 PidginConvThemePrivate *priv; - priv = PIDGIN_CONV_THEME_GET_PRIVATE(instance); + priv = pidgin_conversation_theme_get_instance_private(theme); #endif } @@ -452,7 +450,8 @@ PidginConvThemePrivate *priv; GList *list; - priv = PIDGIN_CONV_THEME_GET_PRIVATE(obj); + priv = pidgin_conversation_theme_get_instance_private( + PIDGIN_CONV_THEME(obj)); g_free(priv->template_html); g_free(priv->header_html); @@ -483,18 +482,14 @@ if (priv->nick_colors) g_array_unref(priv->nick_colors); - parent_class->finalize(obj); + G_OBJECT_CLASS(pidgin_conversation_theme_parent_class)->finalize(obj); } static void -pidgin_conv_theme_class_init(PidginConvThemeClass *klass) +pidgin_conversation_theme_class_init(PidginConvThemeClass *klass) { GObjectClass *obj_class = G_OBJECT_CLASS(klass); - parent_class = g_type_class_peek_parent(klass); - - g_type_class_add_private(klass, sizeof(PidginConvThemePrivate)); - obj_class->get_property = pidgin_conv_theme_get_property; obj_class->set_property = pidgin_conv_theme_set_property; obj_class->finalize = pidgin_conv_theme_finalize; @@ -513,41 +508,18 @@ g_object_class_install_properties(obj_class, PROP_LAST, properties); } -GType -pidgin_conversation_theme_get_type(void) -{ - static GType type = 0; - if (type == 0) { - static const GTypeInfo info = { - sizeof(PidginConvThemeClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc)pidgin_conv_theme_class_init, /* class_init */ - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof(PidginConvTheme), - 0, /* n_preallocs */ - pidgin_conv_theme_init, /* instance_init */ - NULL, /* value table */ - }; - type = g_type_register_static(PURPLE_TYPE_THEME, - "PidginConvTheme", &info, 0); - } - return type; -} - /***************************************************************************** * Public API functions *****************************************************************************/ const GHashTable * -pidgin_conversation_theme_get_info(const PidginConvTheme *theme) +pidgin_conversation_theme_get_info(PidginConvTheme *theme) { PidginConvThemePrivate *priv; g_return_val_if_fail(theme != NULL, NULL); - priv = PIDGIN_CONV_THEME_GET_PRIVATE(theme); + priv = pidgin_conversation_theme_get_instance_private(theme); return priv->info; } @@ -558,7 +530,7 @@ g_return_if_fail(theme != NULL); - priv = PIDGIN_CONV_THEME_GET_PRIVATE(theme); + priv = pidgin_conversation_theme_get_instance_private(theme); if (priv->info) g_hash_table_destroy(priv->info); @@ -575,7 +547,7 @@ g_return_val_if_fail(theme != NULL, NULL); - priv = PIDGIN_CONV_THEME_GET_PRIVATE(theme); + priv = pidgin_conversation_theme_get_instance_private(theme); return get_key(priv, key, specific); } @@ -589,7 +561,7 @@ g_return_val_if_fail(theme != NULL, NULL); - priv = PIDGIN_CONV_THEME_GET_PRIVATE(theme); + priv = pidgin_conversation_theme_get_instance_private(theme); dir = purple_theme_get_dir(PURPLE_THEME(theme)); switch (type) { @@ -656,7 +628,7 @@ g_return_if_fail(theme != NULL); g_return_if_fail(variant != NULL); - priv = PIDGIN_CONV_THEME_GET_PRIVATE(theme); + priv = pidgin_conversation_theme_get_instance_private(theme); priv->variants = g_list_prepend(priv->variants, variant); } @@ -668,7 +640,7 @@ g_return_val_if_fail(theme != NULL, NULL); - priv = PIDGIN_CONV_THEME_GET_PRIVATE(theme); + priv = pidgin_conversation_theme_get_instance_private(theme); return priv->variant; } @@ -683,7 +655,7 @@ g_return_if_fail(theme != NULL); g_return_if_fail(variant != NULL); - priv = PIDGIN_CONV_THEME_GET_PRIVATE(theme); + priv = pidgin_conversation_theme_get_instance_private(theme); g_free(priv->variant); priv->variant = g_strdup(variant); @@ -704,7 +676,7 @@ g_return_val_if_fail(theme != NULL, NULL); - priv = PIDGIN_CONV_THEME_GET_PRIVATE(theme); + priv = pidgin_conversation_theme_get_instance_private(theme); return priv->variants; } @@ -729,7 +701,7 @@ g_return_val_if_fail(theme != NULL, NULL); - priv = PIDGIN_CONV_THEME_GET_PRIVATE(theme); + priv = pidgin_conversation_theme_get_instance_private(theme); dir = purple_theme_get_dir(PURPLE_THEME(theme)); if (!priv->variant) { @@ -750,7 +722,7 @@ g_return_val_if_fail(theme != NULL, NULL); - priv = PIDGIN_CONV_THEME_GET_PRIVATE(theme); + priv = pidgin_conversation_theme_get_instance_private(theme); dir = purple_theme_get_dir(PURPLE_THEME(theme)); if (NULL == priv->nick_colors)