Wed, 13 May 2009 20:29:03 +0000
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.
|
23633
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
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 | * ThemeLoaders for libpurple |
|
23633
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
3 | * |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
4 | * Pidgin is the legal property of its developers, whose names are too numerous |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
5 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
6 | * source distribution. |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
7 | * |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
8 | * This program is free software; you can redistribute it and/or modify |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
9 | * it under the terms of the GNU General Public License as published by |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
10 | * the Free Software Foundation; either version 2 of the License, or |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
11 | * (at your option) any later version. |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
12 | * |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
13 | * This program is distributed in the hope that it will be useful, |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
16 | * GNU General Public License for more details. |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
17 | * |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
18 | * You should have received a copy of the GNU General Public License |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
19 | * along with this program; if not, write to the Free Software |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
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:
23971
diff
changeset
|
23 | #include "internal.h" |
|
23633
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
24 | #include "theme-loader.h" |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
25 | |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
26 | #define PURPLE_THEME_LOADER_GET_PRIVATE(PurpleThemeLoader) \ |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
27 | ((PurpleThemeLoaderPrivate *) ((PurpleThemeLoader)->priv)) |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
28 | |
|
23642
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
29 | void purple_theme_loader_set_type_string(PurpleThemeLoader *loader, const gchar *type); |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
30 | |
|
23633
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
31 | /****************************************************************************** |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
32 | * Structs |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
33 | *****************************************************************************/ |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
34 | typedef struct { |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
35 | gchar *type; |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
36 | } PurpleThemeLoaderPrivate; |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
37 | |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
38 | /****************************************************************************** |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
39 | * Globals |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
40 | *****************************************************************************/ |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
41 | |
|
23642
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
42 | static GObjectClass *parent_class = NULL; |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
43 | |
|
23633
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
44 | /****************************************************************************** |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
45 | * Enums |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
46 | *****************************************************************************/ |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
47 | |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
48 | enum { |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
49 | PROP_ZERO = 0, |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
50 | PROP_TYPE, |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
51 | }; |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
52 | |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
53 | /****************************************************************************** |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
54 | * GObject Stuff * |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
55 | *****************************************************************************/ |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
56 | |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
57 | static void |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
58 | purple_theme_loader_get_property(GObject *obj, guint param_id, GValue *value, |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
59 | GParamSpec *psec) |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
60 | { |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
61 | PurpleThemeLoader *theme_loader = PURPLE_THEME_LOADER(obj); |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
62 | |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
63 | switch (param_id) { |
|
23633
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
64 | case PROP_TYPE: |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
65 | g_value_set_string(value, purple_theme_loader_get_type_string(theme_loader)); |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
66 | default: |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
67 | G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, psec); |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
68 | break; |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
69 | } |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
70 | } |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
71 | |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
72 | static void |
|
23642
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
73 | purple_theme_loader_set_property(GObject *obj, guint param_id, const GValue *value, |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
74 | GParamSpec *psec) |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
75 | { |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
76 | PurpleThemeLoader *loader = PURPLE_THEME_LOADER(obj); |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
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) { |
|
23642
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
79 | case PROP_TYPE: |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
80 | purple_theme_loader_set_type_string(loader, g_value_get_string(value)); |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
81 | break; |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
82 | default: |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
83 | G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, psec); |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
84 | break; |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
85 | } |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
86 | } |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
87 | |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
88 | static void |
|
23647
b856721ba8dd
more gobject fixed
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23646
diff
changeset
|
89 | purple_theme_loader_init(GTypeInstance *instance, |
|
b856721ba8dd
more gobject fixed
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23646
diff
changeset
|
90 | gpointer klass) |
|
b856721ba8dd
more gobject fixed
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23646
diff
changeset
|
91 | { |
|
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
|
92 | PurpleThemeLoader *loader = PURPLE_THEME_LOADER(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
|
93 | loader->priv = g_new0(PurpleThemeLoaderPrivate, 1); |
|
23647
b856721ba8dd
more gobject fixed
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23646
diff
changeset
|
94 | } |
|
b856721ba8dd
more gobject fixed
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23646
diff
changeset
|
95 | |
|
b856721ba8dd
more gobject fixed
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23646
diff
changeset
|
96 | static void |
|
23642
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
97 | purple_theme_loader_finalize(GObject *obj) |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
98 | { |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
99 | PurpleThemeLoader *loader = PURPLE_THEME_LOADER(obj); |
|
23642
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
100 | PurpleThemeLoaderPrivate *priv = PURPLE_THEME_LOADER_GET_PRIVATE(loader); |
|
23645
6901039a86fb
Fixed purple sound loader class init function (bug on startup) and added shell sound theme selector
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23644
diff
changeset
|
101 | |
|
23642
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
102 | g_free(priv->type); |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
103 | |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
104 | parent_class->finalize(obj); |
|
23642
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
105 | } |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
106 | |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
107 | static void |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
108 | purple_theme_loader_class_init(PurpleThemeLoaderClass *klass) |
|
23633
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
109 | { |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
110 | GObjectClass *obj_class = G_OBJECT_CLASS(klass); |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
111 | GParamSpec *pspec; |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
112 | |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
113 | parent_class = g_type_class_peek_parent(klass); |
|
23633
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
114 | |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
115 | obj_class->get_property = purple_theme_loader_get_property; |
|
23642
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
116 | obj_class->set_property = purple_theme_loader_set_property; |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
117 | obj_class->finalize = purple_theme_loader_finalize; |
|
23645
6901039a86fb
Fixed purple sound loader class init function (bug on startup) and added shell sound theme selector
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23644
diff
changeset
|
118 | |
|
23633
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
119 | /* TYPE STRING (read only) */ |
|
23646
ec4f4e6508b1
fixed some gobject stuff
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23645
diff
changeset
|
120 | pspec = g_param_spec_string("type", "Type", |
|
23633
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
121 | "The string represtenting the type of the theme", |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
122 | NULL, |
|
23646
ec4f4e6508b1
fixed some gobject stuff
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23645
diff
changeset
|
123 | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY); |
|
23633
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
124 | g_object_class_install_property(obj_class, PROP_TYPE, pspec); |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
125 | } |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
126 | |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
127 | GType |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
128 | purple_theme_loader_get_type(void) |
|
23633
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
129 | { |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
130 | static GType type = 0; |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
131 | if (type == 0) { |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
132 | static const GTypeInfo info = { |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
133 | sizeof(PurpleThemeLoaderClass), |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
134 | NULL, /* base_init */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
135 | NULL, /* base_finalize */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
136 | (GClassInitFunc)purple_theme_loader_class_init, /* class_init */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
137 | NULL, /* class_finalize */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
138 | NULL, /* class_data */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
139 | sizeof(PurpleThemeLoader), |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
140 | 0, /* n_preallocs */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
141 | purple_theme_loader_init, /* instance_init */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
142 | NULL, /* value table */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
143 | }; |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
144 | 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
|
145 | "PurpleThemeLoader", &info, G_TYPE_FLAG_ABSTRACT); |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
146 | } |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
147 | return type; |
|
23633
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
148 | } |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
149 | |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
150 | /***************************************************************************** |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
151 | * Public API functions |
|
23633
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
152 | *****************************************************************************/ |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
153 | |
|
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
|
154 | const gchar * |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25005
diff
changeset
|
155 | purple_theme_loader_get_type_string(PurpleThemeLoader *theme_loader) |
|
23633
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
156 | { |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
157 | PurpleThemeLoaderPrivate *priv = NULL; |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
158 | |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
159 | g_return_val_if_fail(PURPLE_IS_THEME_LOADER(theme_loader), NULL); |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
160 | |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
161 | priv = PURPLE_THEME_LOADER_GET_PRIVATE(theme_loader); |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
162 | return priv->type; |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
163 | } |
|
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
164 | |
|
23642
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
165 | /* < private > */ |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
166 | void |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
167 | purple_theme_loader_set_type_string(PurpleThemeLoader *loader, const gchar *type) |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
168 | { |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
169 | PurpleThemeLoaderPrivate *priv; |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
170 | |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
171 | g_return_if_fail(PURPLE_IS_THEME_LOADER(loader)); |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
172 | |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
173 | priv = PURPLE_THEME_LOADER_GET_PRIVATE(loader); |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
174 | |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
175 | 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
|
176 | priv->type = g_strdup(type); |
|
23642
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
177 | } |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
178 | |
|
23971
9764690b14f2
Changed PurpleTheme build function to only return PurpleTheme*
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23970
diff
changeset
|
179 | PurpleTheme * |
|
23970
85dcf9218f63
fixes initialize icon theme bug by pre-loading the theme
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23653
diff
changeset
|
180 | purple_theme_loader_build(PurpleThemeLoader *loader, const gchar *dir) |
|
23633
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
181 | { |
|
23642
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23640
diff
changeset
|
182 | return PURPLE_THEME_LOADER_GET_CLASS(loader)->purple_theme_loader_build(dir); |
|
23633
b7d99d231b93
Added theme loader class abstract whose only (current/planned) function is to build themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
183 | } |