Mercurial > pidgin.yaz
comparison console/libgnt/gntstyle.c @ 14010:7573bd40a190
[gaim-migrate @ 16602]
Allow plugins to be loaded and unloaded.
Remember the window positions and sizes.
All turning on/off shadow from ~/.gntrc (off by default).
committer: Tailor Script <tailor@pidgin.im>
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Mon, 31 Jul 2006 23:19:12 +0000 |
parents | 06f75fb84a78 |
children | bb38f32ab6aa |
comparison
equal
deleted
inserted
replaced
14009:1e283c3566ab | 14010:7573bd40a190 |
---|---|
1 #include "gntstyle.h" | 1 #include "gntstyle.h" |
2 #include "gntcolors.h" | 2 #include "gntcolors.h" |
3 | |
4 #include <string.h> | |
5 | |
6 static char * str_styles[GNT_STYLES]; | |
7 static int int_styles[GNT_STYLES]; | |
8 static int bool_styles[GNT_STYLES]; | |
9 | |
10 const char *gnt_style_get(GntStyle style) | |
11 { | |
12 return str_styles[style]; | |
13 } | |
14 | |
15 gboolean gnt_style_get_bool(GntStyle style, gboolean def) | |
16 { | |
17 int i; | |
18 const char * str; | |
19 | |
20 if (bool_styles[style] != -1) | |
21 return bool_styles[style]; | |
22 | |
23 str = gnt_style_get(style); | |
24 | |
25 if (str) | |
26 { | |
27 if (strcmp(str, "false") == 0) | |
28 def = FALSE; | |
29 else if (strcmp(str, "true") == 0) | |
30 def = TRUE; | |
31 else if (sscanf(str, "%d", &i) == 1) | |
32 { | |
33 if (i) | |
34 def = TRUE; | |
35 else | |
36 def = FALSE; | |
37 } | |
38 } | |
39 | |
40 bool_styles[style] = def; | |
41 return bool_styles[style]; | |
42 } | |
43 | |
44 static void | |
45 read_general_style(GKeyFile *kfile) | |
46 { | |
47 GError *error = NULL; | |
48 gsize nkeys; | |
49 char **keys = g_key_file_get_keys(kfile, "general", &nkeys, &error); | |
50 int i; | |
51 struct | |
52 { | |
53 const char *style; | |
54 GntStyle en; | |
55 } styles[] = {{"shadow", GNT_STYLE_SHADOW}, | |
56 {NULL, 0}}; | |
57 | |
58 if (error) | |
59 { | |
60 /* XXX: some error happened. */ | |
61 g_error_free(error); | |
62 } | |
63 else | |
64 { | |
65 for (i = 0; styles[i].style; i++) | |
66 { | |
67 error = NULL; | |
68 str_styles[styles[i].en] = | |
69 g_key_file_get_string(kfile, "general", styles[i].style, &error); | |
70 } | |
71 } | |
72 } | |
3 | 73 |
4 void gnt_style_read_configure_file(const char *filename) | 74 void gnt_style_read_configure_file(const char *filename) |
5 { | 75 { |
6 #if GLIB_CHECK_VERSION(2,6,0) | 76 #if GLIB_CHECK_VERSION(2,6,0) |
7 GKeyFile *kfile = g_key_file_new(); | 77 GKeyFile *kfile = g_key_file_new(); |
12 /* XXX: Print the error or something */ | 82 /* XXX: Print the error or something */ |
13 g_error_free(error); | 83 g_error_free(error); |
14 return; | 84 return; |
15 } | 85 } |
16 gnt_colors_parse(kfile); | 86 gnt_colors_parse(kfile); |
87 read_general_style(kfile); | |
17 | 88 |
18 g_key_file_free(kfile); | 89 g_key_file_free(kfile); |
19 #endif | 90 #endif |
20 } | 91 } |
21 | 92 |
93 void gnt_init_styles() | |
94 { | |
95 int i; | |
96 for (i = 0; i < GNT_STYLES; i++) | |
97 { | |
98 str_styles[i] = NULL; | |
99 int_styles[i] = -1; | |
100 bool_styles[i] = -1; | |
101 } | |
102 } | |
103 | |
104 void gnt_uninit_styles() | |
105 { | |
106 int i; | |
107 for (i = 0; i < GNT_STYLES; i++) | |
108 g_free(str_styles[i]); | |
109 } | |
110 |