libpurple/theme.c

Wed, 13 May 2009 20:29:03 +0000

author
Marcus Lundblad <malu@pidgin.im>
date
Wed, 13 May 2009 20:29:03 +0000
changeset 27110
05ca719b901b
parent 25875
a98b16817658
child 27266
934b87e749ab
permissions
-rw-r--r--

Support custom smileys in MUCs (when all participants support BoB and a maximum
of 10 participants are in the chat).
Always announce support for BoB, since disable custom smileys will still turn
off fetching them, and BoB can be used for other purposes further on.

23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
1 /*
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
2 * Themes for libpurple
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
3 *
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
4 * Pidgin is the legal property of its developers, whose names are too numerous
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
6 * source distribution.
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
7 *
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
11 * (at your option) any later version.
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
12 *
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
16 * GNU General Public License for more details.
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
17 *
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
21 */
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
22
25005
e86ff053dd10 Fix some theme manager assertion failures.
Richard Laager <rlaager@pidgin.im>
parents: 23969
diff changeset
23 #include <glib.h>
e86ff053dd10 Fix some theme manager assertion failures.
Richard Laager <rlaager@pidgin.im>
parents: 23969
diff changeset
24 #include <string.h>
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
25
25005
e86ff053dd10 Fix some theme manager assertion failures.
Richard Laager <rlaager@pidgin.im>
parents: 23969
diff changeset
26 #include "internal.h"
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
27 #include "theme.h"
23969
0c3fe3967b97 fixed some leaks and made theme loading safer
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23664
diff changeset
28 #include "util.h"
0c3fe3967b97 fixed some leaks and made theme loading safer
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23664
diff changeset
29
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
30 #define PURPLE_THEME_GET_PRIVATE(PurpleTheme) \
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
31 ((PurpleThemePrivate *) ((PurpleTheme)->priv))
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
32
23642
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
33 void purple_theme_set_type_string(PurpleTheme *theme, const gchar *type);
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
34
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
35 /******************************************************************************
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
36 * Structs
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
37 *****************************************************************************/
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
38
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
39 typedef struct {
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
40 gchar *name;
23637
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
41 gchar *description;
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
42 gchar *author;
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
43 gchar *type;
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
44 gchar *dir;
23653
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
45 gchar *img;
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
46 } PurpleThemePrivate;
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
47
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
48 /******************************************************************************
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
49 * Globals
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
50 *****************************************************************************/
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
51
23642
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
52 static GObjectClass *parent_class = NULL;
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
53
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
54 /******************************************************************************
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
55 * Enums
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
56 *****************************************************************************/
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
57
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
58 enum {
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
59 PROP_ZERO = 0,
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
60 PROP_NAME,
23664
cf938922baa5 Changed how the prefs handle themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23653
diff changeset
61 PROP_DESCRIPTION,
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
62 PROP_AUTHOR,
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
63 PROP_TYPE,
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
64 PROP_DIR,
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
65 PROP_IMAGE
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
66 };
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
67
23633
b7d99d231b93 Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23632
diff changeset
68 /******************************************************************************
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
69 * GObject Stuff
23633
b7d99d231b93 Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23632
diff changeset
70 *****************************************************************************/
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
71
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
72 static void
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
73 purple_theme_get_property(GObject *obj, guint param_id, GValue *value,
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
74 GParamSpec *psec)
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
75 {
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
76 PurpleTheme *theme = PURPLE_THEME(obj);
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
77
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
78 switch (param_id) {
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
79 case PROP_NAME:
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
80 g_value_set_string(value, purple_theme_get_name(theme));
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
81 break;
23664
cf938922baa5 Changed how the prefs handle themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23653
diff changeset
82 case PROP_DESCRIPTION:
23637
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
83 g_value_set_string(value, purple_theme_get_description(theme));
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
84 break;
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
85 case PROP_AUTHOR:
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
86 g_value_set_string(value, purple_theme_get_author(theme));
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
87 break;
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
88 case PROP_TYPE:
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
89 g_value_set_string(value, purple_theme_get_type_string(theme));
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
90 break;
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
91 case PROP_DIR:
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
92 g_value_set_string(value, purple_theme_get_dir(theme));
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
93 break;
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
94 case PROP_IMAGE:
23653
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
95 g_value_set_string(value, purple_theme_get_image(theme));
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
96 break;
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
97 default:
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
98 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, psec);
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
99 break;
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
100 }
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
101 }
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
102
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
103 static void
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
104 purple_theme_set_property(GObject *obj, guint param_id, const GValue *value,
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
105 GParamSpec *psec)
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
106 {
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
107 PurpleTheme *theme = PURPLE_THEME(obj);
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
108
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
109 switch (param_id) {
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
110 case PROP_NAME:
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
111 purple_theme_set_name(theme, g_value_get_string(value));
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
112 break;
23664
cf938922baa5 Changed how the prefs handle themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23653
diff changeset
113 case PROP_DESCRIPTION:
23637
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
114 purple_theme_set_description(theme, g_value_get_string(value));
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
115 break;
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
116 case PROP_AUTHOR:
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
117 purple_theme_set_author(theme, g_value_get_string(value));
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
118 break;
23642
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
119 case PROP_TYPE:
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
120 purple_theme_set_type_string(theme, g_value_get_string(value));
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
121 break;
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
122 case PROP_DIR:
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
123 purple_theme_set_dir(theme, g_value_get_string(value));
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
124 break;
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
125 case PROP_IMAGE:
23653
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
126 purple_theme_set_image(theme, g_value_get_string(value));
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
127 break;
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
128 default:
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
129 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, psec);
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
130 break;
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
131 }
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
132 }
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
133
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
134 static void
23647
b856721ba8dd more gobject fixed
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23646
diff changeset
135 purple_theme_init(GTypeInstance *instance,
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
136 gpointer klass)
23647
b856721ba8dd more gobject fixed
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23646
diff changeset
137 {
23653
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
138 PurpleTheme *theme = PURPLE_THEME(instance);
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
139 theme->priv = g_new0(PurpleThemePrivate, 1);
23647
b856721ba8dd more gobject fixed
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23646
diff changeset
140 }
b856721ba8dd more gobject fixed
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23646
diff changeset
141
b856721ba8dd more gobject fixed
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23646
diff changeset
142 static void
23642
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
143 purple_theme_finalize(GObject *obj)
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
144 {
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
145 PurpleTheme *theme = PURPLE_THEME(obj);
23642
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
146 PurpleThemePrivate *priv = PURPLE_THEME_GET_PRIVATE(theme);
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
147
23642
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
148 g_free(priv->name);
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
149 g_free(priv->description);
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
150 g_free(priv->author);
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
151 g_free(priv->type);
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
152 g_free(priv->dir);
23653
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
153 g_free(priv->img);
23642
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
154
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
155 G_OBJECT_CLASS (parent_class)->finalize (obj);
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
156 }
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
157
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
158 static void
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
159 purple_theme_class_init(PurpleThemeClass *klass)
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
160 {
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
161 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
162 GParamSpec *pspec;
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
163
23642
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
164 parent_class = g_type_class_peek_parent(klass);
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
165
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
166 obj_class->get_property = purple_theme_get_property;
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
167 obj_class->set_property = purple_theme_set_property;
23642
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
168 obj_class->finalize = purple_theme_finalize;
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
169
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
170 /* NAME */
23647
b856721ba8dd more gobject fixed
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23646
diff changeset
171 pspec = g_param_spec_string("name", "Name",
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
172 "The name of the theme",
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
173 NULL,
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
174 G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
175 g_object_class_install_property(obj_class, PROP_NAME, pspec);
23664
cf938922baa5 Changed how the prefs handle themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23653
diff changeset
176
cf938922baa5 Changed how the prefs handle themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23653
diff changeset
177 /* DESCRIPTION */
23647
b856721ba8dd more gobject fixed
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23646
diff changeset
178 pspec = g_param_spec_string("description", "Description",
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
179 "The description of the theme",
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
180 NULL,
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
181 G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
23664
cf938922baa5 Changed how the prefs handle themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23653
diff changeset
182 g_object_class_install_property(obj_class, PROP_DESCRIPTION, pspec);
cf938922baa5 Changed how the prefs handle themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23653
diff changeset
183
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
184 /* AUTHOR */
23647
b856721ba8dd more gobject fixed
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23646
diff changeset
185 pspec = g_param_spec_string("author", "Author",
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
186 "The author of the theme",
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
187 NULL,
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
188 G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
189 g_object_class_install_property(obj_class, PROP_AUTHOR, pspec);
23664
cf938922baa5 Changed how the prefs handle themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23653
diff changeset
190
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
191 /* TYPE STRING (read only) */
23647
b856721ba8dd more gobject fixed
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23646
diff changeset
192 pspec = g_param_spec_string("type", "Type",
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
193 "The string represtenting the type of the theme",
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
194 NULL,
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
195 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
196 g_object_class_install_property(obj_class, PROP_TYPE, pspec);
23664
cf938922baa5 Changed how the prefs handle themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23653
diff changeset
197
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
198 /* DIRECTORY */
23647
b856721ba8dd more gobject fixed
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23646
diff changeset
199 pspec = g_param_spec_string("directory", "Directory",
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
200 "The directory that contains the theme and all its files",
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
201 NULL,
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
202 G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
203 g_object_class_install_property(obj_class, PROP_DIR, pspec);
23664
cf938922baa5 Changed how the prefs handle themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23653
diff changeset
204
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
205 /* PREVIEW IMAGE */
23653
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
206 pspec = g_param_spec_string("image", "Image",
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
207 "A preview image of the theme",
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
208 NULL,
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
209 G_PARAM_READWRITE);
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
210 g_object_class_install_property(obj_class, PROP_IMAGE, pspec);
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
211 }
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
212
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
213
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
214 GType
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
215 purple_theme_get_type(void)
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
216 {
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
217 static GType type = 0;
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
218 if (type == 0) {
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
219 static const GTypeInfo info = {
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
220 sizeof(PurpleThemeClass),
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
221 NULL, /* base_init */
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
222 NULL, /* base_finalize */
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
223 (GClassInitFunc)purple_theme_class_init, /* class_init */
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
224 NULL, /* class_finalize */
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
225 NULL, /* class_data */
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
226 sizeof(PurpleTheme),
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
227 0, /* n_preallocs */
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
228 purple_theme_init, /* instance_init */
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
229 NULL, /* value table */
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
230 };
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
231 type = g_type_register_static (G_TYPE_OBJECT,
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
232 "PurpleTheme", &info, G_TYPE_FLAG_ABSTRACT);
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
233 }
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
234 return type;
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
235 }
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
236
23969
0c3fe3967b97 fixed some leaks and made theme loading safer
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23664
diff changeset
237 /******************************************************************************
0c3fe3967b97 fixed some leaks and made theme loading safer
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23664
diff changeset
238 * Helper Functions
0c3fe3967b97 fixed some leaks and made theme loading safer
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23664
diff changeset
239 *****************************************************************************/
0c3fe3967b97 fixed some leaks and made theme loading safer
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23664
diff changeset
240
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
241 static gchar *
23969
0c3fe3967b97 fixed some leaks and made theme loading safer
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23664
diff changeset
242 theme_clean_text(const gchar *text)
0c3fe3967b97 fixed some leaks and made theme loading safer
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23664
diff changeset
243 {
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
244 gchar *clean_text = g_markup_escape_text(text, -1);
23969
0c3fe3967b97 fixed some leaks and made theme loading safer
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23664
diff changeset
245 g_strdelimit(clean_text, "\n", ' ');
0c3fe3967b97 fixed some leaks and made theme loading safer
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23664
diff changeset
246 purple_str_strip_char(clean_text, '\r');
0c3fe3967b97 fixed some leaks and made theme loading safer
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23664
diff changeset
247 return clean_text;
0c3fe3967b97 fixed some leaks and made theme loading safer
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23664
diff changeset
248 }
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
249
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
250 /*****************************************************************************
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
251 * Public API function
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
252 *****************************************************************************/
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
253
23653
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
254 const gchar *
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
255 purple_theme_get_name(PurpleTheme *theme)
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
256 {
23638
c3e616f3abb0 changed the purple theme formatting a bit (minor)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23637
diff changeset
257 PurpleThemePrivate *priv;
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
258
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
259 g_return_val_if_fail(PURPLE_IS_THEME(theme), NULL);
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
260
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
261 priv = PURPLE_THEME_GET_PRIVATE(theme);
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
262 return priv->name;
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
263 }
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
264
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
265 void
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
266 purple_theme_set_name(PurpleTheme *theme, const gchar *name)
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
267 {
23638
c3e616f3abb0 changed the purple theme formatting a bit (minor)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23637
diff changeset
268 PurpleThemePrivate *priv;
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
269
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
270 g_return_if_fail(PURPLE_IS_THEME(theme));
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
271
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
272 priv = PURPLE_THEME_GET_PRIVATE(theme);
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
273
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
274 g_free(priv->name);
23969
0c3fe3967b97 fixed some leaks and made theme loading safer
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23664
diff changeset
275 priv->name = theme_clean_text(name);
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
276 }
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
277
23653
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
278 const gchar *
23637
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
279 purple_theme_get_description(PurpleTheme *theme)
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
280 {
23638
c3e616f3abb0 changed the purple theme formatting a bit (minor)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23637
diff changeset
281 PurpleThemePrivate *priv;
23637
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
282
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
283 g_return_val_if_fail(PURPLE_IS_THEME(theme), NULL);
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
284
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
285 priv = PURPLE_THEME_GET_PRIVATE(theme);
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
286 return priv->description;
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
287 }
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
288
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
289 void
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
290 purple_theme_set_description(PurpleTheme *theme, const gchar *description)
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
291 {
23638
c3e616f3abb0 changed the purple theme formatting a bit (minor)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23637
diff changeset
292 PurpleThemePrivate *priv;
23637
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
293
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
294 g_return_if_fail(PURPLE_IS_THEME(theme));
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
295
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
296 priv = PURPLE_THEME_GET_PRIVATE(theme);
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
297
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
298 g_free(priv->description);
23969
0c3fe3967b97 fixed some leaks and made theme loading safer
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23664
diff changeset
299 priv->description = theme_clean_text(description);
23637
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
300 }
808f8f699af0 Added description to theme abstract class
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23633
diff changeset
301
23653
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
302 const gchar *
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
303 purple_theme_get_author(PurpleTheme *theme)
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
304 {
23638
c3e616f3abb0 changed the purple theme formatting a bit (minor)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23637
diff changeset
305 PurpleThemePrivate *priv;
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
306
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
307 g_return_val_if_fail(PURPLE_IS_THEME(theme), NULL);
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
308
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
309 priv = PURPLE_THEME_GET_PRIVATE(theme);
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
310 return priv->author;
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
311 }
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
312
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
313 void
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
314 purple_theme_set_author(PurpleTheme *theme, const gchar *author)
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
315 {
23638
c3e616f3abb0 changed the purple theme formatting a bit (minor)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23637
diff changeset
316 PurpleThemePrivate *priv;
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
317
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
318 g_return_if_fail(PURPLE_IS_THEME(theme));
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
319
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
320 priv = PURPLE_THEME_GET_PRIVATE(theme);
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
321
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
322 g_free(priv->author);
23969
0c3fe3967b97 fixed some leaks and made theme loading safer
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23664
diff changeset
323 priv->author = theme_clean_text(author);
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
324 }
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
325
23653
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
326 const gchar *
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
327 purple_theme_get_type_string(PurpleTheme *theme)
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
328 {
23638
c3e616f3abb0 changed the purple theme formatting a bit (minor)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23637
diff changeset
329 PurpleThemePrivate *priv;
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
330
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
331 g_return_val_if_fail(PURPLE_IS_THEME(theme), NULL);
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
332
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
333 priv = PURPLE_THEME_GET_PRIVATE(theme);
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
334 return priv->type;
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
335 }
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
336
23642
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
337 /* < private > */
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
338 void
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
339 purple_theme_set_type_string(PurpleTheme *theme, const gchar *type)
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
340 {
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
341 PurpleThemePrivate *priv;
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
342
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
343 g_return_if_fail(PURPLE_IS_THEME(theme));
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
344
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
345 priv = PURPLE_THEME_GET_PRIVATE(theme);
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
346
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
347 g_free(priv->type);
23653
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
348 priv->type = g_strdup(type);
23642
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
349 }
ea82d96e4ebd Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23638
diff changeset
350
23653
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
351 const gchar *
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
352 purple_theme_get_dir(PurpleTheme *theme)
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
353 {
23638
c3e616f3abb0 changed the purple theme formatting a bit (minor)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23637
diff changeset
354 PurpleThemePrivate *priv;
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
355
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
356 g_return_val_if_fail(PURPLE_IS_THEME(theme), NULL);
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
357
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
358 priv = PURPLE_THEME_GET_PRIVATE(theme);
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
359 return priv->dir;
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
360 }
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
361
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
362 void
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
363 purple_theme_set_dir(PurpleTheme *theme, const gchar *dir)
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
364 {
23638
c3e616f3abb0 changed the purple theme formatting a bit (minor)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23637
diff changeset
365 PurpleThemePrivate *priv;
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
366
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
367 g_return_if_fail(PURPLE_IS_THEME(theme));
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
368
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
369 priv = PURPLE_THEME_GET_PRIVATE(theme);
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
370
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
371 g_free(priv->dir);
23653
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
372 priv->dir = g_strdup(dir);
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
373 }
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
374
23653
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
375 const gchar *
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
376 purple_theme_get_image(PurpleTheme *theme)
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
377 {
23638
c3e616f3abb0 changed the purple theme formatting a bit (minor)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23637
diff changeset
378 PurpleThemePrivate *priv;
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
379
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
380 g_return_val_if_fail(PURPLE_IS_THEME(theme), NULL);
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
381
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
382 priv = PURPLE_THEME_GET_PRIVATE(theme);
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
383
23653
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
384 return priv->img;
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
385 }
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
386
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
387 gchar *
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
388 purple_theme_get_image_full(PurpleTheme *theme)
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
389 {
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
390 const gchar *filename = purple_theme_get_image(theme);
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
391
23653
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
392 g_return_val_if_fail(filename, NULL);
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
393
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
394 return g_build_filename(purple_theme_get_dir(PURPLE_THEME(theme)), filename, NULL);
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
395 }
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
396
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
397 void
23653
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
398 purple_theme_set_image(PurpleTheme *theme, const gchar *img)
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25005
diff changeset
399 {
23638
c3e616f3abb0 changed the purple theme formatting a bit (minor)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23637
diff changeset
400 PurpleThemePrivate *priv;
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
401
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
402 g_return_if_fail(PURPLE_IS_THEME(theme));
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
403
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
404 priv = PURPLE_THEME_GET_PRIVATE(theme);
23632
d0470bcd0b7e fixed formatting and get/set properties
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23631
diff changeset
405
23653
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
406 g_free(priv->img);
79934bf9a349 Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23647
diff changeset
407 priv->img = g_strdup(img);
23631
d545d296d62c Added basic theme for libpurple to be used by theme manager and loaders (abstract gobject)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
408 }

mercurial