Thu, 17 May 2018 22:26:19 -0500
win32: Simplify complicated DLL preparation
WinPidgin uses complicated DLL preparation in order to find where
GTK+ and other DLLs are located. This is broken due to names and
paths of DLLs having changed with the new build system and versions.
GTK+3 doesn't provide an installable package either. Since we need
to bundle the dependencies ourselves anyway, we can control where
they are stored and can simplify this complicated searching.
For the purpose of loading DLLs, the difference between "classic"
and "fhs" win32-dirs is that "classic" has its dependencies in a
bin/ subdirectory. Therefore, all that's really needed is to add
the bin/ subdirectory into the search path. This patch does this
using SetDllDirectory().
|
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 | 23 | #include "internal.h" |
| 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 * |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
46 | pidgin_theme_font_parse(PurpleXmlNode *node) |
|
26803
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; |
|
37992
0185eb26ac7d
Use GdkRGBA instead of GdkColor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37989
diff
changeset
|
50 | GdkRGBA color; |
|
26803
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
51 | |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
52 | font = purple_xmlnode_get_attrib(node, "font"); |
|
26803
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
53 | |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
54 | if ((colordesc = purple_xmlnode_get_attrib(node, "color")) == NULL || |
|
37992
0185eb26ac7d
Use GdkRGBA instead of GdkColor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37989
diff
changeset
|
55 | !gdk_rgba_parse(&color, colordesc)) |
|
0185eb26ac7d
Use GdkRGBA instead of GdkColor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37989
diff
changeset
|
56 | gdk_rgba_parse(&color, DEFAULT_TEXT_COLOR); |
|
26803
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 | |
|
37992
0185eb26ac7d
Use GdkRGBA instead of GdkColor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37989
diff
changeset
|
61 | static GdkRGBA * |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
62 | parse_color(PurpleXmlNode *node, const char *tag) |
|
29295
42c43b85e294
blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
27458
diff
changeset
|
63 | { |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
64 | const char *temp = purple_xmlnode_get_attrib(node, tag); |
|
37992
0185eb26ac7d
Use GdkRGBA instead of GdkColor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37989
diff
changeset
|
65 | GdkRGBA color; |
|
29295
42c43b85e294
blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
27458
diff
changeset
|
66 | |
|
37992
0185eb26ac7d
Use GdkRGBA instead of GdkColor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37989
diff
changeset
|
67 | if (temp && gdk_rgba_parse(&color, temp)) { |
|
0185eb26ac7d
Use GdkRGBA instead of GdkColor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37989
diff
changeset
|
68 | return gdk_rgba_copy(&color); |
|
29295
42c43b85e294
blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
27458
diff
changeset
|
69 | } else { |
|
42c43b85e294
blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
27458
diff
changeset
|
70 | return NULL; |
|
42c43b85e294
blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
27458
diff
changeset
|
71 | } |
|
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 | |
|
23971
9764690b14f2
Changed PurpleTheme build function to only return PurpleTheme*
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23666
diff
changeset
|
74 | static PurpleTheme * |
|
32957
b1967ccba26c
Change theme loaders to use the correct subdirectory now that the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
31294
diff
changeset
|
75 | pidgin_blist_loader_build(const gchar *theme_dir) |
|
23656
d4acd51c1446
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
76 | { |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
77 | PurpleXmlNode *root_node = NULL, *sub_node, *sub_sub_node; |
|
32957
b1967ccba26c
Change theme loaders to use the correct subdirectory now that the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
31294
diff
changeset
|
78 | gchar *dir, *filename_full, *data = NULL; |
|
27444
21add455833a
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26870
diff
changeset
|
79 | 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
|
80 | gboolean success = TRUE; |
|
37992
0185eb26ac7d
Use GdkRGBA instead of GdkColor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37989
diff
changeset
|
81 | GdkRGBA *bgcolor, *expanded_bgcolor, *collapsed_bgcolor, *contact_color; |
|
26803
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
82 | 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
|
83 | 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
|
84 | PidginBlistTheme *theme; |
|
26803
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
85 | int i; |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
86 | struct { |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
87 | const char *tag; |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
88 | PidginThemeFont **font; |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
89 | } lookups[] = { |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
90 | {"contact_text", &contact}, |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
91 | {"online_text", &online}, |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
92 | {"away_text", &away}, |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
93 | {"offline_text", &offline}, |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
94 | {"idle_text", &idle}, |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
95 | {"message_text", &message}, |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
96 | {"message_nick_said_text", &message_nick_said}, |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
97 | {"status_text", &status}, |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
98 | {NULL, NULL} |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
99 | }; |
|
23656
d4acd51c1446
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
100 | |
|
29308
8de5d48b1581
Fix uninitialized use of these colors, now that they're pointers.
Paul Aurich <darkrain42@pidgin.im>
parents:
29295
diff
changeset
|
101 | 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
|
102 | expanded = NULL; |
|
517c90cd1d34
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents:
26803
diff
changeset
|
103 | collapsed = NULL; |
|
517c90cd1d34
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents:
26803
diff
changeset
|
104 | contact = NULL; |
|
517c90cd1d34
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents:
26803
diff
changeset
|
105 | online = NULL; |
|
517c90cd1d34
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents:
26803
diff
changeset
|
106 | away = NULL; |
|
517c90cd1d34
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents:
26803
diff
changeset
|
107 | offline = NULL; |
|
517c90cd1d34
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents:
26803
diff
changeset
|
108 | idle = NULL; |
|
517c90cd1d34
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents:
26803
diff
changeset
|
109 | message = NULL; |
|
517c90cd1d34
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents:
26803
diff
changeset
|
110 | message_nick_said = NULL; |
|
517c90cd1d34
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents:
26803
diff
changeset
|
111 | status = NULL; |
|
517c90cd1d34
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents:
26803
diff
changeset
|
112 | |
|
23656
d4acd51c1446
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
113 | /* Find the theme file */ |
|
32957
b1967ccba26c
Change theme loaders to use the correct subdirectory now that the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
31294
diff
changeset
|
114 | g_return_val_if_fail(theme_dir != NULL, NULL); |
|
b1967ccba26c
Change theme loaders to use the correct subdirectory now that the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
31294
diff
changeset
|
115 | dir = g_build_filename(theme_dir, "purple", "blist", NULL); |
|
23972
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)) |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
119 | root_node = purple_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); |
|
32957
b1967ccba26c
Change theme loaders to use the correct subdirectory now that the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
31294
diff
changeset
|
122 | if (root_node == NULL) { |
|
b1967ccba26c
Change theme loaders to use the correct subdirectory now that the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
31294
diff
changeset
|
123 | g_free(dir); |
|
27444
21add455833a
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26870
diff
changeset
|
124 | return NULL; |
|
32957
b1967ccba26c
Change theme loaders to use the correct subdirectory now that the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
31294
diff
changeset
|
125 | } |
|
23656
d4acd51c1446
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
126 | |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
127 | sub_node = purple_xmlnode_get_child(root_node, "description"); |
|
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
128 | data = purple_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
|
129 | |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
130 | name = purple_xmlnode_get_attrib(root_node, "name"); |
|
27444
21add455833a
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26870
diff
changeset
|
131 | |
|
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
|
132 | /* <blist> */ |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
133 | success = name && purple_strequal(purple_xmlnode_get_attrib(root_node, "type"), "pidgin buddy list"); |
|
27444
21add455833a
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26870
diff
changeset
|
134 | |
|
21add455833a
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26870
diff
changeset
|
135 | if (!success) |
|
21add455833a
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26870
diff
changeset
|
136 | 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
|
137 | |
|
21add455833a
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26870
diff
changeset
|
138 | if (success) { |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
139 | if ((success = (sub_node = purple_xmlnode_get_child(root_node, "blist")) != NULL)) |
|
29295
42c43b85e294
blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
27458
diff
changeset
|
140 | bgcolor = parse_color(sub_node, "color"); |
|
31294
73607ab89c6f
Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents:
29308
diff
changeset
|
141 | else |
|
29295
42c43b85e294
blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
27458
diff
changeset
|
142 | 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
|
143 | } |
|
23658
7a1d0db67fcb
build function for pidgin buddy list theme loader
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23656
diff
changeset
|
144 | |
|
7a1d0db67fcb
build function for pidgin buddy list theme loader
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23656
diff
changeset
|
145 | /* <groups> */ |
|
27444
21add455833a
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26870
diff
changeset
|
146 | if (success) { |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
147 | if ((success = (sub_node = purple_xmlnode_get_child(root_node, "groups")) != NULL |
|
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
148 | && (sub_sub_node = purple_xmlnode_get_child(sub_node, "expanded")) != NULL)) { |
|
27444
21add455833a
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26870
diff
changeset
|
149 | 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
|
150 | 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
|
151 | } else |
|
42c43b85e294
blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
27458
diff
changeset
|
152 | 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
|
153 | } |
|
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
|
154 | |
|
27444
21add455833a
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26870
diff
changeset
|
155 | if (success) { |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
156 | if ((success = sub_node != NULL && (sub_sub_node = purple_xmlnode_get_child(sub_node, "collapsed")) != NULL)) { |
|
27444
21add455833a
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26870
diff
changeset
|
157 | 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
|
158 | 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
|
159 | } else |
|
42c43b85e294
blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
27458
diff
changeset
|
160 | 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
|
161 | } |
|
23658
7a1d0db67fcb
build function for pidgin buddy list theme loader
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23656
diff
changeset
|
162 | |
|
7a1d0db67fcb
build function for pidgin buddy list theme loader
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23656
diff
changeset
|
163 | /* <buddys> */ |
|
27444
21add455833a
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26870
diff
changeset
|
164 | if (success) { |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
165 | if ((success = (sub_node = purple_xmlnode_get_child(root_node, "buddys")) != NULL && |
|
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
166 | (sub_sub_node = purple_xmlnode_get_child(sub_node, "placement")) != NULL)) { |
|
27444
21add455833a
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26870
diff
changeset
|
167 | |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
168 | layout.status_icon = (temp = purple_xmlnode_get_attrib(sub_sub_node, "status_icon")) != NULL ? atoi(temp) : 0; |
|
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
169 | layout.text = (temp = purple_xmlnode_get_attrib(sub_sub_node, "name")) != NULL ? atoi(temp) : 1; |
|
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
170 | layout.emblem = (temp = purple_xmlnode_get_attrib(sub_sub_node, "emblem")) != NULL ? atoi(temp) : 2; |
|
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
171 | layout.protocol_icon = (temp = purple_xmlnode_get_attrib(sub_sub_node, "protocol_icon")) != NULL ? atoi(temp) : 3; |
|
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
172 | layout.buddy_icon = (temp = purple_xmlnode_get_attrib(sub_sub_node, "buddy_icon")) != NULL ? atoi(temp) : 4; |
|
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
173 | layout.show_status = (temp = purple_xmlnode_get_attrib(sub_sub_node, "status_icon")) != NULL ? atoi(temp) != 0 : 1; |
|
27444
21add455833a
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26870
diff
changeset
|
174 | |
|
21add455833a
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26870
diff
changeset
|
175 | } 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
|
176 | } |
|
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
|
177 | |
|
27444
21add455833a
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26870
diff
changeset
|
178 | if (success) { |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
179 | if ((success = (sub_node != NULL && (sub_sub_node = purple_xmlnode_get_child(sub_node, "background")) != NULL))) |
|
29295
42c43b85e294
blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
27458
diff
changeset
|
180 | 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
|
181 | else |
|
42c43b85e294
blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
27458
diff
changeset
|
182 | 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
|
183 | } |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25863
diff
changeset
|
184 | |
|
26803
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
185 | for (i = 0; success && lookups[i].tag; i++) { |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
186 | if ((success = (sub_node != NULL && |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
187 | (sub_sub_node = purple_xmlnode_get_child(sub_node, lookups[i].tag)) != NULL))) { |
|
26803
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
188 | *(lookups[i].font) = pidgin_theme_font_parse(sub_sub_node); |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
189 | } else { |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
190 | *(lookups[i].font) = NULL; |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
191 | } |
|
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
|
192 | } |
|
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
|
193 | |
|
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
|
194 | /* name is required for theme manager */ |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
195 | success = (success && purple_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
|
196 | |
|
7a1d0db67fcb
build function for pidgin buddy list theme loader
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23656
diff
changeset
|
197 | /* 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
|
198 | 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
|
199 | "type", "blist", |
|
27444
21add455833a
Better error checking on the theme loaders.
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
26870
diff
changeset
|
200 | "name", name, |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
201 | "author", purple_xmlnode_get_attrib(root_node, "author"), |
|
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
202 | "image", purple_xmlnode_get_attrib(root_node, "image"), |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25863
diff
changeset
|
203 | "directory", dir, |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25863
diff
changeset
|
204 | "description", data, |
|
29295
42c43b85e294
blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
27458
diff
changeset
|
205 | "background-color", bgcolor, |
|
26785
a4411d5d13d1
PidginBlistTheme now copies all its parameters instead of taking ownership.
Paul Aurich <darkrain42@pidgin.im>
parents:
26781
diff
changeset
|
206 | "layout", &layout, |
|
29295
42c43b85e294
blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
27458
diff
changeset
|
207 | "expanded-color", expanded_bgcolor, |
|
26803
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
208 | "expanded-text", expanded, |
|
29295
42c43b85e294
blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
27458
diff
changeset
|
209 | "collapsed-color", collapsed_bgcolor, |
|
26803
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
210 | "collapsed-text", collapsed, |
|
29295
42c43b85e294
blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
27458
diff
changeset
|
211 | "contact-color", contact_color, |
|
26803
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
212 | "contact", contact, |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
213 | "online", online, |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
214 | "away", away, |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
215 | "offline", offline, |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
216 | "idle", idle, |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
217 | "message", message, |
|
35060
195dbb3b6432
pidgin: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents:
34935
diff
changeset
|
218 | "message-nick-said", message_nick_said, |
|
26803
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
219 | "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
|
220 | |
|
26803
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
221 | for (i = 0; lookups[i].tag; i++) { |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
222 | if (*lookups[i].font) { |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
223 | pidgin_theme_font_free(*lookups[i].font); |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
224 | } |
|
d48e945e622f
Several changes:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
26785
diff
changeset
|
225 | } |
|
26870
517c90cd1d34
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents:
26803
diff
changeset
|
226 | |
|
517c90cd1d34
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents:
26803
diff
changeset
|
227 | pidgin_theme_font_free(expanded); |
|
517c90cd1d34
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents:
26803
diff
changeset
|
228 | pidgin_theme_font_free(collapsed); |
|
517c90cd1d34
Avoid dereferencing unitialized memory or leaking PidginThemeFonts
Paul Aurich <darkrain42@pidgin.im>
parents:
26803
diff
changeset
|
229 | |
|
34935
686fa55b0deb
Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents:
33170
diff
changeset
|
230 | purple_xmlnode_free(root_node); |
|
23972
90e0da03c053
theme loader cleanup, and remove a few warnings
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23971
diff
changeset
|
231 | g_free(data); |
|
32957
b1967ccba26c
Change theme loaders to use the correct subdirectory now that the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
31294
diff
changeset
|
232 | g_free(dir); |
|
23972
90e0da03c053
theme loader cleanup, and remove a few warnings
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23971
diff
changeset
|
233 | |
|
90e0da03c053
theme loader cleanup, and remove a few warnings
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23971
diff
changeset
|
234 | /* 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
|
235 | 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
|
236 | 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
|
237 | 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
|
238 | } |
|
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
|
239 | |
|
29295
42c43b85e294
blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
27458
diff
changeset
|
240 | if (bgcolor) |
|
37992
0185eb26ac7d
Use GdkRGBA instead of GdkColor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37989
diff
changeset
|
241 | gdk_rgba_free(bgcolor); |
|
29295
42c43b85e294
blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
27458
diff
changeset
|
242 | if (expanded_bgcolor) |
|
37992
0185eb26ac7d
Use GdkRGBA instead of GdkColor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37989
diff
changeset
|
243 | gdk_rgba_free(expanded_bgcolor); |
|
29295
42c43b85e294
blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
27458
diff
changeset
|
244 | if (collapsed_bgcolor) |
|
37992
0185eb26ac7d
Use GdkRGBA instead of GdkColor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37989
diff
changeset
|
245 | gdk_rgba_free(collapsed_bgcolor); |
|
29295
42c43b85e294
blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
27458
diff
changeset
|
246 | if (contact_color) |
|
37992
0185eb26ac7d
Use GdkRGBA instead of GdkColor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37989
diff
changeset
|
247 | gdk_rgba_free(contact_color); |
|
29295
42c43b85e294
blist theme: Do not treat missing colors as black.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
27458
diff
changeset
|
248 | |
|
23971
9764690b14f2
Changed PurpleTheme build function to only return PurpleTheme*
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23666
diff
changeset
|
249 | 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
|
250 | } |
|
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 | /****************************************************************************** |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25863
diff
changeset
|
253 | * GObject Stuff |
|
23656
d4acd51c1446
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
254 | *****************************************************************************/ |
|
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 | static void |
|
23972
90e0da03c053
theme loader cleanup, and remove a few warnings
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23971
diff
changeset
|
257 | 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
|
258 | { |
|
d4acd51c1446
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
259 | 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
|
260 | |
|
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
|
261 | 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
|
262 | } |
|
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 | GType |
|
23972
90e0da03c053
theme loader cleanup, and remove a few warnings
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23971
diff
changeset
|
265 | 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
|
266 | { |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25863
diff
changeset
|
267 | static GType type = 0; |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25863
diff
changeset
|
268 | if (type == 0) { |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25863
diff
changeset
|
269 | static const GTypeInfo info = { |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25863
diff
changeset
|
270 | sizeof(PidginBlistThemeLoaderClass), |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25863
diff
changeset
|
271 | NULL, /* base_init */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25863
diff
changeset
|
272 | NULL, /* base_finalize */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25863
diff
changeset
|
273 | (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
|
274 | NULL, /* class_finalize */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25863
diff
changeset
|
275 | NULL, /* class_data */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25863
diff
changeset
|
276 | sizeof(PidginBlistThemeLoader), |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25863
diff
changeset
|
277 | 0, /* n_preallocs */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25863
diff
changeset
|
278 | NULL, /* instance_init */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25863
diff
changeset
|
279 | NULL, /* value table */ |
|
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 | 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
|
282 | "PidginBlistThemeLoader", &info, 0); |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25863
diff
changeset
|
283 | } |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25863
diff
changeset
|
284 | return type; |
|
23656
d4acd51c1446
start of blist themes (themes have no effect on display)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
285 | } |