pidgin/gtkconv-theme.c

Fri, 04 Apr 2014 16:32:22 +0200

author
Tomasz Wasilczyk <twasilczyk@pidgin.im>
date
Fri, 04 Apr 2014 16:32:22 +0200
changeset 35750
db721872a325
parent 35082
05a66637ec23
child 35850
1abeda205d6c
permissions
-rw-r--r--

Remote smileys: display them

32536
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
1 /*
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
2 * Conversation Themes for Pidgin
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
3 *
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
4 * Pidgin is the legal property of its developers, whose names are too numerous
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
6 * source distribution.
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
7 *
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
11 * (at your option) any later version.
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
12 *
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
16 * GNU General Public License for more details.
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
17 *
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
21 */
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
22
33898
0f4b2e3ac978 win32: fix all warnings about improper winsock2.h include point
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33892
diff changeset
23 #include "internal.h"
35074
0d56a4091806 Use glibcompat.h for "notify" in gtkconv-theme.c
Ankit Vani <a@nevitus.org>
parents: 35064
diff changeset
24 #include "glibcompat.h"
33898
0f4b2e3ac978 win32: fix all warnings about improper winsock2.h include point
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33892
diff changeset
25
32536
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
26 #include "gtkconv-theme.h"
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
27
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
28 #include "conversation.h"
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
29 #include "debug.h"
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
30 #include "prefs.h"
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
31 #include "xmlnode.h"
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
32
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
33 #include "pidgin.h"
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
34 #include "gtkconv.h"
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
35 #include "gtkwebview.h"
32536
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
36
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
37 #include <stdlib.h>
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
38 #include <string.h>
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
39
32536
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
40 #define PIDGIN_CONV_THEME_GET_PRIVATE(Gobject) \
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
41 (G_TYPE_INSTANCE_GET_PRIVATE((Gobject), PIDGIN_TYPE_CONV_THEME, PidginConvThemePrivate))
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
42
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
43 /******************************************************************************
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
44 * Structs
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
45 *****************************************************************************/
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
46
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
47 typedef struct {
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
48 /* current config options */
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
49 char *variant; /* allowed to be NULL if there are no variants */
32562
9c094ffe9333 Load the list of variants when building the theme.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32561
diff changeset
50 GList *variants;
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
51
32545
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
52 /* Info.plist keys/values */
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
53 GHashTable *info;
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
54
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
55 /* caches */
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
56 char *template_html;
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
57 char *header_html;
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
58 char *footer_html;
32571
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
59 char *topic_html;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
60 char *status_html;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
61 char *content_html;
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
62 char *incoming_content_html;
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
63 char *outgoing_content_html;
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
64 char *incoming_next_content_html;
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
65 char *outgoing_next_content_html;
32571
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
66 char *incoming_context_html;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
67 char *outgoing_context_html;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
68 char *incoming_next_context_html;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
69 char *outgoing_next_context_html;
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
70 char *basestyle_css;
33384
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
71
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
72 GArray *nick_colors;
32536
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
73 } PidginConvThemePrivate;
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
74
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
75 /******************************************************************************
32545
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
76 * Enums
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
77 *****************************************************************************/
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
78
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
79 enum {
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
80 PROP_ZERO = 0,
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
81 PROP_INFO,
32598
e824d9bbe6ff Make the current variant a property.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32587
diff changeset
82 PROP_VARIANT,
e824d9bbe6ff Make the current variant a property.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32587
diff changeset
83 PROP_LAST
32545
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
84 };
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
85
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
86 /******************************************************************************
32598
e824d9bbe6ff Make the current variant a property.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32587
diff changeset
87 * Globals
e824d9bbe6ff Make the current variant a property.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32587
diff changeset
88 *****************************************************************************/
e824d9bbe6ff Make the current variant a property.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32587
diff changeset
89
e824d9bbe6ff Make the current variant a property.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32587
diff changeset
90 static GObjectClass *parent_class = NULL;
e824d9bbe6ff Make the current variant a property.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32587
diff changeset
91 static GParamSpec *properties[PROP_LAST];
e824d9bbe6ff Make the current variant a property.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32587
diff changeset
92
e824d9bbe6ff Make the current variant a property.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32587
diff changeset
93 /******************************************************************************
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
94 * Helper Functions
32536
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
95 *****************************************************************************/
91b09760ab0c Add some boilerplate Conversation theme GObjects. These don't do
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
96
32558
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
97 static const GValue *
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
98 get_key(PidginConvThemePrivate *priv, const char *key, gboolean specific)
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
99 {
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
100 GValue *val = NULL;
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
101
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
102 /* Try variant-specific key */
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
103 if (specific && priv->variant) {
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
104 char *name = g_strdup_printf("%s:%s", key, priv->variant);
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
105 val = g_hash_table_lookup(priv->info, name);
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
106 g_free(name);
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
107 }
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
108
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
109 /* Try generic key */
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
110 if (!val) {
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
111 val = g_hash_table_lookup(priv->info, key);
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
112 }
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
113
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
114 return val;
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
115 }
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
116
32725
b8c479aec53b Fix fallback to builtin Template.html file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32639
diff changeset
117 /* The template path can either come from the theme, or can
b8c479aec53b Fix fallback to builtin Template.html file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32639
diff changeset
118 * be stock Template.html that comes with Pidgin */
b8c479aec53b Fix fallback to builtin Template.html file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32639
diff changeset
119 static char *
b8c479aec53b Fix fallback to builtin Template.html file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32639
diff changeset
120 get_template_path(const char *dir)
b8c479aec53b Fix fallback to builtin Template.html file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32639
diff changeset
121 {
b8c479aec53b Fix fallback to builtin Template.html file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32639
diff changeset
122 char *file;
b8c479aec53b Fix fallback to builtin Template.html file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32639
diff changeset
123
b8c479aec53b Fix fallback to builtin Template.html file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32639
diff changeset
124 file = g_build_filename(dir, "Contents", "Resources", "Template.html", NULL);
b8c479aec53b Fix fallback to builtin Template.html file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32639
diff changeset
125
b8c479aec53b Fix fallback to builtin Template.html file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32639
diff changeset
126 if (!g_file_test(file, G_FILE_TEST_EXISTS)) {
b8c479aec53b Fix fallback to builtin Template.html file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32639
diff changeset
127 g_free(file);
33941
80fcf7f86e4a win32: globally define _WIN32_WINNT macro, tune config, move gtkconv themes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33898
diff changeset
128 #ifdef _WIN32
80fcf7f86e4a win32: globally define _WIN32_WINNT macro, tune config, move gtkconv themes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33898
diff changeset
129 file = g_build_filename(DATADIR, "theme", "Template.html", NULL);
80fcf7f86e4a win32: globally define _WIN32_WINNT macro, tune config, move gtkconv themes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33898
diff changeset
130 #else
32960
1beafd9dbad4 Add a simple theme that replicates our current look.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32775
diff changeset
131 file = g_build_filename(DATADIR, "pidgin", "theme", "Template.html", NULL);
33941
80fcf7f86e4a win32: globally define _WIN32_WINNT macro, tune config, move gtkconv themes
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33898
diff changeset
132 #endif
32725
b8c479aec53b Fix fallback to builtin Template.html file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32639
diff changeset
133 }
b8c479aec53b Fix fallback to builtin Template.html file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32639
diff changeset
134
b8c479aec53b Fix fallback to builtin Template.html file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32639
diff changeset
135 return file;
b8c479aec53b Fix fallback to builtin Template.html file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32639
diff changeset
136 }
b8c479aec53b Fix fallback to builtin Template.html file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32639
diff changeset
137
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
138 static const char *
32558
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
139 get_template_html(PidginConvThemePrivate *priv, const char *dir)
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
140 {
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
141 char *file;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
142
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
143 if (priv->template_html)
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
144 return priv->template_html;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
145
32725
b8c479aec53b Fix fallback to builtin Template.html file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32639
diff changeset
146 file = get_template_path(dir);
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
147
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
148 if (!g_file_get_contents(file, &priv->template_html, NULL, NULL)) {
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
149 purple_debug_error("webkit", "Could not locate a Template.html (%s)\n", file);
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
150 priv->template_html = g_strdup("");
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
151 }
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
152 g_free(file);
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
153
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
154 return priv->template_html;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
155 }
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
156
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
157 static const char *
32558
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
158 get_basestyle_css(PidginConvThemePrivate *priv, const char *dir)
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
159 {
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
160 char *file;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
161
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
162 if (priv->basestyle_css)
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
163 return priv->basestyle_css;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
164
32558
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
165 file = g_build_filename(dir, "Contents", "Resources", "main.css", NULL);
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
166 if (!g_file_get_contents(file, &priv->basestyle_css, NULL, NULL))
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
167 priv->basestyle_css = g_strdup("");
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
168 g_free(file);
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
169
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
170 return priv->basestyle_css;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
171 }
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
172
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
173 static const char *
32558
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
174 get_header_html(PidginConvThemePrivate *priv, const char *dir)
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
175 {
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
176 char *file;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
177
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
178 if (priv->header_html)
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
179 return priv->header_html;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
180
32558
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
181 file = g_build_filename(dir, "Contents", "Resources", "Header.html", NULL);
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
182 if (!g_file_get_contents(file, &priv->header_html, NULL, NULL))
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
183 priv->header_html = g_strdup("");
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
184 g_free(file);
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
185
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
186 return priv->header_html;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
187 }
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
188
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
189 static const char *
32558
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
190 get_footer_html(PidginConvThemePrivate *priv, const char *dir)
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
191 {
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
192 char *file;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
193
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
194 if (priv->footer_html)
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
195 return priv->footer_html;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
196
32558
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
197 file = g_build_filename(dir, "Contents", "Resources", "Footer.html", NULL);
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
198 if (!g_file_get_contents(file, &priv->footer_html, NULL, NULL))
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
199 priv->footer_html = g_strdup("");
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
200 g_free(file);
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
201
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
202 return priv->footer_html;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
203 }
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
204
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
205 static const char *
32571
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
206 get_topic_html(PidginConvThemePrivate *priv, const char *dir)
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
207 {
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
208 char *file;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
209
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
210 if (priv->topic_html)
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
211 return priv->topic_html;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
212
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
213 file = g_build_filename(dir, "Contents", "Resources", "Topic.html", NULL);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
214 if (!g_file_get_contents(file, &priv->topic_html, NULL, NULL)) {
32584
7bf37989b484 Add some missing newlines in debug output.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32576
diff changeset
215 purple_debug_info("webkit", "%s could not find Resources/Topic.html\n", dir);
32571
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
216 priv->topic_html = g_strdup("");
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
217 }
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
218 g_free(file);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
219
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
220 return priv->topic_html;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
221 }
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
222
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
223 static const char *
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
224 get_content_html(PidginConvThemePrivate *priv, const char *dir)
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
225 {
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
226 char *file;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
227
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
228 if (priv->content_html)
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
229 return priv->content_html;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
230
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
231 file = g_build_filename(dir, "Contents", "Resources", "Content.html", NULL);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
232 if (!g_file_get_contents(file, &priv->content_html, NULL, NULL)) {
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
233 purple_debug_info("webkit", "%s did not have a Content.html\n", dir);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
234 priv->content_html = g_strdup("");
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
235 }
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
236 g_free(file);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
237
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
238 return priv->content_html;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
239 }
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
240
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
241 static const char *
32587
27e41510a278 Fix fallback of Status.html to Content.html.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32584
diff changeset
242 get_status_html(PidginConvThemePrivate *priv, const char *dir)
27e41510a278 Fix fallback of Status.html to Content.html.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32584
diff changeset
243 {
27e41510a278 Fix fallback of Status.html to Content.html.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32584
diff changeset
244 char *file;
27e41510a278 Fix fallback of Status.html to Content.html.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32584
diff changeset
245
27e41510a278 Fix fallback of Status.html to Content.html.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32584
diff changeset
246 if (priv->status_html)
27e41510a278 Fix fallback of Status.html to Content.html.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32584
diff changeset
247 return priv->status_html;
27e41510a278 Fix fallback of Status.html to Content.html.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32584
diff changeset
248
27e41510a278 Fix fallback of Status.html to Content.html.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32584
diff changeset
249 file = g_build_filename(dir, "Contents", "Resources", "Status.html", NULL);
27e41510a278 Fix fallback of Status.html to Content.html.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32584
diff changeset
250 if (!g_file_get_contents(file, &priv->status_html, NULL, NULL)) {
27e41510a278 Fix fallback of Status.html to Content.html.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32584
diff changeset
251 purple_debug_info("webkit", "%s could not find Resources/Status.html\n", dir);
27e41510a278 Fix fallback of Status.html to Content.html.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32584
diff changeset
252 priv->status_html = g_strdup(get_content_html(priv, dir));
27e41510a278 Fix fallback of Status.html to Content.html.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32584
diff changeset
253 }
27e41510a278 Fix fallback of Status.html to Content.html.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32584
diff changeset
254 g_free(file);
27e41510a278 Fix fallback of Status.html to Content.html.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32584
diff changeset
255
27e41510a278 Fix fallback of Status.html to Content.html.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32584
diff changeset
256 return priv->status_html;
27e41510a278 Fix fallback of Status.html to Content.html.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32584
diff changeset
257 }
27e41510a278 Fix fallback of Status.html to Content.html.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32584
diff changeset
258
27e41510a278 Fix fallback of Status.html to Content.html.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32584
diff changeset
259 static const char *
32558
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
260 get_incoming_content_html(PidginConvThemePrivate *priv, const char *dir)
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
261 {
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
262 char *file;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
263
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
264 if (priv->incoming_content_html)
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
265 return priv->incoming_content_html;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
266
32558
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
267 file = g_build_filename(dir, "Contents", "Resources", "Incoming", "Content.html", NULL);
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
268 if (!g_file_get_contents(file, &priv->incoming_content_html, NULL, NULL)) {
32558
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
269 purple_debug_info("webkit", "%s did not have a Incoming/Content.html\n", dir);
32571
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
270 priv->incoming_content_html = g_strdup(get_content_html(priv, dir));
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
271 }
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
272 g_free(file);
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
273
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
274 return priv->incoming_content_html;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
275 }
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
276
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
277 static const char *
32558
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
278 get_incoming_next_content_html(PidginConvThemePrivate *priv, const char *dir)
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
279 {
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
280 char *file;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
281
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
282 if (priv->incoming_next_content_html)
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
283 return priv->incoming_next_content_html;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
284
32558
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
285 file = g_build_filename(dir, "Contents", "Resources", "Incoming", "NextContent.html", NULL);
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
286 if (!g_file_get_contents(file, &priv->incoming_next_content_html, NULL, NULL)) {
32571
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
287 priv->incoming_next_content_html = g_strdup(get_incoming_content_html(priv, dir));
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
288 }
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
289 g_free(file);
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
290
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
291 return priv->incoming_next_content_html;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
292 }
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
293
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
294 static const char *
32571
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
295 get_incoming_context_html(PidginConvThemePrivate *priv, const char *dir)
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
296 {
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
297 char *file;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
298
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
299 if (priv->incoming_context_html)
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
300 return priv->incoming_context_html;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
301
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
302 file = g_build_filename(dir, "Contents", "Resources", "Incoming", "Context.html", NULL);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
303 if (!g_file_get_contents(file, &priv->incoming_context_html, NULL, NULL)) {
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
304 purple_debug_info("webkit", "%s did not have a Incoming/Context.html\n", dir);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
305 priv->incoming_context_html = g_strdup(get_incoming_content_html(priv, dir));
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
306 }
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
307 g_free(file);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
308
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
309 return priv->incoming_context_html;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
310 }
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
311
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
312 static const char *
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
313 get_incoming_next_context_html(PidginConvThemePrivate *priv, const char *dir)
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
314 {
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
315 char *file;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
316
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
317 if (priv->incoming_next_context_html)
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
318 return priv->incoming_next_context_html;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
319
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
320 file = g_build_filename(dir, "Contents", "Resources", "Incoming", "NextContext.html", NULL);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
321 if (!g_file_get_contents(file, &priv->incoming_next_context_html, NULL, NULL)) {
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
322 priv->incoming_next_context_html = g_strdup(get_incoming_context_html(priv, dir));
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
323 }
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
324 g_free(file);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
325
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
326 return priv->incoming_next_context_html;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
327 }
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
328
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
329 static const char *
32558
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
330 get_outgoing_content_html(PidginConvThemePrivate *priv, const char *dir)
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
331 {
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
332 char *file;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
333
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
334 if (priv->outgoing_content_html)
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
335 return priv->outgoing_content_html;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
336
32558
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
337 file = g_build_filename(dir, "Contents", "Resources", "Outgoing", "Content.html", NULL);
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
338 if (!g_file_get_contents(file, &priv->outgoing_content_html, NULL, NULL)) {
32571
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
339 priv->outgoing_content_html = g_strdup(get_incoming_content_html(priv, dir));
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
340 }
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
341 g_free(file);
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
342
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
343 return priv->outgoing_content_html;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
344 }
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
345
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
346 static const char *
32558
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
347 get_outgoing_next_content_html(PidginConvThemePrivate *priv, const char *dir)
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
348 {
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
349 char *file;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
350
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
351 if (priv->outgoing_next_content_html)
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
352 return priv->outgoing_next_content_html;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
353
32558
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
354 file = g_build_filename(dir, "Contents", "Resources", "Outgoing", "NextContent.html", NULL);
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
355 if (!g_file_get_contents(file, &priv->outgoing_next_content_html, NULL, NULL)) {
32571
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
356 priv->outgoing_next_content_html = g_strdup(get_outgoing_content_html(priv, dir));
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
357 }
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
358
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
359 return priv->outgoing_next_content_html;
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
360 }
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
361
32571
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
362 static const char *
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
363 get_outgoing_context_html(PidginConvThemePrivate *priv, const char *dir)
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
364 {
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
365 char *file;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
366
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
367 if (priv->outgoing_context_html)
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
368 return priv->outgoing_context_html;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
369
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
370 file = g_build_filename(dir, "Contents", "Resources", "Outgoing", "Context.html", NULL);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
371 if (!g_file_get_contents(file, &priv->outgoing_context_html, NULL, NULL)) {
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
372 priv->outgoing_context_html = g_strdup(get_incoming_context_html(priv, dir));
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
373 }
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
374 g_free(file);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
375
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
376 return priv->outgoing_context_html;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
377 }
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
378
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
379 static const char *
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
380 get_outgoing_next_context_html(PidginConvThemePrivate *priv, const char *dir)
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
381 {
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
382 char *file;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
383
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
384 if (priv->outgoing_next_context_html)
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
385 return priv->outgoing_next_context_html;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
386
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
387 file = g_build_filename(dir, "Contents", "Resources", "Outgoing", "NextContext.html", NULL);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
388 if (!g_file_get_contents(file, &priv->outgoing_next_context_html, NULL, NULL)) {
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
389 priv->outgoing_next_context_html = g_strdup(get_outgoing_context_html(priv, dir));
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
390 }
32728
bc0b95512380 Fix a small leak.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32725
diff changeset
391 g_free(file);
32571
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
392
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
393 return priv->outgoing_next_context_html;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
394 }
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
395
32599
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
396 /******************************************************************************
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
397 * GObject Stuff
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
398 *****************************************************************************/
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
399
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
400 static void
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
401 pidgin_conv_theme_get_property(GObject *obj, guint param_id, GValue *value,
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
402 GParamSpec *psec)
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
403 {
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
404 PidginConvTheme *theme = PIDGIN_CONV_THEME(obj);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
405
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
406 switch (param_id) {
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
407 case PROP_INFO:
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
408 g_value_set_boxed(value, (gpointer)pidgin_conversation_theme_get_info(theme));
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
409 break;
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
410
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
411 case PROP_VARIANT:
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
412 g_value_set_string(value, pidgin_conversation_theme_get_variant(theme));
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
413 break;
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
414
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
415 default:
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
416 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, psec);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
417 break;
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
418 }
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
419 }
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
420
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
421 static void
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
422 pidgin_conv_theme_set_property(GObject *obj, guint param_id, const GValue *value,
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
423 GParamSpec *psec)
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
424 {
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
425 PidginConvTheme *theme = PIDGIN_CONV_THEME(obj);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
426
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
427 switch (param_id) {
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
428 case PROP_INFO:
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
429 pidgin_conversation_theme_set_info(theme, g_value_get_boxed(value));
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
430 break;
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
431
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
432 case PROP_VARIANT:
35064
995be3523e7c Removed unnecessary static function _set_variant
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
433 pidgin_conversation_theme_set_variant(theme, g_value_get_string(value));
32599
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
434 break;
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
435
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
436 default:
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
437 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, psec);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
438 break;
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
439 }
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
440 }
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
441
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
442 static void
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
443 pidgin_conv_theme_init(GTypeInstance *instance,
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
444 gpointer klass)
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
445 {
33892
ef97228bc5f0 Fix most of warnings for gtk2 and linux
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33642
diff changeset
446 #if 0
32599
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
447 PidginConvThemePrivate *priv;
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
448
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
449 priv = PIDGIN_CONV_THEME_GET_PRIVATE(instance);
33892
ef97228bc5f0 Fix most of warnings for gtk2 and linux
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33642
diff changeset
450 #endif
32599
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
451 }
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
452
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
453 static void
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
454 pidgin_conv_theme_finalize(GObject *obj)
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
455 {
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
456 PidginConvThemePrivate *priv;
32600
26c310f9e08b Don't leak variant name and list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32599
diff changeset
457 GList *list;
32599
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
458
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
459 priv = PIDGIN_CONV_THEME_GET_PRIVATE(obj);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
460
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
461 g_free(priv->template_html);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
462 g_free(priv->header_html);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
463 g_free(priv->footer_html);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
464 g_free(priv->topic_html);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
465 g_free(priv->status_html);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
466 g_free(priv->content_html);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
467 g_free(priv->incoming_content_html);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
468 g_free(priv->outgoing_content_html);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
469 g_free(priv->incoming_next_content_html);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
470 g_free(priv->outgoing_next_content_html);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
471 g_free(priv->incoming_context_html);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
472 g_free(priv->outgoing_context_html);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
473 g_free(priv->incoming_next_context_html);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
474 g_free(priv->outgoing_next_context_html);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
475 g_free(priv->basestyle_css);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
476
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
477 if (priv->info)
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
478 g_hash_table_destroy(priv->info);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
479
32600
26c310f9e08b Don't leak variant name and list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32599
diff changeset
480 list = priv->variants;
26c310f9e08b Don't leak variant name and list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32599
diff changeset
481 while (list) {
26c310f9e08b Don't leak variant name and list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32599
diff changeset
482 g_free(list->data);
26c310f9e08b Don't leak variant name and list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32599
diff changeset
483 list = g_list_delete_link(list, list);
26c310f9e08b Don't leak variant name and list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32599
diff changeset
484 }
26c310f9e08b Don't leak variant name and list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32599
diff changeset
485 g_free(priv->variant);
26c310f9e08b Don't leak variant name and list.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32599
diff changeset
486
33642
a99637d00287 Fix an assertion.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33384
diff changeset
487 if (priv->nick_colors)
a99637d00287 Fix an assertion.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33384
diff changeset
488 g_array_unref(priv->nick_colors);
33384
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
489
32599
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
490 parent_class->finalize(obj);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
491 }
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
492
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
493 static void
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
494 pidgin_conv_theme_class_init(PidginConvThemeClass *klass)
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
495 {
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
496 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
497
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
498 parent_class = g_type_class_peek_parent(klass);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
499
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
500 g_type_class_add_private(klass, sizeof(PidginConvThemePrivate));
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
501
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
502 obj_class->get_property = pidgin_conv_theme_get_property;
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
503 obj_class->set_property = pidgin_conv_theme_set_property;
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
504 obj_class->finalize = pidgin_conv_theme_finalize;
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
505
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
506 /* INFO */
35074
0d56a4091806 Use glibcompat.h for "notify" in gtkconv-theme.c
Ankit Vani <a@nevitus.org>
parents: 35064
diff changeset
507 properties[PROP_INFO] = g_param_spec_boxed("info", "Info",
32599
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
508 "The information about this theme",
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
509 G_TYPE_HASH_TABLE,
35060
195dbb3b6432 pidgin: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents: 33941
diff changeset
510 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
32599
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
511
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
512 /* VARIANT */
35074
0d56a4091806 Use glibcompat.h for "notify" in gtkconv-theme.c
Ankit Vani <a@nevitus.org>
parents: 35064
diff changeset
513 properties[PROP_VARIANT] = g_param_spec_string("variant", "Variant",
32599
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
514 "The current variant for this theme",
35060
195dbb3b6432 pidgin: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents: 33941
diff changeset
515 NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
35082
05a66637ec23 pidgin: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35074
diff changeset
516
05a66637ec23 pidgin: use g_object_class_install_properties instead of repeated g_object_class_install_property
Ankit Vani <a@nevitus.org>
parents: 35074
diff changeset
517 g_object_class_install_properties(obj_class, PROP_LAST, properties);
32599
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
518 }
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
519
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
520 GType
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
521 pidgin_conversation_theme_get_type(void)
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
522 {
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
523 static GType type = 0;
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
524 if (type == 0) {
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
525 static const GTypeInfo info = {
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
526 sizeof(PidginConvThemeClass),
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
527 NULL, /* base_init */
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
528 NULL, /* base_finalize */
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
529 (GClassInitFunc)pidgin_conv_theme_class_init, /* class_init */
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
530 NULL, /* class_finalize */
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
531 NULL, /* class_data */
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
532 sizeof(PidginConvTheme),
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
533 0, /* n_preallocs */
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
534 pidgin_conv_theme_init, /* instance_init */
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
535 NULL, /* value table */
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
536 };
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
537 type = g_type_register_static(PURPLE_TYPE_THEME,
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
538 "PidginConvTheme", &info, 0);
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
539 }
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
540 return type;
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
541 }
670b01df8023 Rearrange to drop the prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32598
diff changeset
542
32544
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
543 /*****************************************************************************
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
544 * Public API functions
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
545 *****************************************************************************/
4cf095ee82e3 Copy theme-to-conversation loading stuff into the GObject code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32540
diff changeset
546
32545
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
547 const GHashTable *
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
548 pidgin_conversation_theme_get_info(const PidginConvTheme *theme)
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
549 {
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
550 PidginConvThemePrivate *priv;
32576
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
551
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
552 g_return_val_if_fail(theme != NULL, NULL);
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
553
32545
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
554 priv = PIDGIN_CONV_THEME_GET_PRIVATE(theme);
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
555 return priv->info;
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
556 }
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
557
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
558 void
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
559 pidgin_conversation_theme_set_info(PidginConvTheme *theme, GHashTable *info)
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
560 {
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
561 PidginConvThemePrivate *priv;
32576
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
562
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
563 g_return_if_fail(theme != NULL);
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
564
32545
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
565 priv = PIDGIN_CONV_THEME_GET_PRIVATE(theme);
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
566
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
567 if (priv->info)
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
568 g_hash_table_destroy(priv->info);
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
569
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
570 priv->info = info;
35060
195dbb3b6432 pidgin: Use G_PARAM_STATIC_STRINGS and ensure g_object_notify is always called
Ankit Vani <a@nevitus.org>
parents: 33941
diff changeset
571
35074
0d56a4091806 Use glibcompat.h for "notify" in gtkconv-theme.c
Ankit Vani <a@nevitus.org>
parents: 35064
diff changeset
572 g_object_notify_by_pspec(G_OBJECT(theme), properties[PROP_INFO]);
32545
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
573 }
1b21192ab58a Move conversation theme loading into the PidginConvThemeLoader GObject
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32544
diff changeset
574
32573
83bf257530d0 Add a function for lookup of Info.plist entries.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32571
diff changeset
575 const GValue *
83bf257530d0 Add a function for lookup of Info.plist entries.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32571
diff changeset
576 pidgin_conversation_theme_lookup(PidginConvTheme *theme, const char *key, gboolean specific)
83bf257530d0 Add a function for lookup of Info.plist entries.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32571
diff changeset
577 {
83bf257530d0 Add a function for lookup of Info.plist entries.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32571
diff changeset
578 PidginConvThemePrivate *priv;
32576
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
579
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
580 g_return_val_if_fail(theme != NULL, NULL);
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
581
32573
83bf257530d0 Add a function for lookup of Info.plist entries.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32571
diff changeset
582 priv = PIDGIN_CONV_THEME_GET_PRIVATE(theme);
83bf257530d0 Add a function for lookup of Info.plist entries.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32571
diff changeset
583
83bf257530d0 Add a function for lookup of Info.plist entries.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32571
diff changeset
584 return get_key(priv, key, specific);
83bf257530d0 Add a function for lookup of Info.plist entries.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32571
diff changeset
585 }
83bf257530d0 Add a function for lookup of Info.plist entries.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32571
diff changeset
586
32571
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
587 const char *
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
588 pidgin_conversation_theme_get_template(PidginConvTheme *theme, PidginConvThemeTemplateType type)
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
589 {
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
590 PidginConvThemePrivate *priv;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
591 const char *dir;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
592 const char *html;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
593
32576
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
594 g_return_val_if_fail(theme != NULL, NULL);
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
595
32571
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
596 priv = PIDGIN_CONV_THEME_GET_PRIVATE(theme);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
597 dir = purple_theme_get_dir(PURPLE_THEME(theme));
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
598
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
599 switch (type) {
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
600 case PIDGIN_CONVERSATION_THEME_TEMPLATE_MAIN:
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
601 html = get_template_html(priv, dir);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
602 break;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
603 case PIDGIN_CONVERSATION_THEME_TEMPLATE_HEADER:
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
604 html = get_header_html(priv, dir);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
605 break;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
606 case PIDGIN_CONVERSATION_THEME_TEMPLATE_FOOTER:
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
607 html = get_footer_html(priv, dir);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
608 break;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
609 case PIDGIN_CONVERSATION_THEME_TEMPLATE_TOPIC:
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
610 html = get_topic_html(priv, dir);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
611 break;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
612 case PIDGIN_CONVERSATION_THEME_TEMPLATE_STATUS:
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
613 html = get_status_html(priv, dir);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
614 break;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
615 case PIDGIN_CONVERSATION_THEME_TEMPLATE_CONTENT:
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
616 html = get_content_html(priv, dir);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
617 break;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
618 case PIDGIN_CONVERSATION_THEME_TEMPLATE_INCOMING_CONTENT:
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
619 html = get_incoming_content_html(priv, dir);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
620 break;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
621 case PIDGIN_CONVERSATION_THEME_TEMPLATE_INCOMING_NEXT_CONTENT:
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
622 html = get_incoming_next_content_html(priv, dir);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
623 break;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
624 case PIDGIN_CONVERSATION_THEME_TEMPLATE_INCOMING_CONTEXT:
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
625 html = get_incoming_context_html(priv, dir);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
626 break;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
627 case PIDGIN_CONVERSATION_THEME_TEMPLATE_INCOMING_NEXT_CONTEXT:
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
628 html = get_incoming_next_context_html(priv, dir);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
629 break;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
630 case PIDGIN_CONVERSATION_THEME_TEMPLATE_OUTGOING_CONTENT:
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
631 html = get_outgoing_content_html(priv, dir);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
632 break;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
633 case PIDGIN_CONVERSATION_THEME_TEMPLATE_OUTGOING_NEXT_CONTENT:
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
634 html = get_outgoing_next_content_html(priv, dir);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
635 break;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
636 case PIDGIN_CONVERSATION_THEME_TEMPLATE_OUTGOING_CONTEXT:
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
637 html = get_outgoing_context_html(priv, dir);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
638 break;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
639 case PIDGIN_CONVERSATION_THEME_TEMPLATE_OUTGOING_NEXT_CONTEXT:
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
640 html = get_outgoing_next_context_html(priv, dir);
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
641 break;
32574
56dc04a81f4b Add template lookup for 'basestyle' CSS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32573
diff changeset
642 case PIDGIN_CONVERSATION_THEME_TEMPLATE_BASESTYLE_CSS:
56dc04a81f4b Add template lookup for 'basestyle' CSS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32573
diff changeset
643 html = get_basestyle_css(priv, dir);
56dc04a81f4b Add template lookup for 'basestyle' CSS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32573
diff changeset
644 break;
32571
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
645 default:
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
646 purple_debug_error("gtkconv-theme",
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
647 "Requested invalid template type (%d) for theme %s.\n",
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
648 type, purple_theme_get_name(PURPLE_THEME(theme)));
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
649 html = NULL;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
650 }
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
651
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
652 return html;
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
653 }
04b564092222 Add an accessor for template data. Also, fix some fallbacks.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32566
diff changeset
654
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
655 void
32564
b711e92242da Fix a leak. pidgin_conversation_theme_add_variant should only be
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32563
diff changeset
656 pidgin_conversation_theme_add_variant(PidginConvTheme *theme, char *variant)
32562
9c094ffe9333 Load the list of variants when building the theme.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32561
diff changeset
657 {
9c094ffe9333 Load the list of variants when building the theme.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32561
diff changeset
658 PidginConvThemePrivate *priv;
32576
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
659
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
660 g_return_if_fail(theme != NULL);
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
661 g_return_if_fail(variant != NULL);
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
662
32562
9c094ffe9333 Load the list of variants when building the theme.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32561
diff changeset
663 priv = PIDGIN_CONV_THEME_GET_PRIVATE(theme);
9c094ffe9333 Load the list of variants when building the theme.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32561
diff changeset
664
32564
b711e92242da Fix a leak. pidgin_conversation_theme_add_variant should only be
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32563
diff changeset
665 priv->variants = g_list_prepend(priv->variants, variant);
32562
9c094ffe9333 Load the list of variants when building the theme.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32561
diff changeset
666 }
9c094ffe9333 Load the list of variants when building the theme.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32561
diff changeset
667
9c094ffe9333 Load the list of variants when building the theme.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32561
diff changeset
668 const char *
9c094ffe9333 Load the list of variants when building the theme.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32561
diff changeset
669 pidgin_conversation_theme_get_variant(PidginConvTheme *theme)
9c094ffe9333 Load the list of variants when building the theme.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32561
diff changeset
670 {
9c094ffe9333 Load the list of variants when building the theme.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32561
diff changeset
671 PidginConvThemePrivate *priv;
32576
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
672
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
673 g_return_val_if_fail(theme != NULL, NULL);
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
674
32562
9c094ffe9333 Load the list of variants when building the theme.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32561
diff changeset
675 priv = PIDGIN_CONV_THEME_GET_PRIVATE(theme);
9c094ffe9333 Load the list of variants when building the theme.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32561
diff changeset
676
32601
36daedfec84a Fix a leak. This strdup shouldn't be here.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32600
diff changeset
677 return priv->variant;
32562
9c094ffe9333 Load the list of variants when building the theme.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32561
diff changeset
678 }
9c094ffe9333 Load the list of variants when building the theme.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32561
diff changeset
679
9c094ffe9333 Load the list of variants when building the theme.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32561
diff changeset
680 void
9c094ffe9333 Load the list of variants when building the theme.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32561
diff changeset
681 pidgin_conversation_theme_set_variant(PidginConvTheme *theme, const char *variant)
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
682 {
35064
995be3523e7c Removed unnecessary static function _set_variant
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
683 PidginConvThemePrivate *priv;
995be3523e7c Removed unnecessary static function _set_variant
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
684 const GValue *val;
995be3523e7c Removed unnecessary static function _set_variant
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
685 char *prefname;
995be3523e7c Removed unnecessary static function _set_variant
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
686
995be3523e7c Removed unnecessary static function _set_variant
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
687 g_return_if_fail(theme != NULL);
995be3523e7c Removed unnecessary static function _set_variant
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
688 g_return_if_fail(variant != NULL);
995be3523e7c Removed unnecessary static function _set_variant
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
689
995be3523e7c Removed unnecessary static function _set_variant
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
690 priv = PIDGIN_CONV_THEME_GET_PRIVATE(theme);
995be3523e7c Removed unnecessary static function _set_variant
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
691
995be3523e7c Removed unnecessary static function _set_variant
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
692 g_free(priv->variant);
995be3523e7c Removed unnecessary static function _set_variant
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
693 priv->variant = g_strdup(variant);
995be3523e7c Removed unnecessary static function _set_variant
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
694
995be3523e7c Removed unnecessary static function _set_variant
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
695 val = get_key(priv, "CFBundleIdentifier", FALSE);
995be3523e7c Removed unnecessary static function _set_variant
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
696 prefname = g_strdup_printf(PIDGIN_PREFS_ROOT "/conversations/themes/%s/variant",
995be3523e7c Removed unnecessary static function _set_variant
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
697 g_value_get_string(val));
995be3523e7c Removed unnecessary static function _set_variant
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
698 purple_prefs_set_string(prefname, variant);
995be3523e7c Removed unnecessary static function _set_variant
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
699 g_free(prefname);
995be3523e7c Removed unnecessary static function _set_variant
Ankit Vani <a@nevitus.org>
parents: 35060
diff changeset
700
32598
e824d9bbe6ff Make the current variant a property.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32587
diff changeset
701 g_object_notify_by_pspec(G_OBJECT(theme), properties[PROP_VARIANT]);
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
702 }
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
703
32562
9c094ffe9333 Load the list of variants when building the theme.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32561
diff changeset
704 const GList *
9c094ffe9333 Load the list of variants when building the theme.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32561
diff changeset
705 pidgin_conversation_theme_get_variants(PidginConvTheme *theme)
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
706 {
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
707 PidginConvThemePrivate *priv;
32576
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
708
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
709 g_return_val_if_fail(theme != NULL, NULL);
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
710
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
711 priv = PIDGIN_CONV_THEME_GET_PRIVATE(theme);
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
712
32562
9c094ffe9333 Load the list of variants when building the theme.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32561
diff changeset
713 return priv->variants;
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
714 }
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
715
32575
eb4fc932fae9 Apply conversation theme when opening the GTK conversation. All the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32574
diff changeset
716 char *
eb4fc932fae9 Apply conversation theme when opening the GTK conversation. All the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32574
diff changeset
717 pidgin_conversation_theme_get_template_path(PidginConvTheme *theme)
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
718 {
32575
eb4fc932fae9 Apply conversation theme when opening the GTK conversation. All the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32574
diff changeset
719 const char *dir;
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
720
32576
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
721 g_return_val_if_fail(theme != NULL, NULL);
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
722
32575
eb4fc932fae9 Apply conversation theme when opening the GTK conversation. All the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32574
diff changeset
723 dir = purple_theme_get_dir(PURPLE_THEME(theme));
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
724
32725
b8c479aec53b Fix fallback to builtin Template.html file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32639
diff changeset
725 return get_template_path(dir);
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
726 }
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
727
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
728 char *
32575
eb4fc932fae9 Apply conversation theme when opening the GTK conversation. All the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32574
diff changeset
729 pidgin_conversation_theme_get_css_path(PidginConvTheme *theme)
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
730 {
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
731 PidginConvThemePrivate *priv;
32558
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
732 const char *dir;
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
733
32576
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
734 g_return_val_if_fail(theme != NULL, NULL);
06ed3d7e9e72 Add some NULL checks. Now it should not crash even if you don't have
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32575
diff changeset
735
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
736 priv = PIDGIN_CONV_THEME_GET_PRIVATE(theme);
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
737
32558
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
738 dir = purple_theme_get_dir(PURPLE_THEME(theme));
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
739 if (!priv->variant) {
32558
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
740 return g_build_filename(dir, "Contents", "Resources", "main.css", NULL);
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
741 } else {
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
742 char *file = g_strdup_printf("%s.css", priv->variant);
32558
e9065eebef24 Lookup style key information from the hash table instead of the struct
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32549
diff changeset
743 char *ret = g_build_filename(dir, "Contents", "Resources", "Variants", file, NULL);
32540
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
744 g_free(file);
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
745 return ret;
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
746 }
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
747 }
1e50f90abb9b Attempt to move the message style object from the plugin into the new
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32539
diff changeset
748
33384
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
749 GArray *
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
750 pidgin_conversation_theme_get_nick_colors(PidginConvTheme *theme)
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
751 {
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
752 PidginConvThemePrivate *priv;
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
753 const char *dir;
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
754
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
755 g_return_val_if_fail(theme != NULL, NULL);
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
756
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
757 priv = PIDGIN_CONV_THEME_GET_PRIVATE(theme);
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
758
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
759 dir = purple_theme_get_dir(PURPLE_THEME(theme));
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
760 if (NULL == priv->nick_colors)
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
761 {
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
762 char *file = g_build_filename(dir, "Contents", "Resources", "Incoming", "SenderColors.txt", NULL);
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
763 char *contents;
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
764 priv->nick_colors = g_array_new(FALSE, FALSE, sizeof(GdkColor));
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
765 if (g_file_get_contents(file, &contents, NULL, NULL)) {
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
766 int i;
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
767 gchar ** color_strings = g_strsplit_set(contents, "\r\n:", -1);
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
768
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
769 for(i=0; color_strings[i]; i++)
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
770 {
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
771 GdkColor color;
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
772 if(gdk_color_parse(color_strings[i], &color))
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
773 {
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
774 g_array_append_val(priv->nick_colors, color);
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
775 }
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
776 }
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
777
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
778 g_strfreev(color_strings);
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
779 g_free(contents);
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
780 }
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
781 g_free(file);
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
782 }
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
783
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
784 if(priv->nick_colors->len)
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
785 return g_array_ref(priv->nick_colors);
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
786 else
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
787 return NULL;
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
788 }
215f0b668ac6 now loads the SenderColors.txt file from the theme if it exists, otherwise falls back to the built-in runtime-generated list
Nathan Walp <nwalp@pidgin.im>
parents: 32960
diff changeset
789

mercurial