Mercurial > pidgin
diff libpurple/theme-manager.c @ 25085:fecc8e2612c4
Fixed some things needed for proper gobfication (init/finalize/etc)
author | Justin Rodriguez <ffdragon@soc.pidgin.im> |
---|---|
date | Mon, 16 Jun 2008 19:48:56 +0000 |
parents | 623f0b40f6f6 |
children | 51bdbab30704 |
line wrap: on
line diff
--- a/libpurple/theme-manager.c Fri Jun 13 21:33:17 2008 +0000 +++ b/libpurple/theme-manager.c Mon Jun 16 19:48:56 2008 +0000 @@ -30,29 +30,10 @@ static GHashTable *theme_table; - /***************************************************************************** * GObject Stuff ****************************************************************************/ -static void -purple_theme_manager_finalize (GObject *obj) -{ - g_hash_table_destroy(theme_table); -} - -static void -purple_theme_manager_class_init (PurpleThemeManagerClass *klass) -{ - /*PurpleThemeManagerClass *theme_manager_class = PURPLE_THEME_MANAGER_CLASS(klass);*/ - GObjectClass *obj_class = G_OBJECT_CLASS(klass); - - /* 2.4 g_type_class_add_private(klass, sizeof(PurpleThemeManagerPrivate));*/ - - obj_class->finalize = purple_theme_manager_finalize; - -} - GType purple_theme_manager_get_type (void) { @@ -62,7 +43,7 @@ sizeof (PurpleThemeManagerClass), NULL, /* base_init */ NULL, /* base_finalize */ - (GClassInitFunc)purple_theme_manager_class_init, /* class_init */ + NULL, /* class_init */ NULL, /* class_finalize */ NULL, /* class_data */ sizeof (PurpleThemeManager), @@ -116,7 +97,7 @@ } static void -purple_theme_manager_build(const gchar *root) +purple_theme_manager_build_dir(const gchar *root) { GDir *rdir; @@ -166,10 +147,12 @@ va_list args; PurpleThemeLoader *loader; + g_return_if_fail(theme_table != NULL); + theme_table = g_hash_table_new_full (g_str_hash, - g_str_equal, - g_free, - g_object_unref); + g_str_equal, + g_free, + g_object_unref); va_start(args, loader1); for (loader = loader1; loader != NULL; loader = va_arg(args, PurpleThemeLoader *)) @@ -177,7 +160,25 @@ va_end(args); /* TODO: add themes properly */ - purple_theme_manager_build(NULL); + purple_theme_manager_build_dir(NULL); +} + +void +purple_theme_manager_refresh() +{ + g_hash_table_foreach_remove (theme_table, + (GHRFunc) purple_theme_manager_is_theme, + NULL); + + /* TODO: this also needs to be fixed the same as new */ + purple_theme_manager_build_dir(NULL); + +} + +void +purple_theme_manager_uninit () +{ + g_hash_table_destroy(theme_table); } @@ -269,18 +270,6 @@ } void -purple_theme_manager_refresh() -{ - g_hash_table_foreach_remove (theme_table, - (GHRFunc) purple_theme_manager_is_theme, - NULL); - - /* TODO: this also needs to be fixed the same as new */ - purple_theme_manager_build(NULL); - -} - -void purple_theme_manager_for_each_theme(PTFunc func) { g_return_if_fail(func);