diff 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
line wrap: on
line diff
--- a/libpurple/theme-loader.c	Tue Feb 28 07:10:15 2012 +0000
+++ b/libpurple/theme-loader.c	Sat Mar 03 06:39:49 2012 +0000
@@ -85,6 +85,21 @@
 	}
 }
 
+static gboolean
+purple_theme_loader_probe_directory(PurpleThemeLoader *loader, const gchar *dir)
+{
+	const gchar *type = purple_theme_loader_get_type_string(loader);
+	char *themedir;
+	gboolean result;
+
+	/* Checks for directory as $root/purple/$type */
+	themedir = g_build_filename(dir, "purple", type, NULL);
+	result = g_file_test(themedir, G_FILE_TEST_IS_DIR);
+	g_free(themedir);
+
+	return result;
+}
+
 static void
 purple_theme_loader_finalize(GObject *obj)
 {
@@ -175,3 +190,13 @@
 {
 	return PURPLE_THEME_LOADER_GET_CLASS(loader)->purple_theme_loader_build(dir);
 }
+
+gboolean
+purple_theme_loader_probe(PurpleThemeLoader *loader, const gchar *dir)
+{
+	if (PURPLE_THEME_LOADER_GET_CLASS(loader)->probe_directory != NULL)
+		return PURPLE_THEME_LOADER_GET_CLASS(loader)->probe_directory(dir);
+	else
+		return purple_theme_loader_probe_directory(loader, dir);
+}
+