Mercurial > pidgin
annotate src/gtkprefs.c @ 11581:9b3833da6840
[gaim-migrate @ 13851]
goodbye GaimConvWindow.
Still some problems with this patch:
- Scarey warnings console with gaim -d when closing tab
- I tried to seperate gtkconv and gtkconvwin, but failed,
as a result it has its own header, but the code is in the same
file, which is rather weird. Also some code got moved around
for no good reason. Feel free to move it back or reorganize it.
- I broke the gesters plugin, and just disabled it. Hopefully someone
with more time will fix it, it shouldn't take long, but I didn't
feel like bothering.
- This list is incomplete.
committer: Tailor Script <tailor@pidgin.im>
author | Tim Ringenbach <marv@pidgin.im> |
---|---|
date | Sun, 02 Oct 2005 00:32:49 +0000 |
parents | 1e7c0773380f |
children | de413ae71cba |
rev | line source |
---|---|
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1 /** |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2 * @file gtkprefs.c GTK+ Preferences |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
3 * @ingroup gtkui |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
4 * |
5440 | 5 * gaim |
6 * | |
8046 | 7 * Gaim is the legal property of its developers, whose names are too numerous |
8 * to list here. Please refer to the COPYRIGHT file distributed with this | |
9 * source distribution. | |
5440 | 10 * |
11 * This program is free software; you can redistribute it and/or modify | |
12 * it under the terms of the GNU General Public License as published by | |
13 * the Free Software Foundation; either version 2 of the License, or | |
14 * (at your option) any later version. | |
15 * | |
16 * This program is distributed in the hope that it will be useful, | |
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 * GNU General Public License for more details. | |
20 * | |
21 * You should have received a copy of the GNU General Public License | |
22 * along with this program; if not, write to the Free Software | |
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
24 * | |
25 */ | |
9791 | 26 #include "internal.h" |
27 #include "gtkgaim.h" | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
28 |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
29 #include "debug.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
30 #include "notify.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
31 #include "prefs.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
32 #include "proxy.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
33 #include "prpl.h" |
9508 | 34 #include "request.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
35 #include "sound.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
36 #include "util.h" |
8231
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
37 #include "network.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
38 |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
39 #include "gtkblist.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
40 #include "gtkconv.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
41 #include "gtkdebug.h" |
9709 | 42 #include "gtkdialogs.h" |
5440 | 43 #include "gtkimhtml.h" |
8833 | 44 #include "gtkimhtmltoolbar.h" |
5440 | 45 #include "gtkplugin.h" |
8713 | 46 #include "gtkpluginpref.h" |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
47 #include "gtkprefs.h" |
5684 | 48 #include "gtksound.h" |
11525 | 49 #include "gtkthemes.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
50 #include "gtkutils.h" |
10297
ec140184437b
[gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents:
10272
diff
changeset
|
51 #include "gtkstock.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
52 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
53 #define PROXYHOST 0 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
54 #define PROXYPORT 1 |
6005 | 55 #define PROXYUSER 2 |
56 #define PROXYPASS 3 | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
57 |
5440 | 58 static int sound_row_sel = 0; |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
59 static GtkWidget *prefsnotebook; |
5440 | 60 |
61 static GtkWidget *sound_entry = NULL; | |
62 static GtkListStore *smiley_theme_store = NULL; | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
63 static GtkWidget *prefs_proxy_frame = NULL; |
5440 | 64 |
65 static GtkWidget *prefs = NULL; | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
66 static GtkWidget *debugbutton = NULL; |
5440 | 67 static int notebook_page = 0; |
10759 | 68 static GtkTreeIter plugin_iter; |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
69 static GtkTreeRowReference *previous_smiley_row = NULL; |
5440 | 70 |
71 /* | |
72 * PROTOTYPES | |
73 */ | |
10759 | 74 static int prefs_notebook_add_page(const char*, GdkPixbuf*, |
75 GtkWidget*, GtkTreeIter*, | |
76 GtkTreeIter*, int); | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
77 static void delete_prefs(GtkWidget *, void *); |
5440 | 78 static void update_plugin_list(void *data); |
79 | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
80 static void |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
81 update_spin_value(GtkWidget *w, GtkWidget *spin) |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
82 { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
83 const char *key = g_object_get_data(G_OBJECT(spin), "val"); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
84 int value; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
85 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
86 value = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin)); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
87 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
88 gaim_prefs_set_int(key, value); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
89 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
90 |
7976 | 91 GtkWidget * |
7987 | 92 gaim_gtk_prefs_labeled_spin_button(GtkWidget *box, const gchar *title, |
10367
5fe89d2df440
[gaim-migrate @ 11586]
Luke Schierer <lschiere@pidgin.im>
parents:
10364
diff
changeset
|
93 const char *key, int min, int max, GtkSizeGroup *sg) |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
94 { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
95 GtkWidget *hbox; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
96 GtkWidget *label; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
97 GtkWidget *spin; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
98 GtkObject *adjust; |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
99 int val; |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
100 |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
101 val = gaim_prefs_get_int(key); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
102 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
103 hbox = gtk_hbox_new(FALSE, 5); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
104 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
105 gtk_widget_show(hbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
106 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
107 label = gtk_label_new_with_mnemonic(title); |
8713 | 108 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
109 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
110 gtk_widget_show(label); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
111 |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
112 adjust = gtk_adjustment_new(val, min, max, 1, 1, 1); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
113 spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0); |
10367
5fe89d2df440
[gaim-migrate @ 11586]
Luke Schierer <lschiere@pidgin.im>
parents:
10364
diff
changeset
|
114 g_object_set_data(G_OBJECT(spin), "val", (char *)key); |
8467 | 115 if (max < 10000) |
116 gtk_widget_set_size_request(spin, 50, -1); | |
117 else | |
118 gtk_widget_set_size_request(spin, 60, -1); | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
119 gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
120 g_signal_connect(G_OBJECT(adjust), "value-changed", |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
121 G_CALLBACK(update_spin_value), GTK_WIDGET(spin)); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
122 gtk_widget_show(spin); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
123 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
124 gtk_label_set_mnemonic_widget(GTK_LABEL(label), spin); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
125 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
126 if (sg) { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
127 gtk_size_group_add_widget(sg, label); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
128 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
129 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
130 |
8137 | 131 gaim_set_accessible_label (spin, label); |
10759 | 132 |
8238 | 133 return hbox; |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
134 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
135 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
136 static void |
9422 | 137 entry_set(GtkEntry *entry, gpointer data) { |
10367
5fe89d2df440
[gaim-migrate @ 11586]
Luke Schierer <lschiere@pidgin.im>
parents:
10364
diff
changeset
|
138 const char *key = (const char*)data; |
9422 | 139 |
140 gaim_prefs_set_string(key, gtk_entry_get_text(entry)); | |
141 } | |
142 | |
143 GtkWidget * | |
10367
5fe89d2df440
[gaim-migrate @ 11586]
Luke Schierer <lschiere@pidgin.im>
parents:
10364
diff
changeset
|
144 gaim_gtk_prefs_labeled_entry(GtkWidget *page, const gchar *title, |
5fe89d2df440
[gaim-migrate @ 11586]
Luke Schierer <lschiere@pidgin.im>
parents:
10364
diff
changeset
|
145 const char *key, GtkSizeGroup *sg) |
9422 | 146 { |
147 GtkWidget *hbox, *label, *entry; | |
148 const gchar *value; | |
149 | |
150 value = gaim_prefs_get_string(key); | |
151 | |
152 hbox = gtk_hbox_new(FALSE, 5); | |
153 gtk_box_pack_start(GTK_BOX(page), hbox, FALSE, FALSE, 5); | |
154 gtk_widget_show(hbox); | |
155 | |
156 label = gtk_label_new_with_mnemonic(title); | |
157 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
158 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
159 gtk_widget_show(label); | |
160 | |
161 entry = gtk_entry_new(); | |
162 gtk_entry_set_text(GTK_ENTRY(entry), value); | |
163 gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 0); | |
164 g_signal_connect(G_OBJECT(entry), "changed", | |
165 G_CALLBACK(entry_set), (char*)key); | |
166 gtk_widget_show(entry); | |
167 | |
168 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
169 | |
170 if(sg) { | |
171 gtk_size_group_add_widget(sg, label); | |
172 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
173 } | |
174 | |
175 gaim_set_accessible_label(entry, label); | |
176 | |
177 return hbox; | |
178 } | |
179 | |
180 static void | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
181 dropdown_set(GObject *w, const char *key) |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
182 { |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
183 const char *str_value; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
184 int int_value; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
185 GaimPrefType type; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
186 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
187 type = GPOINTER_TO_INT(g_object_get_data(w, "type")); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
188 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
189 if (type == GAIM_PREF_INT) { |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
190 int_value = GPOINTER_TO_INT(g_object_get_data(w, "value")); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
191 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
192 gaim_prefs_set_int(key, int_value); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
193 } |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
194 else if (type == GAIM_PREF_STRING) { |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
195 str_value = (const char *)g_object_get_data(w, "value"); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
196 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
197 gaim_prefs_set_string(key, str_value); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
198 } |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
199 else if (type == GAIM_PREF_BOOLEAN) { |
9151 | 200 gaim_prefs_set_bool(key, |
201 GPOINTER_TO_INT(g_object_get_data(w, "value"))); | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
202 } |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
203 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
204 |
7976 | 205 GtkWidget * |
7987 | 206 gaim_gtk_prefs_dropdown_from_list(GtkWidget *box, const gchar *title, |
207 GaimPrefType type, const char *key, GList *menuitems) | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
208 { |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
209 GtkWidget *dropdown, *opt, *menu; |
11267
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
210 GtkWidget *label = NULL; |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
211 GtkWidget *hbox; |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
212 gchar *text; |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
213 const char *stored_str = NULL; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
214 int stored_int = 0; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
215 int int_value = 0; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
216 const char *str_value = NULL; |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
217 int o = 0; |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
218 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
219 g_return_val_if_fail(menuitems != NULL, NULL); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
220 |
11267
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
221 if (title != NULL) { |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
222 hbox = gtk_hbox_new(FALSE, 5); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
223 /*gtk_container_add (GTK_CONTAINER (box), hbox);*/ |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
224 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
225 gtk_widget_show(hbox); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
226 |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
227 label = gtk_label_new_with_mnemonic(title); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
228 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
229 gtk_widget_show(label); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
230 } else { |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
231 hbox = box; |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
232 } |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
233 |
8577 | 234 #if 0 /* GTK_CHECK_VERSION(2,4,0) */ |
235 if(type == GAIM_PREF_INT) | |
236 model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT); | |
237 else if(type == GAIM_PREF_STRING) | |
238 model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); | |
239 dropdown = gtk_combo_box_new_with_model(model); | |
240 #else | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
241 dropdown = gtk_option_menu_new(); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
242 menu = gtk_menu_new(); |
8577 | 243 #endif |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
244 |
11267
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
245 if (label != NULL) { |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
246 gtk_label_set_mnemonic_widget(GTK_LABEL(label), dropdown); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
247 gaim_set_accessible_label (dropdown, label); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
248 } |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
249 |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
250 if (type == GAIM_PREF_INT) |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
251 stored_int = gaim_prefs_get_int(key); |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
252 else if (type == GAIM_PREF_STRING) |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
253 stored_str = gaim_prefs_get_string(key); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
254 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
255 while (menuitems != NULL && (text = (char *) menuitems->data) != NULL) { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
256 menuitems = g_list_next(menuitems); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
257 g_return_val_if_fail(menuitems != NULL, NULL); |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
258 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
259 opt = gtk_menu_item_new_with_label(text); |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
260 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
261 g_object_set_data(G_OBJECT(opt), "type", GINT_TO_POINTER(type)); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
262 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
263 if (type == GAIM_PREF_INT) { |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
264 int_value = GPOINTER_TO_INT(menuitems->data); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
265 g_object_set_data(G_OBJECT(opt), "value", |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
266 GINT_TO_POINTER(int_value)); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
267 } |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
268 else if (type == GAIM_PREF_STRING) { |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
269 str_value = (const char *)menuitems->data; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
270 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
271 g_object_set_data(G_OBJECT(opt), "value", (char *)str_value); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
272 } |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
273 else if (type == GAIM_PREF_BOOLEAN) { |
9151 | 274 g_object_set_data(G_OBJECT(opt), "value", |
275 menuitems->data); | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
276 } |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
277 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
278 g_signal_connect(G_OBJECT(opt), "activate", |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
279 G_CALLBACK(dropdown_set), (char *)key); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
280 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
281 gtk_widget_show(opt); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
282 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
283 |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
284 if ((type == GAIM_PREF_INT && stored_int == int_value) || |
5753
96214f5de47c
[gaim-migrate @ 6178]
Christian Hammond <chipx86@chipx86.com>
parents:
5716
diff
changeset
|
285 (type == GAIM_PREF_STRING && stored_str != NULL && |
96214f5de47c
[gaim-migrate @ 6178]
Christian Hammond <chipx86@chipx86.com>
parents:
5716
diff
changeset
|
286 !strcmp(stored_str, str_value)) || |
9151 | 287 (type == GAIM_PREF_BOOLEAN && |
288 (gaim_prefs_get_bool(key) == GPOINTER_TO_INT(menuitems->data)))) { | |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
289 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
290 gtk_menu_set_active(GTK_MENU(menu), o); |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
291 } |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
292 |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
293 menuitems = g_list_next(menuitems); |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
294 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
295 o++; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
296 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
297 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
298 gtk_option_menu_set_menu(GTK_OPTION_MENU(dropdown), menu); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
299 gtk_box_pack_start(GTK_BOX(hbox), dropdown, FALSE, FALSE, 0); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
300 gtk_widget_show(dropdown); |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
301 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
302 return label; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
303 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
304 |
7976 | 305 GtkWidget * |
7987 | 306 gaim_gtk_prefs_dropdown(GtkWidget *box, const gchar *title, GaimPrefType type, |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
307 const char *key, ...) |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
308 { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
309 va_list ap; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
310 GList *menuitems = NULL; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
311 GtkWidget *dropdown = NULL; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
312 char *name; |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
313 int int_value; |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
314 const char *str_value; |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
315 |
9151 | 316 g_return_val_if_fail(type == GAIM_PREF_BOOLEAN || type == GAIM_PREF_INT || |
317 type == GAIM_PREF_STRING, NULL); | |
318 | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
319 va_start(ap, key); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
320 while ((name = va_arg(ap, char *)) != NULL) { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
321 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
322 menuitems = g_list_prepend(menuitems, name); |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
323 |
9151 | 324 if (type == GAIM_PREF_INT || type == GAIM_PREF_BOOLEAN) { |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
325 int_value = va_arg(ap, int); |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
326 menuitems = g_list_prepend(menuitems, GINT_TO_POINTER(int_value)); |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
327 } |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
328 else { |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
329 str_value = va_arg(ap, const char *); |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
330 menuitems = g_list_prepend(menuitems, (char *)str_value); |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
331 } |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
332 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
333 va_end(ap); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
334 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
335 g_return_val_if_fail(menuitems != NULL, NULL); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
336 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
337 menuitems = g_list_reverse(menuitems); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
338 |
7987 | 339 dropdown = gaim_gtk_prefs_dropdown_from_list(box, title, type, key, |
340 menuitems); | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
341 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
342 g_list_free(menuitems); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
343 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
344 return dropdown; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
345 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
346 |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
347 static void |
10759 | 348 add_plugin_prefs(GaimPlugin *plugin) |
349 { | |
350 /* | |
351 * NOTE: This is basically the same check as before | |
352 * (plug->type == plugin), but now there aren't plugin types. | |
353 * Not yet, anyway. I want to do a V2 of the plugin API. | |
354 * The thing is, we should have a flag specifying the UI type, | |
355 * or just whether it's a general plugin or a UI-specific | |
356 * plugin. We should only load this if it's UI-specific. | |
357 * | |
358 * -- ChipX86 | |
359 */ | |
360 if (GAIM_IS_GTK_PLUGIN(plugin)) | |
361 { | |
362 GtkWidget *config_frame; | |
363 GaimGtkPluginUiInfo *ui_info; | |
364 | |
365 ui_info = GAIM_GTK_PLUGIN_UI_INFO(plugin); | |
366 config_frame = gaim_gtk_plugin_get_config_frame(plugin); | |
367 | |
368 if (config_frame != NULL) | |
369 { | |
370 ui_info->page_num = | |
371 prefs_notebook_add_page(_(plugin->info->name), NULL, | |
372 config_frame, NULL, | |
373 &plugin_iter, notebook_page++); | |
374 } | |
375 } | |
376 | |
377 if (GAIM_PLUGIN_HAS_PREF_FRAME(plugin)) | |
378 { | |
379 GtkWidget *gtk_frame; | |
380 GaimPluginUiInfo *prefs_info; | |
381 | |
382 prefs_info = GAIM_PLUGIN_UI_INFO(plugin); | |
383 prefs_info->frame = prefs_info->get_plugin_pref_frame(plugin); | |
384 gtk_frame = gaim_gtk_plugin_pref_create_frame(prefs_info->frame); | |
385 | |
386 if (GTK_IS_WIDGET(gtk_frame)) | |
387 { | |
388 prefs_info->page_num = | |
389 prefs_notebook_add_page(_(plugin->info->name), NULL, | |
390 gtk_frame, NULL, | |
391 (plugin->info->type == GAIM_PLUGIN_PROTOCOL) ? NULL : &plugin_iter, | |
392 notebook_page++); | |
393 } else if(prefs_info->frame) { | |
394 /* in the event that there is a pref frame and we can | |
395 * not make a widget out of it, we free the | |
396 * pluginpref frame --Gary | |
397 */ | |
398 gaim_plugin_pref_frame_destroy(prefs_info->frame); | |
399 } | |
400 } | |
401 } | |
402 | |
403 static void | |
404 delete_plugin_prefs(GaimPlugin *plugin) | |
405 { | |
406 if (GAIM_IS_GTK_PLUGIN(plugin)) | |
407 { | |
408 GaimGtkPluginUiInfo *ui_info; | |
409 | |
410 ui_info = GAIM_GTK_PLUGIN_UI_INFO(plugin); | |
411 | |
412 if (ui_info != NULL && ui_info->page_num > 0) { | |
413 gtk_notebook_remove_page(GTK_NOTEBOOK(prefsnotebook), | |
414 ui_info->page_num); | |
415 } | |
416 } | |
417 | |
418 if (GAIM_PLUGIN_HAS_PREF_FRAME(plugin)) | |
419 { | |
420 GaimPluginUiInfo *prefs_info; | |
421 | |
422 prefs_info = GAIM_PLUGIN_UI_INFO(plugin); | |
423 | |
424 if (prefs_info->frame != NULL) { | |
425 gaim_plugin_pref_frame_destroy(prefs_info->frame); | |
426 prefs_info->frame = NULL; | |
427 } | |
428 | |
429 if (prefs_info->page_num > 0) { | |
430 gtk_notebook_remove_page(GTK_NOTEBOOK(prefsnotebook), | |
431 prefs_info->page_num); | |
432 } | |
433 } | |
434 } | |
435 | |
436 static void | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
437 delete_prefs(GtkWidget *asdf, void *gdsa) |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
438 { |
5440 | 439 GList *l; |
440 | |
9508 | 441 /* Close any "select sound" request dialogs */ |
442 gaim_request_close_with_handle(prefs); | |
443 | |
5440 | 444 gaim_plugins_unregister_probe_notify_cb(update_plugin_list); |
445 | |
10087 | 446 /* Unregister callbacks. */ |
447 gaim_prefs_disconnect_by_handle(prefs); | |
448 | |
5440 | 449 prefs = NULL; |
450 sound_entry = NULL; | |
451 debugbutton = NULL; | |
452 notebook_page = 0; | |
453 smiley_theme_store = NULL; | |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
454 if (previous_smiley_row) |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
455 gtk_tree_row_reference_free(previous_smiley_row); |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
456 previous_smiley_row = NULL; |
5440 | 457 |
10759 | 458 for (l = gaim_plugins_get_loaded(); l != NULL; l = l->next) |
459 { | |
460 delete_plugin_prefs(l->data); | |
5440 | 461 } |
462 } | |
463 | |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
464 static void smiley_sel(GtkTreeSelection *sel, GtkTreeModel *model) { |
5440 | 465 GtkTreeIter iter; |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
466 const char *themename; |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
467 char *description; |
5440 | 468 GValue val = { 0, }; |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
469 GtkTreePath *path, *oldpath; |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
470 struct smiley_theme *new_theme, *old_theme; |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
471 |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
472 if (!gtk_tree_selection_get_selected(sel, &model, &iter)) |
5440 | 473 return; |
11550 | 474 |
475 old_theme = current_smiley_theme; | |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
476 gtk_tree_model_get_value(model, &iter, 3, &val); |
11550 | 477 path = gtk_tree_model_get_path(model, &iter); |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
478 themename = g_value_get_string(&val); |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
479 gaim_prefs_set_string("/gaim/gtk/smileys/theme", themename); |
5440 | 480 g_value_unset (&val); |
11550 | 481 |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
482 /* current_smiley_theme is set in callback for the above pref change */ |
11550 | 483 new_theme = current_smiley_theme; |
484 description = g_strdup_printf("<span size='larger' weight='bold'>%s</span> - %s\n" | |
485 "<span size='smaller' foreground='white'>%s</span>", | |
486 new_theme->name, new_theme->author, new_theme->desc); | |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
487 gtk_list_store_set(smiley_theme_store, &iter, 1, description, -1); |
11550 | 488 g_free(description); |
489 | |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
490 if (new_theme != old_theme && previous_smiley_row) { |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
491 oldpath = gtk_tree_row_reference_get_path(previous_smiley_row); |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
492 if (gtk_tree_model_get_iter(model, &iter, oldpath)) { |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
493 description = g_strdup_printf("<span size='larger' weight='bold'>%s</span> - %s\n" |
11550 | 494 "<span size='smaller' foreground='dim grey'>%s</span>", |
495 old_theme->name, old_theme->author, old_theme->desc); | |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
496 gtk_list_store_set(smiley_theme_store, &iter, 1, |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
497 description, -1); |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
498 g_free(description); |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
499 } |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
500 gtk_tree_path_free(oldpath); |
11550 | 501 } |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
502 if (previous_smiley_row) |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
503 gtk_tree_row_reference_free(previous_smiley_row); |
11550 | 504 previous_smiley_row = gtk_tree_row_reference_new(model, path); |
505 gtk_tree_path_free(path); | |
5440 | 506 } |
507 | |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
508 static GtkTreeRowReference *theme_refresh_theme_list() |
5440 | 509 { |
510 GdkPixbuf *pixbuf; | |
511 GSList *themes; | |
512 GtkTreeIter iter; | |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
513 GtkTreeRowReference *row_ref = NULL; |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
514 |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
515 if (previous_smiley_row) |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
516 gtk_tree_row_reference_free(previous_smiley_row); |
11550 | 517 previous_smiley_row = NULL; |
5440 | 518 |
11525 | 519 gaim_gtkthemes_smiley_theme_probe(); |
520 | |
521 if (!(themes = smiley_themes)) | |
5440 | 522 return NULL; |
523 | |
524 gtk_list_store_clear(smiley_theme_store); | |
525 | |
526 while (themes) { | |
527 struct smiley_theme *theme = themes->data; | |
528 char *description = g_strdup_printf("<span size='larger' weight='bold'>%s</span> - %s\n" | |
529 "<span size='smaller' foreground='dim grey'>%s</span>", | |
530 theme->name, theme->author, theme->desc); | |
531 gtk_list_store_append (smiley_theme_store, &iter); | |
8494 | 532 |
533 /* | |
534 * LEAK - Gentoo memprof thinks pixbuf is leaking here... but it | |
535 * looks like it should be ok to me. Anyone know what's up? --Mark | |
536 */ | |
8963 | 537 pixbuf = (theme->icon ? gdk_pixbuf_new_from_file(theme->icon, NULL) : NULL); |
5440 | 538 |
539 gtk_list_store_set(smiley_theme_store, &iter, | |
540 0, pixbuf, | |
541 1, description, | |
542 2, theme->path, | |
8928 | 543 3, theme->name, |
5440 | 544 -1); |
7094
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
545 |
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
546 if (pixbuf != NULL) |
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
547 g_object_unref(G_OBJECT(pixbuf)); |
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
548 |
5440 | 549 g_free(description); |
550 themes = themes->next; | |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
551 |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
552 /* If this is the currently selected theme, |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
553 * we will need to select it. Grab the row reference. */ |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
554 if (theme == current_smiley_theme) { |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
555 GtkTreePath *path = gtk_tree_model_get_path( |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
556 GTK_TREE_MODEL(smiley_theme_store), &iter); |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
557 row_ref = gtk_tree_row_reference_new( |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
558 GTK_TREE_MODEL(smiley_theme_store), path); |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
559 gtk_tree_path_free(path); |
5440 | 560 } |
561 } | |
562 | |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
563 return row_ref; |
5440 | 564 } |
565 | |
10871 | 566 static void theme_install_theme(char *path, char *extn) { |
5440 | 567 #ifndef _WIN32 |
9769 | 568 gchar *command, *escaped; |
5440 | 569 #endif |
570 gchar *destdir; | |
571 gchar *tail; | |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
572 GtkTreeRowReference *theme_rowref; |
5440 | 573 |
574 /* Just to be safe */ | |
575 g_strchomp(path); | |
576 | |
577 /* I dont know what you are, get out of here */ | |
578 if (extn != NULL) | |
579 tail = extn; | |
580 else if ((tail = strrchr(path, '.')) == NULL) | |
581 return; | |
582 | |
583 destdir = g_strconcat(gaim_user_dir(), G_DIR_SEPARATOR_S "smileys", NULL); | |
584 | |
585 /* We'll check this just to make sure. This also lets us do something different on | |
586 * other platforms, if need be */ | |
587 if (!g_ascii_strcasecmp(tail, ".gz") || !g_ascii_strcasecmp(tail, ".tgz")) { | |
588 #ifndef _WIN32 | |
9769 | 589 escaped = g_shell_quote(path); |
590 command = g_strdup_printf("tar > /dev/null xzf %s -C %s", escaped, destdir); | |
591 g_free(escaped); | |
5440 | 592 #else |
593 if(!wgaim_gz_untar(path, destdir)) { | |
594 g_free(destdir); | |
595 return; | |
596 } | |
597 #endif | |
598 } | |
599 else { | |
600 g_free(destdir); | |
601 return; | |
602 } | |
603 | |
604 #ifndef _WIN32 | |
605 /* Fire! */ | |
606 system(command); | |
607 | |
608 g_free(command); | |
609 #endif | |
610 g_free(destdir); | |
611 | |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
612 theme_rowref = theme_refresh_theme_list(); |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
613 if (theme_rowref != NULL) |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
614 gtk_tree_row_reference_free(theme_rowref); |
5440 | 615 } |
616 | |
7094
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
617 static void |
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
618 theme_got_url(void *data, const char *themedata, size_t len) |
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
619 { |
5440 | 620 FILE *f; |
621 gchar *path; | |
622 | |
10203
7ff9b8b22e7d
[gaim-migrate @ 11324]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
10182
diff
changeset
|
623 f = gaim_mkstemp(&path, TRUE); |
5440 | 624 fwrite(themedata, len, 1, f); |
625 fclose(f); | |
626 | |
627 theme_install_theme(path, data); | |
628 | |
10589
0f7452b1f777
[gaim-migrate @ 11994]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
10492
diff
changeset
|
629 g_unlink(path); |
5440 | 630 g_free(path); |
631 } | |
632 | |
11137 | 633 static void theme_dnd_recv(GtkWidget *widget, GdkDragContext *dc, guint x, guint y, GtkSelectionData *sd, |
5440 | 634 guint info, guint t, gpointer data) { |
11137 | 635 gchar *name = (gchar *)sd->data; |
5440 | 636 |
637 if ((sd->length >= 0) && (sd->format == 8)) { | |
11137 | 638 /* Well, it looks like the drag event was cool. |
5440 | 639 * Let's do something with it */ |
640 | |
641 if (!g_ascii_strncasecmp(name, "file://", 7)) { | |
642 GError *converr = NULL; | |
643 gchar *tmp; | |
11137 | 644 /* It looks like we're dealing with a local file. Let's |
5440 | 645 * just untar it in the right place */ |
646 if(!(tmp = g_filename_from_uri(name, NULL, &converr))) { | |
647 gaim_debug(GAIM_DEBUG_ERROR, "theme dnd", "%s\n", | |
648 (converr ? converr->message : | |
649 "g_filename_from_uri error")); | |
650 return; | |
651 } | |
652 theme_install_theme(tmp, NULL); | |
653 g_free(tmp); | |
654 } else if (!g_ascii_strncasecmp(name, "http://", 7)) { | |
655 /* Oo, a web drag and drop. This is where things | |
656 * will start to get interesting */ | |
657 gchar *tail; | |
658 | |
659 if ((tail = strrchr(name, '.')) == NULL) | |
660 return; | |
661 | |
662 /* We'll check this just to make sure. This also lets us do something different on | |
663 * other platforms, if need be */ | |
7094
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
664 gaim_url_fetch(name, TRUE, NULL, FALSE, theme_got_url, ".tgz"); |
5440 | 665 } |
666 | |
667 gtk_drag_finish(dc, TRUE, FALSE, t); | |
668 } | |
669 | |
670 gtk_drag_finish(dc, FALSE, FALSE, t); | |
671 } | |
672 | |
8928 | 673 /* Does same as normal sort, except "none" is sorted first */ |
674 gint gaim_sort_smileys (GtkTreeModel *model, | |
675 GtkTreeIter *a, | |
676 GtkTreeIter *b, | |
677 gpointer userdata) | |
678 { | |
679 gint ret = 0; | |
9949 | 680 gchar *name1 = NULL, *name2 = NULL; |
8928 | 681 |
682 gtk_tree_model_get(model, a, 3, &name1, -1); | |
683 gtk_tree_model_get(model, b, 3, &name2, -1); | |
684 | |
685 if (name1 == NULL || name2 == NULL) { | |
686 if (!(name1 == NULL && name2 == NULL)) | |
687 ret = (name1 == NULL) ? -1: 1; | |
688 } else if (!g_ascii_strcasecmp(name1, "none")) { | |
10167 | 689 if (!g_utf8_collate(name1, name2)) |
690 ret = 0; | |
691 else | |
692 /* Sort name1 first */ | |
693 ret = -1; | |
8928 | 694 } else if (!g_ascii_strcasecmp(name2, "none")) { |
695 /* Sort name2 first */ | |
696 ret = 1; | |
697 } else { | |
698 /* Neither string is "none", default to normal sort */ | |
699 ret = g_utf8_collate(name1,name2); | |
700 } | |
701 | |
9521 | 702 g_free(name1); |
703 g_free(name2); | |
704 | |
8928 | 705 return ret; |
706 } | |
707 | |
10850 | 708 static GtkWidget * |
709 theme_page() | |
710 { | |
5440 | 711 GtkWidget *ret; |
712 GtkWidget *sw; | |
713 GtkWidget *view; | |
714 GtkCellRenderer *rend; | |
715 GtkTreeViewColumn *col; | |
716 GtkTreeSelection *sel; | |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
717 GtkTreeRowReference *rowref; |
5440 | 718 GtkWidget *label; |
719 GtkTargetEntry te[3] = {{"text/plain", 0, 0},{"text/uri-list", 0, 1},{"STRING", 0, 2}}; | |
720 | |
11243 | 721 ret = gtk_vbox_new(FALSE, GAIM_HIG_BOX_SPACE); |
722 gtk_container_set_border_width (GTK_CONTAINER (ret), GAIM_HIG_BORDER); | |
5440 | 723 |
724 label = gtk_label_new(_("Select a smiley theme that you would like to use from the list below. New themes can be installed by dragging and dropping them onto the theme list.")); | |
725 | |
726 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
727 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
728 gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT); | |
729 | |
730 gtk_box_pack_start(GTK_BOX(ret), label, FALSE, TRUE, 0); | |
731 gtk_widget_show(label); | |
732 | |
733 sw = gtk_scrolled_window_new(NULL,NULL); | |
7939 | 734 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
7931 | 735 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
5440 | 736 |
737 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); | |
8928 | 738 smiley_theme_store = gtk_list_store_new (4, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); |
5440 | 739 |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
740 rowref = theme_refresh_theme_list(); |
8075 | 741 |
5440 | 742 view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(smiley_theme_store)); |
743 | |
11525 | 744 gtk_drag_dest_set(view, GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_HIGHLIGHT | GTK_DEST_DEFAULT_DROP, te, |
5440 | 745 sizeof(te) / sizeof(GtkTargetEntry) , GDK_ACTION_COPY | GDK_ACTION_MOVE); |
746 | |
747 g_signal_connect(G_OBJECT(view), "drag_data_received", G_CALLBACK(theme_dnd_recv), smiley_theme_store); | |
748 | |
749 rend = gtk_cell_renderer_pixbuf_new(); | |
750 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); | |
751 | |
8928 | 752 /* Custom sort so "none" theme is at top of list */ |
753 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(smiley_theme_store), | |
754 3, gaim_sort_smileys, NULL, NULL); | |
755 | |
8075 | 756 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(smiley_theme_store), |
8928 | 757 3, GTK_SORT_ASCENDING); |
5440 | 758 |
759 col = gtk_tree_view_column_new_with_attributes (_("Icon"), | |
760 rend, | |
761 "pixbuf", 0, | |
762 NULL); | |
763 gtk_tree_view_append_column (GTK_TREE_VIEW(view), col); | |
764 | |
765 rend = gtk_cell_renderer_text_new(); | |
766 col = gtk_tree_view_column_new_with_attributes (_("Description"), | |
767 rend, | |
768 "markup", 1, | |
769 NULL); | |
770 gtk_tree_view_append_column (GTK_TREE_VIEW(view), col); | |
771 g_object_unref(G_OBJECT(smiley_theme_store)); | |
772 gtk_container_add(GTK_CONTAINER(sw), view); | |
773 | |
8075 | 774 g_signal_connect(G_OBJECT(sel), "changed", G_CALLBACK(smiley_sel), NULL); |
5440 | 775 |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
776 if (rowref) { |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
777 GtkTreePath *path = gtk_tree_row_reference_get_path(rowref); |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
778 gtk_tree_row_reference_free(rowref); |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
779 gtk_tree_selection_select_path(sel, path); |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
780 gtk_tree_path_free(path); |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
781 } |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
782 |
5440 | 783 gtk_widget_show_all(ret); |
8137 | 784 |
785 gaim_set_accessible_label (view, label); | |
786 | |
5440 | 787 return ret; |
788 } | |
789 | |
9025 | 790 static void |
11267
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
791 formatting_toggle_cb(GtkIMHtml *imhtml, GtkIMHtmlButtons buttons, void *toolbar) |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
792 { |
9025 | 793 gboolean bold, italic, uline; |
794 | |
795 bold = italic = uline = FALSE; | |
796 gtk_imhtml_get_current_format(GTK_IMHTML(imhtml), | |
797 &bold, &italic, &uline); | |
798 | |
799 if (buttons & GTK_IMHTML_BOLD) | |
800 gaim_prefs_set_bool("/gaim/gtk/conversations/send_bold", bold); | |
801 if (buttons & GTK_IMHTML_ITALIC) | |
802 gaim_prefs_set_bool("/gaim/gtk/conversations/send_italic", italic); | |
803 if (buttons & GTK_IMHTML_UNDERLINE) | |
804 gaim_prefs_set_bool("/gaim/gtk/conversations/send_underline", uline); | |
805 | |
806 if (buttons & GTK_IMHTML_GROW || buttons & GTK_IMHTML_SHRINK) | |
807 gaim_prefs_set_int("/gaim/gtk/conversations/font_size", | |
808 gtk_imhtml_get_current_fontsize(GTK_IMHTML(imhtml))); | |
809 if (buttons & GTK_IMHTML_FACE) { | |
810 char *face = gtk_imhtml_get_current_fontface(GTK_IMHTML(imhtml)); | |
811 if (!face) | |
812 face = g_strdup(""); | |
813 | |
814 gaim_prefs_set_string("/gaim/gtk/conversations/font_face", face); | |
815 g_free(face); | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
816 } |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
817 |
9025 | 818 if (buttons & GTK_IMHTML_FORECOLOR) { |
819 char *color = gtk_imhtml_get_current_forecolor(GTK_IMHTML(imhtml)); | |
820 if (!color) | |
821 color = g_strdup(""); | |
822 | |
823 gaim_prefs_set_string("/gaim/gtk/conversations/fgcolor", color); | |
824 g_free(color); | |
825 } | |
826 | |
827 if (buttons & GTK_IMHTML_BACKCOLOR) { | |
11267
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
828 char *color; |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
829 GObject *object; |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
830 |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
831 color = gtk_imhtml_get_current_backcolor(GTK_IMHTML(imhtml)); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
832 if (!color) |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
833 color = g_strdup(""); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
834 |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
835 /* Block the signal to prevent a loop. */ |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
836 object = g_object_ref(G_OBJECT(imhtml)); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
837 g_signal_handlers_block_matched(object, G_SIGNAL_MATCH_DATA, 0, 0, NULL, |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
838 NULL, toolbar); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
839 /* Clear the backcolor. */ |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
840 gtk_imhtml_toggle_backcolor(GTK_IMHTML(imhtml), ""); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
841 /* Unblock the signal. */ |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
842 g_signal_handlers_unblock_matched(object, G_SIGNAL_MATCH_DATA, 0, 0, NULL, |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
843 NULL, toolbar); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
844 g_object_unref(object); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
845 |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
846 /* This will fire a toggle signal and get saved below. */ |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
847 gtk_imhtml_toggle_background(GTK_IMHTML(imhtml), color); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
848 |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
849 g_free(color); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
850 } |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
851 |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
852 if (buttons & GTK_IMHTML_BACKGROUND) { |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
853 char *color = gtk_imhtml_get_current_background(GTK_IMHTML(imhtml)); |
9025 | 854 if (!color) |
855 color = g_strdup(""); | |
856 | |
857 gaim_prefs_set_string("/gaim/gtk/conversations/bgcolor", color); | |
858 g_free(color); | |
859 } | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
860 } |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
861 |
11275
ffc86d9ad8b7
[gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents:
11271
diff
changeset
|
862 static void |
ffc86d9ad8b7
[gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents:
11271
diff
changeset
|
863 formatting_clear_cb(GtkIMHtml *imhtml, void *data) |
ffc86d9ad8b7
[gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents:
11271
diff
changeset
|
864 { |
ffc86d9ad8b7
[gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents:
11271
diff
changeset
|
865 gaim_prefs_set_bool("/gaim/gtk/conversations/send_bold", FALSE); |
ffc86d9ad8b7
[gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents:
11271
diff
changeset
|
866 gaim_prefs_set_bool("/gaim/gtk/conversations/send_italic", FALSE); |
ffc86d9ad8b7
[gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents:
11271
diff
changeset
|
867 gaim_prefs_set_bool("/gaim/gtk/conversations/send_underline", FALSE); |
ffc86d9ad8b7
[gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents:
11271
diff
changeset
|
868 |
ffc86d9ad8b7
[gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents:
11271
diff
changeset
|
869 gaim_prefs_set_int("/gaim/gtk/conversations/font_size", 3); |
ffc86d9ad8b7
[gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents:
11271
diff
changeset
|
870 |
ffc86d9ad8b7
[gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents:
11271
diff
changeset
|
871 gaim_prefs_set_string("/gaim/gtk/conversations/font_face", ""); |
ffc86d9ad8b7
[gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents:
11271
diff
changeset
|
872 gaim_prefs_set_string("/gaim/gtk/conversations/fgcolor", ""); |
ffc86d9ad8b7
[gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents:
11271
diff
changeset
|
873 gaim_prefs_set_string("/gaim/gtk/conversations/bgcolor", ""); |
ffc86d9ad8b7
[gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents:
11271
diff
changeset
|
874 } |
ffc86d9ad8b7
[gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents:
11271
diff
changeset
|
875 |
10850 | 876 static GtkWidget * |
877 list_page() | |
878 { | |
5440 | 879 GtkWidget *ret; |
880 GtkWidget *vbox; | |
881 GList *l= NULL; | |
5567
cc9ddec20010
[gaim-migrate @ 5969]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
882 GSList *sl; |
11243 | 883 ret = gtk_vbox_new(FALSE, GAIM_HIG_BOX_SPACE); |
884 gtk_container_set_border_width (GTK_CONTAINER (ret), GAIM_HIG_BORDER); | |
7305 | 885 |
886 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
887 vbox = gaim_gtk_make_frame (ret, _("Buddy List Sorting")); |
5567
cc9ddec20010
[gaim-migrate @ 5969]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
888 |
cc9ddec20010
[gaim-migrate @ 5969]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
889 for (sl = gaim_gtk_blist_sort_methods; sl != NULL; sl = sl->next) { |
5631 | 890 struct gaim_gtk_blist_sort_method *method = sl->data; |
891 | |
892 l = g_list_append(l, method->name); | |
893 l = g_list_append(l, method->id); | |
5440 | 894 } |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
895 |
8063 | 896 gaim_gtk_prefs_dropdown_from_list(vbox, _("_Sorting:"), GAIM_PREF_STRING, |
7987 | 897 "/gaim/gtk/blist/sort_type", l); |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
898 |
5440 | 899 g_list_free(l); |
900 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
901 vbox = gaim_gtk_make_frame (ret, _("Buddy Display")); |
10351 | 902 gaim_gtk_prefs_checkbox(_("Show more buddy details"), |
7305 | 903 "/gaim/gtk/blist/show_buddy_icons", vbox); |
5440 | 904 |
905 gtk_widget_show_all(ret); | |
5547
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
906 |
5440 | 907 return ret; |
908 } | |
909 | |
8979 | 910 static void |
9155 | 911 conversation_usetabs_cb(const char *name, GaimPrefType type, gpointer value, |
8979 | 912 gpointer data) |
913 { | |
10112 | 914 gboolean usetabs = GPOINTER_TO_INT(value); |
9155 | 915 |
916 if (usetabs) | |
917 gtk_widget_set_sensitive(GTK_WIDGET(data), TRUE); | |
918 else | |
8979 | 919 gtk_widget_set_sensitive(GTK_WIDGET(data), FALSE); |
920 } | |
921 | |
10850 | 922 static GtkWidget * |
923 conv_page() | |
924 { | |
5440 | 925 GtkWidget *ret; |
11271
b33eccbc3a10
[gaim-migrate @ 13454]
Richard Laager <rlaager@wiktel.com>
parents:
11269
diff
changeset
|
926 GtkWidget *vbox; |
5440 | 927 GtkWidget *label; |
928 GList *names = NULL; | |
11267
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
929 GtkWidget *frame; |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
930 GtkWidget *imhtml; |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
931 GtkWidget *toolbar; |
11271
b33eccbc3a10
[gaim-migrate @ 13454]
Richard Laager <rlaager@wiktel.com>
parents:
11269
diff
changeset
|
932 GtkWidget *hbox; |
b33eccbc3a10
[gaim-migrate @ 13454]
Richard Laager <rlaager@wiktel.com>
parents:
11269
diff
changeset
|
933 GtkWidget *vbox2; |
5440 | 934 |
11243 | 935 ret = gtk_vbox_new(FALSE, GAIM_HIG_BOX_SPACE); |
936 gtk_container_set_border_width(GTK_CONTAINER(ret), GAIM_HIG_BORDER); | |
5440 | 937 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
938 vbox = gaim_gtk_make_frame(ret, _("Conversations")); |
5440 | 939 |
9832 | 940 gaim_gtk_prefs_checkbox(_("Send unknown \"_slash\" commands as messages"), |
941 "/gaim/gtk/conversations/passthrough_unknown_commands", vbox); | |
11267
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
942 gaim_gtk_prefs_checkbox(_("Show _formatting on incoming messages"), |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
943 "/gaim/gtk/conversations/show_incoming_formatting", vbox); |
9150 | 944 gaim_gtk_prefs_checkbox(_("Show buddy _icons"), |
945 "/gaim/gtk/conversations/im/show_buddy_icons", vbox); | |
9155 | 946 gaim_gtk_prefs_checkbox(_("Enable buddy ic_on animation"), |
9150 | 947 "/gaim/gtk/conversations/im/animate_buddy_icons", vbox); |
9155 | 948 gaim_gtk_prefs_checkbox(_("_Notify buddies that you are typing to them"), |
9150 | 949 "/core/conversations/im/send_typing", vbox); |
11267
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
950 #ifdef USE_GTKSPELL |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
951 gaim_gtk_prefs_checkbox(_("_Highlight misspelled words"), |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
952 "/gaim/gtk/conversations/spellcheck", vbox); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
953 #endif |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
954 |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
955 frame = gaim_gtk_create_imhtml(TRUE, &imhtml, &toolbar); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
956 gtk_widget_set_name(imhtml, "gaim_gtkprefs_font_imhtml"); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
957 gtk_imhtml_set_whole_buffer_formatting_only(GTK_IMHTML(imhtml), TRUE); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
958 gtk_imhtml_set_format_functions(GTK_IMHTML(imhtml), |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
959 GTK_IMHTML_BOLD | |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
960 GTK_IMHTML_ITALIC | |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
961 GTK_IMHTML_UNDERLINE | |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
962 GTK_IMHTML_GROW | |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
963 GTK_IMHTML_SHRINK | |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
964 GTK_IMHTML_FACE | |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
965 GTK_IMHTML_FORECOLOR | |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
966 GTK_IMHTML_BACKCOLOR | |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
967 GTK_IMHTML_BACKGROUND); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
968 |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
969 gtk_imhtml_append_text(GTK_IMHTML(imhtml), _("This is how your outgoing message text will appear when you use protocols that support formatting. :)"), 0); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
970 |
11271
b33eccbc3a10
[gaim-migrate @ 13454]
Richard Laager <rlaager@wiktel.com>
parents:
11269
diff
changeset
|
971 gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0); |
11267
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
972 |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
973 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_bold")) |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
974 gtk_imhtml_toggle_bold(GTK_IMHTML(imhtml)); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
975 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_italic")) |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
976 gtk_imhtml_toggle_italic(GTK_IMHTML(imhtml)); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
977 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_underline")) |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
978 gtk_imhtml_toggle_underline(GTK_IMHTML(imhtml)); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
979 |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
980 gtk_imhtml_font_set_size(GTK_IMHTML(imhtml), gaim_prefs_get_int("/gaim/gtk/conversations/font_size")); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
981 gtk_imhtml_toggle_forecolor(GTK_IMHTML(imhtml), gaim_prefs_get_string("/gaim/gtk/conversations/fgcolor")); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
982 gtk_imhtml_toggle_background(GTK_IMHTML(imhtml), gaim_prefs_get_string("/gaim/gtk/conversations/bgcolor")); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
983 gtk_imhtml_toggle_fontface(GTK_IMHTML(imhtml), gaim_prefs_get_string("/gaim/gtk/conversations/font_face")); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
984 |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
985 g_signal_connect_after(G_OBJECT(imhtml), "format_function_toggle", |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
986 G_CALLBACK(formatting_toggle_cb), toolbar); |
11275
ffc86d9ad8b7
[gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents:
11271
diff
changeset
|
987 g_signal_connect_after(G_OBJECT(imhtml), "format_function_clear", |
ffc86d9ad8b7
[gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents:
11271
diff
changeset
|
988 G_CALLBACK(formatting_clear_cb), NULL); |
9155 | 989 |
990 /* All the tab options! */ | |
991 vbox = gaim_gtk_make_frame(ret, _("Tab Options")); | |
992 | |
993 gaim_gtk_prefs_checkbox(_("Show IMs and chats in _tabbed windows"), | |
5547
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
994 "/gaim/gtk/conversations/tabs", vbox); |
9155 | 995 |
996 /* | |
997 * Connect a signal to the above preference. When conversations are not | |
998 * shown in a tabbed window then all tabbing options should be disabled. | |
999 */ | |
10972 | 1000 vbox2 = gtk_vbox_new(FALSE, 9); |
9155 | 1001 gtk_box_pack_start(GTK_BOX(vbox), vbox2, FALSE, FALSE, 0); |
10087 | 1002 gaim_prefs_connect_callback(prefs, "/gaim/gtk/conversations/tabs", |
1003 conversation_usetabs_cb, vbox2); | |
9155 | 1004 if (!gaim_prefs_get_bool("/gaim/gtk/conversations/tabs")) |
1005 gtk_widget_set_sensitive(vbox2, FALSE); | |
1006 | |
9891 | 1007 gaim_gtk_prefs_checkbox(_("Show close b_utton on tabs"), |
9155 | 1008 "/gaim/gtk/conversations/close_on_tabs", vbox2); |
1009 | |
11267
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
1010 hbox = gtk_hbox_new(FALSE, 9); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
1011 gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, FALSE, 0); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
1012 |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
1013 label = gaim_gtk_prefs_dropdown(hbox, _("_Placement:"), GAIM_PREF_INT, |
8988 | 1014 "/gaim/gtk/conversations/tab_side", |
1015 _("Top"), GTK_POS_TOP, | |
1016 _("Bottom"), GTK_POS_BOTTOM, | |
1017 _("Left"), GTK_POS_LEFT, | |
1018 _("Right"), GTK_POS_RIGHT, | |
1019 NULL); | |
1020 | |
11581 | 1021 names = gaim_gtkconv_placement_get_options(); |
11267
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
1022 label = gaim_gtk_prefs_dropdown_from_list(hbox, _("N_ew conversations:"), |
9155 | 1023 GAIM_PREF_STRING, "/gaim/gtk/conversations/placement", names); |
1024 g_list_free(names); | |
1025 | |
5440 | 1026 gtk_widget_show_all(ret); |
1027 | |
1028 return ret; | |
1029 } | |
1030 | |
8231
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1031 static void network_ip_changed(GtkEntry *entry, gpointer data) |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1032 { |
8834 | 1033 gaim_network_set_public_ip(gtk_entry_get_text(entry)); |
8231
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1034 } |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1035 |
9150 | 1036 static void |
1037 proxy_changed_cb(const char *name, GaimPrefType type, gpointer value, | |
1038 gpointer data) | |
1039 { | |
1040 GtkWidget *frame = data; | |
1041 const char *proxy = value; | |
1042 | |
1043 if (strcmp(proxy, "none") && strcmp(proxy, "envvar")) | |
1044 gtk_widget_set_sensitive(frame, TRUE); | |
1045 else | |
1046 gtk_widget_set_sensitive(frame, FALSE); | |
1047 } | |
1048 | |
1049 static void proxy_print_option(GtkEntry *entry, int entrynum) | |
1050 { | |
1051 if (entrynum == PROXYHOST) | |
1052 gaim_prefs_set_string("/core/proxy/host", gtk_entry_get_text(entry)); | |
1053 else if (entrynum == PROXYPORT) | |
1054 gaim_prefs_set_int("/core/proxy/port", atoi(gtk_entry_get_text(entry))); | |
1055 else if (entrynum == PROXYUSER) | |
1056 gaim_prefs_set_string("/core/proxy/username", gtk_entry_get_text(entry)); | |
1057 else if (entrynum == PROXYPASS) | |
1058 gaim_prefs_set_string("/core/proxy/password", gtk_entry_get_text(entry)); | |
1059 } | |
1060 | |
10850 | 1061 static GtkWidget * |
1062 network_page() | |
1063 { | |
8231
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1064 GtkWidget *ret; |
9150 | 1065 GtkWidget *vbox, *hbox, *entry; |
11424 | 1066 GtkWidget *table, *label, *auto_ip_checkbox, *ports_checkbox, *spin_button, *stun_server_entry; |
8231
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1067 GtkSizeGroup *sg; |
9150 | 1068 GaimProxyInfo *proxy_info; |
8231
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1069 |
11243 | 1070 ret = gtk_vbox_new(FALSE, GAIM_HIG_BOX_SPACE); |
1071 gtk_container_set_border_width (GTK_CONTAINER (ret), GAIM_HIG_BORDER); | |
8231
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1072 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1073 vbox = gaim_gtk_make_frame (ret, _("IP Address")); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1074 |
11442
73f7cfa46f1b
[gaim-migrate @ 13681]
Richard Laager <rlaager@wiktel.com>
parents:
11424
diff
changeset
|
1075 stun_server_entry = gaim_gtk_prefs_labeled_entry(vbox,_("STUN Server:"), "/core/network/stun_server", NULL); |
73f7cfa46f1b
[gaim-migrate @ 13681]
Richard Laager <rlaager@wiktel.com>
parents:
11424
diff
changeset
|
1076 |
8231
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1077 auto_ip_checkbox = gaim_gtk_prefs_checkbox(_("_Autodetect IP Address"), |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1078 "/core/network/auto_ip", vbox); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1079 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1080 table = gtk_table_new(2, 1, FALSE); |
11442
73f7cfa46f1b
[gaim-migrate @ 13681]
Richard Laager <rlaager@wiktel.com>
parents:
11424
diff
changeset
|
1081 gtk_container_set_border_width(GTK_CONTAINER(table), 0); |
8231
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1082 gtk_table_set_col_spacings(GTK_TABLE(table), 5); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1083 gtk_table_set_row_spacings(GTK_TABLE(table), 10); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1084 gtk_container_add(GTK_CONTAINER(vbox), table); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1085 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1086 label = gtk_label_new_with_mnemonic(_("Public _IP:")); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1087 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1088 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1089 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1090 entry = gtk_entry_new(); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1091 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1092 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 0, 1, GTK_FILL, 0, 0, 0); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1093 g_signal_connect(G_OBJECT(entry), "changed", |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1094 G_CALLBACK(network_ip_changed), NULL); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1095 |
8834 | 1096 if (gaim_network_get_public_ip() != NULL) |
8231
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1097 gtk_entry_set_text(GTK_ENTRY(entry), |
8834 | 1098 gaim_network_get_public_ip()); |
8231
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1099 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1100 gaim_set_accessible_label (entry, label); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1101 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1102 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1103 if (gaim_prefs_get_bool("/core/network/auto_ip")) { |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1104 gtk_widget_set_sensitive(GTK_WIDGET(table), FALSE); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1105 } |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1106 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1107 g_signal_connect(G_OBJECT(auto_ip_checkbox), "clicked", |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1108 G_CALLBACK(gaim_gtk_toggle_sensitive), table); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1109 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1110 vbox = gaim_gtk_make_frame (ret, _("Ports")); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1111 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1112 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1113 ports_checkbox = gaim_gtk_prefs_checkbox(_("_Manually specify range of ports to listen on"), |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1114 "/core/network/ports_range_use", vbox); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1115 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1116 spin_button = gaim_gtk_prefs_labeled_spin_button(vbox, _("_Start Port:"), |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1117 "/core/network/ports_range_start", 0, 65535, sg); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1118 if (!gaim_prefs_get_bool("/core/network/ports_range_use")) |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1119 gtk_widget_set_sensitive(GTK_WIDGET(spin_button), FALSE); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1120 g_signal_connect(G_OBJECT(ports_checkbox), "clicked", |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1121 G_CALLBACK(gaim_gtk_toggle_sensitive), spin_button); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1122 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1123 spin_button = gaim_gtk_prefs_labeled_spin_button(vbox, _("_End Port:"), |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1124 "/core/network/ports_range_end", 0, 65535, sg); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1125 if (!gaim_prefs_get_bool("/core/network/ports_range_use")) |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1126 gtk_widget_set_sensitive(GTK_WIDGET(spin_button), FALSE); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1127 g_signal_connect(G_OBJECT(ports_checkbox), "clicked", |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1128 G_CALLBACK(gaim_gtk_toggle_sensitive), spin_button); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1129 |
9150 | 1130 vbox = gaim_gtk_make_frame(ret, _("Proxy Server")); |
1131 prefs_proxy_frame = gtk_vbox_new(FALSE, 0); | |
7987 | 1132 gaim_gtk_prefs_dropdown(vbox, _("Proxy _type:"), GAIM_PREF_STRING, |
9150 | 1133 "/core/proxy/type", |
1134 _("No proxy"), "none", | |
1135 "SOCKS 4", "socks4", | |
1136 "SOCKS 5", "socks5", | |
1137 "HTTP", "http", | |
1138 _("Use Environmental Settings"), "envvar", | |
1139 NULL); | |
1140 gtk_box_pack_start(GTK_BOX(vbox), prefs_proxy_frame, 0, 0, 0); | |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1141 proxy_info = gaim_global_proxy_get_info(); |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1142 |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1143 if (proxy_info == NULL || |
6621 | 1144 gaim_proxy_info_get_type(proxy_info) == GAIM_PROXY_NONE || |
1145 gaim_proxy_info_get_type(proxy_info) == GAIM_PROXY_USE_ENVVAR) { | |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1146 |
6001 | 1147 gtk_widget_set_sensitive(GTK_WIDGET(prefs_proxy_frame), FALSE); |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1148 } |
10087 | 1149 gaim_prefs_connect_callback(prefs, "/core/proxy/type", |
1150 proxy_changed_cb, prefs_proxy_frame); | |
9150 | 1151 |
1152 table = gtk_table_new(4, 2, FALSE); | |
11442
73f7cfa46f1b
[gaim-migrate @ 13681]
Richard Laager <rlaager@wiktel.com>
parents:
11424
diff
changeset
|
1153 gtk_container_set_border_width(GTK_CONTAINER(table), 0); |
5440 | 1154 gtk_table_set_col_spacings(GTK_TABLE(table), 5); |
1155 gtk_table_set_row_spacings(GTK_TABLE(table), 10); | |
9150 | 1156 gtk_container_add(GTK_CONTAINER(prefs_proxy_frame), table); |
5440 | 1157 |
1158 | |
7797 | 1159 label = gtk_label_new_with_mnemonic(_("_Host:")); |
5440 | 1160 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
1161 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); | |
1162 | |
1163 entry = gtk_entry_new(); | |
1164 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
1165 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 0, 1, GTK_FILL, 0, 0, 0); | |
1166 g_signal_connect(G_OBJECT(entry), "changed", | |
1167 G_CALLBACK(proxy_print_option), (void *)PROXYHOST); | |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1168 |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1169 if (proxy_info != NULL && gaim_proxy_info_get_host(proxy_info)) |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1170 gtk_entry_set_text(GTK_ENTRY(entry), |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1171 gaim_proxy_info_get_host(proxy_info)); |
5440 | 1172 |
1173 hbox = gtk_hbox_new(TRUE, 5); | |
1174 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
8137 | 1175 gaim_set_accessible_label (entry, label); |
5440 | 1176 |
7870 | 1177 label = gtk_label_new_with_mnemonic(_("_Port:")); |
5440 | 1178 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
9150 | 1179 gtk_table_attach(GTK_TABLE(table), label, 2, 3, 0, 1, GTK_FILL, 0, 0, 0); |
5440 | 1180 |
1181 entry = gtk_entry_new(); | |
1182 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
9150 | 1183 gtk_table_attach(GTK_TABLE(table), entry, 3, 4, 0, 1, GTK_FILL, 0, 0, 0); |
5440 | 1184 g_signal_connect(G_OBJECT(entry), "changed", |
1185 G_CALLBACK(proxy_print_option), (void *)PROXYPORT); | |
1186 | |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1187 if (proxy_info != NULL && gaim_proxy_info_get_port(proxy_info) != 0) { |
5440 | 1188 char buf[128]; |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1189 g_snprintf(buf, sizeof(buf), "%d", |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1190 gaim_proxy_info_get_port(proxy_info)); |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1191 |
5440 | 1192 gtk_entry_set_text(GTK_ENTRY(entry), buf); |
1193 } | |
8137 | 1194 gaim_set_accessible_label (entry, label); |
5440 | 1195 |
7797 | 1196 label = gtk_label_new_with_mnemonic(_("_User:")); |
5440 | 1197 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
9150 | 1198 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, GTK_FILL, 0, 0, 0); |
5440 | 1199 |
1200 entry = gtk_entry_new(); | |
1201 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
9150 | 1202 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 1, 2, GTK_FILL, 0, 0, 0); |
5440 | 1203 g_signal_connect(G_OBJECT(entry), "changed", |
1204 G_CALLBACK(proxy_print_option), (void *)PROXYUSER); | |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1205 |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1206 if (proxy_info != NULL && gaim_proxy_info_get_username(proxy_info) != NULL) |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1207 gtk_entry_set_text(GTK_ENTRY(entry), |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1208 gaim_proxy_info_get_username(proxy_info)); |
5440 | 1209 |
1210 hbox = gtk_hbox_new(TRUE, 5); | |
1211 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
8137 | 1212 gaim_set_accessible_label (entry, label); |
5440 | 1213 |
7797 | 1214 label = gtk_label_new_with_mnemonic(_("Pa_ssword:")); |
5440 | 1215 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
9150 | 1216 gtk_table_attach(GTK_TABLE(table), label, 2, 3, 1, 2, GTK_FILL, 0, 0, 0); |
5440 | 1217 |
1218 entry = gtk_entry_new(); | |
1219 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
9150 | 1220 gtk_table_attach(GTK_TABLE(table), entry, 3, 4, 1, 2, GTK_FILL , 0, 0, 0); |
5440 | 1221 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE); |
1222 g_signal_connect(G_OBJECT(entry), "changed", | |
1223 G_CALLBACK(proxy_print_option), (void *)PROXYPASS); | |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1224 |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1225 if (proxy_info != NULL && gaim_proxy_info_get_password(proxy_info) != NULL) |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1226 gtk_entry_set_text(GTK_ENTRY(entry), |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1227 gaim_proxy_info_get_password(proxy_info)); |
8137 | 1228 gaim_set_accessible_label (entry, label); |
5440 | 1229 |
1230 gtk_widget_show_all(ret); | |
1231 return ret; | |
1232 } | |
1233 | |
1234 #ifndef _WIN32 | |
1235 static gboolean manual_browser_set(GtkWidget *entry, GdkEventFocus *event, gpointer data) { | |
1236 const char *program = gtk_entry_get_text(GTK_ENTRY(entry)); | |
1237 | |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1238 gaim_prefs_set_string("/gaim/gtk/browsers/command", program); |
5440 | 1239 |
1240 /* carry on normally */ | |
1241 return FALSE; | |
1242 } | |
1243 | |
5633 | 1244 static GList *get_available_browsers() |
5440 | 1245 { |
1246 struct browser { | |
1247 char *name; | |
1248 char *command; | |
1249 }; | |
1250 | |
1251 static struct browser possible_browsers[] = { | |
9405 | 1252 {N_("Epiphany"), "epiphany"}, |
8267 | 1253 {N_("Firebird"), "mozilla-firebird"}, |
8356 | 1254 {N_("Firefox"), "firefox"}, |
9405 | 1255 {N_("Galeon"), "galeon"}, |
1256 {N_("Gnome Default"), "gnome-open"}, | |
1257 {N_("Konqueror"), "kfmclient"}, | |
1258 {N_("Mozilla"), "mozilla"}, | |
1259 {N_("Netscape"), "netscape"}, | |
1260 {N_("Opera"), "opera"} | |
5440 | 1261 }; |
9405 | 1262 static const int num_possible_browsers = 9; |
5440 | 1263 |
1264 GList *browsers = NULL; | |
1265 int i = 0; | |
5819 | 1266 char *browser_setting = (char *)gaim_prefs_get_string("/gaim/gtk/browsers/browser"); |
5440 | 1267 |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1268 browsers = g_list_prepend(browsers, "custom"); |
5440 | 1269 browsers = g_list_prepend(browsers, _("Manual")); |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1270 |
5440 | 1271 for (i = 0; i < num_possible_browsers; i++) { |
7108
6faeeecab0dc
[gaim-migrate @ 7673]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1272 if (gaim_program_is_valid(possible_browsers[i].command)) { |
5633 | 1273 browsers = g_list_prepend(browsers, |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1274 possible_browsers[i].command); |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1275 browsers = g_list_prepend(browsers, _(possible_browsers[i].name)); |
5825 | 1276 if(browser_setting && !strcmp(possible_browsers[i].command, browser_setting)) |
5819 | 1277 browser_setting = NULL; |
5440 | 1278 } |
1279 } | |
1280 | |
5819 | 1281 if(browser_setting) |
1282 gaim_prefs_set_string("/gaim/gtk/browsers/browser", "custom"); | |
1283 | |
5440 | 1284 return browsers; |
1285 } | |
1286 | |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1287 static void |
8274 | 1288 browser_changed1_cb(const char *name, GaimPrefType type, gpointer value, |
1289 gpointer data) | |
1290 { | |
1291 GtkWidget *hbox = data; | |
1292 const char *browser = value; | |
1293 | |
1294 gtk_widget_set_sensitive(hbox, strcmp(browser, "custom")); | |
1295 } | |
1296 | |
1297 static void | |
1298 browser_changed2_cb(const char *name, GaimPrefType type, gpointer value, | |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1299 gpointer data) |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1300 { |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1301 GtkWidget *hbox = data; |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1302 const char *browser = value; |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1303 |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1304 gtk_widget_set_sensitive(hbox, !strcmp(browser, "custom")); |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1305 } |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1306 |
10850 | 1307 static GtkWidget * |
1308 browser_page() | |
1309 { | |
5440 | 1310 GtkWidget *ret; |
1311 GtkWidget *vbox; | |
1312 GtkWidget *hbox; | |
1313 GtkWidget *label; | |
6007 | 1314 GtkWidget *entry; |
5440 | 1315 GtkSizeGroup *sg; |
1316 GList *browsers = NULL; | |
1317 | |
11243 | 1318 ret = gtk_vbox_new(FALSE, GAIM_HIG_CAT_SPACE); |
1319 gtk_container_set_border_width (GTK_CONTAINER (ret), GAIM_HIG_BORDER); | |
5440 | 1320 |
1321 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1322 vbox = gaim_gtk_make_frame (ret, _("Browser Selection")); |
5440 | 1323 |
1324 browsers = get_available_browsers(); | |
1325 if (browsers != NULL) { | |
7987 | 1326 label = gaim_gtk_prefs_dropdown_from_list(vbox,_("_Browser:"), GAIM_PREF_STRING, |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1327 "/gaim/gtk/browsers/browser", |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1328 browsers); |
10973 | 1329 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
5440 | 1330 gtk_size_group_add_widget(sg, label); |
8274 | 1331 |
1332 hbox = gtk_hbox_new(FALSE, 0); | |
1333 label = gaim_gtk_prefs_dropdown(hbox, _("_Open link in:"), GAIM_PREF_INT, | |
1334 "/gaim/gtk/browsers/place", | |
1335 _("Browser default"), GAIM_BROWSER_DEFAULT, | |
1336 _("Existing window"), GAIM_BROWSER_CURRENT, | |
1337 _("New window"), GAIM_BROWSER_NEW_WINDOW, | |
1338 _("New tab"), GAIM_BROWSER_NEW_TAB, | |
1339 NULL); | |
10973 | 1340 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
8274 | 1341 gtk_size_group_add_widget(sg, label); |
1342 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
1343 | |
1344 if (!strcmp(gaim_prefs_get_string("/gaim/gtk/browsers/browser"), "custom")) | |
1345 gtk_widget_set_sensitive(hbox, FALSE); | |
10087 | 1346 gaim_prefs_connect_callback(prefs, "/gaim/gtk/browsers/browser", |
1347 browser_changed1_cb, hbox); | |
5440 | 1348 } |
1349 | |
1350 hbox = gtk_hbox_new(FALSE, 5); | |
1351 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
6031 | 1352 label = gtk_label_new_with_mnemonic(_("_Manual:\n(%s for URL)")); |
5440 | 1353 gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); |
1354 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
1355 gtk_size_group_add_widget(sg, label); | |
1356 | |
6007 | 1357 entry = gtk_entry_new(); |
1358 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1359 |
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1360 if (strcmp(gaim_prefs_get_string("/gaim/gtk/browsers/browser"), "custom")) |
5440 | 1361 gtk_widget_set_sensitive(hbox, FALSE); |
10087 | 1362 gaim_prefs_connect_callback(prefs, "/gaim/gtk/browsers/browser", |
1363 browser_changed2_cb, hbox); | |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1364 |
6007 | 1365 gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, FALSE, 0); |
1366 | |
1367 gtk_entry_set_text(GTK_ENTRY(entry), | |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1368 gaim_prefs_get_string("/gaim/gtk/browsers/command")); |
6007 | 1369 g_signal_connect(G_OBJECT(entry), "focus-out-event", |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1370 G_CALLBACK(manual_browser_set), NULL); |
8188
cd9ea20cd8ed
[gaim-migrate @ 8909]
Christian Hammond <chipx86@chipx86.com>
parents:
8170
diff
changeset
|
1371 gaim_set_accessible_label (entry, label); |
5440 | 1372 |
1373 gtk_widget_show_all(ret); | |
1374 return ret; | |
1375 } | |
1376 #endif /*_WIN32*/ | |
1377 | |
10850 | 1378 static GtkWidget * |
1379 logging_page() | |
1380 { | |
5440 | 1381 GtkWidget *ret; |
1382 GtkWidget *vbox; | |
7431 | 1383 GList *names; |
8573 | 1384 GtkWidget *sys_box; |
1385 GtkWidget *box; | |
1386 int syslog_enabled = gaim_prefs_get_bool("/core/logging/log_system"); | |
1387 | |
11243 | 1388 ret = gtk_vbox_new(FALSE, GAIM_HIG_CAT_SPACE); |
1389 gtk_container_set_border_width (GTK_CONTAINER (ret), GAIM_HIG_BORDER); | |
5440 | 1390 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1391 vbox = gaim_gtk_make_frame (ret, _("Message Logs")); |
7431 | 1392 names = gaim_log_logger_get_options(); |
1393 | |
7987 | 1394 gaim_gtk_prefs_dropdown_from_list(vbox, _("Log _Format:"), GAIM_PREF_STRING, |
1395 "/core/logging/format", names); | |
1396 | |
1397 gaim_gtk_prefs_checkbox(_("_Log all instant messages"), | |
7562
b859cfb5f31a
[gaim-migrate @ 8176]
Christian Hammond <chipx86@chipx86.com>
parents:
7561
diff
changeset
|
1398 "/core/logging/log_ims", vbox); |
7987 | 1399 gaim_gtk_prefs_checkbox(_("Log all c_hats"), |
7562
b859cfb5f31a
[gaim-migrate @ 8176]
Christian Hammond <chipx86@chipx86.com>
parents:
7561
diff
changeset
|
1400 "/core/logging/log_chats", vbox); |
8573 | 1401 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1402 vbox = gaim_gtk_make_frame (ret, _("System Logs")); |
8573 | 1403 |
1404 sys_box = gaim_gtk_prefs_checkbox(_("_Enable system log"), | |
1405 "/core/logging/log_system", vbox); | |
1406 | |
10272 | 1407 box = gaim_gtk_prefs_checkbox(_("Log when buddies log in/log _out"), |
8573 | 1408 "/core/logging/log_signon_signoff", vbox); |
1409 g_signal_connect(G_OBJECT(sys_box), "clicked", | |
1410 G_CALLBACK(gaim_gtk_toggle_sensitive), box); | |
1411 gtk_widget_set_sensitive(box, syslog_enabled); | |
1412 | |
1413 box = gaim_gtk_prefs_checkbox(_("Log when buddies become _idle/un-idle"), | |
1414 "/core/logging/log_idle_state", vbox); | |
1415 g_signal_connect(G_OBJECT(sys_box), "clicked", | |
1416 G_CALLBACK(gaim_gtk_toggle_sensitive), box); | |
1417 gtk_widget_set_sensitive(box, syslog_enabled); | |
1418 | |
1419 box = gaim_gtk_prefs_checkbox(_("Log when buddies go away/come _back"), | |
1420 "/core/logging/log_away_state", vbox); | |
1421 g_signal_connect(G_OBJECT(sys_box), "clicked", | |
1422 G_CALLBACK(gaim_gtk_toggle_sensitive), box); | |
1423 gtk_widget_set_sensitive(box, syslog_enabled); | |
1424 | |
10272 | 1425 box = gaim_gtk_prefs_checkbox(_("Log your own _signons/idleness/awayness"), |
8573 | 1426 "/core/logging/log_own_states", vbox); |
1427 g_signal_connect(G_OBJECT(sys_box), "clicked", | |
1428 G_CALLBACK(gaim_gtk_toggle_sensitive), box); | |
1429 gtk_widget_set_sensitive(box, syslog_enabled); | |
1430 | |
5440 | 1431 gtk_widget_show_all(ret); |
1432 return ret; | |
1433 } | |
1434 | |
1435 #ifndef _WIN32 | |
1436 static gint sound_cmd_yeah(GtkEntry *entry, gpointer d) | |
1437 { | |
5684 | 1438 gaim_prefs_set_string("/gaim/gtk/sound/command", |
6007 | 1439 gtk_entry_get_text(GTK_ENTRY(entry))); |
5440 | 1440 return TRUE; |
1441 } | |
6005 | 1442 |
1443 static void | |
10074 | 1444 sound_changed1_cb(const char *name, GaimPrefType type, gpointer value, |
6005 | 1445 gpointer data) |
1446 { | |
1447 GtkWidget *hbox = data; | |
1448 const char *method = value; | |
1449 | |
1450 gtk_widget_set_sensitive(hbox, !strcmp(method, "custom")); | |
1451 } | |
10074 | 1452 |
1453 static void | |
1454 sound_changed2_cb(const char *name, GaimPrefType type, gpointer value, | |
1455 gpointer data) | |
1456 { | |
1457 GtkWidget *vbox = data; | |
1458 const char *method = value; | |
1459 | |
1460 gtk_widget_set_sensitive(vbox, strcmp(method, "none")); | |
1461 } | |
5440 | 1462 #endif |
1463 | |
9150 | 1464 |
1465 static void | |
1466 event_toggled(GtkCellRendererToggle *cell, gchar *pth, gpointer data) | |
1467 { | |
1468 GtkTreeModel *model = (GtkTreeModel *)data; | |
1469 GtkTreeIter iter; | |
1470 GtkTreePath *path = gtk_tree_path_new_from_string(pth); | |
10930 | 1471 char *pref; |
9150 | 1472 |
1473 gtk_tree_model_get_iter (model, &iter, path); | |
1474 gtk_tree_model_get (model, &iter, | |
1475 2, &pref, | |
1476 -1); | |
1477 | |
1478 gaim_prefs_set_bool(pref, !gtk_cell_renderer_toggle_get_active(cell)); | |
10930 | 1479 g_free(pref); |
9150 | 1480 |
1481 gtk_list_store_set(GTK_LIST_STORE (model), &iter, | |
1482 0, !gtk_cell_renderer_toggle_get_active(cell), | |
1483 -1); | |
1484 | |
1485 gtk_tree_path_free(path); | |
1486 } | |
1487 | |
1488 static void | |
1489 test_sound(GtkWidget *button, gpointer i_am_NULL) | |
1490 { | |
1491 char *pref; | |
1492 gboolean temp_value1, temp_value2; | |
1493 | |
1494 pref = g_strdup_printf("/gaim/gtk/sound/enabled/%s", | |
1495 gaim_gtk_sound_get_event_option(sound_row_sel)); | |
1496 | |
1497 temp_value1 = gaim_prefs_get_bool("/core/sound/while_away"); | |
1498 temp_value2 = gaim_prefs_get_bool(pref); | |
1499 | |
1500 if (!temp_value1) gaim_prefs_set_bool("/core/sound/while_away", TRUE); | |
1501 if (!temp_value2) gaim_prefs_set_bool(pref, TRUE); | |
1502 | |
1503 gaim_sound_play_event(sound_row_sel); | |
1504 | |
1505 if (!temp_value1) gaim_prefs_set_bool("/core/sound/while_away", FALSE); | |
1506 if (!temp_value2) gaim_prefs_set_bool(pref, FALSE); | |
1507 | |
1508 g_free(pref); | |
1509 } | |
1510 | |
9508 | 1511 /* |
1512 * Resets a sound file back to default. | |
1513 */ | |
9150 | 1514 static void |
1515 reset_sound(GtkWidget *button, gpointer i_am_also_NULL) | |
1516 { | |
9508 | 1517 gchar *pref; |
1518 | |
1519 pref = g_strdup_printf("/gaim/gtk/sound/file/%s", | |
1520 gaim_gtk_sound_get_event_option(sound_row_sel)); | |
9150 | 1521 gaim_prefs_set_string(pref, ""); |
1522 g_free(pref); | |
1523 | |
1524 gtk_entry_set_text(GTK_ENTRY(sound_entry), "(default)"); | |
1525 } | |
1526 | |
9508 | 1527 static void |
1528 sound_chosen_cb(void *user_data, const char *filename) | |
9150 | 1529 { |
9508 | 1530 gchar *pref; |
1531 int sound; | |
1532 | |
1533 sound = GPOINTER_TO_INT(user_data); | |
9150 | 1534 |
1535 /* Set it -- and forget it */ | |
1536 pref = g_strdup_printf("/gaim/gtk/sound/file/%s", | |
9508 | 1537 gaim_gtk_sound_get_event_option(sound)); |
1538 gaim_prefs_set_string(pref, filename); | |
9150 | 1539 g_free(pref); |
1540 | |
9508 | 1541 /* |
1542 * If the sound we just changed is still the currently selected | |
1543 * sound, then update the box showing the file name. | |
1544 */ | |
1545 if (sound == sound_row_sel) | |
1546 gtk_entry_set_text(GTK_ENTRY(sound_entry), filename); | |
9150 | 1547 } |
1548 | |
9508 | 1549 static void select_sound(GtkWidget *button, gpointer being_NULL_is_fun) |
9150 | 1550 { |
9508 | 1551 gchar *pref; |
1552 const char *filename; | |
1553 | |
1554 pref = g_strdup_printf("/gaim/gtk/sound/file/%s", | |
1555 gaim_gtk_sound_get_event_option(sound_row_sel)); | |
1556 filename = gaim_prefs_get_string(pref); | |
1557 g_free(pref); | |
1558 | |
1559 if (*filename == '\0') | |
1560 filename = NULL; | |
1561 | |
1562 gaim_request_file(prefs, _("Sound Selection"), filename, FALSE, | |
1563 G_CALLBACK(sound_chosen_cb), NULL, GINT_TO_POINTER(sound_row_sel)); | |
9150 | 1564 } |
1565 | |
9508 | 1566 static void prefs_sound_sel(GtkTreeSelection *sel, GtkTreeModel *model) { |
9150 | 1567 GtkTreeIter iter; |
1568 GValue val = { 0, }; | |
1569 const char *file; | |
1570 char *pref; | |
1571 | |
1572 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) | |
1573 return; | |
1574 gtk_tree_model_get_value (model, &iter, 3, &val); | |
1575 sound_row_sel = g_value_get_uint(&val); | |
1576 | |
1577 pref = g_strdup_printf("/gaim/gtk/sound/file/%s", | |
1578 gaim_gtk_sound_get_event_option(sound_row_sel)); | |
1579 file = gaim_prefs_get_string(pref); | |
1580 g_free(pref); | |
1581 if (sound_entry) | |
1582 gtk_entry_set_text(GTK_ENTRY(sound_entry), (file && *file != '\0') ? file : "(default)"); | |
1583 g_value_unset (&val); | |
1584 } | |
1585 | |
10850 | 1586 static GtkWidget * |
1587 sound_page() | |
1588 { | |
5440 | 1589 GtkWidget *ret; |
9150 | 1590 GtkWidget *vbox, *sw, *button; |
5440 | 1591 GtkSizeGroup *sg; |
9150 | 1592 GtkTreeIter iter; |
1593 GtkWidget *event_view; | |
1594 GtkListStore *event_store; | |
1595 GtkCellRenderer *rend; | |
1596 GtkTreeViewColumn *col; | |
1597 GtkTreeSelection *sel; | |
1598 GtkTreePath *path; | |
1599 GtkWidget *hbox; | |
1600 int j; | |
1601 const char *file; | |
11082 | 1602 char *pref; |
5440 | 1603 #ifndef _WIN32 |
1604 GtkWidget *dd; | |
1605 GtkWidget *label; | |
6007 | 1606 GtkWidget *entry; |
5684 | 1607 const char *cmd; |
5440 | 1608 #endif |
1609 | |
11243 | 1610 ret = gtk_vbox_new(FALSE, GAIM_HIG_CAT_SPACE); |
1611 gtk_container_set_border_width (GTK_CONTAINER (ret), GAIM_HIG_BORDER); | |
5440 | 1612 |
1613 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
1614 | |
1615 #ifndef _WIN32 | |
6033 | 1616 vbox = gaim_gtk_make_frame (ret, _("Sound Method")); |
7987 | 1617 dd = gaim_gtk_prefs_dropdown(vbox, _("_Method:"), GAIM_PREF_STRING, |
1618 "/gaim/gtk/sound/method", | |
1619 _("Console beep"), "beep", | |
5440 | 1620 #ifdef USE_AO |
7987 | 1621 _("Automatic"), "automatic", |
11082 | 1622 "Arts", "arts", |
7987 | 1623 "ESD", "esd", |
1624 "NAS", "nas", | |
5440 | 1625 #endif |
7987 | 1626 _("Command"), "custom", |
10074 | 1627 _("No sounds"), "none", |
7987 | 1628 NULL); |
5440 | 1629 gtk_size_group_add_widget(sg, dd); |
10973 | 1630 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0.5); |
5440 | 1631 |
1632 hbox = gtk_hbox_new(FALSE, 5); | |
11442
73f7cfa46f1b
[gaim-migrate @ 13681]
Richard Laager <rlaager@wiktel.com>
parents:
11424
diff
changeset
|
1633 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
5440 | 1634 |
6031 | 1635 label = gtk_label_new_with_mnemonic(_("Sound c_ommand:\n(%s for filename)")); |
5440 | 1636 gtk_size_group_add_widget(sg, label); |
1637 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
11442
73f7cfa46f1b
[gaim-migrate @ 13681]
Richard Laager <rlaager@wiktel.com>
parents:
11424
diff
changeset
|
1638 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
5440 | 1639 |
6007 | 1640 entry = gtk_entry_new(); |
1641 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
1642 | |
1643 gtk_editable_set_editable(GTK_EDITABLE(entry), TRUE); | |
5684 | 1644 cmd = gaim_prefs_get_string("/gaim/gtk/sound/command"); |
5440 | 1645 if(cmd) |
6007 | 1646 gtk_entry_set_text(GTK_ENTRY(entry), cmd); |
11442
73f7cfa46f1b
[gaim-migrate @ 13681]
Richard Laager <rlaager@wiktel.com>
parents:
11424
diff
changeset
|
1647 |
73f7cfa46f1b
[gaim-migrate @ 13681]
Richard Laager <rlaager@wiktel.com>
parents:
11424
diff
changeset
|
1648 gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 0); |
6007 | 1649 g_signal_connect(G_OBJECT(entry), "changed", |
5440 | 1650 G_CALLBACK(sound_cmd_yeah), NULL); |
6005 | 1651 |
1652 gtk_widget_set_sensitive(hbox, | |
1653 !strcmp(gaim_prefs_get_string("/gaim/gtk/sound/method"), | |
1654 "custom")); | |
10087 | 1655 gaim_prefs_connect_callback(prefs, "/gaim/gtk/sound/method", |
1656 sound_changed1_cb, hbox); | |
6005 | 1657 |
8141 | 1658 gaim_set_accessible_label (entry, label); |
5440 | 1659 #endif /* _WIN32 */ |
9150 | 1660 |
10074 | 1661 vbox = gaim_gtk_make_frame (ret, _("Sound Options")); |
1662 gaim_gtk_prefs_checkbox(_("Sounds when conversation has _focus"), | |
1663 "/gaim/gtk/sound/conv_focus", vbox); | |
1664 gaim_gtk_prefs_checkbox(_("_Sounds while away"), | |
1665 "/core/sound/while_away", vbox); | |
1666 | |
10075 | 1667 #ifndef _WIN32 |
10074 | 1668 gtk_widget_set_sensitive(vbox, |
1669 strcmp(gaim_prefs_get_string("/gaim/gtk/sound/method"), "none")); | |
10087 | 1670 gaim_prefs_connect_callback(prefs, "/gaim/gtk/sound/method", |
1671 sound_changed2_cb, vbox); | |
10075 | 1672 #endif |
10074 | 1673 |
9150 | 1674 vbox = gaim_gtk_make_frame(ret, _("Sound Events")); |
1675 | |
1676 /* The following is an ugly hack to make the frame expand so the | |
1677 * sound events list is big enough to be usable */ | |
1678 gtk_box_set_child_packing(GTK_BOX(vbox->parent), vbox, TRUE, TRUE, 0, | |
1679 GTK_PACK_START); | |
1680 gtk_box_set_child_packing(GTK_BOX(vbox->parent->parent), vbox->parent, TRUE, | |
1681 TRUE, 0, GTK_PACK_START); | |
1682 gtk_box_set_child_packing(GTK_BOX(vbox->parent->parent->parent), | |
1683 vbox->parent->parent, TRUE, TRUE, 0, GTK_PACK_START); | |
1684 | |
1685 sw = gtk_scrolled_window_new(NULL,NULL); | |
1686 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); | |
1687 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); | |
1688 | |
1689 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); | |
1690 event_store = gtk_list_store_new (4, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT); | |
1691 | |
1692 for (j=0; j < GAIM_NUM_SOUNDS; j++) { | |
1693 char *pref = g_strdup_printf("/gaim/gtk/sound/enabled/%s", | |
1694 gaim_gtk_sound_get_event_option(j)); | |
1695 const char *label = gaim_gtk_sound_get_event_label(j); | |
1696 | |
1697 if (label == NULL) { | |
1698 g_free(pref); | |
1699 continue; | |
1700 } | |
1701 | |
1702 gtk_list_store_append (event_store, &iter); | |
1703 gtk_list_store_set(event_store, &iter, | |
1704 0, gaim_prefs_get_bool(pref), | |
1705 1, _(label), | |
1706 2, pref, | |
1707 3, j, | |
1708 -1); | |
1709 g_free(pref); | |
1710 } | |
1711 | |
1712 event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(event_store)); | |
1713 | |
1714 rend = gtk_cell_renderer_toggle_new(); | |
1715 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); | |
1716 g_signal_connect (G_OBJECT (sel), "changed", | |
1717 G_CALLBACK (prefs_sound_sel), | |
1718 NULL); | |
1719 g_signal_connect (G_OBJECT(rend), "toggled", | |
1720 G_CALLBACK(event_toggled), event_store); | |
1721 path = gtk_tree_path_new_first(); | |
1722 gtk_tree_selection_select_path(sel, path); | |
1723 gtk_tree_path_free(path); | |
1724 | |
1725 col = gtk_tree_view_column_new_with_attributes (_("Play"), | |
1726 rend, | |
1727 "active", 0, | |
1728 NULL); | |
1729 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
1730 | |
1731 rend = gtk_cell_renderer_text_new(); | |
1732 col = gtk_tree_view_column_new_with_attributes (_("Event"), | |
1733 rend, | |
1734 "text", 1, | |
1735 NULL); | |
1736 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
1737 g_object_unref(G_OBJECT(event_store)); | |
1738 gtk_container_add(GTK_CONTAINER(sw), event_view); | |
1739 | |
11243 | 1740 hbox = gtk_hbox_new(FALSE, GAIM_HIG_BOX_SPACE); |
9150 | 1741 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
1742 sound_entry = gtk_entry_new(); | |
1743 pref = g_strdup_printf("/gaim/gtk/sound/file/%s", | |
1744 gaim_gtk_sound_get_event_option(0)); | |
1745 file = gaim_prefs_get_string(pref); | |
1746 g_free(pref); | |
1747 gtk_entry_set_text(GTK_ENTRY(sound_entry), (file && *file != '\0') ? file : "(default)"); | |
1748 gtk_editable_set_editable(GTK_EDITABLE(sound_entry), FALSE); | |
1749 gtk_box_pack_start(GTK_BOX(hbox), sound_entry, FALSE, FALSE, 5); | |
1750 | |
1751 button = gtk_button_new_with_label(_("Test")); | |
1752 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(test_sound), NULL); | |
1753 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); | |
1754 | |
1755 button = gtk_button_new_with_label(_("Reset")); | |
1756 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(reset_sound), NULL); | |
1757 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); | |
1758 | |
1759 button = gtk_button_new_with_label(_("Choose...")); | |
9508 | 1760 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(select_sound), NULL); |
9150 | 1761 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); |
5440 | 1762 gtk_widget_show_all(ret); |
9118 | 1763 |
10075 | 1764 #ifndef _WIN32 |
10074 | 1765 gtk_widget_set_sensitive(vbox, |
1766 strcmp(gaim_prefs_get_string("/gaim/gtk/sound/method"), "none")); | |
10087 | 1767 gaim_prefs_connect_callback(prefs, "/gaim/gtk/sound/method", |
1768 sound_changed2_cb, vbox); | |
10075 | 1769 #endif |
10074 | 1770 |
5440 | 1771 return ret; |
1772 } | |
1773 | |
10182 | 1774 /* XXX CORE/UI */ |
1775 #if 0 | |
1776 static void | |
1777 set_default_away(GtkWidget *w, gpointer data) | |
1778 { | |
1779 struct away_message *default_away = NULL; | |
1780 int length = g_slist_length(away_messages); | |
1781 int i = GPOINTER_TO_INT(data); | |
1782 | |
1783 if (away_messages == NULL) | |
1784 default_away = NULL; | |
1785 else if (i >= length) | |
1786 default_away = g_slist_nth_data(away_messages, length - 1); | |
1787 else | |
1788 default_away = g_slist_nth_data(away_messages, i); | |
1789 | |
1790 if(default_away) | |
1791 gaim_prefs_set_string("/core/away/default_message", default_away->name); | |
1792 else | |
1793 gaim_prefs_set_string("/core/away/default_message", ""); | |
1794 } | |
1795 #endif | |
1796 | |
10850 | 1797 static GtkWidget * |
1798 away_page() | |
1799 { | |
5440 | 1800 GtkWidget *ret; |
1801 GtkWidget *vbox; | |
1802 GtkWidget *hbox; | |
1803 GtkWidget *label; | |
1804 GtkWidget *button; | |
1805 GtkWidget *select; | |
1806 GtkWidget *dd; | |
1807 GtkSizeGroup *sg; | |
1808 | |
11243 | 1809 ret = gtk_vbox_new(FALSE, GAIM_HIG_CAT_SPACE); |
1810 gtk_container_set_border_width (GTK_CONTAINER (ret), GAIM_HIG_BORDER); | |
5440 | 1811 |
1812 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
1813 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1814 vbox = gaim_gtk_make_frame (ret, _("Away")); |
7987 | 1815 gaim_gtk_prefs_checkbox(_("_Queue new messages when away"), |
5573
5e7de337a053
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5568
diff
changeset
|
1816 "/gaim/gtk/away/queue_messages", vbox); |
5440 | 1817 |
9596 | 1818 label = gaim_gtk_prefs_dropdown(vbox, _("_Auto-reply:"), |
1819 GAIM_PREF_STRING, "/core/away/auto_reply", | |
1820 _("Never"), "never", | |
9736 | 1821 _("When away"), "away", |
10859 | 1822 _("When both away and idle"), "awayidle", |
9596 | 1823 NULL); |
6142 | 1824 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1825 vbox = gaim_gtk_make_frame (ret, _("Idle")); |
11287
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
1826 dd = gaim_gtk_prefs_dropdown(vbox, _("Idle _Tracking:"), |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
1827 GAIM_PREF_STRING, "/gaim/gtk/idle/method", |
7987 | 1828 _("Gaim usage"), "gaim", |
5440 | 1829 #ifdef USE_SCREENSAVER |
1830 #ifndef _WIN32 | |
7987 | 1831 _("X usage"), "system", |
5440 | 1832 #else |
7987 | 1833 _("Windows usage"), "system", |
5440 | 1834 #endif |
1835 #endif | |
7987 | 1836 NULL); |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1837 |
11287
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
1838 button = gaim_gtk_prefs_checkbox(_("_Report idle time"), |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
1839 "/gaim/gtk/idle/report", vbox); |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
1840 |
5440 | 1841 gtk_size_group_add_widget(sg, dd); |
10973 | 1842 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0.5); |
5440 | 1843 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1844 vbox = gaim_gtk_make_frame (ret, _("Auto-away")); |
7987 | 1845 button = gaim_gtk_prefs_checkbox(_("Set away _when idle"), |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1846 "/core/away/away_when_idle", vbox); |
8238 | 1847 |
7987 | 1848 select = gaim_gtk_prefs_labeled_spin_button(vbox, |
1849 _("_Minutes before setting away:"), "/core/away/mins_before_away", | |
1850 1, 24 * 60, sg); | |
5440 | 1851 g_signal_connect(G_OBJECT(button), "clicked", |
1852 G_CALLBACK(gaim_gtk_toggle_sensitive), select); | |
1853 | |
8238 | 1854 hbox = gtk_hbox_new(FALSE, 0); |
1855 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
1856 | |
5440 | 1857 label = gtk_label_new_with_mnemonic(_("Away m_essage:")); |
1858 gtk_size_group_add_widget(sg, label); | |
10973 | 1859 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
8238 | 1860 g_signal_connect(G_OBJECT(button), "clicked", |
1861 G_CALLBACK(gaim_gtk_toggle_sensitive), label); | |
5440 | 1862 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
8238 | 1863 |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1864 if (!gaim_prefs_get_bool("/core/away/away_when_idle")) { |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1865 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); |
8238 | 1866 gtk_widget_set_sensitive(GTK_WIDGET(label), FALSE); |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1867 } |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1868 |
5440 | 1869 gtk_widget_show_all(ret); |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1870 |
5440 | 1871 return ret; |
1872 } | |
1873 | |
1874 static GtkWidget *plugin_description=NULL, *plugin_details=NULL; | |
1875 | |
11525 | 1876 static void prefs_plugin_sel (GtkTreeSelection *sel, GtkTreeModel *model) |
5440 | 1877 { |
1878 gchar *buf, *pname, *perr, *pdesc, *pauth, *pweb; | |
1879 GtkTreeIter iter; | |
1880 GValue val = { 0, }; | |
1881 GaimPlugin *plug; | |
1882 | |
1883 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) | |
1884 return; | |
8104 | 1885 gtk_tree_model_get_value (model, &iter, 3, &val); |
5440 | 1886 plug = g_value_get_pointer(&val); |
8998 | 1887 |
5440 | 1888 pname = g_markup_escape_text(_(plug->info->name), -1); |
11525 | 1889 pdesc = (plug->info->description) ? |
9307 | 1890 g_markup_escape_text(_(plug->info->description), -1) : NULL; |
1891 pauth = (plug->info->author) ? | |
1892 g_markup_escape_text(_(plug->info->author), -1) : NULL; | |
11525 | 1893 pweb = (plug->info->homepage) ? |
9307 | 1894 g_markup_escape_text(_(plug->info->homepage), -1) : NULL; |
1895 | |
5440 | 1896 if (plug->error != NULL) { |
1897 perr = g_markup_escape_text(_(plug->error), -1); | |
1898 buf = g_strdup_printf( | |
1899 "<span size=\"larger\">%s %s</span>\n\n" | |
1900 "<span weight=\"bold\" color=\"red\">%s</span>\n\n" | |
1901 "%s", | |
10386 | 1902 pname, plug->info->version, perr, pdesc ? pdesc : ""); |
5440 | 1903 g_free(perr); |
1904 } | |
1905 else { | |
1906 buf = g_strdup_printf( | |
1907 "<span size=\"larger\">%s %s</span>\n\n%s", | |
10386 | 1908 pname, plug->info->version, pdesc ? pdesc : ""); |
5440 | 1909 } |
1910 gtk_label_set_markup(GTK_LABEL(plugin_description), buf); | |
1911 g_free(buf); | |
1912 | |
1913 buf = g_strdup_printf( | |
1914 #ifndef _WIN32 | |
1915 _("<span size=\"larger\">%s %s</span>\n\n" | |
1916 "<span weight=\"bold\">Written by:</span>\t%s\n" | |
1917 "<span weight=\"bold\">Web site:</span>\t\t%s\n" | |
1918 "<span weight=\"bold\">File name:</span>\t%s"), | |
1919 #else | |
1920 _("<span size=\"larger\">%s %s</span>\n\n" | |
1921 "<span weight=\"bold\">Written by:</span> %s\n" | |
1922 "<span weight=\"bold\">URL:</span> %s\n" | |
1923 "<span weight=\"bold\">File name:</span> %s"), | |
1924 #endif | |
10386 | 1925 pname, plug->info->version, pauth ? pauth : "", pweb ? pweb : "", plug->path); |
5440 | 1926 |
1927 gtk_label_set_markup(GTK_LABEL(plugin_details), buf); | |
1928 g_value_unset(&val); | |
1929 g_free(buf); | |
1930 g_free(pname); | |
1931 g_free(pdesc); | |
1932 g_free(pauth); | |
1933 g_free(pweb); | |
1934 } | |
1935 | |
1936 static void plugin_load (GtkCellRendererToggle *cell, gchar *pth, gpointer data) | |
1937 { | |
1938 GtkTreeModel *model = (GtkTreeModel *)data; | |
1939 GtkTreeIter iter; | |
1940 GtkTreePath *path = gtk_tree_path_new_from_string(pth); | |
1941 GaimPlugin *plug; | |
1942 gchar buf[1024]; | |
6040 | 1943 gchar *name = NULL, *description = NULL; |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1944 |
5440 | 1945 GdkCursor *wait = gdk_cursor_new (GDK_WATCH); |
1946 gdk_window_set_cursor(prefs->window, wait); | |
1947 gdk_cursor_unref(wait); | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1948 |
5440 | 1949 gtk_tree_model_get_iter (model, &iter, path); |
8104 | 1950 gtk_tree_model_get (model, &iter, 3, &plug, -1); |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1951 |
5440 | 1952 if (!gaim_plugin_is_loaded(plug)) { |
1953 gaim_plugin_load(plug); | |
10759 | 1954 add_plugin_prefs(plug); |
5440 | 1955 } |
1956 else { | |
10759 | 1957 delete_plugin_prefs(plug); |
5440 | 1958 gaim_plugin_unload(plug); |
1959 } | |
1960 | |
1961 gdk_window_set_cursor(prefs->window, NULL); | |
1962 | |
6040 | 1963 name = g_markup_escape_text(_(plug->info->name), -1); |
1964 description = g_markup_escape_text(_(plug->info->description), -1); | |
5440 | 1965 if (plug->error != NULL) { |
6040 | 1966 gchar *error = g_markup_escape_text(plug->error, -1); |
5440 | 1967 g_snprintf(buf, sizeof(buf), |
1968 "<span size=\"larger\">%s %s</span>\n\n" | |
1969 "<span weight=\"bold\" color=\"red\">%s</span>\n\n" | |
1970 "%s", | |
6040 | 1971 name, plug->info->version, error, description); |
1972 g_free(error); | |
1973 } else { | |
5440 | 1974 g_snprintf(buf, sizeof(buf), |
1975 "<span size=\"larger\">%s %s</span>\n\n%s", | |
6040 | 1976 name, plug->info->version, description); |
5440 | 1977 } |
6040 | 1978 g_free(name); |
1979 g_free(description); | |
5440 | 1980 |
1981 gtk_label_set_markup(GTK_LABEL(plugin_description), buf); | |
1982 gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, | |
1983 gaim_plugin_is_loaded(plug), -1); | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1984 |
5440 | 1985 gtk_label_set_markup(GTK_LABEL(plugin_description), buf); |
1986 gtk_tree_path_free(path); | |
5981
81564bb4db68
[gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents:
5966
diff
changeset
|
1987 |
81564bb4db68
[gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents:
5966
diff
changeset
|
1988 gaim_gtk_plugins_save(); |
5440 | 1989 } |
1990 | |
1991 static void | |
1992 update_plugin_list(void *data) | |
1993 { | |
1994 GtkListStore *ls = GTK_LIST_STORE(data); | |
1995 GtkTreeIter iter; | |
1996 GList *probes; | |
1997 GaimPlugin *plug; | |
1998 | |
1999 gtk_list_store_clear(ls); | |
11052
8a68c933a5dd
[gaim-migrate @ 12990]
Richard Laager <rlaager@wiktel.com>
parents:
11033
diff
changeset
|
2000 gaim_plugins_probe(GAIM_PLUGIN_EXT); |
5440 | 2001 |
2002 for (probes = gaim_plugins_get_all(); | |
2003 probes != NULL; | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
2004 probes = probes->next) |
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
2005 { |
5440 | 2006 plug = probes->data; |
2007 | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
2008 if (plug->info->type != GAIM_PLUGIN_STANDARD || |
6930
31c45d99e1a8
[gaim-migrate @ 7477]
Christian Hammond <chipx86@chipx86.com>
parents:
6928
diff
changeset
|
2009 (plug->info->flags & GAIM_PLUGIN_FLAG_INVISIBLE)) |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
2010 { |
5440 | 2011 continue; |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
2012 } |
5440 | 2013 |
2014 gtk_list_store_append (ls, &iter); | |
2015 gtk_list_store_set(ls, &iter, | |
2016 0, gaim_plugin_is_loaded(plug), | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
2017 1, plug->info->name ? _(plug->info->name) : plug->path, |
8162 | 2018 2, _(plug->info->summary), |
8104 | 2019 3, plug, -1); |
5440 | 2020 } |
2021 } | |
2022 | |
2023 static GtkWidget *plugin_page () | |
2024 { | |
2025 GtkWidget *ret; | |
2026 GtkWidget *sw, *vp; | |
2027 GtkWidget *event_view; | |
2028 GtkListStore *ls; | |
2029 GtkCellRenderer *rend, *rendt; | |
2030 GtkTreeViewColumn *col; | |
2031 GtkTreeSelection *sel; | |
2032 GtkTreePath *path; | |
2033 GtkWidget *nb; | |
2034 | |
11243 | 2035 ret = gtk_vbox_new(FALSE, GAIM_HIG_CAT_SPACE); |
2036 gtk_container_set_border_width (GTK_CONTAINER (ret), GAIM_HIG_BORDER); | |
5440 | 2037 |
2038 sw = gtk_scrolled_window_new(NULL,NULL); | |
8104 | 2039 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
5440 | 2040 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
2041 | |
2042 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); | |
2043 | |
8104 | 2044 ls = gtk_list_store_new (4, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER); |
7939 | 2045 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(ls), |
2046 1, GTK_SORT_ASCENDING); | |
5440 | 2047 |
2048 update_plugin_list(ls); | |
2049 | |
2050 event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(ls)); | |
2051 | |
2052 rend = gtk_cell_renderer_toggle_new(); | |
2053 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); | |
2054 | |
2055 col = gtk_tree_view_column_new_with_attributes (_("Load"), | |
2056 rend, | |
2057 "active", 0, | |
2058 NULL); | |
2059 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
2060 | |
2061 rendt = gtk_cell_renderer_text_new(); | |
2062 col = gtk_tree_view_column_new_with_attributes (_("Name"), | |
2063 rendt, | |
2064 "text", 1, | |
2065 NULL); | |
2066 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
8998 | 2067 |
8104 | 2068 rendt = gtk_cell_renderer_text_new(); |
2069 col = gtk_tree_view_column_new_with_attributes(_("Summary"), | |
2070 rendt, | |
2071 "text", 2, | |
2072 NULL); | |
2073 gtk_tree_view_append_column(GTK_TREE_VIEW(event_view), col); | |
8998 | 2074 |
5440 | 2075 g_object_unref(G_OBJECT(ls)); |
2076 gtk_container_add(GTK_CONTAINER(sw), event_view); | |
8998 | 2077 |
5440 | 2078 |
2079 nb = gtk_notebook_new(); | |
2080 gtk_notebook_set_tab_pos (GTK_NOTEBOOK(nb), GTK_POS_BOTTOM); | |
2081 gtk_notebook_popup_disable(GTK_NOTEBOOK(nb)); | |
8998 | 2082 |
5440 | 2083 /* Description */ |
2084 sw = gtk_scrolled_window_new(NULL, NULL); | |
2085 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | |
2086 plugin_description = gtk_label_new(NULL); | |
8998 | 2087 |
5440 | 2088 vp = gtk_viewport_new(NULL, NULL); |
2089 gtk_viewport_set_shadow_type(GTK_VIEWPORT(vp), GTK_SHADOW_NONE); | |
2090 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_NONE); | |
2091 | |
2092 gtk_container_add(GTK_CONTAINER(vp), plugin_description); | |
2093 gtk_container_add(GTK_CONTAINER(sw), vp); | |
2094 | |
8998 | 2095 gtk_label_set_selectable(GTK_LABEL(plugin_description), TRUE); |
5440 | 2096 gtk_label_set_line_wrap(GTK_LABEL(plugin_description), TRUE); |
2097 gtk_misc_set_alignment(GTK_MISC(plugin_description), 0, 0); | |
11243 | 2098 gtk_misc_set_padding(GTK_MISC(plugin_description), GAIM_HIG_BOX_SPACE, GAIM_HIG_BOX_SPACE); |
5440 | 2099 gtk_notebook_append_page(GTK_NOTEBOOK(nb), sw, gtk_label_new(_("Description"))); |
2100 | |
2101 /* Details */ | |
2102 sw = gtk_scrolled_window_new(NULL, NULL); | |
2103 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | |
2104 plugin_details = gtk_label_new(NULL); | |
8998 | 2105 |
5440 | 2106 vp = gtk_viewport_new(NULL, NULL); |
2107 gtk_viewport_set_shadow_type(GTK_VIEWPORT(vp), GTK_SHADOW_NONE); | |
2108 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_NONE); | |
2109 | |
2110 gtk_container_add(GTK_CONTAINER(vp), plugin_details); | |
2111 gtk_container_add(GTK_CONTAINER(sw), vp); | |
2112 | |
8998 | 2113 gtk_label_set_selectable(GTK_LABEL(plugin_details), TRUE); |
5440 | 2114 gtk_label_set_line_wrap(GTK_LABEL(plugin_details), TRUE); |
2115 gtk_misc_set_alignment(GTK_MISC(plugin_details), 0, 0); | |
11243 | 2116 gtk_misc_set_padding(GTK_MISC(plugin_details), GAIM_HIG_BOX_SPACE, GAIM_HIG_BOX_SPACE); |
5440 | 2117 gtk_notebook_append_page(GTK_NOTEBOOK(nb), sw, gtk_label_new(_("Details"))); |
2118 gtk_box_pack_start(GTK_BOX(ret), nb, TRUE, TRUE, 0); | |
2119 | |
2120 g_signal_connect (G_OBJECT (sel), "changed", | |
2121 G_CALLBACK (prefs_plugin_sel), | |
8998 | 2122 NULL); |
5440 | 2123 g_signal_connect (G_OBJECT(rend), "toggled", |
2124 G_CALLBACK(plugin_load), ls); | |
2125 | |
2126 path = gtk_tree_path_new_first(); | |
2127 gtk_tree_selection_select_path(sel, path); | |
2128 gtk_tree_path_free(path); | |
2129 | |
2130 gaim_plugins_register_probe_notify_cb(update_plugin_list, ls); | |
2131 | |
2132 gtk_widget_show_all(ret); | |
2133 return ret; | |
2134 } | |
2135 | |
10759 | 2136 int prefs_notebook_add_page(const char *text, |
5440 | 2137 GdkPixbuf *pixbuf, |
2138 GtkWidget *page, | |
2139 GtkTreeIter *iter, | |
2140 GtkTreeIter *parent, | |
2141 int ind) { | |
2142 GdkPixbuf *icon = NULL; | |
2143 | |
2144 if (pixbuf) | |
2145 icon = gdk_pixbuf_scale_simple (pixbuf, 18, 18, GDK_INTERP_BILINEAR); | |
2146 | |
2147 if (pixbuf) | |
2148 g_object_unref(pixbuf); | |
2149 if (icon) | |
2150 g_object_unref(icon); | |
10759 | 2151 |
11380 | 2152 #if GTK_CHECK_VERSION(2,4,0) |
10759 | 2153 return gtk_notebook_append_page(GTK_NOTEBOOK(prefsnotebook), page, gtk_label_new(text)); |
11380 | 2154 #else |
2155 gtk_notebook_append_page(GTK_NOTEBOOK(prefsnotebook), page, gtk_label_new(text)); | |
2156 return gtk_notebook_page_num(GTK_NOTEBOOK(prefsnotebook), page); | |
2157 #endif | |
5440 | 2158 } |
2159 | |
10871 | 2160 static void prefs_notebook_init() { |
9267 | 2161 GtkTreeIter p, c, c2; |
5440 | 2162 GList *l; |
2163 prefs_notebook_add_page(_("Buddy List"), NULL, list_page(), &c, &p, notebook_page++); | |
9150 | 2164 prefs_notebook_add_page(_("Conversations"), NULL, conv_page(), &c, &p, notebook_page++); |
9267 | 2165 prefs_notebook_add_page(_("Smiley Themes"), NULL, theme_page(), &c2, &c, notebook_page++); |
9150 | 2166 prefs_notebook_add_page(_("Sounds"), NULL, sound_page(), &c, &p, notebook_page++); |
8238 | 2167 prefs_notebook_add_page(_("Network"), NULL, network_page(), &p, NULL, notebook_page++); |
5440 | 2168 #ifndef _WIN32 |
2169 /* We use the registered default browser in windows */ | |
10060 | 2170 /* if the user is running gnome 2.x, hide the browsers tab */ |
10061 | 2171 if (gaim_running_gnome() == FALSE) { |
10060 | 2172 prefs_notebook_add_page(_("Browser"), NULL, browser_page(), &p, NULL, notebook_page++); |
2173 } | |
5440 | 2174 #endif |
2175 prefs_notebook_add_page(_("Logging"), NULL, logging_page(), &p, NULL, notebook_page++); | |
2176 prefs_notebook_add_page(_("Away / Idle"), NULL, away_page(), &p, NULL, notebook_page++); | |
2177 | |
2178 if (gaim_plugins_enabled()) { | |
2179 prefs_notebook_add_page(_("Plugins"), NULL, plugin_page(), &plugin_iter, NULL, notebook_page++); | |
2180 | |
2181 for (l = gaim_plugins_get_loaded(); l != NULL; l = l->next) { | |
10759 | 2182 add_plugin_prefs(l->data); |
5440 | 2183 } |
2184 } | |
2185 } | |
2186 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2187 void gaim_gtk_prefs_show(void) |
5440 | 2188 { |
10078 | 2189 GtkWidget *vbox; |
8292
90ed519c6645
[gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents:
8283
diff
changeset
|
2190 GtkWidget *bbox; |
5440 | 2191 GtkWidget *notebook; |
2192 GtkWidget *button; | |
2193 | |
2194 if (prefs) { | |
2195 gtk_window_present(GTK_WINDOW(prefs)); | |
2196 return; | |
2197 } | |
2198 | |
2199 /* copy the preferences to tmp values... | |
2200 * I liked "take affect immediately" Oh well :-( */ | |
6016 | 2201 /* (that should have been "effect," right?) */ |
2202 | |
5440 | 2203 /* Back to instant-apply! I win! BU-HAHAHA! */ |
2204 | |
2205 /* Create the window */ | |
2206 prefs = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
2207 gtk_window_set_role(GTK_WINDOW(prefs), "preferences"); | |
2208 gtk_window_set_title(GTK_WINDOW(prefs), _("Preferences")); | |
2209 gtk_window_set_resizable (GTK_WINDOW(prefs), FALSE); | |
11243 | 2210 gtk_container_set_border_width(GTK_CONTAINER(prefs), GAIM_HIG_BORDER); |
5440 | 2211 g_signal_connect(G_OBJECT(prefs), "destroy", |
2212 G_CALLBACK(delete_prefs), NULL); | |
2213 | |
11243 | 2214 vbox = gtk_vbox_new(FALSE, GAIM_HIG_BORDER); |
5440 | 2215 gtk_container_add(GTK_CONTAINER(prefs), vbox); |
2216 gtk_widget_show(vbox); | |
2217 | |
2218 /* The notebook */ | |
2219 prefsnotebook = notebook = gtk_notebook_new (); | |
10078 | 2220 gtk_box_pack_start (GTK_BOX (vbox), notebook, FALSE, FALSE, 0); |
2221 | |
5440 | 2222 |
8713 | 2223 /* The buttons to press! */ |
8292
90ed519c6645
[gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents:
8283
diff
changeset
|
2224 bbox = gtk_hbutton_box_new(); |
11243 | 2225 gtk_box_set_spacing(GTK_BOX(bbox), GAIM_HIG_BOX_SPACE); |
8292
90ed519c6645
[gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents:
8283
diff
changeset
|
2226 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); |
90ed519c6645
[gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents:
8283
diff
changeset
|
2227 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0); |
90ed519c6645
[gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents:
8283
diff
changeset
|
2228 gtk_widget_show (bbox); |
5440 | 2229 |
2230 button = gtk_button_new_from_stock (GTK_STOCK_CLOSE); | |
2231 g_signal_connect_swapped(G_OBJECT(button), "clicked", | |
2232 G_CALLBACK(gtk_widget_destroy), prefs); | |
8292
90ed519c6645
[gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents:
8283
diff
changeset
|
2233 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
5440 | 2234 gtk_widget_show(button); |
2235 | |
2236 prefs_notebook_init(); | |
2237 | |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
2238 /* Show everything. */ |
10078 | 2239 gtk_widget_show_all(prefs); |
5440 | 2240 } |
2241 | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2242 static void |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2243 set_bool_pref(GtkWidget *w, const char *key) |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2244 { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2245 gaim_prefs_set_bool(key, |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2246 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2247 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2248 |
7976 | 2249 GtkWidget * |
7987 | 2250 gaim_gtk_prefs_checkbox(const char *text, const char *key, GtkWidget *page) |
5440 | 2251 { |
2252 GtkWidget *button; | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2253 |
5440 | 2254 button = gtk_check_button_new_with_mnemonic(text); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2255 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2256 gaim_prefs_get_bool(key)); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2257 |
5440 | 2258 gtk_box_pack_start(GTK_BOX(page), button, FALSE, FALSE, 0); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2259 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2260 g_signal_connect(G_OBJECT(button), "clicked", |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2261 G_CALLBACK(set_bool_pref), (char *)key); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2262 |
5440 | 2263 gtk_widget_show(button); |
2264 | |
2265 return button; | |
2266 } | |
2267 | |
5770
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2268 static void |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2269 smiley_theme_pref_cb(const char *name, GaimPrefType type, gpointer value, |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2270 gpointer data) |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2271 { |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
2272 const char *themename = value; |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
2273 GSList *themes; |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
2274 |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
2275 for (themes = smiley_themes; themes; themes = themes->next) { |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
2276 struct smiley_theme *smile = themes->data; |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
2277 if (smile->name && strcmp(themename, smile->name) == 0) { |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
2278 gaim_gtkthemes_load_smiley_theme(smile->path, TRUE); |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
2279 break; |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
2280 } |
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
2281 } |
5770
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2282 } |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2283 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2284 void |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2285 gaim_gtk_prefs_init(void) |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2286 { |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2287 gaim_prefs_add_none("/gaim"); |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2288 gaim_prefs_add_none("/gaim/gtk"); |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2289 gaim_prefs_add_none("/plugins/gtk"); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2290 |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2291 /* XXX Move this! HACK! :( Aww... */ |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2292 gaim_prefs_add_none("/plugins/gtk/docklet"); |
5554
7b36d02031a2
[gaim-migrate @ 5955]
Christian Hammond <chipx86@chipx86.com>
parents:
5551
diff
changeset
|
2293 gaim_prefs_add_bool("/plugins/gtk/docklet/queue_messages", FALSE); |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2294 |
5573
5e7de337a053
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5568
diff
changeset
|
2295 /* Away Queueing */ |
5e7de337a053
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5568
diff
changeset
|
2296 gaim_prefs_add_none("/gaim/gtk/away"); |
5e7de337a053
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5568
diff
changeset
|
2297 gaim_prefs_add_bool("/gaim/gtk/away/queue_messages", FALSE); |
5e7de337a053
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5568
diff
changeset
|
2298 |
8283 | 2299 #ifndef _WIN32 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2300 /* Browsers */ |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2301 gaim_prefs_add_none("/gaim/gtk/browsers"); |
8272 | 2302 gaim_prefs_add_int("/gaim/gtk/browsers/place", GAIM_BROWSER_DEFAULT); |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
2303 gaim_prefs_add_string("/gaim/gtk/browsers/command", ""); |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
2304 gaim_prefs_add_string("/gaim/gtk/browsers/browser", "mozilla"); |
8283 | 2305 #endif |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2306 |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2307 /* Idle */ |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2308 gaim_prefs_add_none("/gaim/gtk/idle"); |
11287
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2309 gaim_prefs_add_string("/gaim/gtk/idle/method", |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2310 #ifdef USE_SCREENSAVER |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2311 "system" |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2312 #else |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2313 "gaim" |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2314 #endif |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2315 ); |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2316 gaim_prefs_add_bool("/gaim/gtk/idle/report", TRUE); |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2317 |
5949
90d0849abd3c
[gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
2318 /* Plugins */ |
5982
35d3c1ac5ece
[gaim-migrate @ 6430]
Christian Hammond <chipx86@chipx86.com>
parents:
5981
diff
changeset
|
2319 gaim_prefs_add_none("/gaim/gtk/plugins"); |
5949
90d0849abd3c
[gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
2320 gaim_prefs_add_string_list("/gaim/gtk/plugins/loaded", NULL); |
90d0849abd3c
[gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
2321 |
10605 | 2322 /* File locations */ |
2323 gaim_prefs_add_none("/gaim/gtk/filelocations"); | |
2324 gaim_prefs_add_string("/gaim/gtk/filelocations/last_save_folder", ""); | |
2325 gaim_prefs_add_string("/gaim/gtk/filelocations/last_open_folder", ""); | |
2326 gaim_prefs_add_string("/gaim/gtk/filelocations/last_icon_folder", ""); | |
2327 | |
5539
de09863bd4b5
[gaim-migrate @ 5939]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
2328 /* Smiley Themes */ |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
2329 gaim_prefs_add_none("/gaim/gtk/smileys"); |
11557
1e7c0773380f
[gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11550
diff
changeset
|
2330 gaim_prefs_add_string("/gaim/gtk/smileys/theme", "Default"); |
5770
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2331 |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2332 /* Smiley Callbacks */ |
10087 | 2333 gaim_prefs_connect_callback(prefs, "/gaim/gtk/smileys/theme", |
5770
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2334 smiley_theme_pref_cb, NULL); |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2335 } |
8905 | 2336 |
2337 void gaim_gtk_prefs_update_old() { | |
11287
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2338 const char *idle_method; |
8905 | 2339 /* Rename some old prefs */ |
2340 gaim_prefs_rename("/gaim/gtk/logging/log_ims", "/core/logging/log_ims"); | |
2341 gaim_prefs_rename("/gaim/gtk/logging/log_chats", "/core/logging/log_chats"); | |
2342 gaim_prefs_rename("/core/conversations/placement", | |
8998 | 2343 "/gaim/gtk/conversations/placement"); |
8905 | 2344 |
10307 | 2345 gaim_prefs_rename("/gaim/gtk/debug/timestamps", "/core/debug/timestamps"); |
10701 | 2346 gaim_prefs_rename("/gaim/gtk/conversations/im/raise_on_events", "/plugins/gtk/X11/notify/method_raise"); |
10307 | 2347 |
11267
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
2348 /* I'm leaving both of these to support people that were running 2.0.0cvs before this change. |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
2349 * The latter can be removed before 2.0.0 is released, or after that if it's forgotten. */ |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
2350 gaim_prefs_rename_boolean_toggle("/gaim/gtk/conversations/ignore_colors", |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
2351 "/gaim/gtk/conversations/show_incoming_formatting"); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
2352 gaim_prefs_rename_boolean_toggle("/gaim/gtk/conversations/ignore_formatting", |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
2353 "/gaim/gtk/conversations/show_incoming_formatting"); |
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
2354 |
11287
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2355 gaim_prefs_rename("/gaim/gtk/idle/reporting_method", |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2356 "/gaim/gtk/idle/method"); |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2357 idle_method = gaim_prefs_get_string("/gaim/gtk/idle/method"); |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2358 if (idle_method == NULL || !strcmp("none", idle_method)) { |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2359 gaim_prefs_set_string("/gaim/gtk/idle/method", |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2360 #ifdef USE_SCREENSAVER |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2361 "system" |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2362 #else |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2363 "gaim" |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2364 #endif |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2365 ); |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2366 gaim_prefs_set_bool("/gaim/gtk/idle/report", FALSE); |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2367 } |
fb6e85c55fb8
[gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
11275
diff
changeset
|
2368 |
8905 | 2369 /* Remove some no-longer-used prefs */ |
10398 | 2370 gaim_prefs_remove("/gaim/gtk/blist/auto_expand_contacts"); |
10133 | 2371 gaim_prefs_remove("/gaim/gtk/blist/button_style"); |
10168 | 2372 gaim_prefs_remove("/gaim/gtk/blist/grey_idle_buddies"); |
10133 | 2373 gaim_prefs_remove("/gaim/gtk/blist/raise_on_events"); |
8945 | 2374 gaim_prefs_remove("/gaim/gtk/blist/show_group_count"); |
10353 | 2375 gaim_prefs_remove("/gaim/gtk/blist/show_idle_time"); |
2376 gaim_prefs_remove("/gaim/gtk/blist/show_warning_level"); | |
10358 | 2377 gaim_prefs_remove("/gaim/gtk/conversations/button_type"); |
10398 | 2378 gaim_prefs_remove("/gaim/gtk/conversations/ctrl_enter_sends"); |
2379 gaim_prefs_remove("/gaim/gtk/conversations/enter_sends"); | |
10164 | 2380 gaim_prefs_remove("/gaim/gtk/conversations/html_shortcuts"); |
8946 | 2381 gaim_prefs_remove("/gaim/gtk/conversations/icons_on_tabs"); |
11267
477e5cca8287
[gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents:
11256
diff
changeset
|
2382 gaim_prefs_remove("/gaim/gtk/conversations/send_formatting"); |
10398 | 2383 gaim_prefs_remove("/gaim/gtk/conversations/show_smileys"); |
2384 gaim_prefs_remove("/gaim/gtk/conversations/show_timestamps"); | |
8905 | 2385 gaim_prefs_remove("/gaim/gtk/conversations/show_urls_as_links"); |
10164 | 2386 gaim_prefs_remove("/gaim/gtk/conversations/smiley_shortcuts"); |
9025 | 2387 gaim_prefs_remove("/gaim/gtk/conversations/use_custom_bgcolor"); |
2388 gaim_prefs_remove("/gaim/gtk/conversations/use_custom_fgcolor"); | |
11269
1cbe76d30e81
[gaim-migrate @ 13451]
Richard Laager <rlaager@wiktel.com>
parents:
11267
diff
changeset
|
2389 gaim_prefs_remove("/gaim/gtk/conversations/use_custom_font"); |
9025 | 2390 gaim_prefs_remove("/gaim/gtk/conversations/use_custom_size"); |
10398 | 2391 gaim_prefs_remove("/gaim/gtk/conversations/chat/old_tab_complete"); |
2392 gaim_prefs_remove("/gaim/gtk/conversations/chat/tab_completion"); | |
9301 | 2393 gaim_prefs_remove("/gaim/gtk/conversations/im/hide_on_send"); |
10398 | 2394 gaim_prefs_remove("/gaim/gtk/conversations/chat/color_nicks"); |
2395 gaim_prefs_remove("/gaim/gtk/conversations/chat/raise_on_events"); | |
10492 | 2396 gaim_prefs_remove("/gaim/gtk/conversations/ignore_fonts"); |
2397 gaim_prefs_remove("/gaim/gtk/conversations/ignore_font_sizes"); | |
10398 | 2398 gaim_prefs_remove("/gaim/gtk/logging/individual_logs"); |
2399 gaim_prefs_remove("/gaim/gtk/sound/signon"); | |
2400 gaim_prefs_remove("/gaim/gtk/sound/silent_signon"); | |
10489 | 2401 gaim_prefs_remove("/gaim/gtk/conversations/escape_closes"); |
8905 | 2402 } |