Mercurial > pidgin.yaz
annotate pidgin/gtkblist-theme-loader.c @ 28843:dd5026ca598a
When restricting a buddy on both the Allow and Block lists to just one
list, directly change the internal structure instead of attempting to ask
the server to remove the buddy from the Block list. Obviously, we haven't
yet sent the server our list, so it won't be able to remove anyone from it.
(Also) Fixes #10613.
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Fri, 30 Oct 2009 06:46:11 +0000 |
parents | f1385d462205 |
children | 1956b27ed87c |
rev | line source |
---|---|
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1 /* |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
2 * GTKBlistThemeLoader for Pidgin |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
3 * |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
4 * Pidgin is the legal property of its developers, whose names are too numerous |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
5 * to list here. Please refer to the COPYRIGHT file distributed with this |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
6 * source distribution. |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
7 * |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
8 * This program is free software; you can redistribute it and/or modify |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
9 * it under the terms of the GNU General Public License as published by |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
10 * the Free Software Foundation; either version 2 of the License, or |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
11 * (at your option) any later version. |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
12 * |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
13 * This program is distributed in the hope that it will be useful, |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
16 * GNU General Public License for more details. |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
17 * |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
18 * You should have received a copy of the GNU General Public License |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
19 * along with this program; if not, write to the Free Software |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
21 */ |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
22 |
27298
f1385d462205
Fix win32 compile
Daniel Atallah <daniel.atallah@gmail.com>
parents:
27286
diff
changeset
|
23 #include "internal.h" |
f1385d462205
Fix win32 compile
Daniel Atallah <daniel.atallah@gmail.com>
parents:
27286
diff
changeset
|
24 |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
25 #include <stdlib.h> |
26636
548871664d3b
PidginBlistTheme now copies all its parameters instead of taking ownership.
Paul Aurich <paul@darkrain42.org>
parents:
26632
diff
changeset
|
26 #include <string.h> |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
27 |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
28 #include "xmlnode.h" |
27284
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
29 #include "debug.h" |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
30 #include "util.h" |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
31 |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
32 #include "gtkblist-theme-loader.h" |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
33 #include "gtkblist-theme.h" |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
34 |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
35 /****************************************************************************** |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
36 * Globals |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
37 *****************************************************************************/ |
25402
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
38 |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
39 #define DEFAULT_TEXT_COLOR "black" |
25402
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
40 |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
41 /***************************************************************************** |
25402
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
42 * Buddy List Theme Builder |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
43 *****************************************************************************/ |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
44 |
26654
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
45 static PidginThemeFont * |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
46 pidgin_theme_font_parse(xmlnode *node) |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
47 { |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
48 const char *font; |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
49 const char *colordesc; |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
50 GdkColor color; |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
51 |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
52 font = xmlnode_get_attrib(node, "font"); |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
53 |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
54 if ((colordesc = xmlnode_get_attrib(node, "color")) == NULL || |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
55 !gdk_color_parse(colordesc, &color)) |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
56 gdk_color_parse(DEFAULT_TEXT_COLOR, &color); |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
57 |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
58 return pidgin_theme_font_new(font, &color); |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
59 } |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
60 |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
61 static PurpleTheme * |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
62 pidgin_blist_loader_build(const gchar *dir) |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
63 { |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
64 xmlnode *root_node = NULL, *sub_node, *sub_sub_node; |
27284
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
65 gchar *filename_full, *data = NULL; |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
66 const gchar *temp, *name; |
25389
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25268
diff
changeset
|
67 gboolean success = TRUE; |
26636
548871664d3b
PidginBlistTheme now copies all its parameters instead of taking ownership.
Paul Aurich <paul@darkrain42.org>
parents:
26632
diff
changeset
|
68 GdkColor bgcolor, expanded_bgcolor, collapsed_bgcolor, contact_color; |
26654
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
69 PidginThemeFont *expanded, *collapsed, *contact, *online, *away, *offline, *idle, *message, *message_nick_said, *status; |
26636
548871664d3b
PidginBlistTheme now copies all its parameters instead of taking ownership.
Paul Aurich <paul@darkrain42.org>
parents:
26632
diff
changeset
|
70 PidginBlistLayout layout; |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
71 PidginBlistTheme *theme; |
26654
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
72 int i; |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
73 struct { |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
74 const char *tag; |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
75 PidginThemeFont **font; |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
76 } lookups[] = { |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
77 {"contact_text", &contact}, |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
78 {"online_text", &online}, |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
79 {"away_text", &away}, |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
80 {"offline_text", &offline}, |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
81 {"idle_text", &idle}, |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
82 {"message_text", &message}, |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
83 {"message_nick_said_text", &message_nick_said}, |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
84 {"status_text", &status}, |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
85 {NULL, NULL} |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
86 }; |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
87 |
26775
46b1d6eca6ef
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <paul@darkrain42.org>
parents:
26654
diff
changeset
|
88 expanded = NULL; |
46b1d6eca6ef
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <paul@darkrain42.org>
parents:
26654
diff
changeset
|
89 collapsed = NULL; |
46b1d6eca6ef
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <paul@darkrain42.org>
parents:
26654
diff
changeset
|
90 contact = NULL; |
46b1d6eca6ef
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <paul@darkrain42.org>
parents:
26654
diff
changeset
|
91 online = NULL; |
46b1d6eca6ef
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <paul@darkrain42.org>
parents:
26654
diff
changeset
|
92 away = NULL; |
46b1d6eca6ef
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <paul@darkrain42.org>
parents:
26654
diff
changeset
|
93 offline = NULL; |
46b1d6eca6ef
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <paul@darkrain42.org>
parents:
26654
diff
changeset
|
94 idle = NULL; |
46b1d6eca6ef
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <paul@darkrain42.org>
parents:
26654
diff
changeset
|
95 message = NULL; |
46b1d6eca6ef
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <paul@darkrain42.org>
parents:
26654
diff
changeset
|
96 message_nick_said = NULL; |
46b1d6eca6ef
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <paul@darkrain42.org>
parents:
26654
diff
changeset
|
97 status = NULL; |
46b1d6eca6ef
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <paul@darkrain42.org>
parents:
26654
diff
changeset
|
98 |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
99 /* Find the theme file */ |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
100 g_return_val_if_fail(dir != NULL, NULL); |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
101 filename_full = g_build_filename(dir, "theme.xml", NULL); |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
102 |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
103 if (g_file_test(filename_full, G_FILE_TEST_IS_REGULAR)) |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
104 root_node = xmlnode_from_file(dir, "theme.xml", "buddy list themes", "blist-loader"); |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
105 |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
106 g_free(filename_full); |
27284
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
107 if (root_node == NULL) |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
108 return NULL; |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
109 |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
110 sub_node = xmlnode_get_child(root_node, "description"); |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
111 data = xmlnode_get_data(sub_node); |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
112 |
27284
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
113 name = xmlnode_get_attrib(root_node, "name"); |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
114 |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
115 /* <blist> */ |
27284
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
116 success = name && purple_strequal(xmlnode_get_attrib(root_node, "type"), "pidgin buddy list"); |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
117 |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
118 if (!success) |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
119 purple_debug_warning("gtkblist-theme-loader", "Missing attribute or problem with the root element\n"); |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
120 |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
121 if (success) { |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
122 if ((success = (sub_node = xmlnode_get_child(root_node, "blist")) != NULL)) { |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
123 |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
124 if ((temp = xmlnode_get_attrib(sub_node, "color")) != NULL && gdk_color_parse(temp, &bgcolor)) |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
125 gdk_colormap_alloc_color(gdk_colormap_get_system(), &bgcolor, FALSE, TRUE); |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
126 else |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
127 memset(&bgcolor, 0, sizeof(GdkColor)); |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
128 |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
129 } else purple_debug_warning("gtkblist-theme-loader", "Missing or problem with tags: <blist>.\n"); |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
130 } |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
131 |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
132 /* <groups> */ |
27284
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
133 if (success) { |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
134 if ((success = (sub_node = xmlnode_get_child(root_node, "groups")) != NULL |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
135 && (sub_sub_node = xmlnode_get_child(sub_node, "expanded")) != NULL)) { |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
136 expanded = pidgin_theme_font_parse(sub_sub_node); |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
137 |
27284
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
138 if ((temp = xmlnode_get_attrib(sub_sub_node, "background")) != NULL && gdk_color_parse(temp, &expanded_bgcolor)) |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
139 gdk_colormap_alloc_color(gdk_colormap_get_system(), &expanded_bgcolor, FALSE, TRUE); |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
140 else |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
141 memset(&expanded_bgcolor, 0, sizeof(GdkColor)); |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
142 |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
143 } else purple_debug_warning("gtkblist-theme-loader", "Missing or problem with tags: <groups> <expanded>.\n"); |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
144 } |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
145 |
27284
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
146 if (success) { |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
147 if ((success = sub_node != NULL && (sub_sub_node = xmlnode_get_child(sub_node, "collapsed")) != NULL)) { |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
148 |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
149 collapsed = pidgin_theme_font_parse(sub_sub_node); |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
150 |
27284
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
151 if ((temp = xmlnode_get_attrib(sub_sub_node, "background")) != NULL && gdk_color_parse(temp, &collapsed_bgcolor)) |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
152 gdk_colormap_alloc_color(gdk_colormap_get_system(), &collapsed_bgcolor, FALSE, TRUE); |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
153 else |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
154 memset(&collapsed_bgcolor, 0, sizeof(GdkColor)); |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
155 |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
156 } else purple_debug_warning("gtkblist-theme-loader", "Missing or problem with tags: <groups> <collapsed>.\n"); |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
157 } |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
158 |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
159 /* <buddys> */ |
27284
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
160 if (success) { |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
161 if ((success = (sub_node = xmlnode_get_child(root_node, "buddys")) != NULL && |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
162 (sub_sub_node = xmlnode_get_child(sub_node, "placement")) != NULL)) { |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
163 |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
164 layout.status_icon = (temp = xmlnode_get_attrib(sub_sub_node, "status_icon")) != NULL ? atoi(temp) : 0; |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
165 layout.text = (temp = xmlnode_get_attrib(sub_sub_node, "name")) != NULL ? atoi(temp) : 1; |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
166 layout.emblem = (temp = xmlnode_get_attrib(sub_sub_node, "emblem")) != NULL ? atoi(temp) : 2; |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
167 layout.protocol_icon = (temp = xmlnode_get_attrib(sub_sub_node, "protocol_icon")) != NULL ? atoi(temp) : 3; |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
168 layout.buddy_icon = (temp = xmlnode_get_attrib(sub_sub_node, "buddy_icon")) != NULL ? atoi(temp) : 4; |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
169 layout.show_status = (temp = xmlnode_get_attrib(sub_sub_node, "status_icon")) != NULL ? atoi(temp) != 0 : 1; |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
170 |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
171 } else purple_debug_warning("gtkblist-theme-loader", "Missing or problem with tags: <buddys> <placement>.\n"); |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
172 } |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
173 |
27284
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
174 if (success) { |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
175 if ((success = (sub_node != NULL && (sub_sub_node = xmlnode_get_child(sub_node, "background")) != NULL))) { |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
176 if(gdk_color_parse(xmlnode_get_attrib(sub_sub_node, "color"), &contact_color)) |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
177 gdk_colormap_alloc_color(gdk_colormap_get_system(), &contact_color, FALSE, TRUE); |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
178 else |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
179 memset(&contact_color, 0, sizeof(GdkColor)); |
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
180 |
27286
7685f06c7801
Fix a typo I spent way too long staring at.
Paul Aurich <paul@darkrain42.org>
parents:
27284
diff
changeset
|
181 } else purple_debug_warning("gtkblist-theme-loader", "Missing or problem with tags: <buddys> <background>.\n"); |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
182 } |
25402
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
183 |
26654
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
184 for (i = 0; success && lookups[i].tag; i++) { |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
185 if ((success = (sub_node != NULL && |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
186 (sub_sub_node = xmlnode_get_child(sub_node, lookups[i].tag)) != NULL))) { |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
187 *(lookups[i].font) = pidgin_theme_font_parse(sub_sub_node); |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
188 } else { |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
189 *(lookups[i].font) = NULL; |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
190 } |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
191 } |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
192 |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
193 /* name is required for theme manager */ |
25389
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25268
diff
changeset
|
194 success = (success && xmlnode_get_attrib(root_node, "name") != NULL); |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
195 |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
196 /* the new theme */ |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
197 theme = g_object_new(PIDGIN_TYPE_BLIST_THEME, |
25402
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
198 "type", "blist", |
27284
9ad4b5200f24
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26775
diff
changeset
|
199 "name", name, |
25402
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
200 "author", xmlnode_get_attrib(root_node, "author"), |
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
201 "image", xmlnode_get_attrib(root_node, "image"), |
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
202 "directory", dir, |
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
203 "description", data, |
26636
548871664d3b
PidginBlistTheme now copies all its parameters instead of taking ownership.
Paul Aurich <paul@darkrain42.org>
parents:
26632
diff
changeset
|
204 "background-color", &bgcolor, |
548871664d3b
PidginBlistTheme now copies all its parameters instead of taking ownership.
Paul Aurich <paul@darkrain42.org>
parents:
26632
diff
changeset
|
205 "layout", &layout, |
548871664d3b
PidginBlistTheme now copies all its parameters instead of taking ownership.
Paul Aurich <paul@darkrain42.org>
parents:
26632
diff
changeset
|
206 "expanded-color", &expanded_bgcolor, |
26654
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
207 "expanded-text", expanded, |
26636
548871664d3b
PidginBlistTheme now copies all its parameters instead of taking ownership.
Paul Aurich <paul@darkrain42.org>
parents:
26632
diff
changeset
|
208 "collapsed-color", &collapsed_bgcolor, |
26654
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
209 "collapsed-text", collapsed, |
26636
548871664d3b
PidginBlistTheme now copies all its parameters instead of taking ownership.
Paul Aurich <paul@darkrain42.org>
parents:
26632
diff
changeset
|
210 "contact-color", &contact_color, |
26654
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
211 "contact", contact, |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
212 "online", online, |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
213 "away", away, |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
214 "offline", offline, |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
215 "idle", idle, |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
216 "message", message, |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
217 "message_nick_said", message_nick_said, |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
218 "status", status, NULL); |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
219 |
26654
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
220 for (i = 0; lookups[i].tag; i++) { |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
221 if (*lookups[i].font) { |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
222 pidgin_theme_font_free(*lookups[i].font); |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
223 } |
f099e7f2739c
Several changes:
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26636
diff
changeset
|
224 } |
26775
46b1d6eca6ef
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <paul@darkrain42.org>
parents:
26654
diff
changeset
|
225 |
46b1d6eca6ef
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <paul@darkrain42.org>
parents:
26654
diff
changeset
|
226 pidgin_theme_font_free(expanded); |
46b1d6eca6ef
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <paul@darkrain42.org>
parents:
26654
diff
changeset
|
227 pidgin_theme_font_free(collapsed); |
46b1d6eca6ef
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <paul@darkrain42.org>
parents:
26654
diff
changeset
|
228 |
25402
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
229 xmlnode_free(root_node); |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
230 g_free(data); |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
231 |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
232 /* malformed xml file - also frees all partial data*/ |
25389
dc2584ebaa1a
Adding the patch to extend the blist theme to allow coloring of chat nodes with unread messages mentioning your nick.
Paul Aurich <paul@darkrain42.org>
parents:
25268
diff
changeset
|
233 if (!success) { |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
234 g_object_unref(theme); |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
235 theme = NULL; |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
236 } |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
237 |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
238 return PURPLE_THEME(theme); |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
239 } |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
240 |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
241 /****************************************************************************** |
25402
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
242 * GObject Stuff |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
243 *****************************************************************************/ |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
244 |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
245 static void |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
246 pidgin_blist_theme_loader_class_init(PidginBlistThemeLoaderClass *klass) |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
247 { |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
248 PurpleThemeLoaderClass *loader_klass = PURPLE_THEME_LOADER_CLASS(klass); |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
249 |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
250 loader_klass->purple_theme_loader_build = pidgin_blist_loader_build; |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
251 } |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
252 |
25402
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
253 GType |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
254 pidgin_blist_theme_loader_get_type(void) |
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
255 { |
25402
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
256 static GType type = 0; |
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
257 if (type == 0) { |
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
258 static const GTypeInfo info = { |
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
259 sizeof(PidginBlistThemeLoaderClass), |
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
260 NULL, /* base_init */ |
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
261 NULL, /* base_finalize */ |
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
262 (GClassInitFunc)pidgin_blist_theme_loader_class_init, /* class_init */ |
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
263 NULL, /* class_finalize */ |
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
264 NULL, /* class_data */ |
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
265 sizeof(PidginBlistThemeLoader), |
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
266 0, /* n_preallocs */ |
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
267 NULL, /* instance_init */ |
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
268 NULL, /* value table */ |
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
269 }; |
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
270 type = g_type_register_static(PURPLE_TYPE_THEME_LOADER, |
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
271 "PidginBlistThemeLoader", &info, 0); |
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
272 } |
0c7b74fc558e
Lots of minor whitespace and comment changes:
Mark Doliner <mark@kingant.net>
parents:
25389
diff
changeset
|
273 return type; |
25268
7ddaa405936e
renamed gtkblist-loader.[ch] to gtblist-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
274 } |