finch/libgnt/gntcolors.c

Sat, 26 Apr 2014 21:08:57 +0200

author
Tomasz Wasilczyk <twasilczyk@pidgin.im>
date
Sat, 26 Apr 2014 21:08:57 +0200
changeset 35919
17fed1e7d305
parent 35877
6c3ab2fd4412
child 36257
c5445f25f90f
permissions
-rw-r--r--

Finch: fix glib warnings

35456
821aa4bcb6fa Fix a bunch of gtk-doc warnings in finch
Ankit Vani <a@nevitus.org>
parents: 34306
diff changeset
1 /*
17586
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
2 * GNT - The GLib Ncurses Toolkit
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
3 *
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
4 * GNT is the legal property of its developers, whose names are too numerous
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
6 * source distribution.
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
7 *
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
8 * This library is free software; you can redistribute it and/or modify
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
9 * it under the terms of the GNU General Public License as published by
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
11 * (at your option) any later version.
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
12 *
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
13 * This program is distributed in the hope that it will be useful,
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
16 * GNU General Public License for more details.
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
17 *
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
18 * You should have received a copy of the GNU General Public License
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
19 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19562
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
17586
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
21 */
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
22
24822
d7774462f2ba Use glib log functions to show error messages.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23452
diff changeset
23 #include "gntinternal.h"
d7774462f2ba Use glib log functions to show error messages.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23452
diff changeset
24 #undef GNT_LOG_DOMAIN
d7774462f2ba Use glib log functions to show error messages.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23452
diff changeset
25 #define GNT_LOG_DOMAIN "Colors"
d7774462f2ba Use glib log functions to show error messages.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23452
diff changeset
26
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
27 #include "gntcolors.h"
14361
4d6014205744 [gaim-migrate @ 16989]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14318
diff changeset
28 #include "gntstyle.h"
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
29
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
30 #include <glib.h>
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
31
23452
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22104
diff changeset
32 #include <errno.h>
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
33 #include <stdlib.h>
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
34 #include <string.h>
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
35
21240
b78eaddaae02 Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
36 static gboolean hascolors;
21804
931ef2cc7cfb Add support for colour in gnttreerows, and colourise the blist. Fixes #1490
Richard Nelson <wabz@pidgin.im>
parents: 21240
diff changeset
37 static int custom_type = GNT_COLORS;
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
38 static struct
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
39 {
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
40 short r, g, b;
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
41 } colors[GNT_TOTAL_COLORS];
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
42
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
43 static void
22104
56970903b8e9 Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@pidgin.im>
parents: 21807
diff changeset
44 backup_colors(void)
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
45 {
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
46 short i;
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
47 for (i = 0; i < GNT_TOTAL_COLORS; i++)
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
48 {
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
49 color_content(i, &colors[i].r,
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
50 &colors[i].g, &colors[i].b);
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
51 }
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
52 }
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
53
14363
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
54 static gboolean
22104
56970903b8e9 Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@pidgin.im>
parents: 21807
diff changeset
55 can_use_custom_color(void)
14363
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
56 {
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
57 return (gnt_style_get_bool(GNT_STYLE_COLOR, FALSE) && can_change_color());
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
58 }
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
59
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
60 static void
22104
56970903b8e9 Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@pidgin.im>
parents: 21807
diff changeset
61 restore_colors(void)
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
62 {
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
63 short i;
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
64 for (i = 0; i < GNT_TOTAL_COLORS; i++)
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
65 {
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
66 init_color(i, colors[i].r,
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
67 colors[i].g, colors[i].b);
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
68 }
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
69 }
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
70
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
71 void gnt_init_colors()
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
72 {
14363
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
73 static gboolean init = FALSE;
14364
bb4cb3c0df9d [gaim-migrate @ 16992]
Ethan Blanton <elb@pidgin.im>
parents: 14363
diff changeset
74 int defaults;
14363
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
75
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
76 if (init)
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
77 return;
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
78 init = TRUE;
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
79
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
80 start_color();
21240
b78eaddaae02 Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
81 if (!(hascolors = has_colors()))
b78eaddaae02 Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
82 return;
14364
bb4cb3c0df9d [gaim-migrate @ 16992]
Ethan Blanton <elb@pidgin.im>
parents: 14363
diff changeset
83 defaults = use_default_colors();
14363
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
84
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
85 if (can_use_custom_color())
13913
14dc0af2b33f [gaim-migrate @ 16310]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
86 {
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
87 backup_colors();
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
88
14318
07aba2cdc261 [gaim-migrate @ 16938]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14272
diff changeset
89 /* Do some init_color()s */
13913
14dc0af2b33f [gaim-migrate @ 16310]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
90 init_color(GNT_COLOR_BLACK, 0, 0, 0);
14dc0af2b33f [gaim-migrate @ 16310]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
91 init_color(GNT_COLOR_RED, 1000, 0, 0);
14dc0af2b33f [gaim-migrate @ 16310]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
92 init_color(GNT_COLOR_GREEN, 0, 1000, 0);
13959
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
93 init_color(GNT_COLOR_BLUE, 250, 250, 700);
13913
14dc0af2b33f [gaim-migrate @ 16310]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
94 init_color(GNT_COLOR_WHITE, 1000, 1000, 1000);
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13944
diff changeset
95 init_color(GNT_COLOR_GRAY, 699, 699, 699);
13913
14dc0af2b33f [gaim-migrate @ 16310]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
96 init_color(GNT_COLOR_DARK_GRAY, 256, 256, 256);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
97
13913
14dc0af2b33f [gaim-migrate @ 16310]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
98 /* Now some init_pair()s */
14dc0af2b33f [gaim-migrate @ 16310]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
99 init_pair(GNT_COLOR_NORMAL, GNT_COLOR_BLACK, GNT_COLOR_WHITE);
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13944
diff changeset
100 init_pair(GNT_COLOR_HIGHLIGHT, GNT_COLOR_WHITE, GNT_COLOR_BLUE);
13913
14dc0af2b33f [gaim-migrate @ 16310]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
101 init_pair(GNT_COLOR_SHADOW, GNT_COLOR_BLACK, GNT_COLOR_DARK_GRAY);
13959
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
102
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
103 init_pair(GNT_COLOR_TITLE, GNT_COLOR_WHITE, GNT_COLOR_BLUE);
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
104 init_pair(GNT_COLOR_TITLE_D, GNT_COLOR_WHITE, GNT_COLOR_GRAY);
49d3a87c2679 [gaim-migrate @ 16382]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
105
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13944
diff changeset
106 init_pair(GNT_COLOR_TEXT_NORMAL, GNT_COLOR_WHITE, GNT_COLOR_BLUE);
13944
2269d17043b1 [gaim-migrate @ 16362]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13917
diff changeset
107 init_pair(GNT_COLOR_HIGHLIGHT_D, GNT_COLOR_BLACK, GNT_COLOR_GRAY);
13958
bd1c3bb3f33d [gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13944
diff changeset
108 init_pair(GNT_COLOR_DISABLED, GNT_COLOR_GRAY, GNT_COLOR_WHITE);
14449
d760eb4c7aa0 [gaim-migrate @ 17093]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14387
diff changeset
109 init_pair(GNT_COLOR_URGENT, GNT_COLOR_WHITE, GNT_COLOR_RED);
13913
14dc0af2b33f [gaim-migrate @ 16310]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
110 }
14dc0af2b33f [gaim-migrate @ 16310]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
111 else
14dc0af2b33f [gaim-migrate @ 16310]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
112 {
14449
d760eb4c7aa0 [gaim-migrate @ 17093]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14387
diff changeset
113 int bg;
d760eb4c7aa0 [gaim-migrate @ 17093]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14387
diff changeset
114
d760eb4c7aa0 [gaim-migrate @ 17093]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14387
diff changeset
115 if (defaults == OK) {
14364
bb4cb3c0df9d [gaim-migrate @ 16992]
Ethan Blanton <elb@pidgin.im>
parents: 14363
diff changeset
116 init_pair(GNT_COLOR_NORMAL, -1, -1);
14449
d760eb4c7aa0 [gaim-migrate @ 17093]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14387
diff changeset
117 bg = -1;
d760eb4c7aa0 [gaim-migrate @ 17093]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14387
diff changeset
118 } else {
d760eb4c7aa0 [gaim-migrate @ 17093]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14387
diff changeset
119 init_pair(GNT_COLOR_NORMAL, COLOR_BLACK, COLOR_WHITE);
d760eb4c7aa0 [gaim-migrate @ 17093]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14387
diff changeset
120 bg = COLOR_WHITE;
14364
bb4cb3c0df9d [gaim-migrate @ 16992]
Ethan Blanton <elb@pidgin.im>
parents: 14363
diff changeset
121 }
14449
d760eb4c7aa0 [gaim-migrate @ 17093]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14387
diff changeset
122 init_pair(GNT_COLOR_DISABLED, COLOR_YELLOW, bg);
d760eb4c7aa0 [gaim-migrate @ 17093]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14387
diff changeset
123 init_pair(GNT_COLOR_URGENT, COLOR_GREEN, bg);
d760eb4c7aa0 [gaim-migrate @ 17093]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14387
diff changeset
124
13973
99603d7e2662 [gaim-migrate @ 16410]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
125 init_pair(GNT_COLOR_HIGHLIGHT, COLOR_WHITE, COLOR_BLUE);
13913
14dc0af2b33f [gaim-migrate @ 16310]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
126 init_pair(GNT_COLOR_SHADOW, COLOR_BLACK, COLOR_BLACK);
13973
99603d7e2662 [gaim-migrate @ 16410]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
127 init_pair(GNT_COLOR_TITLE, COLOR_WHITE, COLOR_BLUE);
99603d7e2662 [gaim-migrate @ 16410]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
128 init_pair(GNT_COLOR_TITLE_D, COLOR_WHITE, COLOR_BLACK);
99603d7e2662 [gaim-migrate @ 16410]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13959
diff changeset
129 init_pair(GNT_COLOR_TEXT_NORMAL, COLOR_WHITE, COLOR_BLUE);
13944
2269d17043b1 [gaim-migrate @ 16362]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13917
diff changeset
130 init_pair(GNT_COLOR_HIGHLIGHT_D, COLOR_CYAN, COLOR_BLACK);
13913
14dc0af2b33f [gaim-migrate @ 16310]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
131 }
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
132 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
133
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
134 void
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
135 gnt_uninit_colors()
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
136 {
14363
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
137 if (can_use_custom_color())
14361
4d6014205744 [gaim-migrate @ 16989]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14318
diff changeset
138 restore_colors();
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
139 }
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13973
diff changeset
140
21804
931ef2cc7cfb Add support for colour in gnttreerows, and colourise the blist. Fixes #1490
Richard Nelson <wabz@pidgin.im>
parents: 21240
diff changeset
141 int
931ef2cc7cfb Add support for colour in gnttreerows, and colourise the blist. Fixes #1490
Richard Nelson <wabz@pidgin.im>
parents: 21240
diff changeset
142 gnt_colors_get_color(char *key)
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
143 {
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
144 int color;
14363
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
145 gboolean custom = can_use_custom_color();
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
146
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
147 key = g_strstrip(key);
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
148
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
149 if (strcmp(key, "black") == 0)
14363
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
150 color = custom ? GNT_COLOR_BLACK : COLOR_BLACK;
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
151 else if (strcmp(key, "red") == 0)
14363
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
152 color = custom ? GNT_COLOR_RED : COLOR_RED;
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
153 else if (strcmp(key, "green") == 0)
14363
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
154 color = custom ? GNT_COLOR_GREEN : COLOR_GREEN;
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
155 else if (strcmp(key, "blue") == 0)
14363
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
156 color = custom ? GNT_COLOR_BLUE : COLOR_BLUE;
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
157 else if (strcmp(key, "white") == 0)
14363
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
158 color = custom ? GNT_COLOR_WHITE : COLOR_WHITE;
31757
408ea1e062fc Allow both spellings of grey, since this is user-visible.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28607
diff changeset
159 else if (strcmp(key, "gray") == 0 || strcmp(key, "grey") == 0)
14363
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
160 color = custom ? GNT_COLOR_GRAY : COLOR_YELLOW; /* eh? */
31757
408ea1e062fc Allow both spellings of grey, since this is user-visible.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28607
diff changeset
161 else if (strcmp(key, "darkgray") == 0 || strcmp(key, "darkgrey") == 0)
14363
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
162 color = custom ? GNT_COLOR_DARK_GRAY : COLOR_BLACK;
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
163 else if (strcmp(key, "magenta") == 0)
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
164 color = COLOR_MAGENTA;
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
165 else if (strcmp(key, "cyan") == 0)
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
166 color = COLOR_CYAN;
21807
3d64cf4a1601 Update the changelogs. Correct the man page. Allow 'default' to mean the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21804
diff changeset
167 else if (strcmp(key, "default") == 0)
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
168 color = -1;
21807
3d64cf4a1601 Update the changelogs. Correct the man page. Allow 'default' to mean the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21804
diff changeset
169 else {
3d64cf4a1601 Update the changelogs. Correct the man page. Allow 'default' to mean the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21804
diff changeset
170 g_warning("Invalid color name: %s\n", key);
23452
0cf9a2c482ff msgcolor command to change colors of messages in conversations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22104
diff changeset
171 color = -EINVAL;
21807
3d64cf4a1601 Update the changelogs. Correct the man page. Allow 'default' to mean the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21804
diff changeset
172 }
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
173 return color;
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
174 }
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
175
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
176 void gnt_colors_parse(GKeyFile *kfile)
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
177 {
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
178 GError *error = NULL;
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
179 gsize nkeys;
35919
17fed1e7d305 Finch: fix glib warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35877
diff changeset
180 char **keys;
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
181
35919
17fed1e7d305 Finch: fix glib warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35877
diff changeset
182 if (!g_key_file_has_group(kfile, "colors")) {
17fed1e7d305 Finch: fix glib warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35877
diff changeset
183 gnt_color_pairs_parse(kfile);
17fed1e7d305 Finch: fix glib warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35877
diff changeset
184 return;
17fed1e7d305 Finch: fix glib warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35877
diff changeset
185 }
17fed1e7d305 Finch: fix glib warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35877
diff changeset
186
17fed1e7d305 Finch: fix glib warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35877
diff changeset
187 keys = g_key_file_get_keys(kfile, "colors", &nkeys, &error);
17fed1e7d305 Finch: fix glib warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35877
diff changeset
188 if (error) {
24822
d7774462f2ba Use glib log functions to show error messages.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23452
diff changeset
189 gnt_warning("%s", error->message);
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
190 g_error_free(error);
14318
07aba2cdc261 [gaim-migrate @ 16938]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14272
diff changeset
191 error = NULL;
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
192 }
14363
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
193 else if (nkeys)
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
194 {
14363
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
195 gnt_init_colors();
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
196 while (nkeys--)
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
197 {
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
198 gsize len;
15752
ddbc89eeb603 small leak/fix
Richard Nelson <wabz@pidgin.im>
parents: 14490
diff changeset
199 gchar *key = keys[nkeys];
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
200 char **list = g_key_file_get_string_list(kfile, "colors", key, &len, NULL);
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
201 if (len == 3)
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
202 {
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
203 int r = atoi(list[0]);
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
204 int g = atoi(list[1]);
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
205 int b = atoi(list[2]);
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
206 int color = -1;
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
207
15752
ddbc89eeb603 small leak/fix
Richard Nelson <wabz@pidgin.im>
parents: 14490
diff changeset
208 key = g_ascii_strdown(key, -1);
21804
931ef2cc7cfb Add support for colour in gnttreerows, and colourise the blist. Fixes #1490
Richard Nelson <wabz@pidgin.im>
parents: 21240
diff changeset
209 color = gnt_colors_get_color(key);
15752
ddbc89eeb603 small leak/fix
Richard Nelson <wabz@pidgin.im>
parents: 14490
diff changeset
210 g_free(key);
28607
d2a771ebd6aa Plug leaks from incorrect color types/names in gntrc.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25524
diff changeset
211 if (color == -EINVAL) {
d2a771ebd6aa Plug leaks from incorrect color types/names in gntrc.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25524
diff changeset
212 g_strfreev(list);
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
213 continue;
28607
d2a771ebd6aa Plug leaks from incorrect color types/names in gntrc.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25524
diff changeset
214 }
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
215
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
216 init_color(color, r, g, b);
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
217 }
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
218 g_strfreev(list);
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
219 }
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
220
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
221 g_strfreev(keys);
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
222 }
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
223
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
224 gnt_color_pairs_parse(kfile);
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
225 }
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
226
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
227 void gnt_color_pairs_parse(GKeyFile *kfile)
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
228 {
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
229 GError *error = NULL;
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
230 gsize nkeys;
35919
17fed1e7d305 Finch: fix glib warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35877
diff changeset
231 char **keys;
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
232
35919
17fed1e7d305 Finch: fix glib warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35877
diff changeset
233 if (!g_key_file_has_group(kfile, "colorpairs"))
17fed1e7d305 Finch: fix glib warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35877
diff changeset
234 return;
17fed1e7d305 Finch: fix glib warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35877
diff changeset
235
17fed1e7d305 Finch: fix glib warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35877
diff changeset
236 keys = g_key_file_get_keys(kfile, "colorpairs", &nkeys, &error);
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
237 if (error)
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
238 {
24822
d7774462f2ba Use glib log functions to show error messages.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23452
diff changeset
239 gnt_warning("%s", error->message);
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
240 g_error_free(error);
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
241 return;
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
242 }
14363
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
243 else if (nkeys)
f837a417bd23 [gaim-migrate @ 16991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14361
diff changeset
244 gnt_init_colors();
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
245
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
246 while (nkeys--)
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
247 {
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
248 gsize len;
15752
ddbc89eeb603 small leak/fix
Richard Nelson <wabz@pidgin.im>
parents: 14490
diff changeset
249 gchar *key = keys[nkeys];
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
250 char **list = g_key_file_get_string_list(kfile, "colorpairs", key, &len, NULL);
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
251 if (len == 2)
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
252 {
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
253 GntColorType type = 0;
15752
ddbc89eeb603 small leak/fix
Richard Nelson <wabz@pidgin.im>
parents: 14490
diff changeset
254 gchar *fgc = g_ascii_strdown(list[0], -1);
ddbc89eeb603 small leak/fix
Richard Nelson <wabz@pidgin.im>
parents: 14490
diff changeset
255 gchar *bgc = g_ascii_strdown(list[1], -1);
21804
931ef2cc7cfb Add support for colour in gnttreerows, and colourise the blist. Fixes #1490
Richard Nelson <wabz@pidgin.im>
parents: 21240
diff changeset
256 int fg = gnt_colors_get_color(fgc);
931ef2cc7cfb Add support for colour in gnttreerows, and colourise the blist. Fixes #1490
Richard Nelson <wabz@pidgin.im>
parents: 21240
diff changeset
257 int bg = gnt_colors_get_color(bgc);
15752
ddbc89eeb603 small leak/fix
Richard Nelson <wabz@pidgin.im>
parents: 14490
diff changeset
258 g_free(fgc);
ddbc89eeb603 small leak/fix
Richard Nelson <wabz@pidgin.im>
parents: 14490
diff changeset
259 g_free(bgc);
28607
d2a771ebd6aa Plug leaks from incorrect color types/names in gntrc.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25524
diff changeset
260 if (fg == -EINVAL || bg == -EINVAL) {
d2a771ebd6aa Plug leaks from incorrect color types/names in gntrc.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25524
diff changeset
261 g_strfreev(list);
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
262 continue;
28607
d2a771ebd6aa Plug leaks from incorrect color types/names in gntrc.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25524
diff changeset
263 }
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
264
15752
ddbc89eeb603 small leak/fix
Richard Nelson <wabz@pidgin.im>
parents: 14490
diff changeset
265 key = g_ascii_strdown(key, -1);
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
266
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
267 if (strcmp(key, "normal") == 0)
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
268 type = GNT_COLOR_NORMAL;
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
269 else if (strcmp(key, "highlight") == 0)
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
270 type = GNT_COLOR_HIGHLIGHT;
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
271 else if (strcmp(key, "highlightd") == 0)
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
272 type = GNT_COLOR_HIGHLIGHT_D;
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
273 else if (strcmp(key, "shadow") == 0)
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
274 type = GNT_COLOR_SHADOW;
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
275 else if (strcmp(key, "title") == 0)
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
276 type = GNT_COLOR_TITLE;
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
277 else if (strcmp(key, "titled") == 0)
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
278 type = GNT_COLOR_TITLE_D;
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
279 else if (strcmp(key, "text") == 0)
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
280 type = GNT_COLOR_TEXT_NORMAL;
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
281 else if (strcmp(key, "disabled") == 0)
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
282 type = GNT_COLOR_DISABLED;
14449
d760eb4c7aa0 [gaim-migrate @ 17093]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14387
diff changeset
283 else if (strcmp(key, "urgent") == 0)
d760eb4c7aa0 [gaim-migrate @ 17093]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14387
diff changeset
284 type = GNT_COLOR_URGENT;
15752
ddbc89eeb603 small leak/fix
Richard Nelson <wabz@pidgin.im>
parents: 14490
diff changeset
285 else {
28607
d2a771ebd6aa Plug leaks from incorrect color types/names in gntrc.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25524
diff changeset
286 g_strfreev(list);
15752
ddbc89eeb603 small leak/fix
Richard Nelson <wabz@pidgin.im>
parents: 14490
diff changeset
287 g_free(key);
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
288 continue;
15752
ddbc89eeb603 small leak/fix
Richard Nelson <wabz@pidgin.im>
parents: 14490
diff changeset
289 }
ddbc89eeb603 small leak/fix
Richard Nelson <wabz@pidgin.im>
parents: 14490
diff changeset
290 g_free(key);
14066
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
291
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
292 init_pair(type, fg, bg);
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
293 }
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
294 g_strfreev(list);
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
295 }
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
296
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
297 g_strfreev(keys);
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
298 }
3a97522e09ee [gaim-migrate @ 16589]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
299
21240
b78eaddaae02 Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
300 int gnt_color_pair(int pair)
b78eaddaae02 Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
301 {
b78eaddaae02 Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
302 return (hascolors ? COLOR_PAIR(pair) :
b78eaddaae02 Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
303 ((pair == GNT_COLOR_NORMAL || pair == GNT_COLOR_HIGHLIGHT_D ||
34306
4fb8809f2f97 Fix finch warnings about -Wsign-compare
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33649
diff changeset
304 pair == GNT_COLOR_TITLE_D || pair == GNT_COLOR_DISABLED) ? 0 : (int)A_STANDOUT));
21240
b78eaddaae02 Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
305 }
b78eaddaae02 Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
306
21804
931ef2cc7cfb Add support for colour in gnttreerows, and colourise the blist. Fixes #1490
Richard Nelson <wabz@pidgin.im>
parents: 21240
diff changeset
307 int gnt_color_add_pair(int fg, int bg)
931ef2cc7cfb Add support for colour in gnttreerows, and colourise the blist. Fixes #1490
Richard Nelson <wabz@pidgin.im>
parents: 21240
diff changeset
308 {
931ef2cc7cfb Add support for colour in gnttreerows, and colourise the blist. Fixes #1490
Richard Nelson <wabz@pidgin.im>
parents: 21240
diff changeset
309 init_pair(custom_type, fg, bg);
931ef2cc7cfb Add support for colour in gnttreerows, and colourise the blist. Fixes #1490
Richard Nelson <wabz@pidgin.im>
parents: 21240
diff changeset
310 return custom_type++;
931ef2cc7cfb Add support for colour in gnttreerows, and colourise the blist. Fixes #1490
Richard Nelson <wabz@pidgin.im>
parents: 21240
diff changeset
311 }

mercurial