comparison libpurple/theme.c @ 32157:4d92a431d0a1

Use GObject's instance private data for all the theme GObjects.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Sat, 17 Sep 2011 04:51:57 +0000
parents f1437342cc0e
children
comparison
equal deleted inserted replaced
32156:d478be29444a 32157:4d92a431d0a1
23 #include "internal.h" 23 #include "internal.h"
24 #include "theme.h" 24 #include "theme.h"
25 #include "util.h" 25 #include "util.h"
26 26
27 #define PURPLE_THEME_GET_PRIVATE(PurpleTheme) \ 27 #define PURPLE_THEME_GET_PRIVATE(PurpleTheme) \
28 ((PurpleThemePrivate *) ((PurpleTheme)->priv)) 28 (G_TYPE_INSTANCE_GET_PRIVATE((PurpleTheme), PURPLE_TYPE_THEME, PurpleThemePrivate))
29 29
30 void purple_theme_set_type_string(PurpleTheme *theme, const gchar *type); 30 void purple_theme_set_type_string(PurpleTheme *theme, const gchar *type);
31 31
32 /****************************************************************************** 32 /******************************************************************************
33 * Structs 33 * Structs
127 break; 127 break;
128 } 128 }
129 } 129 }
130 130
131 static void 131 static void
132 purple_theme_init(GTypeInstance *instance,
133 gpointer klass)
134 {
135 PurpleTheme *theme = PURPLE_THEME(instance);
136 theme->priv = g_new0(PurpleThemePrivate, 1);
137 }
138
139 static void
140 purple_theme_finalize(GObject *obj) 132 purple_theme_finalize(GObject *obj)
141 { 133 {
142 PurpleTheme *theme = PURPLE_THEME(obj); 134 PurpleTheme *theme = PURPLE_THEME(obj);
143 PurpleThemePrivate *priv = PURPLE_THEME_GET_PRIVATE(theme); 135 PurpleThemePrivate *priv = PURPLE_THEME_GET_PRIVATE(theme);
144 136
157 { 149 {
158 GObjectClass *obj_class = G_OBJECT_CLASS(klass); 150 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
159 GParamSpec *pspec; 151 GParamSpec *pspec;
160 152
161 parent_class = g_type_class_peek_parent(klass); 153 parent_class = g_type_class_peek_parent(klass);
154
155 g_type_class_add_private(klass, sizeof(PurpleThemePrivate));
162 156
163 obj_class->get_property = purple_theme_get_property; 157 obj_class->get_property = purple_theme_get_property;
164 obj_class->set_property = purple_theme_set_property; 158 obj_class->set_property = purple_theme_set_property;
165 obj_class->finalize = purple_theme_finalize; 159 obj_class->finalize = purple_theme_finalize;
166 160
220 (GClassInitFunc)purple_theme_class_init, /* class_init */ 214 (GClassInitFunc)purple_theme_class_init, /* class_init */
221 NULL, /* class_finalize */ 215 NULL, /* class_finalize */
222 NULL, /* class_data */ 216 NULL, /* class_data */
223 sizeof(PurpleTheme), 217 sizeof(PurpleTheme),
224 0, /* n_preallocs */ 218 0, /* n_preallocs */
225 purple_theme_init, /* instance_init */ 219 NULL, /* instance_init */
226 NULL, /* value table */ 220 NULL, /* value table */
227 }; 221 };
228 type = g_type_register_static (G_TYPE_OBJECT, 222 type = g_type_register_static (G_TYPE_OBJECT,
229 "PurpleTheme", &info, G_TYPE_FLAG_ABSTRACT); 223 "PurpleTheme", &info, G_TYPE_FLAG_ABSTRACT);
230 } 224 }