comparison libpurple/theme-loader.c @ 32728:5050da3d9c95

Add a directory probe to theme loaders. The default just checks for $dir/purple/$type as the theme manager currently does.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Sat, 03 Mar 2012 06:39:49 +0000
parents 4d92a431d0a1
children
comparison
equal deleted inserted replaced
32727:089acf3a8aa1 32728:5050da3d9c95
81 break; 81 break;
82 default: 82 default:
83 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, psec); 83 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, psec);
84 break; 84 break;
85 } 85 }
86 }
87
88 static gboolean
89 purple_theme_loader_probe_directory(PurpleThemeLoader *loader, const gchar *dir)
90 {
91 const gchar *type = purple_theme_loader_get_type_string(loader);
92 char *themedir;
93 gboolean result;
94
95 /* Checks for directory as $root/purple/$type */
96 themedir = g_build_filename(dir, "purple", type, NULL);
97 result = g_file_test(themedir, G_FILE_TEST_IS_DIR);
98 g_free(themedir);
99
100 return result;
86 } 101 }
87 102
88 static void 103 static void
89 purple_theme_loader_finalize(GObject *obj) 104 purple_theme_loader_finalize(GObject *obj)
90 { 105 {
173 PurpleTheme * 188 PurpleTheme *
174 purple_theme_loader_build(PurpleThemeLoader *loader, const gchar *dir) 189 purple_theme_loader_build(PurpleThemeLoader *loader, const gchar *dir)
175 { 190 {
176 return PURPLE_THEME_LOADER_GET_CLASS(loader)->purple_theme_loader_build(dir); 191 return PURPLE_THEME_LOADER_GET_CLASS(loader)->purple_theme_loader_build(dir);
177 } 192 }
193
194 gboolean
195 purple_theme_loader_probe(PurpleThemeLoader *loader, const gchar *dir)
196 {
197 if (PURPLE_THEME_LOADER_GET_CLASS(loader)->probe_directory != NULL)
198 return PURPLE_THEME_LOADER_GET_CLASS(loader)->probe_directory(dir);
199 else
200 return purple_theme_loader_probe_directory(loader, dir);
201 }
202