| 22 |
22 |
| 23 #include "internal.h" |
23 #include "internal.h" |
| 24 #include "theme-loader.h" |
24 #include "theme-loader.h" |
| 25 |
25 |
| 26 #define PURPLE_THEME_LOADER_GET_PRIVATE(PurpleThemeLoader) \ |
26 #define PURPLE_THEME_LOADER_GET_PRIVATE(PurpleThemeLoader) \ |
| 27 ((PurpleThemeLoaderPrivate *) ((PurpleThemeLoader)->priv)) |
27 (G_TYPE_INSTANCE_GET_PRIVATE((PurpleThemeLoader), PURPLE_TYPE_THEME_LOADER, PurpleThemeLoaderPrivate)) |
| 28 |
28 |
| 29 void purple_theme_loader_set_type_string(PurpleThemeLoader *loader, const gchar *type); |
29 void purple_theme_loader_set_type_string(PurpleThemeLoader *loader, const gchar *type); |
| 30 |
30 |
| 31 /****************************************************************************** |
31 /****************************************************************************** |
| 32 * Structs |
32 * Structs |
| 84 break; |
84 break; |
| 85 } |
85 } |
| 86 } |
86 } |
| 87 |
87 |
| 88 static void |
88 static void |
| 89 purple_theme_loader_init(GTypeInstance *instance, |
|
| 90 gpointer klass) |
|
| 91 { |
|
| 92 PurpleThemeLoader *loader = PURPLE_THEME_LOADER(instance); |
|
| 93 loader->priv = g_new0(PurpleThemeLoaderPrivate, 1); |
|
| 94 } |
|
| 95 |
|
| 96 static void |
|
| 97 purple_theme_loader_finalize(GObject *obj) |
89 purple_theme_loader_finalize(GObject *obj) |
| 98 { |
90 { |
| 99 PurpleThemeLoader *loader = PURPLE_THEME_LOADER(obj); |
91 PurpleThemeLoader *loader = PURPLE_THEME_LOADER(obj); |
| 100 PurpleThemeLoaderPrivate *priv = PURPLE_THEME_LOADER_GET_PRIVATE(loader); |
92 PurpleThemeLoaderPrivate *priv = PURPLE_THEME_LOADER_GET_PRIVATE(loader); |
| 101 |
93 |
| 102 g_free(priv->type); |
94 g_free(priv->type); |
| 103 g_free(priv); |
|
| 104 |
95 |
| 105 parent_class->finalize(obj); |
96 parent_class->finalize(obj); |
| 106 } |
97 } |
| 107 |
98 |
| 108 static void |
99 static void |
| 110 { |
101 { |
| 111 GObjectClass *obj_class = G_OBJECT_CLASS(klass); |
102 GObjectClass *obj_class = G_OBJECT_CLASS(klass); |
| 112 GParamSpec *pspec; |
103 GParamSpec *pspec; |
| 113 |
104 |
| 114 parent_class = g_type_class_peek_parent(klass); |
105 parent_class = g_type_class_peek_parent(klass); |
| |
106 |
| |
107 g_type_class_add_private(klass, sizeof(PurpleThemeLoaderPrivate)); |
| 115 |
108 |
| 116 obj_class->get_property = purple_theme_loader_get_property; |
109 obj_class->get_property = purple_theme_loader_get_property; |
| 117 obj_class->set_property = purple_theme_loader_set_property; |
110 obj_class->set_property = purple_theme_loader_set_property; |
| 118 obj_class->finalize = purple_theme_loader_finalize; |
111 obj_class->finalize = purple_theme_loader_finalize; |
| 119 |
112 |
| 137 (GClassInitFunc)purple_theme_loader_class_init, /* class_init */ |
130 (GClassInitFunc)purple_theme_loader_class_init, /* class_init */ |
| 138 NULL, /* class_finalize */ |
131 NULL, /* class_finalize */ |
| 139 NULL, /* class_data */ |
132 NULL, /* class_data */ |
| 140 sizeof(PurpleThemeLoader), |
133 sizeof(PurpleThemeLoader), |
| 141 0, /* n_preallocs */ |
134 0, /* n_preallocs */ |
| 142 purple_theme_loader_init, /* instance_init */ |
135 NULL, /* instance_init */ |
| 143 NULL, /* value table */ |
136 NULL, /* value table */ |
| 144 }; |
137 }; |
| 145 type = g_type_register_static(G_TYPE_OBJECT, |
138 type = g_type_register_static(G_TYPE_OBJECT, |
| 146 "PurpleThemeLoader", &info, G_TYPE_FLAG_ABSTRACT); |
139 "PurpleThemeLoader", &info, G_TYPE_FLAG_ABSTRACT); |
| 147 } |
140 } |