diff libpurple/theme.c @ 25080:8f397c8e728a

Added description to theme abstract class
author Justin Rodriguez <ffdragon@soc.pidgin.im>
date Wed, 11 Jun 2008 18:32:12 +0000
parents 68b7691aa3ed
children 8793058bc318
line wrap: on
line diff
--- a/libpurple/theme.c	Wed Jun 11 03:51:47 2008 +0000
+++ b/libpurple/theme.c	Wed Jun 11 18:32:12 2008 +0000
@@ -32,6 +32,7 @@
  *****************************************************************************/
 typedef struct {
 	gchar *name;
+	gchar *description;
 	gchar *author;
 	gchar *type;
 	gchar *dir;
@@ -46,6 +47,7 @@
  * Enums
  *****************************************************************************/
 #define PROP_NAME_S "name"
+#define PROP_DESCRIPION_S "description"
 #define PROP_AUTHOR_S "author"
 #define PROP_TYPE_S "type"
 #define PROP_DIR_S "dir"
@@ -54,6 +56,7 @@
 enum {
 	PROP_ZERO = 0,
 	PROP_NAME,
+	PROP_DESCRIPION,
 	PROP_AUTHOR,
 	PROP_TYPE,
 	PROP_DIR,
@@ -75,6 +78,9 @@
 		case PROP_NAME:
 			g_value_set_string(value, purple_theme_get_name(theme));
 			break;
+		case PROP_DESCRIPION:
+			g_value_set_string(value, purple_theme_get_description(theme));
+			break;
 		case PROP_AUTHOR:
 			g_value_set_string(value, purple_theme_get_author(theme));
 			break;
@@ -103,6 +109,9 @@
 		case PROP_NAME:
 			purple_theme_set_name(theme, g_value_get_string(value));
 			break;
+		case PROP_DESCRIPION:
+			purple_theme_set_description(theme, g_value_get_string(value));
+			break;
 		case PROP_AUTHOR:
 			purple_theme_set_author(theme, g_value_get_string(value));
 			break;
@@ -136,6 +145,12 @@
 				    NULL,
 				    G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
 	g_object_class_install_property(obj_class, PROP_NAME, pspec);
+	/* DESCRIPION */
+	pspec = g_param_spec_string(PROP_DESCRIPION_S, "Description",
+				    "The description of the theme",
+				    NULL,
+				    G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+	g_object_class_install_property(obj_class, PROP_DESCRIPION, pspec);
 	/* AUTHOR */
 	pspec = g_param_spec_string(PROP_AUTHOR_S, "Author",
 				    "The author of the theme",
@@ -216,6 +231,30 @@
 }
 
 gchar *
+purple_theme_get_description(PurpleTheme *theme)
+{
+	PurpleThemePrivate *priv = NULL;
+
+	g_return_val_if_fail(PURPLE_IS_THEME(theme), NULL);
+
+	priv = PURPLE_THEME_GET_PRIVATE(theme);
+	return priv->description;
+}
+
+void
+purple_theme_set_description(PurpleTheme *theme, const gchar *description)
+{
+	PurpleThemePrivate *priv = NULL;
+
+	g_return_if_fail(PURPLE_IS_THEME(theme));
+
+	priv = PURPLE_THEME_GET_PRIVATE(theme);
+
+	g_free(priv->description);
+	priv->description = g_strdup (description);
+}
+
+gchar *
 purple_theme_get_author(PurpleTheme *theme)
 {
 	PurpleThemePrivate *priv = NULL;