pidgin/gtkblist-theme-loader.c

Wed, 21 Sep 2011 06:45:26 +0000

author
Elliott Sales de Andrade <qulogic@pidgin.im>
date
Wed, 21 Sep 2011 06:45:26 +0000
changeset 32575
eb4fc932fae9
parent 31294
73607ab89c6f
child 32414
8c5d1edf9da2
child 32957
b1967ccba26c
permissions
-rw-r--r--

Apply conversation theme when opening the GTK conversation. All the
parsing stuff was moved out of the theme code and into the conversation
code.

Someone (not me!) needs to check the code I commented out and see if
we really need that stuff (and then port it to WebKit/styling).

We also need to determine where to place Template.html and the rest
of our (not-yet-written) default theme.

23656
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
1 /*
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
2 * GTKBlistThemeLoader for Pidgin
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
3 *
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
4 * Pidgin is the legal property of its developers, whose names are too numerous
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
6 * source distribution.
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
7 *
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
11 * (at your option) any later version.
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
12 *
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
16 * GNU General Public License for more details.
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
17 *
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
21 */
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
22
27458
d48df8e69f08 Fix win32 compile
Daniel Atallah <datallah@pidgin.im>
parents: 27446
diff changeset
23 #include "internal.h"
d48df8e69f08 Fix win32 compile
Daniel Atallah <datallah@pidgin.im>
parents: 27446
diff changeset
24
23659
8251d0f67df5 restructured much of the loader and themes for the buddy list, along with a basic trial of group background
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23658
diff changeset
25 #include <stdlib.h>
26785
a4411d5d13d1 PidginBlistTheme now copies all its parameters instead of taking ownership.
Paul Aurich <darkrain42@pidgin.im>
parents: 26781
diff changeset
26 #include <string.h>
23659
8251d0f67df5 restructured much of the loader and themes for the buddy list, along with a basic trial of group background
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23658
diff changeset
27
8251d0f67df5 restructured much of the loader and themes for the buddy list, along with a basic trial of group background
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23658
diff changeset
28 #include "xmlnode.h"
27444
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
29 #include "debug.h"
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
30 #include "util.h"
23660
8637cec033e1 Fixed gtkblist-loader_build to no longer assume xml file is correct, added set methods to gtkblist-theme
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23659
diff changeset
31
24377
8d0bfda8402d renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents: 23972
diff changeset
32 #include "gtkblist-theme-loader.h"
23656
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
33 #include "gtkblist-theme.h"
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
34
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
35 /******************************************************************************
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
36 * Globals
d4acd51c1446 start of blist themes (themes have no effect on display)
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: 25863
diff changeset
38
23663
4ee0d825f3b3 Added layout capabilities to blist themes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23660
diff changeset
39 #define DEFAULT_TEXT_COLOR "black"
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
40
23656
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
41 /*****************************************************************************
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
42 * Buddy List Theme Builder
23656
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
43 *****************************************************************************/
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
44
26803
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
45 static PidginThemeFont *
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
46 pidgin_theme_font_parse(xmlnode *node)
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
47 {
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
48 const char *font;
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
49 const char *colordesc;
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
50 GdkColor color;
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
51
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
52 font = xmlnode_get_attrib(node, "font");
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
53
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
54 if ((colordesc = xmlnode_get_attrib(node, "color")) == NULL ||
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
55 !gdk_color_parse(colordesc, &color))
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
56 gdk_color_parse(DEFAULT_TEXT_COLOR, &color);
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
57
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
58 return pidgin_theme_font_new(font, &color);
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
59 }
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
60
29295
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
61 static GdkColor *
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
62 parse_color(xmlnode *node, const char *tag)
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
63 {
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
64 const char *temp = xmlnode_get_attrib(node, tag);
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
65 GdkColor color;
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
66
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
67 if (temp && gdk_color_parse(temp, &color)) {
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
68 gdk_colormap_alloc_color(gdk_colormap_get_system(), &color, FALSE, TRUE);
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
69 return gdk_color_copy(&color);
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
70 } else {
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
71 return NULL;
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
72 }
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
73 }
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
74
23971
9764690b14f2 Changed PurpleTheme build function to only return PurpleTheme*
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23666
diff changeset
75 static PurpleTheme *
23659
8251d0f67df5 restructured much of the loader and themes for the buddy list, along with a basic trial of group background
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23658
diff changeset
76 pidgin_blist_loader_build(const gchar *dir)
23656
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
77 {
23972
90e0da03c053 theme loader cleanup, and remove a few warnings
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23971
diff changeset
78 xmlnode *root_node = NULL, *sub_node, *sub_sub_node;
27444
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
79 gchar *filename_full, *data = NULL;
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
80 const gchar *temp, *name;
25863
b724badf6cd2 Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <darkrain42@pidgin.im>
parents: 24377
diff changeset
81 gboolean success = TRUE;
29295
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
82 GdkColor *bgcolor, *expanded_bgcolor, *collapsed_bgcolor, *contact_color;
26803
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
83 PidginThemeFont *expanded, *collapsed, *contact, *online, *away, *offline, *idle, *message, *message_nick_said, *status;
26785
a4411d5d13d1 PidginBlistTheme now copies all its parameters instead of taking ownership.
Paul Aurich <darkrain42@pidgin.im>
parents: 26781
diff changeset
84 PidginBlistLayout layout;
23659
8251d0f67df5 restructured much of the loader and themes for the buddy list, along with a basic trial of group background
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23658
diff changeset
85 PidginBlistTheme *theme;
26803
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
86 int i;
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
87 struct {
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
88 const char *tag;
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
89 PidginThemeFont **font;
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
90 } lookups[] = {
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
91 {"contact_text", &contact},
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
92 {"online_text", &online},
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
93 {"away_text", &away},
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
94 {"offline_text", &offline},
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
95 {"idle_text", &idle},
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
96 {"message_text", &message},
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
97 {"message_nick_said_text", &message_nick_said},
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
98 {"status_text", &status},
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
99 {NULL, NULL}
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
100 };
23656
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
101
29308
8de5d48b1581 Fix uninitialized use of these colors, now that they're pointers.
Paul Aurich <darkrain42@pidgin.im>
parents: 29295
diff changeset
102 bgcolor = expanded_bgcolor = collapsed_bgcolor = contact_color = NULL;
26870
517c90cd1d34 Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents: 26803
diff changeset
103 expanded = NULL;
517c90cd1d34 Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents: 26803
diff changeset
104 collapsed = NULL;
517c90cd1d34 Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents: 26803
diff changeset
105 contact = NULL;
517c90cd1d34 Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents: 26803
diff changeset
106 online = NULL;
517c90cd1d34 Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents: 26803
diff changeset
107 away = NULL;
517c90cd1d34 Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents: 26803
diff changeset
108 offline = NULL;
517c90cd1d34 Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents: 26803
diff changeset
109 idle = NULL;
517c90cd1d34 Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents: 26803
diff changeset
110 message = NULL;
517c90cd1d34 Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents: 26803
diff changeset
111 message_nick_said = NULL;
517c90cd1d34 Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents: 26803
diff changeset
112 status = NULL;
517c90cd1d34 Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents: 26803
diff changeset
113
23656
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
114 /* Find the theme file */
23972
90e0da03c053 theme loader cleanup, and remove a few warnings
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23971
diff changeset
115 g_return_val_if_fail(dir != NULL, NULL);
90e0da03c053 theme loader cleanup, and remove a few warnings
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23971
diff changeset
116 filename_full = g_build_filename(dir, "theme.xml", NULL);
90e0da03c053 theme loader cleanup, and remove a few warnings
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23971
diff changeset
117
90e0da03c053 theme loader cleanup, and remove a few warnings
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23971
diff changeset
118 if (g_file_test(filename_full, G_FILE_TEST_IS_REGULAR))
90e0da03c053 theme loader cleanup, and remove a few warnings
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23971
diff changeset
119 root_node = xmlnode_from_file(dir, "theme.xml", "buddy list themes", "blist-loader");
23656
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
120
23972
90e0da03c053 theme loader cleanup, and remove a few warnings
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23971
diff changeset
121 g_free(filename_full);
27444
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
122 if (root_node == NULL)
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
123 return NULL;
23656
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
124
23972
90e0da03c053 theme loader cleanup, and remove a few warnings
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23971
diff changeset
125 sub_node = xmlnode_get_child(root_node, "description");
90e0da03c053 theme loader cleanup, and remove a few warnings
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23971
diff changeset
126 data = xmlnode_get_data(sub_node);
23656
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
127
27444
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
128 name = xmlnode_get_attrib(root_node, "name");
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
129
23659
8251d0f67df5 restructured much of the loader and themes for the buddy list, along with a basic trial of group background
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23658
diff changeset
130 /* <blist> */
27444
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
131 success = name && purple_strequal(xmlnode_get_attrib(root_node, "type"), "pidgin buddy list");
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
132
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
133 if (!success)
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
134 purple_debug_warning("gtkblist-theme-loader", "Missing attribute or problem with the root element\n");
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
135
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
136 if (success) {
29295
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
137 if ((success = (sub_node = xmlnode_get_child(root_node, "blist")) != NULL))
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
138 bgcolor = parse_color(sub_node, "color");
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 29308
diff changeset
139 else
29295
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
140 purple_debug_warning("gtkblist-theme-loader", "Missing or problem with tags: <blist>.\n");
23660
8637cec033e1 Fixed gtkblist-loader_build to no longer assume xml file is correct, added set methods to gtkblist-theme
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23659
diff changeset
141 }
23658
7a1d0db67fcb build function for pidgin buddy list theme loader
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23656
diff changeset
142
7a1d0db67fcb build function for pidgin buddy list theme loader
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23656
diff changeset
143 /* <groups> */
27444
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
144 if (success) {
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
145 if ((success = (sub_node = xmlnode_get_child(root_node, "groups")) != NULL
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
146 && (sub_sub_node = xmlnode_get_child(sub_node, "expanded")) != NULL)) {
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
147 expanded = pidgin_theme_font_parse(sub_sub_node);
29295
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
148 expanded_bgcolor = parse_color(sub_sub_node, "background");
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
149 } else
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
150 purple_debug_warning("gtkblist-theme-loader", "Missing or problem with tags: <groups> <expanded>.\n");
23660
8637cec033e1 Fixed gtkblist-loader_build to no longer assume xml file is correct, added set methods to gtkblist-theme
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23659
diff changeset
151 }
8637cec033e1 Fixed gtkblist-loader_build to no longer assume xml file is correct, added set methods to gtkblist-theme
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23659
diff changeset
152
27444
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
153 if (success) {
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
154 if ((success = sub_node != NULL && (sub_sub_node = xmlnode_get_child(sub_node, "collapsed")) != NULL)) {
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
155 collapsed = pidgin_theme_font_parse(sub_sub_node);
29295
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
156 collapsed_bgcolor = parse_color(sub_sub_node, "background");
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
157 } else
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
158 purple_debug_warning("gtkblist-theme-loader", "Missing or problem with tags: <groups> <collapsed>.\n");
23660
8637cec033e1 Fixed gtkblist-loader_build to no longer assume xml file is correct, added set methods to gtkblist-theme
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23659
diff changeset
159 }
23658
7a1d0db67fcb build function for pidgin buddy list theme loader
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23656
diff changeset
160
7a1d0db67fcb build function for pidgin buddy list theme loader
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23656
diff changeset
161 /* <buddys> */
27444
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
162 if (success) {
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
163 if ((success = (sub_node = xmlnode_get_child(root_node, "buddys")) != NULL &&
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
164 (sub_sub_node = xmlnode_get_child(sub_node, "placement")) != NULL)) {
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
165
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
166 layout.status_icon = (temp = xmlnode_get_attrib(sub_sub_node, "status_icon")) != NULL ? atoi(temp) : 0;
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
167 layout.text = (temp = xmlnode_get_attrib(sub_sub_node, "name")) != NULL ? atoi(temp) : 1;
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
168 layout.emblem = (temp = xmlnode_get_attrib(sub_sub_node, "emblem")) != NULL ? atoi(temp) : 2;
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
169 layout.protocol_icon = (temp = xmlnode_get_attrib(sub_sub_node, "protocol_icon")) != NULL ? atoi(temp) : 3;
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
170 layout.buddy_icon = (temp = xmlnode_get_attrib(sub_sub_node, "buddy_icon")) != NULL ? atoi(temp) : 4;
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
171 layout.show_status = (temp = xmlnode_get_attrib(sub_sub_node, "status_icon")) != NULL ? atoi(temp) != 0 : 1;
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
172
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
173 } else purple_debug_warning("gtkblist-theme-loader", "Missing or problem with tags: <buddys> <placement>.\n");
23660
8637cec033e1 Fixed gtkblist-loader_build to no longer assume xml file is correct, added set methods to gtkblist-theme
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23659
diff changeset
174 }
8637cec033e1 Fixed gtkblist-loader_build to no longer assume xml file is correct, added set methods to gtkblist-theme
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23659
diff changeset
175
27444
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
176 if (success) {
29295
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
177 if ((success = (sub_node != NULL && (sub_sub_node = xmlnode_get_child(sub_node, "background")) != NULL)))
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
178 contact_color = parse_color(sub_sub_node, "color");
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
179 else
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
180 purple_debug_warning("gtkblist-theme-loader", "Missing or problem with tags: <buddys> <background>.\n");
23665
c9944e9b97e1 Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23663
diff changeset
181 }
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
182
26803
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
183 for (i = 0; success && lookups[i].tag; i++) {
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
184 if ((success = (sub_node != NULL &&
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
185 (sub_sub_node = xmlnode_get_child(sub_node, lookups[i].tag)) != NULL))) {
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
186 *(lookups[i].font) = pidgin_theme_font_parse(sub_sub_node);
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
187 } else {
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
188 *(lookups[i].font) = NULL;
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
189 }
23660
8637cec033e1 Fixed gtkblist-loader_build to no longer assume xml file is correct, added set methods to gtkblist-theme
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23659
diff changeset
190 }
8637cec033e1 Fixed gtkblist-loader_build to no longer assume xml file is correct, added set methods to gtkblist-theme
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23659
diff changeset
191
8637cec033e1 Fixed gtkblist-loader_build to no longer assume xml file is correct, added set methods to gtkblist-theme
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23659
diff changeset
192 /* name is required for theme manager */
25863
b724badf6cd2 Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <darkrain42@pidgin.im>
parents: 24377
diff changeset
193 success = (success && xmlnode_get_attrib(root_node, "name") != NULL);
23658
7a1d0db67fcb build function for pidgin buddy list theme loader
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23656
diff changeset
194
7a1d0db67fcb build function for pidgin buddy list theme loader
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23656
diff changeset
195 /* the new theme */
23659
8251d0f67df5 restructured much of the loader and themes for the buddy list, along with a basic trial of group background
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23658
diff changeset
196 theme = g_object_new(PIDGIN_TYPE_BLIST_THEME,
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
197 "type", "blist",
27444
21add455833a Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 26870
diff changeset
198 "name", name,
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
199 "author", xmlnode_get_attrib(root_node, "author"),
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
200 "image", xmlnode_get_attrib(root_node, "image"),
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
201 "directory", dir,
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
202 "description", data,
29295
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
203 "background-color", bgcolor,
26785
a4411d5d13d1 PidginBlistTheme now copies all its parameters instead of taking ownership.
Paul Aurich <darkrain42@pidgin.im>
parents: 26781
diff changeset
204 "layout", &layout,
29295
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
205 "expanded-color", expanded_bgcolor,
26803
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
206 "expanded-text", expanded,
29295
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
207 "collapsed-color", collapsed_bgcolor,
26803
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
208 "collapsed-text", collapsed,
29295
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
209 "contact-color", contact_color,
26803
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
210 "contact", contact,
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
211 "online", online,
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
212 "away", away,
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
213 "offline", offline,
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
214 "idle", idle,
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
215 "message", message,
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
216 "message_nick_said", message_nick_said,
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
217 "status", status, NULL);
23660
8637cec033e1 Fixed gtkblist-loader_build to no longer assume xml file is correct, added set methods to gtkblist-theme
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23659
diff changeset
218
26803
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
219 for (i = 0; lookups[i].tag; i++) {
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
220 if (*lookups[i].font) {
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
221 pidgin_theme_font_free(*lookups[i].font);
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
222 }
d48e945e622f Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26785
diff changeset
223 }
26870
517c90cd1d34 Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents: 26803
diff changeset
224
517c90cd1d34 Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents: 26803
diff changeset
225 pidgin_theme_font_free(expanded);
517c90cd1d34 Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents: 26803
diff changeset
226 pidgin_theme_font_free(collapsed);
517c90cd1d34 Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents: 26803
diff changeset
227
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
228 xmlnode_free(root_node);
23972
90e0da03c053 theme loader cleanup, and remove a few warnings
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23971
diff changeset
229 g_free(data);
90e0da03c053 theme loader cleanup, and remove a few warnings
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23971
diff changeset
230
90e0da03c053 theme loader cleanup, and remove a few warnings
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23971
diff changeset
231 /* malformed xml file - also frees all partial data*/
25863
b724badf6cd2 Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <darkrain42@pidgin.im>
parents: 24377
diff changeset
232 if (!success) {
23660
8637cec033e1 Fixed gtkblist-loader_build to no longer assume xml file is correct, added set methods to gtkblist-theme
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23659
diff changeset
233 g_object_unref(theme);
8637cec033e1 Fixed gtkblist-loader_build to no longer assume xml file is correct, added set methods to gtkblist-theme
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23659
diff changeset
234 theme = NULL;
8637cec033e1 Fixed gtkblist-loader_build to no longer assume xml file is correct, added set methods to gtkblist-theme
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23659
diff changeset
235 }
23665
c9944e9b97e1 Added text and font coloring for buddies, contacts and chats, as well as fix a few small bugs
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23663
diff changeset
236
29295
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
237 if (bgcolor)
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
238 gdk_color_free(bgcolor);
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
239 if (expanded_bgcolor)
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
240 gdk_color_free(expanded_bgcolor);
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
241 if (collapsed_bgcolor)
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
242 gdk_color_free(collapsed_bgcolor);
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
243 if (contact_color)
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
244 gdk_color_free(contact_color);
42c43b85e294 blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27458
diff changeset
245
23971
9764690b14f2 Changed PurpleTheme build function to only return PurpleTheme*
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23666
diff changeset
246 return PURPLE_THEME(theme);
23656
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
247 }
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
248
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
249 /******************************************************************************
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
250 * GObject Stuff
23656
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
251 *****************************************************************************/
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
252
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
253 static void
23972
90e0da03c053 theme loader cleanup, and remove a few warnings
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23971
diff changeset
254 pidgin_blist_theme_loader_class_init(PidginBlistThemeLoaderClass *klass)
23656
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
255 {
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
256 PurpleThemeLoaderClass *loader_klass = PURPLE_THEME_LOADER_CLASS(klass);
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
257
23659
8251d0f67df5 restructured much of the loader and themes for the buddy list, along with a basic trial of group background
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23658
diff changeset
258 loader_klass->purple_theme_loader_build = pidgin_blist_loader_build;
23656
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
259 }
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
260
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
261 GType
23972
90e0da03c053 theme loader cleanup, and remove a few warnings
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents: 23971
diff changeset
262 pidgin_blist_theme_loader_get_type(void)
23656
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
263 {
25875
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
264 static GType type = 0;
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
265 if (type == 0) {
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
266 static const GTypeInfo info = {
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
267 sizeof(PidginBlistThemeLoaderClass),
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
268 NULL, /* base_init */
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
269 NULL, /* base_finalize */
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
270 (GClassInitFunc)pidgin_blist_theme_loader_class_init, /* class_init */
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
271 NULL, /* class_finalize */
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
272 NULL, /* class_data */
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
273 sizeof(PidginBlistThemeLoader),
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
274 0, /* n_preallocs */
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
275 NULL, /* instance_init */
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
276 NULL, /* value table */
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
277 };
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
278 type = g_type_register_static(PURPLE_TYPE_THEME_LOADER,
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
279 "PidginBlistThemeLoader", &info, 0);
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
280 }
a98b16817658 Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents: 25863
diff changeset
281 return type;
23656
d4acd51c1446 start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff changeset
282 }

mercurial