Mercurial > pidgin
annotate src/gtkprefs.c @ 9067:1f2bbb359adb
[gaim-migrate @ 9843]
This fixes a bug where the account was always null until you actually
clicked on the account selector, instead of being the first selected
account. The only time this wouldn't happen was when the roomlist was
invoked with /list.
committer: Tailor Script <tailor@pidgin.im>
author | Tim Ringenbach <marv@pidgin.im> |
---|---|
date | Wed, 26 May 2004 01:13:10 +0000 |
parents | 1c10229e5c66 |
children | 96bfa9bd110f |
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 */ | |
6371
8f94cce8faa5
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6216
diff
changeset
|
26 #include "gtkinternal.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
27 |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
28 #include "debug.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
29 #include "notify.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
30 #include "prefs.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
31 #include "proxy.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
32 #include "prpl.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
33 #include "sound.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
34 #include "util.h" |
8170 | 35 #include "multi.h" |
8231
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
36 #include "network.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
37 |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
38 #include "gtkblist.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
39 #include "gtkconv.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
40 #include "gtkdebug.h" |
5440 | 41 #include "gtkimhtml.h" |
8833 | 42 #include "gtkimhtmltoolbar.h" |
5440 | 43 #include "gtkplugin.h" |
8713 | 44 #include "gtkpluginpref.h" |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
45 #include "gtkprefs.h" |
5684 | 46 #include "gtksound.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
47 #include "gtkutils.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
48 #include "stock.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
49 |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
50 #include "ui.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
51 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
52 #define PROXYHOST 0 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
53 #define PROXYPORT 1 |
6005 | 54 #define PROXYUSER 2 |
55 #define PROXYPASS 3 | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
56 |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
57 /* XXX This needs to be made static after we solve the away.c mess. */ |
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
58 GtkListStore *prefs_away_store = NULL; |
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
59 GtkWidget *prefs_away_menu = NULL; |
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
60 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
61 static GtkWidget *tree_v = NULL; |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
62 |
5440 | 63 |
64 static int sound_row_sel = 0; | |
65 static char *last_sound_dir = NULL; | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
66 static GtkWidget *preflabel; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
67 static GtkWidget *prefsnotebook; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
68 static GtkTreeStore *prefstree; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
69 |
5440 | 70 |
71 static GtkWidget *sounddialog = NULL; | |
72 static GtkWidget *sound_entry = NULL; | |
73 static GtkWidget *away_text = NULL; | |
74 static GtkListStore *smiley_theme_store = NULL; | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
75 static GtkWidget *prefs_proxy_frame = NULL; |
5440 | 76 |
77 static GtkWidget *prefs = NULL; | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
78 static GtkWidget *debugbutton = NULL; |
5440 | 79 static int notebook_page = 0; |
8713 | 80 static GtkTreeIter proto_iter, plugin_iter; |
5440 | 81 |
8274 | 82 static guint browser_pref1_id = 0; |
83 static guint browser_pref2_id = 0; | |
6001 | 84 static guint proxy_pref_id = 0; |
6005 | 85 static guint sound_pref_id = 0; |
6142 | 86 static guint auto_resp_pref_id = 0; |
8979 | 87 static guint placement_pref_id = 0; |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
88 |
5440 | 89 /* |
90 * PROTOTYPES | |
91 */ | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
92 static GtkTreeIter *prefs_notebook_add_page(const char*, GdkPixbuf*, |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
93 GtkWidget*, GtkTreeIter*, |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
94 GtkTreeIter*, int); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
95 static void delete_prefs(GtkWidget *, void *); |
5440 | 96 static void update_plugin_list(void *data); |
97 | |
7931 | 98 static void set_default_away(GtkWidget *, gpointer); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
99 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
100 static void |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
101 update_spin_value(GtkWidget *w, GtkWidget *spin) |
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 const char *key = g_object_get_data(G_OBJECT(spin), "val"); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
104 int value; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
105 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
106 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
|
107 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
108 gaim_prefs_set_int(key, value); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
109 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
110 |
7976 | 111 GtkWidget * |
7987 | 112 gaim_gtk_prefs_labeled_spin_button(GtkWidget *box, const gchar *title, |
113 char *key, int min, int max, GtkSizeGroup *sg) | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
114 { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
115 GtkWidget *hbox; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
116 GtkWidget *label; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
117 GtkWidget *spin; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
118 GtkObject *adjust; |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
119 int val; |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
120 |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
121 val = gaim_prefs_get_int(key); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
122 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
123 hbox = gtk_hbox_new(FALSE, 5); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
124 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
125 gtk_widget_show(hbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
126 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
127 label = gtk_label_new_with_mnemonic(title); |
8713 | 128 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
129 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
130 gtk_widget_show(label); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
131 |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
132 adjust = gtk_adjustment_new(val, min, max, 1, 1, 1); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
133 spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
134 g_object_set_data(G_OBJECT(spin), "val", key); |
8467 | 135 if (max < 10000) |
136 gtk_widget_set_size_request(spin, 50, -1); | |
137 else | |
138 gtk_widget_set_size_request(spin, 60, -1); | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
139 gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
140 g_signal_connect(G_OBJECT(adjust), "value-changed", |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
141 G_CALLBACK(update_spin_value), GTK_WIDGET(spin)); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
142 gtk_widget_show(spin); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
143 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
144 gtk_label_set_mnemonic_widget(GTK_LABEL(label), spin); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
145 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
146 if (sg) { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
147 gtk_size_group_add_widget(sg, label); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
148 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
149 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
150 |
8137 | 151 gaim_set_accessible_label (spin, label); |
152 | |
8238 | 153 return hbox; |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
154 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
155 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
156 static void |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
157 dropdown_set(GObject *w, const char *key) |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
158 { |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
159 const char *bool_key; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
160 const char *str_value; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
161 int int_value; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
162 GaimPrefType type; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
163 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
164 type = GPOINTER_TO_INT(g_object_get_data(w, "type")); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
165 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
166 if (type == GAIM_PREF_INT) { |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
167 int_value = GPOINTER_TO_INT(g_object_get_data(w, "value")); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
168 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
169 gaim_prefs_set_int(key, int_value); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
170 } |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
171 else if (type == GAIM_PREF_STRING) { |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
172 str_value = (const char *)g_object_get_data(w, "value"); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
173 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
174 gaim_prefs_set_string(key, str_value); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
175 } |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
176 else if (type == GAIM_PREF_BOOLEAN) { |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
177 bool_key = (const char *)g_object_get_data(w, "value"); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
178 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
179 if (!strcmp(key, bool_key)) |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
180 return; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
181 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
182 gaim_prefs_set_bool(key, FALSE); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
183 gaim_prefs_set_bool(bool_key, TRUE); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
184 } |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
185 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
186 |
7976 | 187 GtkWidget * |
7987 | 188 gaim_gtk_prefs_dropdown_from_list(GtkWidget *box, const gchar *title, |
189 GaimPrefType type, const char *key, GList *menuitems) | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
190 { |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
191 GtkWidget *dropdown, *opt, *menu; |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
192 GtkWidget *label; |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
193 GtkWidget *hbox; |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
194 gchar *text; |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
195 const char *bool_key = NULL; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
196 const char *stored_str = NULL; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
197 int stored_int = 0; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
198 int int_value = 0; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
199 const char *str_value = NULL; |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
200 int o = 0; |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
201 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
202 g_return_val_if_fail(menuitems != NULL, NULL); |
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 hbox = gtk_hbox_new(FALSE, 5); |
8713 | 205 /*gtk_container_add (GTK_CONTAINER (box), hbox);*/ |
206 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0); | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
207 gtk_widget_show(hbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
208 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
209 label = gtk_label_new_with_mnemonic(title); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
210 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
211 gtk_widget_show(label); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
212 |
8577 | 213 #if 0 /* GTK_CHECK_VERSION(2,4,0) */ |
214 if(type == GAIM_PREF_INT) | |
215 model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT); | |
216 else if(type == GAIM_PREF_STRING) | |
217 model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); | |
218 dropdown = gtk_combo_box_new_with_model(model); | |
219 #else | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
220 dropdown = gtk_option_menu_new(); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
221 menu = gtk_menu_new(); |
8577 | 222 #endif |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
223 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
224 gtk_label_set_mnemonic_widget(GTK_LABEL(label), dropdown); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
225 |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
226 if (type == GAIM_PREF_INT) |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
227 stored_int = gaim_prefs_get_int(key); |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
228 else if (type == GAIM_PREF_STRING) |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
229 stored_str = gaim_prefs_get_string(key); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
230 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
231 while (menuitems != NULL && (text = (char *) menuitems->data) != NULL) { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
232 menuitems = g_list_next(menuitems); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
233 g_return_val_if_fail(menuitems != NULL, NULL); |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
234 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
235 opt = gtk_menu_item_new_with_label(text); |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
236 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
237 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
|
238 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
239 if (type == GAIM_PREF_INT) { |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
240 int_value = GPOINTER_TO_INT(menuitems->data); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
241 g_object_set_data(G_OBJECT(opt), "value", |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
242 GINT_TO_POINTER(int_value)); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
243 } |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
244 else if (type == GAIM_PREF_STRING) { |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
245 str_value = (const char *)menuitems->data; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
246 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
247 g_object_set_data(G_OBJECT(opt), "value", (char *)str_value); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
248 } |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
249 else if (type == GAIM_PREF_BOOLEAN) { |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
250 bool_key = (const char *)menuitems->data; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
251 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
252 g_object_set_data(G_OBJECT(opt), "value", (char *)bool_key); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
253 } |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
254 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
255 g_signal_connect(G_OBJECT(opt), "activate", |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
256 G_CALLBACK(dropdown_set), (char *)key); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
257 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
258 gtk_widget_show(opt); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
259 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
260 |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
261 if ((type == GAIM_PREF_INT && stored_int == int_value) || |
5753
96214f5de47c
[gaim-migrate @ 6178]
Christian Hammond <chipx86@chipx86.com>
parents:
5716
diff
changeset
|
262 (type == GAIM_PREF_STRING && stored_str != NULL && |
96214f5de47c
[gaim-migrate @ 6178]
Christian Hammond <chipx86@chipx86.com>
parents:
5716
diff
changeset
|
263 !strcmp(stored_str, str_value)) || |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
264 (type == GAIM_PREF_BOOLEAN && gaim_prefs_get_bool(bool_key))) { |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
265 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
266 gtk_menu_set_active(GTK_MENU(menu), o); |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
267 } |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
268 |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
269 menuitems = g_list_next(menuitems); |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
270 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
271 o++; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
272 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
273 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
274 gtk_option_menu_set_menu(GTK_OPTION_MENU(dropdown), menu); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
275 gtk_box_pack_start(GTK_BOX(hbox), dropdown, FALSE, FALSE, 0); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
276 gtk_widget_show(dropdown); |
8137 | 277 gaim_set_accessible_label (dropdown, label); |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
278 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
279 return label; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
280 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
281 |
7976 | 282 GtkWidget * |
7987 | 283 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
|
284 const char *key, ...) |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
285 { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
286 va_list ap; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
287 GList *menuitems = NULL; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
288 GtkWidget *dropdown = NULL; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
289 char *name; |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
290 int int_value; |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
291 const char *str_value; |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
292 |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
293 va_start(ap, key); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
294 while ((name = va_arg(ap, char *)) != NULL) { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
295 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
296 menuitems = g_list_prepend(menuitems, name); |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
297 |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
298 if (type == GAIM_PREF_INT) { |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
299 int_value = va_arg(ap, int); |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
300 menuitems = g_list_prepend(menuitems, GINT_TO_POINTER(int_value)); |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
301 } |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
302 else { |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
303 str_value = va_arg(ap, const char *); |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
304 menuitems = g_list_prepend(menuitems, (char *)str_value); |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
305 } |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
306 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
307 va_end(ap); |
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 g_return_val_if_fail(menuitems != NULL, NULL); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
310 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
311 menuitems = g_list_reverse(menuitems); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
312 |
7987 | 313 dropdown = gaim_gtk_prefs_dropdown_from_list(box, title, type, key, |
314 menuitems); | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
315 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
316 g_list_free(menuitems); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
317 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
318 return dropdown; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
319 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
320 |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
321 static void |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
322 delete_prefs(GtkWidget *asdf, void *gdsa) |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
323 { |
5440 | 324 GList *l; |
325 GaimPlugin *plug; | |
326 | |
327 gaim_plugins_unregister_probe_notify_cb(update_plugin_list); | |
328 | |
329 prefs = NULL; | |
330 tree_v = NULL; | |
331 sound_entry = NULL; | |
332 debugbutton = NULL; | |
333 prefs_away_menu = NULL; | |
334 notebook_page = 0; | |
335 smiley_theme_store = NULL; | |
336 if(sounddialog) | |
337 gtk_widget_destroy(sounddialog); | |
338 g_object_unref(G_OBJECT(prefs_away_store)); | |
339 prefs_away_store = NULL; | |
340 | |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
341 /* Unregister callbacks. */ |
8274 | 342 gaim_prefs_disconnect_callback(browser_pref1_id); |
343 gaim_prefs_disconnect_callback(browser_pref2_id); | |
6001 | 344 gaim_prefs_disconnect_callback(proxy_pref_id); |
6005 | 345 gaim_prefs_disconnect_callback(sound_pref_id); |
6142 | 346 gaim_prefs_disconnect_callback(auto_resp_pref_id); |
8979 | 347 gaim_prefs_disconnect_callback(placement_pref_id); |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
348 |
5440 | 349 for (l = gaim_plugins_get_loaded(); l != NULL; l = l->next) { |
350 plug = l->data; | |
351 | |
352 if (GAIM_IS_GTK_PLUGIN(plug)) { | |
353 GaimGtkPluginUiInfo *ui_info; | |
354 | |
355 ui_info = GAIM_GTK_PLUGIN_UI_INFO(plug); | |
356 | |
357 if (ui_info->iter != NULL) { | |
358 g_free(ui_info->iter); | |
359 ui_info->iter = NULL; | |
360 } | |
361 } | |
8745 | 362 |
363 if(GAIM_PLUGIN_HAS_PREF_FRAME(plug)) { | |
364 GaimPluginUiInfo *prefs_info; | |
365 | |
366 prefs_info = GAIM_PLUGIN_UI_INFO(plug); | |
367 | |
8814 | 368 if(prefs_info->frame != NULL) { |
369 gaim_plugin_pref_frame_destroy(prefs_info->frame); | |
370 prefs_info->frame = NULL; | |
371 } | |
372 | |
8745 | 373 if(prefs_info->iter != NULL) { |
374 g_free(prefs_info->iter); | |
375 prefs_info->iter = NULL; | |
376 } | |
377 } | |
5440 | 378 } |
379 } | |
380 | |
381 static void pref_nb_select(GtkTreeSelection *sel, GtkNotebook *nb) { | |
382 GtkTreeIter iter; | |
383 char text[128]; | |
384 GValue val = { 0, }; | |
385 GtkTreeModel *model = GTK_TREE_MODEL(prefstree); | |
386 | |
387 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) | |
388 return; | |
389 gtk_tree_model_get_value (model, &iter, 1, &val); | |
390 g_snprintf(text, sizeof(text), "<span weight=\"bold\" size=\"larger\">%s</span>", | |
391 g_value_get_string(&val)); | |
392 gtk_label_set_markup (GTK_LABEL(preflabel), text); | |
393 g_value_unset (&val); | |
394 gtk_tree_model_get_value (model, &iter, 2, &val); | |
395 gtk_notebook_set_current_page (GTK_NOTEBOOK (prefsnotebook), g_value_get_int (&val)); | |
396 | |
397 } | |
398 | |
399 /* These are the pages in the preferences notebook */ | |
400 GtkWidget *interface_page() { | |
401 GtkWidget *ret; | |
402 GtkWidget *vbox; | |
403 ret = gtk_vbox_new(FALSE, 18); | |
404 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
405 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
406 vbox = gaim_gtk_make_frame(ret, _("Interface Options")); |
5440 | 407 |
7987 | 408 gaim_gtk_prefs_checkbox(_("D_isplay remote nicknames if no alias is set"), |
409 "/core/buddies/use_server_alias", vbox); | |
5440 | 410 |
411 | |
412 gtk_widget_show_all(ret); | |
413 return ret; | |
414 } | |
415 | |
416 static void smiley_sel (GtkTreeSelection *sel, GtkTreeModel *model) { | |
417 GtkTreeIter iter; | |
418 const char *filename; | |
419 GValue val = { 0, }; | |
5841 | 420 |
5440 | 421 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) |
422 return; | |
423 gtk_tree_model_get_value (model, &iter, 2, &val); | |
424 filename = g_value_get_string(&val); | |
5770
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
425 gaim_prefs_set_string("/gaim/gtk/smileys/theme", filename); |
5440 | 426 g_value_unset (&val); |
427 } | |
428 | |
429 GtkTreePath *theme_refresh_theme_list() | |
430 { | |
431 GdkPixbuf *pixbuf; | |
432 GSList *themes; | |
433 GtkTreeIter iter; | |
434 GtkTreePath *path = NULL; | |
435 int ind = 0; | |
436 | |
437 | |
438 smiley_theme_probe(); | |
439 | |
440 if (!smiley_themes) | |
441 return NULL; | |
442 | |
443 themes = smiley_themes; | |
444 | |
445 gtk_list_store_clear(smiley_theme_store); | |
446 | |
447 while (themes) { | |
448 struct smiley_theme *theme = themes->data; | |
449 char *description = g_strdup_printf("<span size='larger' weight='bold'>%s</span> - %s\n" | |
450 "<span size='smaller' foreground='dim grey'>%s</span>", | |
451 theme->name, theme->author, theme->desc); | |
452 gtk_list_store_append (smiley_theme_store, &iter); | |
8494 | 453 |
454 /* | |
455 * LEAK - Gentoo memprof thinks pixbuf is leaking here... but it | |
456 * looks like it should be ok to me. Anyone know what's up? --Mark | |
457 */ | |
8963 | 458 pixbuf = (theme->icon ? gdk_pixbuf_new_from_file(theme->icon, NULL) : NULL); |
5440 | 459 |
460 gtk_list_store_set(smiley_theme_store, &iter, | |
461 0, pixbuf, | |
462 1, description, | |
463 2, theme->path, | |
8928 | 464 3, theme->name, |
5440 | 465 -1); |
7094
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
466 |
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
467 if (pixbuf != NULL) |
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
468 g_object_unref(G_OBJECT(pixbuf)); |
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
469 |
5440 | 470 g_free(description); |
471 themes = themes->next; | |
472 if (current_smiley_theme && !strcmp(theme->path, current_smiley_theme->path)) { | |
473 /* path = gtk_tree_path_new_from_indices(ind); */ | |
474 char *iwishihadgtk2_2 = g_strdup_printf("%d", ind); | |
475 path = gtk_tree_path_new_from_string(iwishihadgtk2_2); | |
476 g_free(iwishihadgtk2_2); | |
477 } | |
478 ind++; | |
479 } | |
480 | |
481 return path; | |
482 } | |
483 | |
484 void theme_install_theme(char *path, char *extn) { | |
485 #ifndef _WIN32 | |
486 gchar *command; | |
487 #endif | |
488 gchar *destdir; | |
489 gchar *tail; | |
8494 | 490 GtkTreePath *themepath = NULL; |
5440 | 491 |
492 /* Just to be safe */ | |
493 g_strchomp(path); | |
494 | |
495 /* I dont know what you are, get out of here */ | |
496 if (extn != NULL) | |
497 tail = extn; | |
498 else if ((tail = strrchr(path, '.')) == NULL) | |
499 return; | |
500 | |
501 destdir = g_strconcat(gaim_user_dir(), G_DIR_SEPARATOR_S "smileys", NULL); | |
502 | |
503 /* We'll check this just to make sure. This also lets us do something different on | |
504 * other platforms, if need be */ | |
505 if (!g_ascii_strcasecmp(tail, ".gz") || !g_ascii_strcasecmp(tail, ".tgz")) { | |
506 #ifndef _WIN32 | |
507 command = g_strdup_printf("tar > /dev/null xzf \"%s\" -C %s", path, destdir); | |
508 #else | |
509 if(!wgaim_gz_untar(path, destdir)) { | |
510 g_free(destdir); | |
511 return; | |
512 } | |
513 #endif | |
514 } | |
515 else { | |
516 g_free(destdir); | |
517 return; | |
518 } | |
519 | |
520 #ifndef _WIN32 | |
521 /* Fire! */ | |
522 system(command); | |
523 | |
524 g_free(command); | |
525 #endif | |
526 g_free(destdir); | |
527 | |
8494 | 528 themepath = theme_refresh_theme_list(); |
529 if (themepath != NULL) | |
530 gtk_tree_path_free(themepath); | |
5440 | 531 } |
532 | |
7094
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
533 static void |
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
534 theme_got_url(void *data, const char *themedata, size_t len) |
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
535 { |
5440 | 536 FILE *f; |
537 gchar *path; | |
538 | |
539 f = gaim_mkstemp(&path); | |
540 fwrite(themedata, len, 1, f); | |
541 fclose(f); | |
542 | |
543 theme_install_theme(path, data); | |
544 | |
545 unlink(path); | |
546 g_free(path); | |
547 } | |
548 | |
549 void theme_dnd_recv(GtkWidget *widget, GdkDragContext *dc, guint x, guint y, GtkSelectionData *sd, | |
550 guint info, guint t, gpointer data) { | |
551 gchar *name = sd->data; | |
552 | |
553 if ((sd->length >= 0) && (sd->format == 8)) { | |
554 /* Well, it looks like the drag event was cool. | |
555 * Let's do something with it */ | |
556 | |
557 if (!g_ascii_strncasecmp(name, "file://", 7)) { | |
558 GError *converr = NULL; | |
559 gchar *tmp; | |
560 /* It looks like we're dealing with a local file. Let's | |
561 * just untar it in the right place */ | |
562 if(!(tmp = g_filename_from_uri(name, NULL, &converr))) { | |
563 gaim_debug(GAIM_DEBUG_ERROR, "theme dnd", "%s\n", | |
564 (converr ? converr->message : | |
565 "g_filename_from_uri error")); | |
566 return; | |
567 } | |
568 theme_install_theme(tmp, NULL); | |
569 g_free(tmp); | |
570 } else if (!g_ascii_strncasecmp(name, "http://", 7)) { | |
571 /* Oo, a web drag and drop. This is where things | |
572 * will start to get interesting */ | |
573 gchar *tail; | |
574 | |
575 if ((tail = strrchr(name, '.')) == NULL) | |
576 return; | |
577 | |
578 /* We'll check this just to make sure. This also lets us do something different on | |
579 * other platforms, if need be */ | |
7094
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
580 gaim_url_fetch(name, TRUE, NULL, FALSE, theme_got_url, ".tgz"); |
5440 | 581 } |
582 | |
583 gtk_drag_finish(dc, TRUE, FALSE, t); | |
584 } | |
585 | |
586 gtk_drag_finish(dc, FALSE, FALSE, t); | |
587 } | |
588 | |
8928 | 589 /* Does same as normal sort, except "none" is sorted first */ |
590 gint gaim_sort_smileys (GtkTreeModel *model, | |
591 GtkTreeIter *a, | |
592 GtkTreeIter *b, | |
593 gpointer userdata) | |
594 { | |
595 gint ret = 0; | |
596 gchar *name1, *name2; | |
597 | |
598 gtk_tree_model_get(model, a, 3, &name1, -1); | |
599 gtk_tree_model_get(model, b, 3, &name2, -1); | |
600 | |
601 if (name1 == NULL || name2 == NULL) { | |
602 if (!(name1 == NULL && name2 == NULL)) | |
603 ret = (name1 == NULL) ? -1: 1; | |
604 } else if (!g_ascii_strcasecmp(name1, "none")) { | |
605 /* Sort name1 first */ | |
606 ret = -1; | |
607 } else if (!g_ascii_strcasecmp(name2, "none")) { | |
608 /* Sort name2 first */ | |
609 ret = 1; | |
610 } else { | |
611 /* Neither string is "none", default to normal sort */ | |
612 ret = g_utf8_collate(name1,name2); | |
613 } | |
614 | |
615 return ret; | |
616 } | |
617 | |
5440 | 618 GtkWidget *theme_page() { |
619 GtkWidget *ret; | |
620 GtkWidget *sw; | |
621 GtkWidget *view; | |
622 GtkCellRenderer *rend; | |
623 GtkTreeViewColumn *col; | |
624 GtkTreeSelection *sel; | |
625 GtkTreePath *path = NULL; | |
626 GtkWidget *label; | |
627 GtkTargetEntry te[3] = {{"text/plain", 0, 0},{"text/uri-list", 0, 1},{"STRING", 0, 2}}; | |
628 | |
629 ret = gtk_vbox_new(FALSE, 18); | |
630 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
631 | |
632 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.")); | |
633 | |
634 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
635 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
636 gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT); | |
637 | |
638 gtk_box_pack_start(GTK_BOX(ret), label, FALSE, TRUE, 0); | |
639 gtk_widget_show(label); | |
640 | |
641 sw = gtk_scrolled_window_new(NULL,NULL); | |
7939 | 642 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
7931 | 643 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
5440 | 644 |
645 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); | |
8928 | 646 smiley_theme_store = gtk_list_store_new (4, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); |
5440 | 647 |
648 path = theme_refresh_theme_list(); | |
8075 | 649 |
5440 | 650 view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(smiley_theme_store)); |
651 | |
652 gtk_drag_dest_set(view, GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_HIGHLIGHT | GTK_DEST_DEFAULT_DROP, te, | |
653 sizeof(te) / sizeof(GtkTargetEntry) , GDK_ACTION_COPY | GDK_ACTION_MOVE); | |
654 | |
655 g_signal_connect(G_OBJECT(view), "drag_data_received", G_CALLBACK(theme_dnd_recv), smiley_theme_store); | |
656 | |
657 rend = gtk_cell_renderer_pixbuf_new(); | |
658 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); | |
659 | |
660 if(path) { | |
661 gtk_tree_selection_select_path(sel, path); | |
662 gtk_tree_path_free(path); | |
663 } | |
8928 | 664 |
665 /* Custom sort so "none" theme is at top of list */ | |
666 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(smiley_theme_store), | |
667 3, gaim_sort_smileys, NULL, NULL); | |
668 | |
8075 | 669 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(smiley_theme_store), |
8928 | 670 3, GTK_SORT_ASCENDING); |
5440 | 671 |
672 col = gtk_tree_view_column_new_with_attributes (_("Icon"), | |
673 rend, | |
674 "pixbuf", 0, | |
675 NULL); | |
676 gtk_tree_view_append_column (GTK_TREE_VIEW(view), col); | |
677 | |
678 rend = gtk_cell_renderer_text_new(); | |
679 col = gtk_tree_view_column_new_with_attributes (_("Description"), | |
680 rend, | |
681 "markup", 1, | |
682 NULL); | |
683 gtk_tree_view_append_column (GTK_TREE_VIEW(view), col); | |
684 g_object_unref(G_OBJECT(smiley_theme_store)); | |
685 gtk_container_add(GTK_CONTAINER(sw), view); | |
686 | |
8075 | 687 g_signal_connect(G_OBJECT(sel), "changed", G_CALLBACK(smiley_sel), NULL); |
5440 | 688 |
689 gtk_widget_show_all(ret); | |
8137 | 690 |
691 gaim_set_accessible_label (view, label); | |
692 | |
5440 | 693 return ret; |
694 } | |
695 | |
9025 | 696 static void |
697 formatting_reset_cb(GtkWidget *w, GtkWidget* imhtml) { | |
698 gboolean bold, italic, uline; | |
699 bold = italic = uline = FALSE; | |
700 | |
701 gtk_imhtml_get_current_format(GTK_IMHTML(imhtml), &bold, &italic, &uline); | |
702 if (bold) | |
703 gtk_imhtml_toggle_bold(GTK_IMHTML(imhtml)); | |
704 if (italic) | |
705 gtk_imhtml_toggle_italic(GTK_IMHTML(imhtml)); | |
706 if (uline) | |
707 gtk_imhtml_toggle_underline(GTK_IMHTML(imhtml)); | |
708 | |
709 gtk_imhtml_font_set_size(GTK_IMHTML(imhtml), 3); | |
710 gtk_imhtml_toggle_forecolor(GTK_IMHTML(imhtml), NULL); | |
711 gtk_imhtml_toggle_backcolor(GTK_IMHTML(imhtml), NULL); | |
712 gtk_imhtml_toggle_fontface(GTK_IMHTML(imhtml), NULL); | |
713 } | |
714 | |
715 static void | |
716 formatting_toggle_cb(GtkIMHtml *imhtml, GtkIMHtmlButtons buttons, void *bah) | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
717 { |
9025 | 718 gboolean bold, italic, uline; |
719 | |
720 bold = italic = uline = FALSE; | |
721 gtk_imhtml_get_current_format(GTK_IMHTML(imhtml), | |
722 &bold, &italic, &uline); | |
723 | |
724 if (buttons & GTK_IMHTML_BOLD) | |
725 gaim_prefs_set_bool("/gaim/gtk/conversations/send_bold", bold); | |
726 if (buttons & GTK_IMHTML_ITALIC) | |
727 gaim_prefs_set_bool("/gaim/gtk/conversations/send_italic", italic); | |
728 if (buttons & GTK_IMHTML_UNDERLINE) | |
729 gaim_prefs_set_bool("/gaim/gtk/conversations/send_underline", uline); | |
730 | |
731 if (buttons & GTK_IMHTML_GROW || buttons & GTK_IMHTML_SHRINK) | |
732 gaim_prefs_set_int("/gaim/gtk/conversations/font_size", | |
733 gtk_imhtml_get_current_fontsize(GTK_IMHTML(imhtml))); | |
734 if (buttons & GTK_IMHTML_FACE) { | |
735 char *face = gtk_imhtml_get_current_fontface(GTK_IMHTML(imhtml)); | |
736 if (!face) | |
737 face = g_strdup(""); | |
738 | |
739 gaim_prefs_set_string("/gaim/gtk/conversations/font_face", face); | |
740 g_free(face); | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
741 } |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
742 |
9025 | 743 if (buttons & GTK_IMHTML_FORECOLOR) { |
744 char *color = gtk_imhtml_get_current_forecolor(GTK_IMHTML(imhtml)); | |
745 if (!color) | |
746 color = g_strdup(""); | |
747 | |
748 gaim_prefs_set_string("/gaim/gtk/conversations/fgcolor", color); | |
749 g_free(color); | |
750 } | |
751 | |
752 if (buttons & GTK_IMHTML_BACKCOLOR) { | |
753 char *color = gtk_imhtml_get_current_backcolor(GTK_IMHTML(imhtml)); | |
754 if (!color) | |
755 color = g_strdup(""); | |
756 | |
757 gaim_prefs_set_string("/gaim/gtk/conversations/bgcolor", color); | |
758 g_free(color); | |
759 } | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
760 } |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
761 |
8988 | 762 GtkWidget *messages_page() { |
5440 | 763 GtkWidget *ret; |
9025 | 764 GtkWidget *vbox, *fontvbox; |
8833 | 765 GtkWidget *imhtml; |
766 GtkWidget *toolbar; | |
767 GtkWidget *sw; | |
8988 | 768 GtkWidget *frame; |
9025 | 769 GtkWidget *option; |
770 GtkWidget *button; | |
5440 | 771 |
772 ret = gtk_vbox_new(FALSE, 18); | |
773 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
774 | |
8988 | 775 vbox = gaim_gtk_make_frame (ret, _("Display")); |
776 gaim_gtk_prefs_checkbox(_("Show _timestamp on messages"), | |
777 "/gaim/gtk/conversations/show_timestamps", vbox); | |
778 #ifdef USE_GTKSPELL | |
779 gaim_gtk_prefs_checkbox(_("_Highlight misspelled words"), | |
780 "/gaim/gtk/conversations/spellcheck", vbox); | |
781 #endif | |
9049 | 782 #if 1 /* PREFSLASH04 */ |
783 vbox = gaim_gtk_make_frame (ret, _("Ignore")); | |
784 gaim_gtk_prefs_checkbox(_("Ignore c_olors"), | |
785 "/gaim/gtk/conversations/ignore_colors", vbox); | |
786 gaim_gtk_prefs_checkbox(_("Ignore font _faces"), | |
787 "/gaim/gtk/conversations/ignore_fonts", vbox); | |
788 gaim_gtk_prefs_checkbox(_("Ignore font si_zes"), | |
789 "/gaim/gtk/conversations/ignore_font_sizes", vbox); | |
790 #else | |
9025 | 791 gaim_gtk_prefs_checkbox(_("_Ignore formatting on incoming messages"), |
8988 | 792 "/gaim/gtk/conversations/ignore_formatting", vbox); |
9049 | 793 #endif |
8988 | 794 |
795 vbox = gaim_gtk_make_frame (ret, _("Default Formatting")); | |
796 | |
9025 | 797 option = gaim_gtk_prefs_checkbox(_("_Send default formatting with outgoing messages"), |
798 "/gaim/gtk/conversations/send_formatting", vbox); | |
799 | |
8988 | 800 frame = gtk_frame_new(NULL); |
801 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); | |
802 gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0); | |
803 | |
9025 | 804 fontvbox = gtk_vbox_new(FALSE, 0); |
805 gtk_container_add(GTK_CONTAINER(frame), fontvbox); | |
8988 | 806 |
8833 | 807 toolbar = gtk_imhtmltoolbar_new(); |
9025 | 808 gtk_box_pack_start(GTK_BOX(fontvbox), toolbar, FALSE, FALSE, 0); |
8833 | 809 |
810 sw = gtk_scrolled_window_new(NULL, NULL); | |
811 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), | |
812 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | |
8988 | 813 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_NONE); |
9025 | 814 gtk_box_pack_start(GTK_BOX(fontvbox), sw, TRUE, TRUE, 0); |
8833 | 815 |
816 imhtml = gtk_imhtml_new(NULL, NULL); | |
9025 | 817 gtk_widget_set_name(imhtml, "gaim_gtkprefs_font_imhtml"); |
8833 | 818 gtk_imhtml_set_editable(GTK_IMHTML(imhtml), TRUE); |
819 gtk_imhtml_set_format_functions(GTK_IMHTML(imhtml), GTK_IMHTML_ALL ^ GTK_IMHTML_IMAGE); | |
8836 | 820 gtk_imhtml_set_whole_buffer_formatting_only(GTK_IMHTML(imhtml), TRUE); |
8833 | 821 |
822 gtk_imhtml_smiley_shortcuts(GTK_IMHTML(imhtml), | |
823 gaim_prefs_get_bool("/gaim/gtk/conversations/smiley_shortcuts")); | |
824 gtk_imhtml_html_shortcuts(GTK_IMHTML(imhtml), | |
825 gaim_prefs_get_bool("/gaim/gtk/conversations/html_shortcuts")); | |
826 gtk_imhtmltoolbar_attach(GTK_IMHTMLTOOLBAR(toolbar), imhtml); | |
827 gtk_imhtmltoolbar_associate_smileys(GTK_IMHTMLTOOLBAR(toolbar), "default"); | |
828 gaim_setup_imhtml(imhtml); | |
9025 | 829 gtk_imhtml_append_text(GTK_IMHTML(imhtml), _("This is how your outgoing message text will appear when you use protocols that support formatting. :)"), 0); |
8833 | 830 gtk_container_add(GTK_CONTAINER(sw), imhtml); |
8988 | 831 |
9056 | 832 button = gtk_button_new_with_mnemonic(_("_Clear Formatting")); |
9025 | 833 gtk_box_pack_start(GTK_BOX(fontvbox), button, FALSE, FALSE, 0); |
834 | |
835 if (!gaim_prefs_get_bool("/gaim/gtk/conversations/send_formatting")) | |
836 gtk_widget_set_sensitive(fontvbox, FALSE); | |
837 | |
8836 | 838 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_bold")) |
839 gtk_imhtml_toggle_bold(GTK_IMHTML(imhtml)); | |
840 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_italic")) | |
841 gtk_imhtml_toggle_italic(GTK_IMHTML(imhtml)); | |
842 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_underline")) | |
843 gtk_imhtml_toggle_underline(GTK_IMHTML(imhtml)); | |
844 | |
845 gtk_imhtml_font_set_size(GTK_IMHTML(imhtml), gaim_prefs_get_int("/gaim/gtk/conversations/font_size")); | |
846 gtk_imhtml_toggle_forecolor(GTK_IMHTML(imhtml), gaim_prefs_get_string("/gaim/gtk/conversations/fgcolor")); | |
847 gtk_imhtml_toggle_backcolor(GTK_IMHTML(imhtml), gaim_prefs_get_string("/gaim/gtk/conversations/bgcolor")); | |
848 gtk_imhtml_toggle_fontface(GTK_IMHTML(imhtml), gaim_prefs_get_string("/gaim/gtk/conversations/font_face")); | |
849 | |
9025 | 850 g_signal_connect(G_OBJECT(button), "clicked", |
851 G_CALLBACK(formatting_reset_cb), imhtml); | |
852 | |
853 g_signal_connect(G_OBJECT(option), "clicked", | |
854 G_CALLBACK(gaim_gtk_toggle_sensitive), fontvbox); | |
855 | |
856 g_signal_connect(G_OBJECT(imhtml), "format_function_toggle", | |
857 G_CALLBACK(formatting_toggle_cb), NULL); | |
858 | |
5440 | 859 gtk_widget_show_all(ret); |
860 return ret; | |
861 } | |
862 | |
863 GtkWidget *hotkeys_page() { | |
864 GtkWidget *ret; | |
865 GtkWidget *vbox; | |
866 ret = gtk_vbox_new(FALSE, 18); | |
867 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
868 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
869 vbox = gaim_gtk_make_frame(ret, _("Send Message")); |
7987 | 870 gaim_gtk_prefs_checkbox(_("Enter _sends message"), |
871 "/gaim/gtk/conversations/enter_sends", vbox); | |
872 gaim_gtk_prefs_checkbox(_("C_ontrol-Enter sends message"), | |
873 "/gaim/gtk/conversations/ctrl_enter_sends", vbox); | |
5440 | 874 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
875 vbox = gaim_gtk_make_frame (ret, _("Window Closing")); |
7987 | 876 gaim_gtk_prefs_checkbox(_("_Escape closes window"), |
877 "/gaim/gtk/conversations/escape_closes", vbox); | |
5440 | 878 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
879 vbox = gaim_gtk_make_frame(ret, _("Insertions")); |
8927 | 880 gaim_gtk_prefs_checkbox(_("Control-{B/I/U} changes _formatting"), |
7987 | 881 "/gaim/gtk/conversations/html_shortcuts", vbox); |
882 gaim_gtk_prefs_checkbox(_("Control-(number) _inserts smileys"), | |
883 "/gaim/gtk/conversations/smiley_shortcuts", vbox); | |
5440 | 884 |
885 gtk_widget_show_all(ret); | |
886 return ret; | |
887 } | |
888 | |
889 GtkWidget *list_page() { | |
890 GtkWidget *ret; | |
891 GtkWidget *vbox; | |
892 GList *l= NULL; | |
5567
cc9ddec20010
[gaim-migrate @ 5969]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
893 GSList *sl; |
5440 | 894 ret = gtk_vbox_new(FALSE, 18); |
895 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
7305 | 896 |
897 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
898 vbox = gaim_gtk_make_frame (ret, _("Buddy List Sorting")); |
5567
cc9ddec20010
[gaim-migrate @ 5969]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
899 |
cc9ddec20010
[gaim-migrate @ 5969]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
900 for (sl = gaim_gtk_blist_sort_methods; sl != NULL; sl = sl->next) { |
5631 | 901 struct gaim_gtk_blist_sort_method *method = sl->data; |
902 | |
903 l = g_list_append(l, method->name); | |
904 l = g_list_append(l, method->id); | |
5440 | 905 } |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
906 |
8063 | 907 gaim_gtk_prefs_dropdown_from_list(vbox, _("_Sorting:"), GAIM_PREF_STRING, |
7987 | 908 "/gaim/gtk/blist/sort_type", l); |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
909 |
5440 | 910 g_list_free(l); |
911 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
912 vbox = gaim_gtk_make_frame (ret, _("Buddy List Window")); |
8949 | 913 gaim_gtk_prefs_dropdown(vbox, _("Show _buttons as:"), GAIM_PREF_INT, |
914 "/gaim/gtk/blist/button_style", | |
915 _("Pictures"), GAIM_BUTTON_IMAGE, | |
916 _("Text"), GAIM_BUTTON_TEXT, | |
917 _("Pictures and text"), GAIM_BUTTON_TEXT_IMAGE, | |
918 _("None"), GAIM_BUTTON_NONE, | |
919 NULL); | |
7987 | 920 gaim_gtk_prefs_checkbox(_("_Raise window on events"), |
921 "/gaim/gtk/blist/raise_on_events", vbox); | |
5440 | 922 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
923 vbox = gaim_gtk_make_frame (ret, _("Buddy Display")); |
7987 | 924 gaim_gtk_prefs_checkbox(_("Show buddy _icons"), |
7305 | 925 "/gaim/gtk/blist/show_buddy_icons", vbox); |
7987 | 926 gaim_gtk_prefs_checkbox(_("Show _warning levels"), |
7305 | 927 "/gaim/gtk/blist/show_warning_level", vbox); |
7987 | 928 gaim_gtk_prefs_checkbox(_("Show idle _times"), |
7305 | 929 "/gaim/gtk/blist/show_idle_time", vbox); |
7987 | 930 gaim_gtk_prefs_checkbox(_("Dim i_dle buddies"), |
7305 | 931 "/gaim/gtk/blist/grey_idle_buddies", vbox); |
7987 | 932 gaim_gtk_prefs_checkbox(_("_Automatically expand contacts"), |
7731 | 933 "/gaim/gtk/blist/auto_expand_contacts", vbox); |
5440 | 934 |
935 gtk_widget_show_all(ret); | |
5547
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
936 |
5440 | 937 return ret; |
938 } | |
939 | |
8979 | 940 static void |
941 conversation_placement_cb(const char *name, GaimPrefType type, gpointer value, | |
942 gpointer data) | |
943 { | |
944 const char *placement = value; | |
945 | |
946 if (strcmp(placement, "number")) | |
947 gtk_widget_set_sensitive(GTK_WIDGET(data), FALSE); | |
948 else | |
949 gtk_widget_set_sensitive(GTK_WIDGET(data), TRUE); | |
950 } | |
951 | |
5440 | 952 GtkWidget *conv_page() { |
953 GtkWidget *ret; | |
954 GtkWidget *vbox; | |
955 GtkWidget *label; | |
8881 | 956 GtkWidget *close_checkbox;/*, *icons_checkbox;*/ |
8988 | 957 GtkWidget *tabs_checkbox, *same_checkbox, *tab_placement; |
5440 | 958 GtkSizeGroup *sg; |
959 GList *names = NULL; | |
960 | |
961 ret = gtk_vbox_new(FALSE, 18); | |
962 gtk_container_set_border_width(GTK_CONTAINER(ret), 12); | |
963 | |
964 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
965 vbox = gaim_gtk_make_frame(ret, _("Conversations")); |
5440 | 966 |
5858 | 967 names = gaim_conv_placement_get_options(); |
5440 | 968 |
7987 | 969 label = gaim_gtk_prefs_dropdown_from_list(vbox, _("_Placement:"), |
7561
cdfdbabd3266
[gaim-migrate @ 8175]
Christian Hammond <chipx86@chipx86.com>
parents:
7553
diff
changeset
|
970 GAIM_PREF_STRING, "/gaim/gtk/conversations/placement", names); |
5440 | 971 g_list_free(names); |
972 | |
973 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
974 gtk_size_group_add_widget(sg, label); | |
975 | |
8994 | 976 label = gaim_gtk_prefs_labeled_spin_button(vbox, _("Number of conversations per window"), |
8979 | 977 "/gaim/gtk/conversations/placement_number", |
978 1, 50, sg); | |
979 | |
980 placement_pref_id = gaim_prefs_connect_callback("/gaim/gtk/conversations/placement", | |
981 conversation_placement_cb, | |
982 label); | |
983 gaim_prefs_trigger_callback("/gaim/gtk/conversations/placement"); | |
984 | |
8600 | 985 gaim_gtk_prefs_checkbox(_("Show _formatting toolbar"), |
7326
00a9ab26d607
[gaim-migrate @ 7912]
Christian Hammond <chipx86@chipx86.com>
parents:
7305
diff
changeset
|
986 "/gaim/gtk/conversations/show_formatting_toolbar", vbox); |
00a9ab26d607
[gaim-migrate @ 7912]
Christian Hammond <chipx86@chipx86.com>
parents:
7305
diff
changeset
|
987 |
8015 | 988 gaim_gtk_prefs_checkbox(_("Show a_liases in tabs/titles"), |
989 "/core/conversations/use_alias_for_title", vbox); | |
990 | |
5547
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
991 vbox = gaim_gtk_make_frame (ret, _("Tab Options")); |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
992 |
7987 | 993 tabs_checkbox = 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); |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
995 |
7987 | 996 same_checkbox = gaim_gtk_prefs_checkbox(_("Show IMs and chats in _same tabbed window"), |
6799 | 997 "/core/conversations/combine_chat_im", vbox); |
998 | |
7128 | 999 if (!gaim_prefs_get_bool("/gaim/gtk/conversations/tabs")) { |
1000 gtk_widget_set_sensitive(GTK_WIDGET(same_checkbox), FALSE); | |
1001 } | |
1002 | |
1003 g_signal_connect(G_OBJECT(tabs_checkbox), "clicked", | |
1004 G_CALLBACK(gaim_gtk_toggle_sensitive), same_checkbox); | |
1005 | |
7987 | 1006 close_checkbox = gaim_gtk_prefs_checkbox(_("Show _close button on tabs"), |
5547
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
1007 "/gaim/gtk/conversations/close_on_tabs", |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
1008 vbox); |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
1009 |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1010 if (!gaim_prefs_get_bool("/gaim/gtk/conversations/tabs")) { |
5547
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
1011 gtk_widget_set_sensitive(GTK_WIDGET(close_checkbox), FALSE); |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
1012 } |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
1013 |
7128 | 1014 g_signal_connect(G_OBJECT(tabs_checkbox), "clicked", |
5547
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
1015 G_CALLBACK(gaim_gtk_toggle_sensitive), close_checkbox); |
6392
e9974608b319
[gaim-migrate @ 6897]
Christian Hammond <chipx86@chipx86.com>
parents:
6384
diff
changeset
|
1016 |
8988 | 1017 tab_placement = gtk_hbox_new(FALSE, 0); |
1018 | |
1019 label = gaim_gtk_prefs_dropdown(tab_placement, _("_Tab Placement:"), GAIM_PREF_INT, | |
1020 "/gaim/gtk/conversations/tab_side", | |
1021 _("Top"), GTK_POS_TOP, | |
1022 _("Bottom"), GTK_POS_BOTTOM, | |
1023 _("Left"), GTK_POS_LEFT, | |
1024 _("Right"), GTK_POS_RIGHT, | |
1025 NULL); | |
1026 | |
1027 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
1028 gtk_size_group_add_widget(sg, label); | |
1029 | |
1030 gtk_box_pack_start(GTK_BOX(vbox), tab_placement, FALSE, FALSE, 0); | |
1031 | |
1032 if (!gaim_prefs_get_bool("/gaim/gtk/conversations/tabs")) { | |
1033 gtk_widget_set_sensitive(GTK_WIDGET(tab_placement), FALSE); | |
1034 } | |
1035 | |
1036 g_signal_connect(G_OBJECT(tabs_checkbox), "clicked", | |
1037 G_CALLBACK(gaim_gtk_toggle_sensitive), tab_placement); | |
1038 | |
5440 | 1039 gtk_widget_show_all(ret); |
1040 | |
1041 return ret; | |
1042 } | |
1043 | |
1044 GtkWidget *im_page() { | |
1045 GtkWidget *ret; | |
1046 GtkWidget *vbox; | |
8998 | 1047 #if 1 /* PREFSLASH04 */ |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1048 GtkWidget *widge; |
8881 | 1049 #endif /* PREFSLASH04 */ |
5440 | 1050 GtkSizeGroup *sg; |
1051 | |
1052 ret = gtk_vbox_new(FALSE, 18); | |
1053 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1054 | |
1055 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
1056 | |
8966 | 1057 vbox = gaim_gtk_make_frame (ret, _("Window")); |
8998 | 1058 #if 1 /* PREFSLASH04 */ |
7987 | 1059 widge = gaim_gtk_prefs_dropdown(vbox, _("Show _buttons as:"), GAIM_PREF_INT, |
1060 "/gaim/gtk/conversations/im/button_type", | |
1061 _("Pictures"), GAIM_BUTTON_IMAGE, | |
1062 _("Text"), GAIM_BUTTON_TEXT, | |
1063 _("Pictures and text"), GAIM_BUTTON_TEXT_IMAGE, | |
8811 | 1064 _("None"), GAIM_BUTTON_NONE, |
7987 | 1065 NULL); |
5547
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
1066 |
5440 | 1067 gtk_size_group_add_widget(sg, widge); |
1068 gtk_misc_set_alignment(GTK_MISC(widge), 0, 0); | |
8966 | 1069 #endif /* PREFSLASH04 */ |
7987 | 1070 gaim_gtk_prefs_checkbox(_("_Raise window on events"), |
1071 "/gaim/gtk/conversations/im/raise_on_events", vbox); | |
5440 | 1072 gtk_widget_show (vbox); |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1073 vbox = gaim_gtk_make_frame (ret, _("Buddy Icons")); |
7987 | 1074 gaim_gtk_prefs_checkbox(_("Show buddy _icons"), |
1075 "/gaim/gtk/conversations/im/show_buddy_icons", vbox); | |
1076 gaim_gtk_prefs_checkbox(_("Enable buddy icon a_nimation"), | |
1077 "/gaim/gtk/conversations/im/animate_buddy_icons", vbox); | |
5440 | 1078 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1079 vbox = gaim_gtk_make_frame (ret, _("Typing Notification")); |
7987 | 1080 gaim_gtk_prefs_checkbox(_("Notify buddies that you are _typing to them"), |
1081 "/core/conversations/im/send_typing", vbox); | |
5440 | 1082 |
1083 gtk_widget_show_all(ret); | |
1084 return ret; | |
1085 } | |
1086 | |
1087 GtkWidget *chat_page() { | |
1088 GtkWidget *ret; | |
1089 GtkWidget *vbox; | |
8998 | 1090 #if 1 /* PREFSLASH04 */ |
5440 | 1091 GtkWidget *dd; |
8881 | 1092 #endif /* PREFSLASH04 */ |
5440 | 1093 GtkSizeGroup *sg; |
1094 | |
1095 ret = gtk_vbox_new(FALSE, 18); | |
1096 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1097 | |
1098 sg = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); | |
8966 | 1099 vbox = gaim_gtk_make_frame (ret, _("Window")); |
8998 | 1100 #if 1 /* PREFSLASH04 */ |
7987 | 1101 dd = gaim_gtk_prefs_dropdown(vbox, _("Show _buttons as:"), GAIM_PREF_INT, |
1102 "/gaim/gtk/conversations/chat/button_type", | |
1103 _("Pictures"), GAIM_BUTTON_IMAGE, | |
1104 _("Text"), GAIM_BUTTON_TEXT, | |
1105 _("Pictures and text"), GAIM_BUTTON_TEXT_IMAGE, | |
8811 | 1106 _("None"), GAIM_BUTTON_NONE, |
7987 | 1107 NULL); |
5547
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
1108 |
5440 | 1109 gtk_size_group_add_widget(sg, dd); |
1110 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0); | |
8966 | 1111 #endif /* PREFSLASH04 */ |
7987 | 1112 gaim_gtk_prefs_checkbox(_("_Raise window on events"), |
1113 "/gaim/gtk/conversations/chat/raise_on_events", vbox); | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1114 vbox = gaim_gtk_make_frame (ret, _("Display")); |
8152 | 1115 gaim_gtk_prefs_checkbox(_("Co_lorize screen names"), |
7987 | 1116 "/gaim/gtk/conversations/chat/color_nicks", vbox); |
5440 | 1117 |
1118 gtk_widget_show_all(ret); | |
1119 return ret; | |
1120 } | |
1121 | |
8231
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1122 static void network_ip_changed(GtkEntry *entry, gpointer data) |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1123 { |
8834 | 1124 gaim_network_set_public_ip(gtk_entry_get_text(entry)); |
8231
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1125 } |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1126 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1127 GtkWidget *network_page() { |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1128 GtkWidget *ret; |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1129 GtkWidget *vbox, *entry; |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1130 GtkWidget *table, *label, *auto_ip_checkbox, *ports_checkbox, *spin_button; |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1131 GtkSizeGroup *sg; |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1132 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1133 ret = gtk_vbox_new(FALSE, 18); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1134 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1135 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1136 vbox = gaim_gtk_make_frame (ret, _("IP Address")); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1137 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1138 auto_ip_checkbox = gaim_gtk_prefs_checkbox(_("_Autodetect IP Address"), |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1139 "/core/network/auto_ip", vbox); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1140 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1141 table = gtk_table_new(2, 1, FALSE); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1142 gtk_container_set_border_width(GTK_CONTAINER(table), 5); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1143 gtk_table_set_col_spacings(GTK_TABLE(table), 5); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1144 gtk_table_set_row_spacings(GTK_TABLE(table), 10); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1145 gtk_container_add(GTK_CONTAINER(vbox), table); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1146 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1147 label = gtk_label_new_with_mnemonic(_("Public _IP:")); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1148 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1149 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
|
1150 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1151 entry = gtk_entry_new(); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1152 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1153 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
|
1154 g_signal_connect(G_OBJECT(entry), "changed", |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1155 G_CALLBACK(network_ip_changed), NULL); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1156 |
8834 | 1157 if (gaim_network_get_public_ip() != NULL) |
8231
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1158 gtk_entry_set_text(GTK_ENTRY(entry), |
8834 | 1159 gaim_network_get_public_ip()); |
8231
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1160 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1161 gaim_set_accessible_label (entry, label); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1162 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1163 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1164 if (gaim_prefs_get_bool("/core/network/auto_ip")) { |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1165 gtk_widget_set_sensitive(GTK_WIDGET(table), FALSE); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1166 } |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1167 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1168 g_signal_connect(G_OBJECT(auto_ip_checkbox), "clicked", |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1169 G_CALLBACK(gaim_gtk_toggle_sensitive), table); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1170 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1171 vbox = gaim_gtk_make_frame (ret, _("Ports")); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1172 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1173 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1174 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
|
1175 "/core/network/ports_range_use", vbox); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1176 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1177 spin_button = gaim_gtk_prefs_labeled_spin_button(vbox, _("_Start Port:"), |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1178 "/core/network/ports_range_start", 0, 65535, sg); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1179 if (!gaim_prefs_get_bool("/core/network/ports_range_use")) |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1180 gtk_widget_set_sensitive(GTK_WIDGET(spin_button), FALSE); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1181 g_signal_connect(G_OBJECT(ports_checkbox), "clicked", |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1182 G_CALLBACK(gaim_gtk_toggle_sensitive), spin_button); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1183 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1184 spin_button = gaim_gtk_prefs_labeled_spin_button(vbox, _("_End Port:"), |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1185 "/core/network/ports_range_end", 0, 65535, sg); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1186 if (!gaim_prefs_get_bool("/core/network/ports_range_use")) |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1187 gtk_widget_set_sensitive(GTK_WIDGET(spin_button), FALSE); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1188 g_signal_connect(G_OBJECT(ports_checkbox), "clicked", |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1189 G_CALLBACK(gaim_gtk_toggle_sensitive), spin_button); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1190 |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1191 gtk_widget_show_all(ret); |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1192 return ret; |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1193 } |
f50c059b6384
[gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents:
8188
diff
changeset
|
1194 |
6001 | 1195 static void |
1196 proxy_changed_cb(const char *name, GaimPrefType type, gpointer value, | |
7987 | 1197 gpointer data) |
6001 | 1198 { |
1199 GtkWidget *frame = data; | |
1200 const char *proxy = value; | |
1201 | |
6621 | 1202 if (strcmp(proxy, "none") && strcmp(proxy, "envvar")) |
1203 gtk_widget_set_sensitive(frame, TRUE); | |
1204 else | |
1205 gtk_widget_set_sensitive(frame, FALSE); | |
6001 | 1206 } |
1207 | |
6006 | 1208 static void proxy_print_option(GtkEntry *entry, int entrynum) |
1209 { | |
1210 if (entrynum == PROXYHOST) | |
1211 gaim_prefs_set_string("/core/proxy/host", gtk_entry_get_text(entry)); | |
1212 else if (entrynum == PROXYPORT) | |
1213 gaim_prefs_set_int("/core/proxy/port", atoi(gtk_entry_get_text(entry))); | |
1214 else if (entrynum == PROXYUSER) | |
1215 gaim_prefs_set_string("/core/proxy/username", gtk_entry_get_text(entry)); | |
1216 else if (entrynum == PROXYPASS) | |
1217 gaim_prefs_set_string("/core/proxy/password", gtk_entry_get_text(entry)); | |
1218 } | |
1219 | |
5440 | 1220 GtkWidget *proxy_page() { |
1221 GtkWidget *ret; | |
1222 GtkWidget *vbox; | |
1223 GtkWidget *entry; | |
1224 GtkWidget *label; | |
1225 GtkWidget *hbox; | |
1226 GtkWidget *table; | |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1227 GaimProxyInfo *proxy_info; |
5440 | 1228 |
1229 ret = gtk_vbox_new(FALSE, 18); | |
1230 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1231 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1232 vbox = gaim_gtk_make_frame (ret, _("Proxy Type")); |
7987 | 1233 gaim_gtk_prefs_dropdown(vbox, _("Proxy _type:"), GAIM_PREF_STRING, |
1234 "/core/proxy/type", | |
1235 _("No proxy"), "none", | |
1236 "SOCKS 4", "socks4", | |
1237 "SOCKS 5", "socks5", | |
1238 "HTTP", "http", | |
1239 _("Use Environmental Settings"), "envvar", | |
1240 NULL); | |
5440 | 1241 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1242 vbox = gaim_gtk_make_frame(ret, _("Proxy Server")); |
5440 | 1243 prefs_proxy_frame = vbox; |
1244 | |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1245 proxy_info = gaim_global_proxy_get_info(); |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1246 |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1247 if (proxy_info == NULL || |
6621 | 1248 gaim_proxy_info_get_type(proxy_info) == GAIM_PROXY_NONE || |
1249 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
|
1250 |
6001 | 1251 gtk_widget_set_sensitive(GTK_WIDGET(prefs_proxy_frame), FALSE); |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1252 } |
6001 | 1253 proxy_pref_id = gaim_prefs_connect_callback("/core/proxy/type", |
1254 proxy_changed_cb, prefs_proxy_frame); | |
1255 | |
5440 | 1256 table = gtk_table_new(2, 4, FALSE); |
1257 gtk_container_set_border_width(GTK_CONTAINER(table), 5); | |
1258 gtk_table_set_col_spacings(GTK_TABLE(table), 5); | |
1259 gtk_table_set_row_spacings(GTK_TABLE(table), 10); | |
1260 gtk_container_add(GTK_CONTAINER(vbox), table); | |
1261 | |
1262 | |
7797 | 1263 label = gtk_label_new_with_mnemonic(_("_Host:")); |
5440 | 1264 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
1265 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); | |
1266 | |
1267 entry = gtk_entry_new(); | |
1268 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
1269 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 0, 1, GTK_FILL, 0, 0, 0); | |
1270 g_signal_connect(G_OBJECT(entry), "changed", | |
1271 G_CALLBACK(proxy_print_option), (void *)PROXYHOST); | |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1272 |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1273 if (proxy_info != NULL && gaim_proxy_info_get_host(proxy_info)) |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1274 gtk_entry_set_text(GTK_ENTRY(entry), |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1275 gaim_proxy_info_get_host(proxy_info)); |
5440 | 1276 |
1277 hbox = gtk_hbox_new(TRUE, 5); | |
1278 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
8137 | 1279 gaim_set_accessible_label (entry, label); |
5440 | 1280 |
7870 | 1281 label = gtk_label_new_with_mnemonic(_("_Port:")); |
5440 | 1282 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
1283 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, GTK_FILL, 0, 0, 0); | |
1284 | |
1285 entry = gtk_entry_new(); | |
1286 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
1287 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 1, 2, GTK_FILL, 0, 0, 0); | |
1288 g_signal_connect(G_OBJECT(entry), "changed", | |
1289 G_CALLBACK(proxy_print_option), (void *)PROXYPORT); | |
1290 | |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1291 if (proxy_info != NULL && gaim_proxy_info_get_port(proxy_info) != 0) { |
5440 | 1292 char buf[128]; |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1293 g_snprintf(buf, sizeof(buf), "%d", |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1294 gaim_proxy_info_get_port(proxy_info)); |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1295 |
5440 | 1296 gtk_entry_set_text(GTK_ENTRY(entry), buf); |
1297 } | |
8137 | 1298 gaim_set_accessible_label (entry, label); |
5440 | 1299 |
7797 | 1300 label = gtk_label_new_with_mnemonic(_("_User:")); |
5440 | 1301 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
1302 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 2, 3, GTK_FILL, 0, 0, 0); | |
1303 | |
1304 entry = gtk_entry_new(); | |
1305 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
1306 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 2, 3, GTK_FILL, 0, 0, 0); | |
1307 g_signal_connect(G_OBJECT(entry), "changed", | |
1308 G_CALLBACK(proxy_print_option), (void *)PROXYUSER); | |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1309 |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1310 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
|
1311 gtk_entry_set_text(GTK_ENTRY(entry), |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1312 gaim_proxy_info_get_username(proxy_info)); |
5440 | 1313 |
1314 hbox = gtk_hbox_new(TRUE, 5); | |
1315 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
8137 | 1316 gaim_set_accessible_label (entry, label); |
5440 | 1317 |
7797 | 1318 label = gtk_label_new_with_mnemonic(_("Pa_ssword:")); |
5440 | 1319 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
1320 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 3, 4, GTK_FILL, 0, 0, 0); | |
1321 | |
1322 entry = gtk_entry_new(); | |
1323 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
1324 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 3, 4, GTK_FILL , 0, 0, 0); | |
1325 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE); | |
1326 g_signal_connect(G_OBJECT(entry), "changed", | |
1327 G_CALLBACK(proxy_print_option), (void *)PROXYPASS); | |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1328 |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1329 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
|
1330 gtk_entry_set_text(GTK_ENTRY(entry), |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1331 gaim_proxy_info_get_password(proxy_info)); |
8137 | 1332 gaim_set_accessible_label (entry, label); |
5440 | 1333 |
1334 gtk_widget_show_all(ret); | |
1335 return ret; | |
1336 } | |
1337 | |
1338 #ifndef _WIN32 | |
1339 static gboolean manual_browser_set(GtkWidget *entry, GdkEventFocus *event, gpointer data) { | |
1340 const char *program = gtk_entry_get_text(GTK_ENTRY(entry)); | |
1341 | |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1342 gaim_prefs_set_string("/gaim/gtk/browsers/command", program); |
5440 | 1343 |
1344 /* carry on normally */ | |
1345 return FALSE; | |
1346 } | |
1347 | |
5633 | 1348 static GList *get_available_browsers() |
5440 | 1349 { |
1350 struct browser { | |
1351 char *name; | |
1352 char *command; | |
1353 }; | |
1354 | |
1355 static struct browser possible_browsers[] = { | |
5633 | 1356 {N_("Opera"), "opera"}, |
1357 {N_("Netscape"), "netscape"}, | |
1358 {N_("Mozilla"), "mozilla"}, | |
6070 | 1359 {N_("Konqueror"), "kfmclient"}, |
7916 | 1360 {N_("Galeon"), "galeon"}, |
8267 | 1361 {N_("Firebird"), "mozilla-firebird"}, |
8356 | 1362 {N_("Firefox"), "firefox"}, |
1363 {N_("Gnome Default"), "gnome-open"} | |
5440 | 1364 }; |
8356 | 1365 static const int num_possible_browsers = 8; |
5440 | 1366 |
1367 GList *browsers = NULL; | |
1368 int i = 0; | |
5819 | 1369 char *browser_setting = (char *)gaim_prefs_get_string("/gaim/gtk/browsers/browser"); |
5440 | 1370 |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1371 browsers = g_list_prepend(browsers, "custom"); |
5440 | 1372 browsers = g_list_prepend(browsers, _("Manual")); |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1373 |
5440 | 1374 for (i = 0; i < num_possible_browsers; i++) { |
7108
6faeeecab0dc
[gaim-migrate @ 7673]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1375 if (gaim_program_is_valid(possible_browsers[i].command)) { |
5633 | 1376 browsers = g_list_prepend(browsers, |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1377 possible_browsers[i].command); |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1378 browsers = g_list_prepend(browsers, _(possible_browsers[i].name)); |
5825 | 1379 if(browser_setting && !strcmp(possible_browsers[i].command, browser_setting)) |
5819 | 1380 browser_setting = NULL; |
5440 | 1381 } |
1382 } | |
1383 | |
5819 | 1384 if(browser_setting) |
1385 gaim_prefs_set_string("/gaim/gtk/browsers/browser", "custom"); | |
1386 | |
5440 | 1387 return browsers; |
1388 } | |
1389 | |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1390 static void |
8274 | 1391 browser_changed1_cb(const char *name, GaimPrefType type, gpointer value, |
1392 gpointer data) | |
1393 { | |
1394 GtkWidget *hbox = data; | |
1395 const char *browser = value; | |
1396 | |
1397 gtk_widget_set_sensitive(hbox, strcmp(browser, "custom")); | |
1398 } | |
1399 | |
1400 static void | |
1401 browser_changed2_cb(const char *name, GaimPrefType type, gpointer value, | |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1402 gpointer data) |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1403 { |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1404 GtkWidget *hbox = data; |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1405 const char *browser = value; |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1406 |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1407 gtk_widget_set_sensitive(hbox, !strcmp(browser, "custom")); |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1408 } |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1409 |
5440 | 1410 GtkWidget *browser_page() { |
1411 GtkWidget *ret; | |
1412 GtkWidget *vbox; | |
1413 GtkWidget *hbox; | |
1414 GtkWidget *label; | |
6007 | 1415 GtkWidget *entry; |
5440 | 1416 GtkSizeGroup *sg; |
1417 GList *browsers = NULL; | |
1418 | |
1419 ret = gtk_vbox_new(FALSE, 18); | |
1420 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1421 | |
1422 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1423 vbox = gaim_gtk_make_frame (ret, _("Browser Selection")); |
5440 | 1424 |
1425 browsers = get_available_browsers(); | |
1426 if (browsers != NULL) { | |
7987 | 1427 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
|
1428 "/gaim/gtk/browsers/browser", |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1429 browsers); |
5440 | 1430 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
1431 gtk_size_group_add_widget(sg, label); | |
8274 | 1432 |
1433 hbox = gtk_hbox_new(FALSE, 0); | |
1434 label = gaim_gtk_prefs_dropdown(hbox, _("_Open link in:"), GAIM_PREF_INT, | |
1435 "/gaim/gtk/browsers/place", | |
1436 _("Browser default"), GAIM_BROWSER_DEFAULT, | |
1437 _("Existing window"), GAIM_BROWSER_CURRENT, | |
1438 _("New window"), GAIM_BROWSER_NEW_WINDOW, | |
1439 _("New tab"), GAIM_BROWSER_NEW_TAB, | |
1440 NULL); | |
1441 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
1442 gtk_size_group_add_widget(sg, label); | |
1443 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
1444 | |
1445 if (!strcmp(gaim_prefs_get_string("/gaim/gtk/browsers/browser"), "custom")) | |
1446 gtk_widget_set_sensitive(hbox, FALSE); | |
1447 browser_pref1_id = gaim_prefs_connect_callback("/gaim/gtk/browsers/browser", | |
1448 browser_changed1_cb, hbox); | |
5440 | 1449 } |
1450 | |
1451 hbox = gtk_hbox_new(FALSE, 5); | |
1452 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
6031 | 1453 label = gtk_label_new_with_mnemonic(_("_Manual:\n(%s for URL)")); |
5440 | 1454 gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); |
1455 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
1456 gtk_size_group_add_widget(sg, label); | |
1457 | |
6007 | 1458 entry = gtk_entry_new(); |
1459 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1460 |
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1461 if (strcmp(gaim_prefs_get_string("/gaim/gtk/browsers/browser"), "custom")) |
5440 | 1462 gtk_widget_set_sensitive(hbox, FALSE); |
8274 | 1463 browser_pref2_id = gaim_prefs_connect_callback("/gaim/gtk/browsers/browser", |
1464 browser_changed2_cb, hbox); | |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1465 |
6007 | 1466 gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, FALSE, 0); |
1467 | |
1468 gtk_entry_set_text(GTK_ENTRY(entry), | |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1469 gaim_prefs_get_string("/gaim/gtk/browsers/command")); |
6007 | 1470 g_signal_connect(G_OBJECT(entry), "focus-out-event", |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1471 G_CALLBACK(manual_browser_set), NULL); |
8188
cd9ea20cd8ed
[gaim-migrate @ 8909]
Christian Hammond <chipx86@chipx86.com>
parents:
8170
diff
changeset
|
1472 gaim_set_accessible_label (entry, label); |
5440 | 1473 |
1474 gtk_widget_show_all(ret); | |
1475 return ret; | |
1476 } | |
1477 #endif /*_WIN32*/ | |
1478 | |
1479 GtkWidget *logging_page() { | |
1480 GtkWidget *ret; | |
1481 GtkWidget *vbox; | |
7431 | 1482 GList *names; |
8573 | 1483 GtkWidget *sys_box; |
1484 GtkWidget *box; | |
1485 int syslog_enabled = gaim_prefs_get_bool("/core/logging/log_system"); | |
1486 | |
5440 | 1487 ret = gtk_vbox_new(FALSE, 18); |
1488 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1489 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1490 vbox = gaim_gtk_make_frame (ret, _("Message Logs")); |
7431 | 1491 names = gaim_log_logger_get_options(); |
1492 | |
7987 | 1493 gaim_gtk_prefs_dropdown_from_list(vbox, _("Log _Format:"), GAIM_PREF_STRING, |
1494 "/core/logging/format", names); | |
1495 | |
1496 gaim_gtk_prefs_checkbox(_("_Log all instant messages"), | |
7562
b859cfb5f31a
[gaim-migrate @ 8176]
Christian Hammond <chipx86@chipx86.com>
parents:
7561
diff
changeset
|
1497 "/core/logging/log_ims", vbox); |
7987 | 1498 gaim_gtk_prefs_checkbox(_("Log all c_hats"), |
7562
b859cfb5f31a
[gaim-migrate @ 8176]
Christian Hammond <chipx86@chipx86.com>
parents:
7561
diff
changeset
|
1499 "/core/logging/log_chats", vbox); |
8573 | 1500 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1501 vbox = gaim_gtk_make_frame (ret, _("System Logs")); |
8573 | 1502 |
1503 sys_box = gaim_gtk_prefs_checkbox(_("_Enable system log"), | |
1504 "/core/logging/log_system", vbox); | |
1505 | |
1506 box = gaim_gtk_prefs_checkbox(_("Log when buddies _sign on/sign off"), | |
1507 "/core/logging/log_signon_signoff", vbox); | |
1508 g_signal_connect(G_OBJECT(sys_box), "clicked", | |
1509 G_CALLBACK(gaim_gtk_toggle_sensitive), box); | |
1510 gtk_widget_set_sensitive(box, syslog_enabled); | |
1511 | |
1512 box = gaim_gtk_prefs_checkbox(_("Log when buddies become _idle/un-idle"), | |
1513 "/core/logging/log_idle_state", vbox); | |
1514 g_signal_connect(G_OBJECT(sys_box), "clicked", | |
1515 G_CALLBACK(gaim_gtk_toggle_sensitive), box); | |
1516 gtk_widget_set_sensitive(box, syslog_enabled); | |
1517 | |
1518 box = gaim_gtk_prefs_checkbox(_("Log when buddies go away/come _back"), | |
1519 "/core/logging/log_away_state", vbox); | |
1520 g_signal_connect(G_OBJECT(sys_box), "clicked", | |
1521 G_CALLBACK(gaim_gtk_toggle_sensitive), box); | |
1522 gtk_widget_set_sensitive(box, syslog_enabled); | |
1523 | |
1524 box = gaim_gtk_prefs_checkbox(_("Log your _own signons/idleness/awayness"), | |
1525 "/core/logging/log_own_states", vbox); | |
1526 g_signal_connect(G_OBJECT(sys_box), "clicked", | |
1527 G_CALLBACK(gaim_gtk_toggle_sensitive), box); | |
1528 gtk_widget_set_sensitive(box, syslog_enabled); | |
1529 | |
5440 | 1530 gtk_widget_show_all(ret); |
1531 return ret; | |
1532 } | |
1533 | |
1534 #ifndef _WIN32 | |
1535 static gint sound_cmd_yeah(GtkEntry *entry, gpointer d) | |
1536 { | |
5684 | 1537 gaim_prefs_set_string("/gaim/gtk/sound/command", |
6007 | 1538 gtk_entry_get_text(GTK_ENTRY(entry))); |
5440 | 1539 return TRUE; |
1540 } | |
6005 | 1541 |
1542 static void | |
1543 sound_changed_cb(const char *name, GaimPrefType type, gpointer value, | |
1544 gpointer data) | |
1545 { | |
1546 GtkWidget *hbox = data; | |
1547 const char *method = value; | |
1548 | |
1549 gtk_widget_set_sensitive(hbox, !strcmp(method, "custom")); | |
1550 } | |
5440 | 1551 #endif |
1552 | |
1553 GtkWidget *sound_page() { | |
1554 GtkWidget *ret; | |
1555 GtkWidget *vbox; | |
1556 GtkSizeGroup *sg; | |
1557 #ifndef _WIN32 | |
1558 GtkWidget *dd; | |
1559 GtkWidget *hbox; | |
1560 GtkWidget *label; | |
6007 | 1561 GtkWidget *entry; |
5684 | 1562 const char *cmd; |
5440 | 1563 #endif |
1564 | |
1565 ret = gtk_vbox_new(FALSE, 18); | |
1566 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1567 | |
1568 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
1569 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1570 vbox = gaim_gtk_make_frame (ret, _("Sound Options")); |
8633 | 1571 gaim_gtk_prefs_checkbox(_("Sounds when conversation has _focus"), |
1572 "/gaim/gtk/sound/conv_focus", vbox); | |
7987 | 1573 gaim_gtk_prefs_checkbox(_("_Sounds while away"), |
5684 | 1574 "/core/sound/while_away", vbox); |
5440 | 1575 |
1576 #ifndef _WIN32 | |
6033 | 1577 vbox = gaim_gtk_make_frame (ret, _("Sound Method")); |
7987 | 1578 dd = gaim_gtk_prefs_dropdown(vbox, _("_Method:"), GAIM_PREF_STRING, |
1579 "/gaim/gtk/sound/method", | |
1580 _("Console beep"), "beep", | |
5440 | 1581 #ifdef USE_AO |
7987 | 1582 _("Automatic"), "automatic", |
1583 "ESD", "esd", | |
1584 "Arts", "arts", | |
5440 | 1585 #endif |
1586 #ifdef USE_NAS_AUDIO | |
7987 | 1587 "NAS", "nas", |
5440 | 1588 #endif |
7987 | 1589 _("Command"), "custom", |
1590 NULL); | |
5440 | 1591 gtk_size_group_add_widget(sg, dd); |
1592 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0); | |
1593 | |
1594 hbox = gtk_hbox_new(FALSE, 5); | |
1595 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); | |
1596 | |
1597 hbox = gtk_hbox_new(FALSE, 5); | |
1598 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
6031 | 1599 label = gtk_label_new_with_mnemonic(_("Sound c_ommand:\n(%s for filename)")); |
5440 | 1600 gtk_size_group_add_widget(sg, label); |
1601 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
1602 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); | |
1603 | |
6007 | 1604 entry = gtk_entry_new(); |
1605 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
1606 | |
1607 gtk_editable_set_editable(GTK_EDITABLE(entry), TRUE); | |
5684 | 1608 cmd = gaim_prefs_get_string("/gaim/gtk/sound/command"); |
5440 | 1609 if(cmd) |
6007 | 1610 gtk_entry_set_text(GTK_ENTRY(entry), cmd); |
1611 gtk_widget_set_size_request(entry, 75, -1); | |
1612 | |
1613 gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 5); | |
1614 g_signal_connect(G_OBJECT(entry), "changed", | |
5440 | 1615 G_CALLBACK(sound_cmd_yeah), NULL); |
6005 | 1616 |
1617 gtk_widget_set_sensitive(hbox, | |
1618 !strcmp(gaim_prefs_get_string("/gaim/gtk/sound/method"), | |
1619 "custom")); | |
1620 sound_pref_id = gaim_prefs_connect_callback("/gaim/gtk/sound/method", | |
1621 sound_changed_cb, hbox); | |
1622 | |
8141 | 1623 gaim_set_accessible_label (entry, label); |
5440 | 1624 #endif /* _WIN32 */ |
1625 gtk_widget_show_all(ret); | |
8137 | 1626 |
5440 | 1627 return ret; |
1628 } | |
1629 | |
1630 GtkWidget *away_page() { | |
1631 GtkWidget *ret; | |
1632 GtkWidget *vbox; | |
1633 GtkWidget *hbox; | |
1634 GtkWidget *label; | |
1635 GtkWidget *button; | |
1636 GtkWidget *select; | |
1637 GtkWidget *dd; | |
1638 GtkSizeGroup *sg; | |
1639 | |
1640 ret = gtk_vbox_new(FALSE, 18); | |
1641 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1642 | |
1643 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
1644 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1645 vbox = gaim_gtk_make_frame (ret, _("Away")); |
7987 | 1646 gaim_gtk_prefs_checkbox(_("_Queue new messages when away"), |
5573
5e7de337a053
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5568
diff
changeset
|
1647 "/gaim/gtk/away/queue_messages", vbox); |
5440 | 1648 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1649 vbox = gaim_gtk_make_frame (ret, _("Auto-response")); |
7987 | 1650 gaim_gtk_prefs_checkbox(_("_Send auto-response"), |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1651 "/core/away/auto_response/enabled", vbox); |
7987 | 1652 gaim_gtk_prefs_checkbox(_("_Only send auto-response when idle"), |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1653 "/core/away/auto_response/idle_only", vbox); |
6142 | 1654 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1655 vbox = gaim_gtk_make_frame (ret, _("Idle")); |
7987 | 1656 dd = gaim_gtk_prefs_dropdown(vbox, _("Idle _time reporting:"), |
1657 GAIM_PREF_STRING, "/gaim/gtk/idle/reporting_method", | |
1658 _("None"), "none", | |
1659 _("Gaim usage"), "gaim", | |
5440 | 1660 #ifdef USE_SCREENSAVER |
1661 #ifndef _WIN32 | |
7987 | 1662 _("X usage"), "system", |
5440 | 1663 #else |
7987 | 1664 _("Windows usage"), "system", |
5440 | 1665 #endif |
1666 #endif | |
7987 | 1667 NULL); |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1668 |
5440 | 1669 gtk_size_group_add_widget(sg, dd); |
1670 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0); | |
1671 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1672 vbox = gaim_gtk_make_frame (ret, _("Auto-away")); |
7987 | 1673 button = gaim_gtk_prefs_checkbox(_("Set away _when idle"), |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1674 "/core/away/away_when_idle", vbox); |
8238 | 1675 |
7987 | 1676 select = gaim_gtk_prefs_labeled_spin_button(vbox, |
1677 _("_Minutes before setting away:"), "/core/away/mins_before_away", | |
1678 1, 24 * 60, sg); | |
5440 | 1679 g_signal_connect(G_OBJECT(button), "clicked", |
1680 G_CALLBACK(gaim_gtk_toggle_sensitive), select); | |
1681 | |
8238 | 1682 hbox = gtk_hbox_new(FALSE, 0); |
1683 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
1684 | |
5440 | 1685 label = gtk_label_new_with_mnemonic(_("Away m_essage:")); |
1686 gtk_size_group_add_widget(sg, label); | |
1687 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
8238 | 1688 g_signal_connect(G_OBJECT(button), "clicked", |
1689 G_CALLBACK(gaim_gtk_toggle_sensitive), label); | |
5440 | 1690 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
8238 | 1691 |
5440 | 1692 prefs_away_menu = gtk_option_menu_new(); |
1693 gtk_label_set_mnemonic_widget(GTK_LABEL(label), prefs_away_menu); | |
1694 g_signal_connect(G_OBJECT(button), "clicked", | |
1695 G_CALLBACK(gaim_gtk_toggle_sensitive), prefs_away_menu); | |
1696 default_away_menu_init(prefs_away_menu); | |
1697 gtk_widget_show(prefs_away_menu); | |
1698 gtk_box_pack_start(GTK_BOX(hbox), prefs_away_menu, FALSE, FALSE, 0); | |
8238 | 1699 gaim_set_accessible_label (prefs_away_menu, label); |
1700 | |
5440 | 1701 |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1702 if (!gaim_prefs_get_bool("/core/away/away_when_idle")) { |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1703 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); |
8238 | 1704 gtk_widget_set_sensitive(GTK_WIDGET(label), FALSE); |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1705 gtk_widget_set_sensitive(GTK_WIDGET(prefs_away_menu), FALSE); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1706 } |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1707 |
5440 | 1708 gtk_widget_show_all(ret); |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1709 |
5440 | 1710 return ret; |
1711 } | |
1712 | |
8170 | 1713 static GtkWidget * |
1714 protocol_page() { | |
1715 GtkWidget *ret; | |
8998 | 1716 |
8170 | 1717 ret = gtk_label_new(NULL); |
1718 gtk_widget_show(ret); | |
8998 | 1719 |
8170 | 1720 return ret; |
1721 } | |
1722 | |
5440 | 1723 static GtkWidget *plugin_description=NULL, *plugin_details=NULL; |
1724 | |
1725 static void prefs_plugin_sel (GtkTreeSelection *sel, GtkTreeModel *model) | |
1726 { | |
1727 gchar *buf, *pname, *perr, *pdesc, *pauth, *pweb; | |
1728 GtkTreeIter iter; | |
1729 GValue val = { 0, }; | |
1730 GaimPlugin *plug; | |
1731 | |
1732 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) | |
1733 return; | |
8104 | 1734 gtk_tree_model_get_value (model, &iter, 3, &val); |
5440 | 1735 plug = g_value_get_pointer(&val); |
8998 | 1736 |
5440 | 1737 pname = g_markup_escape_text(_(plug->info->name), -1); |
1738 pdesc = g_markup_escape_text(_(plug->info->description), -1); | |
1739 pauth = g_markup_escape_text(_(plug->info->author), -1); | |
1740 pweb = g_markup_escape_text(_(plug->info->homepage), -1); | |
1741 if (plug->error != NULL) { | |
1742 perr = g_markup_escape_text(_(plug->error), -1); | |
1743 buf = g_strdup_printf( | |
1744 "<span size=\"larger\">%s %s</span>\n\n" | |
1745 "<span weight=\"bold\" color=\"red\">%s</span>\n\n" | |
1746 "%s", | |
1747 pname, plug->info->version, perr, pdesc); | |
1748 g_free(perr); | |
1749 } | |
1750 else { | |
1751 buf = g_strdup_printf( | |
1752 "<span size=\"larger\">%s %s</span>\n\n%s", | |
1753 pname, plug->info->version, pdesc); | |
1754 } | |
1755 gtk_label_set_markup(GTK_LABEL(plugin_description), buf); | |
1756 g_free(buf); | |
1757 | |
1758 buf = g_strdup_printf( | |
1759 #ifndef _WIN32 | |
1760 _("<span size=\"larger\">%s %s</span>\n\n" | |
1761 "<span weight=\"bold\">Written by:</span>\t%s\n" | |
1762 "<span weight=\"bold\">Web site:</span>\t\t%s\n" | |
1763 "<span weight=\"bold\">File name:</span>\t%s"), | |
1764 #else | |
1765 _("<span size=\"larger\">%s %s</span>\n\n" | |
1766 "<span weight=\"bold\">Written by:</span> %s\n" | |
1767 "<span weight=\"bold\">URL:</span> %s\n" | |
1768 "<span weight=\"bold\">File name:</span> %s"), | |
1769 #endif | |
1770 pname, plug->info->version, pauth, pweb, plug->path); | |
1771 | |
1772 gtk_label_set_markup(GTK_LABEL(plugin_details), buf); | |
1773 g_value_unset(&val); | |
1774 g_free(buf); | |
1775 g_free(pname); | |
1776 g_free(pdesc); | |
1777 g_free(pauth); | |
1778 g_free(pweb); | |
1779 } | |
1780 | |
1781 static void plugin_load (GtkCellRendererToggle *cell, gchar *pth, gpointer data) | |
1782 { | |
1783 GtkTreeModel *model = (GtkTreeModel *)data; | |
1784 GtkTreeIter iter; | |
1785 GtkTreePath *path = gtk_tree_path_new_from_string(pth); | |
1786 GaimPlugin *plug; | |
1787 gchar buf[1024]; | |
6040 | 1788 gchar *name = NULL, *description = NULL; |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1789 |
5440 | 1790 GdkCursor *wait = gdk_cursor_new (GDK_WATCH); |
1791 gdk_window_set_cursor(prefs->window, wait); | |
1792 gdk_cursor_unref(wait); | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1793 |
5440 | 1794 gtk_tree_model_get_iter (model, &iter, path); |
8104 | 1795 gtk_tree_model_get (model, &iter, 3, &plug, -1); |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1796 |
5440 | 1797 if (!gaim_plugin_is_loaded(plug)) { |
1798 gaim_plugin_load(plug); | |
1799 | |
1800 /* | |
1801 * NOTE: This is basically the same check as before | |
1802 * (plug->type == plugin), but now there aren't plugin types. | |
1803 * Not yet, anyway. I want to do a V2 of the plugin API. | |
1804 * The thing is, we should have a flag specifying the UI type, | |
1805 * or just whether it's a general plugin or a UI-specific | |
1806 * plugin. We should only load this if it's UI-specific. | |
1807 * | |
1808 * -- ChipX86 | |
1809 */ | |
1810 if (GAIM_IS_GTK_PLUGIN(plug)) | |
1811 { | |
1812 GtkWidget *config_frame; | |
1813 GaimGtkPluginUiInfo *ui_info; | |
1814 | |
1815 ui_info = GAIM_GTK_PLUGIN_UI_INFO(plug); | |
1816 config_frame = gaim_gtk_plugin_get_config_frame(plug); | |
1817 | |
1818 if (config_frame != NULL) { | |
1819 ui_info->iter = g_new0(GtkTreeIter, 1); | |
1820 prefs_notebook_add_page(_(plug->info->name), NULL, | |
1821 config_frame, ui_info->iter, | |
1822 &plugin_iter, notebook_page++); | |
1823 | |
1824 if (gtk_tree_model_iter_n_children(GTK_TREE_MODEL(prefstree), | |
1825 &plugin_iter) == 1) { | |
1826 | |
1827 /* Expand the tree for the first plugin added */ | |
1828 GtkTreePath *path2; | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1829 |
5440 | 1830 path2 = gtk_tree_model_get_path(GTK_TREE_MODEL(prefstree), |
1831 &plugin_iter); | |
1832 gtk_tree_view_expand_row(GTK_TREE_VIEW(tree_v), | |
1833 path2, TRUE); | |
1834 gtk_tree_path_free(path2); | |
1835 } | |
1836 } | |
1837 } | |
8713 | 1838 |
1839 if(GAIM_PLUGIN_HAS_PREF_FRAME(plug)) { | |
8998 | 1840 GtkTreeIter iter; |
8713 | 1841 GtkWidget *pref_frame; |
1842 GaimPluginUiInfo *prefs_info; | |
1843 | |
1844 if(plug->info->type == GAIM_PLUGIN_PROTOCOL) | |
1845 iter = proto_iter; | |
1846 else | |
1847 iter = plugin_iter; | |
1848 | |
1849 prefs_info = GAIM_PLUGIN_UI_INFO(plug); | |
8814 | 1850 prefs_info->frame = prefs_info->get_plugin_pref_frame(plug); |
1851 pref_frame = gaim_gtk_plugin_pref_create_frame(prefs_info->frame); | |
8713 | 1852 |
1853 if(pref_frame != NULL) { | |
1854 prefs_info->iter = g_new0(GtkTreeIter, 1); | |
1855 prefs_notebook_add_page(_(plug->info->name), NULL, | |
1856 pref_frame, prefs_info->iter, | |
1857 &iter, notebook_page++); | |
1858 | |
1859 if(gtk_tree_model_iter_n_children(GTK_TREE_MODEL(prefstree), &iter) == 1) | |
1860 { | |
1861 GtkTreePath *path2; | |
1862 | |
1863 path2 = gtk_tree_model_get_path(GTK_TREE_MODEL(prefstree), &iter); | |
1864 gtk_tree_view_expand_row(GTK_TREE_VIEW(tree_v), path2, TRUE); | |
1865 gtk_tree_path_free(path2); | |
1866 } | |
1867 } | |
1868 } | |
5440 | 1869 } |
1870 else { | |
1871 if (GAIM_IS_GTK_PLUGIN(plug)) { | |
1872 GaimGtkPluginUiInfo *ui_info; | |
1873 | |
1874 ui_info = GAIM_GTK_PLUGIN_UI_INFO(plug); | |
1875 | |
1876 if (ui_info != NULL && ui_info->iter != NULL) { | |
1877 gtk_tree_store_remove(GTK_TREE_STORE(prefstree), ui_info->iter); | |
1878 g_free(ui_info->iter); | |
1879 ui_info->iter = NULL; | |
1880 } | |
8745 | 1881 } |
1882 | |
1883 if (GAIM_PLUGIN_HAS_PREF_FRAME(plug)) { | |
8713 | 1884 GaimPluginUiInfo *prefs_info; |
1885 | |
1886 prefs_info = GAIM_PLUGIN_UI_INFO(plug); | |
1887 | |
8745 | 1888 if(prefs_info != NULL) { |
8814 | 1889 if(prefs_info->frame != NULL) { |
1890 gaim_plugin_pref_frame_destroy(prefs_info->frame); | |
1891 prefs_info->frame = NULL; | |
1892 } | |
1893 | |
8745 | 1894 if(prefs_info->iter != NULL) { |
1895 gtk_tree_store_remove(GTK_TREE_STORE(prefstree), prefs_info->iter); | |
1896 g_free(prefs_info->iter); | |
1897 prefs_info->iter = NULL; | |
1898 } | |
8713 | 1899 } |
5440 | 1900 } |
1901 | |
1902 gaim_plugin_unload(plug); | |
1903 } | |
1904 | |
1905 gdk_window_set_cursor(prefs->window, NULL); | |
1906 | |
6040 | 1907 name = g_markup_escape_text(_(plug->info->name), -1); |
1908 description = g_markup_escape_text(_(plug->info->description), -1); | |
5440 | 1909 if (plug->error != NULL) { |
6040 | 1910 gchar *error = g_markup_escape_text(plug->error, -1); |
5440 | 1911 g_snprintf(buf, sizeof(buf), |
1912 "<span size=\"larger\">%s %s</span>\n\n" | |
1913 "<span weight=\"bold\" color=\"red\">%s</span>\n\n" | |
1914 "%s", | |
6040 | 1915 name, plug->info->version, error, description); |
1916 g_free(error); | |
1917 } else { | |
5440 | 1918 g_snprintf(buf, sizeof(buf), |
1919 "<span size=\"larger\">%s %s</span>\n\n%s", | |
6040 | 1920 name, plug->info->version, description); |
5440 | 1921 } |
6040 | 1922 g_free(name); |
1923 g_free(description); | |
5440 | 1924 |
1925 gtk_label_set_markup(GTK_LABEL(plugin_description), buf); | |
1926 gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, | |
1927 gaim_plugin_is_loaded(plug), -1); | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1928 |
5440 | 1929 gtk_label_set_markup(GTK_LABEL(plugin_description), buf); |
1930 gtk_tree_path_free(path); | |
5981
81564bb4db68
[gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents:
5966
diff
changeset
|
1931 |
81564bb4db68
[gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents:
5966
diff
changeset
|
1932 gaim_gtk_plugins_save(); |
5440 | 1933 } |
1934 | |
1935 static void | |
1936 update_plugin_list(void *data) | |
1937 { | |
1938 GtkListStore *ls = GTK_LIST_STORE(data); | |
1939 GtkTreeIter iter; | |
1940 GList *probes; | |
1941 GaimPlugin *plug; | |
1942 | |
1943 gtk_list_store_clear(ls); | |
1944 | |
1945 for (probes = gaim_plugins_get_all(); | |
1946 probes != NULL; | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1947 probes = probes->next) |
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1948 { |
5440 | 1949 plug = probes->data; |
1950 | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1951 if (plug->info->type != GAIM_PLUGIN_STANDARD || |
6930
31c45d99e1a8
[gaim-migrate @ 7477]
Christian Hammond <chipx86@chipx86.com>
parents:
6928
diff
changeset
|
1952 (plug->info->flags & GAIM_PLUGIN_FLAG_INVISIBLE)) |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1953 { |
5440 | 1954 continue; |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1955 } |
5440 | 1956 |
1957 gtk_list_store_append (ls, &iter); | |
1958 gtk_list_store_set(ls, &iter, | |
1959 0, gaim_plugin_is_loaded(plug), | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1960 1, plug->info->name ? _(plug->info->name) : plug->path, |
8162 | 1961 2, _(plug->info->summary), |
8104 | 1962 3, plug, -1); |
5440 | 1963 } |
1964 } | |
1965 | |
1966 static GtkWidget *plugin_page () | |
1967 { | |
1968 GtkWidget *ret; | |
1969 GtkWidget *sw, *vp; | |
1970 GtkWidget *event_view; | |
1971 GtkListStore *ls; | |
1972 GtkCellRenderer *rend, *rendt; | |
1973 GtkTreeViewColumn *col; | |
1974 GtkTreeSelection *sel; | |
1975 GtkTreePath *path; | |
1976 GtkWidget *nb; | |
1977 | |
1978 ret = gtk_vbox_new(FALSE, 18); | |
1979 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1980 | |
1981 sw = gtk_scrolled_window_new(NULL,NULL); | |
8104 | 1982 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
5440 | 1983 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
1984 | |
1985 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); | |
1986 | |
8104 | 1987 ls = gtk_list_store_new (4, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER); |
7939 | 1988 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(ls), |
1989 1, GTK_SORT_ASCENDING); | |
5440 | 1990 |
1991 update_plugin_list(ls); | |
1992 | |
1993 event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(ls)); | |
1994 | |
1995 rend = gtk_cell_renderer_toggle_new(); | |
1996 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); | |
1997 | |
1998 col = gtk_tree_view_column_new_with_attributes (_("Load"), | |
1999 rend, | |
2000 "active", 0, | |
2001 NULL); | |
2002 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
2003 | |
2004 rendt = gtk_cell_renderer_text_new(); | |
2005 col = gtk_tree_view_column_new_with_attributes (_("Name"), | |
2006 rendt, | |
2007 "text", 1, | |
2008 NULL); | |
2009 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
8998 | 2010 |
8104 | 2011 rendt = gtk_cell_renderer_text_new(); |
2012 col = gtk_tree_view_column_new_with_attributes(_("Summary"), | |
2013 rendt, | |
2014 "text", 2, | |
2015 NULL); | |
2016 gtk_tree_view_append_column(GTK_TREE_VIEW(event_view), col); | |
8998 | 2017 |
5440 | 2018 g_object_unref(G_OBJECT(ls)); |
2019 gtk_container_add(GTK_CONTAINER(sw), event_view); | |
8998 | 2020 |
5440 | 2021 |
2022 nb = gtk_notebook_new(); | |
2023 gtk_notebook_set_tab_pos (GTK_NOTEBOOK(nb), GTK_POS_BOTTOM); | |
2024 gtk_notebook_popup_disable(GTK_NOTEBOOK(nb)); | |
8998 | 2025 |
5440 | 2026 /* Description */ |
2027 sw = gtk_scrolled_window_new(NULL, NULL); | |
2028 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | |
2029 plugin_description = gtk_label_new(NULL); | |
8998 | 2030 |
5440 | 2031 vp = gtk_viewport_new(NULL, NULL); |
2032 gtk_viewport_set_shadow_type(GTK_VIEWPORT(vp), GTK_SHADOW_NONE); | |
2033 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_NONE); | |
2034 | |
2035 gtk_container_add(GTK_CONTAINER(vp), plugin_description); | |
2036 gtk_container_add(GTK_CONTAINER(sw), vp); | |
2037 | |
8998 | 2038 gtk_label_set_selectable(GTK_LABEL(plugin_description), TRUE); |
5440 | 2039 gtk_label_set_line_wrap(GTK_LABEL(plugin_description), TRUE); |
2040 gtk_misc_set_alignment(GTK_MISC(plugin_description), 0, 0); | |
2041 gtk_misc_set_padding(GTK_MISC(plugin_description), 6, 6); | |
2042 gtk_notebook_append_page(GTK_NOTEBOOK(nb), sw, gtk_label_new(_("Description"))); | |
2043 | |
2044 /* Details */ | |
2045 sw = gtk_scrolled_window_new(NULL, NULL); | |
2046 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | |
2047 plugin_details = gtk_label_new(NULL); | |
8998 | 2048 |
5440 | 2049 vp = gtk_viewport_new(NULL, NULL); |
2050 gtk_viewport_set_shadow_type(GTK_VIEWPORT(vp), GTK_SHADOW_NONE); | |
2051 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_NONE); | |
2052 | |
2053 gtk_container_add(GTK_CONTAINER(vp), plugin_details); | |
2054 gtk_container_add(GTK_CONTAINER(sw), vp); | |
2055 | |
8998 | 2056 gtk_label_set_selectable(GTK_LABEL(plugin_details), TRUE); |
5440 | 2057 gtk_label_set_line_wrap(GTK_LABEL(plugin_details), TRUE); |
2058 gtk_misc_set_alignment(GTK_MISC(plugin_details), 0, 0); | |
8998 | 2059 gtk_misc_set_padding(GTK_MISC(plugin_details), 6, 6); |
5440 | 2060 gtk_notebook_append_page(GTK_NOTEBOOK(nb), sw, gtk_label_new(_("Details"))); |
2061 gtk_box_pack_start(GTK_BOX(ret), nb, TRUE, TRUE, 0); | |
2062 | |
2063 g_signal_connect (G_OBJECT (sel), "changed", | |
2064 G_CALLBACK (prefs_plugin_sel), | |
8998 | 2065 NULL); |
5440 | 2066 g_signal_connect (G_OBJECT(rend), "toggled", |
2067 G_CALLBACK(plugin_load), ls); | |
2068 | |
2069 path = gtk_tree_path_new_first(); | |
2070 gtk_tree_selection_select_path(sel, path); | |
2071 gtk_tree_path_free(path); | |
2072 | |
2073 gaim_plugins_register_probe_notify_cb(update_plugin_list, ls); | |
2074 | |
2075 gtk_widget_show_all(ret); | |
2076 return ret; | |
2077 } | |
2078 | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2079 static void |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2080 event_toggled(GtkCellRendererToggle *cell, gchar *pth, gpointer data) |
5440 | 2081 { |
2082 GtkTreeModel *model = (GtkTreeModel *)data; | |
2083 GtkTreeIter iter; | |
2084 GtkTreePath *path = gtk_tree_path_new_from_string(pth); | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2085 const char *pref; |
5440 | 2086 |
2087 gtk_tree_model_get_iter (model, &iter, path); | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2088 gtk_tree_model_get (model, &iter, |
5612 | 2089 2, &pref, |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2090 -1); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2091 |
5684 | 2092 gaim_prefs_set_bool(pref, !gtk_cell_renderer_toggle_get_active(cell)); |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2093 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2094 gtk_list_store_set(GTK_LIST_STORE (model), &iter, |
5612 | 2095 0, !gtk_cell_renderer_toggle_get_active(cell), |
2096 -1); | |
5440 | 2097 |
2098 gtk_tree_path_free(path); | |
2099 } | |
2100 | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2101 static void |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2102 test_sound(GtkWidget *button, gpointer i_am_NULL) |
5440 | 2103 { |
5684 | 2104 char *pref; |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2105 gboolean temp_value1, temp_value2; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2106 |
5684 | 2107 pref = g_strdup_printf("/gaim/gtk/sound/enabled/%s", |
2108 gaim_gtk_sound_get_event_option(sound_row_sel)); | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2109 |
5821 | 2110 temp_value1 = gaim_prefs_get_bool("/core/sound/while_away"); |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2111 temp_value2 = gaim_prefs_get_bool(pref); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2112 |
5821 | 2113 if (!temp_value1) gaim_prefs_set_bool("/core/sound/while_away", TRUE); |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2114 if (!temp_value2) gaim_prefs_set_bool(pref, TRUE); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2115 |
5440 | 2116 gaim_sound_play_event(sound_row_sel); |
2117 | |
5821 | 2118 if (!temp_value1) gaim_prefs_set_bool("/core/sound/while_away", FALSE); |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2119 if (!temp_value2) gaim_prefs_set_bool(pref, FALSE); |
5684 | 2120 |
2121 g_free(pref); | |
5440 | 2122 } |
2123 | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2124 static void |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2125 reset_sound(GtkWidget *button, gpointer i_am_also_NULL) |
5440 | 2126 { |
5684 | 2127 char *pref = g_strdup_printf("/gaim/gtk/sound/file/%s", |
2128 gaim_gtk_sound_get_event_option(sound_row_sel)); | |
2129 | |
5440 | 2130 /* This just resets a sound file back to default */ |
5684 | 2131 gaim_prefs_set_string(pref, ""); |
2132 g_free(pref); | |
5440 | 2133 |
2134 gtk_entry_set_text(GTK_ENTRY(sound_entry), "(default)"); | |
2135 } | |
2136 | |
2137 void close_sounddialog(GtkWidget *w, GtkWidget *w2) | |
2138 { | |
2139 | |
2140 GtkWidget *dest; | |
2141 | |
2142 if (!GTK_IS_WIDGET(w2)) | |
2143 dest = w; | |
2144 else | |
2145 dest = w2; | |
2146 | |
2147 sounddialog = NULL; | |
2148 | |
2149 gtk_widget_destroy(dest); | |
2150 } | |
2151 | |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
2152 void do_select_sound(GtkWidget *w, gpointer data) |
5440 | 2153 { |
2154 const char *file; | |
5684 | 2155 char *pref; |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
2156 int snd; |
5440 | 2157 |
2158 file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(sounddialog)); | |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
2159 snd = GPOINTER_TO_INT(data); |
5440 | 2160 |
2161 /* If they type in a directory, change there */ | |
5966 | 2162 if (gaim_gtk_check_if_dir(file, GTK_FILE_SELECTION(sounddialog))) |
5440 | 2163 return; |
2164 | |
2165 /* Set it -- and forget it */ | |
5684 | 2166 pref = g_strdup_printf("/gaim/gtk/sound/file/%s", |
2167 gaim_gtk_sound_get_event_option(snd)); | |
2168 gaim_prefs_set_string(pref, file); | |
2169 g_free(pref); | |
5440 | 2170 |
2171 /* Set our text entry */ | |
2172 gtk_entry_set_text(GTK_ENTRY(sound_entry), file); | |
2173 | |
2174 /* Close the window! It's getting cold in here! */ | |
2175 close_sounddialog(NULL, sounddialog); | |
2176 | |
2177 if (last_sound_dir) | |
2178 g_free(last_sound_dir); | |
2179 last_sound_dir = g_path_get_dirname(file); | |
2180 } | |
2181 | |
2182 static void sel_sound(GtkWidget *button, gpointer being_NULL_is_fun) | |
2183 { | |
2184 char *buf = g_malloc(BUF_LEN); | |
2185 | |
2186 if (!sounddialog) { | |
2187 sounddialog = gtk_file_selection_new(_("Sound Selection")); | |
2188 | |
2189 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(sounddialog)); | |
2190 | |
2191 g_snprintf(buf, BUF_LEN - 1, "%s" G_DIR_SEPARATOR_S, last_sound_dir ? last_sound_dir : gaim_home_dir()); | |
2192 | |
2193 gtk_file_selection_set_filename(GTK_FILE_SELECTION(sounddialog), buf); | |
2194 | |
2195 g_signal_connect(G_OBJECT(sounddialog), "destroy", | |
2196 G_CALLBACK(close_sounddialog), sounddialog); | |
2197 | |
2198 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(sounddialog)->ok_button), | |
2199 "clicked", | |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
2200 G_CALLBACK(do_select_sound), GINT_TO_POINTER(sound_row_sel)); |
5440 | 2201 |
2202 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(sounddialog)->cancel_button), | |
2203 "clicked", | |
2204 G_CALLBACK(close_sounddialog), sounddialog); | |
2205 } | |
2206 | |
2207 g_free(buf); | |
2208 gtk_widget_show(sounddialog); | |
2209 gdk_window_raise(sounddialog->window); | |
2210 } | |
2211 | |
2212 | |
2213 static void prefs_sound_sel (GtkTreeSelection *sel, GtkTreeModel *model) { | |
2214 GtkTreeIter iter; | |
2215 GValue val = { 0, }; | |
5684 | 2216 const char *file; |
2217 char *pref; | |
5440 | 2218 |
2219 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) | |
2220 return; | |
5612 | 2221 gtk_tree_model_get_value (model, &iter, 3, &val); |
5440 | 2222 sound_row_sel = g_value_get_uint(&val); |
5684 | 2223 |
2224 pref = g_strdup_printf("/gaim/gtk/sound/file/%s", | |
2225 gaim_gtk_sound_get_event_option(sound_row_sel)); | |
2226 file = gaim_prefs_get_string(pref); | |
2227 g_free(pref); | |
5440 | 2228 if (sound_entry) |
6088 | 2229 gtk_entry_set_text(GTK_ENTRY(sound_entry), (file && *file != '\0') ? file : "(default)"); |
5440 | 2230 g_value_unset (&val); |
2231 if (sounddialog) | |
2232 gtk_widget_destroy(sounddialog); | |
2233 } | |
2234 | |
2235 GtkWidget *sound_events_page() { | |
2236 | |
2237 GtkWidget *ret; | |
2238 GtkWidget *sw; | |
2239 GtkWidget *button, *hbox; | |
2240 GtkTreeIter iter; | |
2241 GtkWidget *event_view; | |
2242 GtkListStore *event_store; | |
2243 GtkCellRenderer *rend; | |
2244 GtkTreeViewColumn *col; | |
2245 GtkTreeSelection *sel; | |
2246 GtkTreePath *path; | |
2247 int j; | |
5684 | 2248 const char *file; |
2249 char *pref; | |
5440 | 2250 |
2251 ret = gtk_vbox_new(FALSE, 18); | |
2252 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
2253 | |
2254 sw = gtk_scrolled_window_new(NULL,NULL); | |
2255 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); | |
2256 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); | |
2257 | |
2258 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); | |
5612 | 2259 event_store = gtk_list_store_new (4, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT); |
5440 | 2260 |
2261 for (j=0; j < GAIM_NUM_SOUNDS; j++) { | |
5684 | 2262 char *pref = g_strdup_printf("/gaim/gtk/sound/enabled/%s", |
2263 gaim_gtk_sound_get_event_option(j)); | |
2264 const char *label = gaim_gtk_sound_get_event_label(j); | |
2265 | |
5870 | 2266 if (label == NULL) { |
2267 g_free(pref); | |
5440 | 2268 continue; |
5870 | 2269 } |
5440 | 2270 |
2271 gtk_list_store_append (event_store, &iter); | |
2272 gtk_list_store_set(event_store, &iter, | |
5612 | 2273 0, gaim_prefs_get_bool(pref), |
5684 | 2274 1, _(label), |
5612 | 2275 2, pref, |
2276 3, j, | |
2277 -1); | |
5684 | 2278 g_free(pref); |
5440 | 2279 } |
2280 | |
2281 event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(event_store)); | |
2282 | |
2283 rend = gtk_cell_renderer_toggle_new(); | |
2284 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); | |
2285 g_signal_connect (G_OBJECT (sel), "changed", | |
2286 G_CALLBACK (prefs_sound_sel), | |
2287 NULL); | |
2288 g_signal_connect (G_OBJECT(rend), "toggled", | |
2289 G_CALLBACK(event_toggled), event_store); | |
2290 path = gtk_tree_path_new_first(); | |
2291 gtk_tree_selection_select_path(sel, path); | |
2292 gtk_tree_path_free(path); | |
2293 | |
2294 col = gtk_tree_view_column_new_with_attributes (_("Play"), | |
2295 rend, | |
2296 "active", 0, | |
2297 NULL); | |
2298 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
2299 | |
2300 rend = gtk_cell_renderer_text_new(); | |
2301 col = gtk_tree_view_column_new_with_attributes (_("Event"), | |
2302 rend, | |
2303 "text", 1, | |
2304 NULL); | |
2305 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
2306 g_object_unref(G_OBJECT(event_store)); | |
2307 gtk_container_add(GTK_CONTAINER(sw), event_view); | |
2308 | |
2309 hbox = gtk_hbox_new(FALSE, 6); | |
2310 gtk_box_pack_start(GTK_BOX(ret), hbox, FALSE, FALSE, 0); | |
2311 sound_entry = gtk_entry_new(); | |
5684 | 2312 pref = g_strdup_printf("/gaim/gtk/sound/file/%s", |
2313 gaim_gtk_sound_get_event_option(0)); | |
2314 file = gaim_prefs_get_string(pref); | |
2315 g_free(pref); | |
6088 | 2316 gtk_entry_set_text(GTK_ENTRY(sound_entry), (file && *file != '\0') ? file : "(default)"); |
5440 | 2317 gtk_editable_set_editable(GTK_EDITABLE(sound_entry), FALSE); |
2318 gtk_box_pack_start(GTK_BOX(hbox), sound_entry, FALSE, FALSE, 5); | |
2319 | |
2320 button = gtk_button_new_with_label(_("Test")); | |
2321 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(test_sound), NULL); | |
2322 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); | |
2323 | |
2324 button = gtk_button_new_with_label(_("Reset")); | |
2325 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(reset_sound), NULL); | |
2326 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); | |
2327 | |
2328 button = gtk_button_new_with_label(_("Choose...")); | |
2329 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(sel_sound), NULL); | |
2330 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); | |
2331 | |
2332 gtk_widget_show_all (ret); | |
2333 | |
2334 return ret; | |
2335 } | |
2336 | |
6979 | 2337 static void away_message_sel_cb(GtkTreeSelection *sel, GtkTreeModel *model) |
5440 | 2338 { |
2339 GtkTreeIter iter; | |
2340 GValue val = { 0, }; | |
2341 gchar buffer[BUF_LONG]; | |
2342 char *tmp; | |
2343 struct away_message *am; | |
2344 | |
2345 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) | |
2346 return; | |
2347 gtk_tree_model_get_value (model, &iter, 1, &val); | |
2348 am = g_value_get_pointer(&val); | |
2349 gtk_imhtml_clear(GTK_IMHTML(away_text)); | |
2350 strncpy(buffer, am->message, BUF_LONG); | |
2351 tmp = stylize(buffer, BUF_LONG); | |
6982 | 2352 gtk_imhtml_append_text(GTK_IMHTML(away_text), tmp, GTK_IMHTML_NO_TITLE | |
5440 | 2353 GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_SCROLL); |
6982 | 2354 gtk_imhtml_append_text(GTK_IMHTML(away_text), "<BR>", GTK_IMHTML_NO_TITLE | |
5440 | 2355 GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_SCROLL); |
2356 g_free(tmp); | |
2357 g_value_unset (&val); | |
2358 | |
2359 } | |
2360 | |
6979 | 2361 static gboolean away_message_click_cb(GtkWidget *tv, GdkEventButton *event, gpointer null) |
2362 { | |
2363 /* Only respond to double click on button 1 */ | |
2364 if ((event->button != 1) || (event->type != GDK_2BUTTON_PRESS)) | |
2365 return FALSE; | |
2366 | |
2367 /* Show the edit away message dialog */ | |
2368 create_away_mess(NULL, tv); | |
2369 | |
2370 return FALSE; | |
2371 } | |
2372 | |
5440 | 2373 void remove_away_message(GtkWidget *widget, GtkTreeView *tv) { |
6016 | 2374 struct away_message *am; |
5440 | 2375 GtkTreeIter iter; |
2376 GtkTreeSelection *sel = gtk_tree_view_get_selection(tv); | |
2377 GtkTreeModel *model = GTK_TREE_MODEL(prefs_away_store); | |
2378 GValue val = { 0, }; | |
2379 | |
2380 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) | |
2381 return; | |
2382 gtk_tree_model_get_value (GTK_TREE_MODEL(prefs_away_store), &iter, 1, &val); | |
2383 am = g_value_get_pointer (&val); | |
2384 gtk_imhtml_clear(GTK_IMHTML(away_text)); | |
2385 rem_away_mess(NULL, am); | |
2386 } | |
2387 | |
2388 GtkWidget *away_message_page() { | |
2389 GtkWidget *ret; | |
2390 GtkWidget *hbox; | |
2391 GtkWidget *button; | |
2392 GtkWidget *sw; | |
2393 GtkTreeIter iter; | |
2394 GtkWidget *event_view; | |
2395 GtkCellRenderer *rend; | |
2396 GtkTreeViewColumn *col; | |
2397 GtkTreeSelection *sel; | |
2398 GSList *awy = away_messages; | |
2399 struct away_message *a; | |
2400 GtkSizeGroup *sg; | |
2401 | |
2402 ret = gtk_vbox_new(FALSE, 18); | |
2403 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
2404 | |
2405 sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); | |
2406 | |
2407 sw = gtk_scrolled_window_new(NULL,NULL); | |
7931 | 2408 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
7929 | 2409 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
5440 | 2410 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); |
2411 | |
7940 | 2412 prefs_away_store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_POINTER); |
5440 | 2413 while (awy) { |
2414 a = (struct away_message *)awy->data; | |
2415 gtk_list_store_append (prefs_away_store, &iter); | |
2416 gtk_list_store_set(prefs_away_store, &iter, | |
2417 0, a->name, | |
2418 1, a, -1); | |
2419 awy = awy->next; | |
2420 } | |
7939 | 2421 event_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(prefs_away_store)); |
5440 | 2422 |
2423 rend = gtk_cell_renderer_text_new(); | |
2424 col = gtk_tree_view_column_new_with_attributes ("NULL", | |
2425 rend, | |
2426 "text", 0, | |
2427 NULL); | |
2428 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
2429 gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(event_view), FALSE); | |
2430 gtk_widget_show(event_view); | |
7931 | 2431 gtk_container_add(GTK_CONTAINER(sw), event_view); |
5440 | 2432 |
7929 | 2433 sw = gtk_scrolled_window_new(NULL, NULL); |
7931 | 2434 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
7929 | 2435 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), |
5440 | 2436 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
7929 | 2437 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); |
2438 | |
2439 away_text = gtk_imhtml_new(NULL, NULL); | |
7931 | 2440 gtk_container_add(GTK_CONTAINER(sw), away_text); |
2441 | |
5440 | 2442 gaim_setup_imhtml(away_text); |
2443 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); | |
6979 | 2444 g_signal_connect(G_OBJECT(sel), "changed", |
2445 G_CALLBACK(away_message_sel_cb), NULL); | |
2446 g_signal_connect(G_OBJECT(event_view), "button-press-event", | |
2447 G_CALLBACK(away_message_click_cb), NULL); | |
5440 | 2448 hbox = gtk_hbox_new(TRUE, 5); |
2449 gtk_box_pack_start(GTK_BOX(ret), hbox, FALSE, FALSE, 0); | |
2450 button = gtk_button_new_from_stock (GTK_STOCK_ADD); | |
2451 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
2452 gtk_size_group_add_widget(sg, button); | |
2453 g_signal_connect(G_OBJECT(button), "clicked", | |
2454 G_CALLBACK(create_away_mess), NULL); | |
2455 | |
2456 button = gtk_button_new_from_stock (GTK_STOCK_REMOVE); | |
2457 gtk_size_group_add_widget(sg, button); | |
2458 g_signal_connect(G_OBJECT(button), "clicked", | |
2459 G_CALLBACK(remove_away_message), event_view); | |
2460 | |
2461 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
2462 | |
2463 button = gaim_pixbuf_button_from_stock(_("_Edit"), GAIM_STOCK_EDIT, GAIM_BUTTON_HORIZONTAL); | |
2464 gtk_size_group_add_widget(sg, button); | |
2465 g_signal_connect(G_OBJECT(button), "clicked", | |
2466 G_CALLBACK(create_away_mess), event_view); | |
2467 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
2468 | |
2469 gtk_widget_show_all(ret); | |
2470 return ret; | |
2471 } | |
2472 | |
2473 GtkTreeIter *prefs_notebook_add_page(const char *text, | |
2474 GdkPixbuf *pixbuf, | |
2475 GtkWidget *page, | |
2476 GtkTreeIter *iter, | |
2477 GtkTreeIter *parent, | |
2478 int ind) { | |
2479 GdkPixbuf *icon = NULL; | |
2480 | |
2481 if (pixbuf) | |
2482 icon = gdk_pixbuf_scale_simple (pixbuf, 18, 18, GDK_INTERP_BILINEAR); | |
2483 | |
2484 gtk_tree_store_append (prefstree, iter, parent); | |
2485 gtk_tree_store_set (prefstree, iter, 0, icon, 1, text, 2, ind, -1); | |
2486 | |
2487 if (pixbuf) | |
2488 g_object_unref(pixbuf); | |
2489 if (icon) | |
2490 g_object_unref(icon); | |
2491 gtk_notebook_append_page(GTK_NOTEBOOK(prefsnotebook), page, gtk_label_new(text)); | |
2492 return iter; | |
2493 } | |
2494 | |
2495 void prefs_notebook_init() { | |
2496 GtkTreeIter p, p2, c; | |
2497 GList *l; | |
2498 GaimPlugin *plug; | |
2499 prefs_notebook_add_page(_("Interface"), NULL, interface_page(), &p, NULL, notebook_page++); | |
2500 prefs_notebook_add_page(_("Smiley Themes"), NULL, theme_page(), &c, &p, notebook_page++); | |
2501 prefs_notebook_add_page(_("Message Text"), NULL, messages_page(), &c, &p, notebook_page++); | |
2502 prefs_notebook_add_page(_("Shortcuts"), NULL, hotkeys_page(), &c, &p, notebook_page++); | |
2503 prefs_notebook_add_page(_("Buddy List"), NULL, list_page(), &c, &p, notebook_page++); | |
2504 prefs_notebook_add_page(_("Conversations"), NULL, conv_page(), &p2, NULL, notebook_page++); | |
2505 prefs_notebook_add_page(_("IMs"), NULL, im_page(), &c, &p2, notebook_page++); | |
2506 prefs_notebook_add_page(_("Chats"), NULL, chat_page(), &c, &p2, notebook_page++); | |
8238 | 2507 prefs_notebook_add_page(_("Network"), NULL, network_page(), &p, NULL, notebook_page++); |
5440 | 2508 prefs_notebook_add_page(_("Proxy"), NULL, proxy_page(), &p, NULL, notebook_page++); |
2509 #ifndef _WIN32 | |
2510 /* We use the registered default browser in windows */ | |
2511 prefs_notebook_add_page(_("Browser"), NULL, browser_page(), &p, NULL, notebook_page++); | |
2512 #endif | |
2513 prefs_notebook_add_page(_("Logging"), NULL, logging_page(), &p, NULL, notebook_page++); | |
2514 prefs_notebook_add_page(_("Sounds"), NULL, sound_page(), &p, NULL, notebook_page++); | |
2515 prefs_notebook_add_page(_("Sound Events"), NULL, sound_events_page(), &c, &p, notebook_page++); | |
2516 prefs_notebook_add_page(_("Away / Idle"), NULL, away_page(), &p, NULL, notebook_page++); | |
2517 prefs_notebook_add_page(_("Away Messages"), NULL, away_message_page(), &c, &p, notebook_page++); | |
2518 | |
2519 if (gaim_plugins_enabled()) { | |
8713 | 2520 prefs_notebook_add_page(_("Protocols"), NULL, protocol_page(), &proto_iter, NULL, notebook_page++); |
5440 | 2521 prefs_notebook_add_page(_("Plugins"), NULL, plugin_page(), &plugin_iter, NULL, notebook_page++); |
2522 | |
2523 for (l = gaim_plugins_get_loaded(); l != NULL; l = l->next) { | |
8713 | 2524 plug = (GaimPlugin *)l->data; |
5440 | 2525 |
2526 if (GAIM_IS_GTK_PLUGIN(plug)) { | |
2527 GtkWidget *config_frame; | |
2528 GaimGtkPluginUiInfo *ui_info; | |
2529 | |
2530 ui_info = GAIM_GTK_PLUGIN_UI_INFO(plug); | |
2531 config_frame = gaim_gtk_plugin_get_config_frame(plug); | |
2532 | |
2533 if (config_frame != NULL) { | |
2534 ui_info->iter = g_new0(GtkTreeIter, 1); | |
2535 prefs_notebook_add_page(_(plug->info->name), NULL, | |
2536 config_frame, ui_info->iter, | |
2537 &plugin_iter, notebook_page++); | |
2538 } | |
2539 } | |
8713 | 2540 |
2541 if(GAIM_PLUGIN_HAS_PREF_FRAME(plug)) { | |
8745 | 2542 GtkWidget *gtk_frame; |
8713 | 2543 GaimPluginUiInfo *prefs_info; |
2544 | |
2545 prefs_info = GAIM_PLUGIN_UI_INFO(plug); | |
8814 | 2546 prefs_info->frame = prefs_info->get_plugin_pref_frame(plug); |
2547 gtk_frame = gaim_gtk_plugin_pref_create_frame(prefs_info->frame); | |
8745 | 2548 |
2549 if(GTK_IS_WIDGET(gtk_frame)) { | |
8713 | 2550 prefs_info->iter = g_new0(GtkTreeIter, 1); |
2551 prefs_notebook_add_page(_(plug->info->name), NULL, | |
8745 | 2552 gtk_frame, prefs_info->iter, |
8713 | 2553 (plug->info->type == GAIM_PLUGIN_PROTOCOL) ? &proto_iter : &plugin_iter, |
2554 notebook_page++); | |
8814 | 2555 } else if(prefs_info->frame) { |
2556 /* in the event that there is a pref frame and we can | |
2557 * not make a widget out of it, we free the | |
2558 * pluginpref frame --Gary | |
2559 */ | |
2560 gaim_plugin_pref_frame_destroy(prefs_info->frame); | |
8713 | 2561 } |
2562 } | |
5440 | 2563 } |
2564 } | |
2565 } | |
2566 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2567 void gaim_gtk_prefs_show(void) |
5440 | 2568 { |
2569 GtkWidget *vbox, *vbox2; | |
2570 GtkWidget *hbox; | |
8292
90ed519c6645
[gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents:
8283
diff
changeset
|
2571 GtkWidget *bbox; |
5440 | 2572 GtkWidget *frame; |
8335 | 2573 GtkWidget *scrolled_window; |
5440 | 2574 GtkTreeViewColumn *column; |
2575 GtkCellRenderer *cell; | |
2576 GtkTreeSelection *sel; | |
2577 GtkWidget *notebook; | |
2578 GtkWidget *sep; | |
2579 GtkWidget *button; | |
2580 | |
2581 if (prefs) { | |
2582 gtk_window_present(GTK_WINDOW(prefs)); | |
2583 return; | |
2584 } | |
2585 | |
2586 /* copy the preferences to tmp values... | |
2587 * I liked "take affect immediately" Oh well :-( */ | |
6016 | 2588 /* (that should have been "effect," right?) */ |
2589 | |
5440 | 2590 /* Back to instant-apply! I win! BU-HAHAHA! */ |
2591 | |
2592 /* Create the window */ | |
2593 prefs = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
2594 gtk_window_set_role(GTK_WINDOW(prefs), "preferences"); | |
2595 gtk_widget_realize(prefs); | |
2596 gtk_window_set_title(GTK_WINDOW(prefs), _("Preferences")); | |
2597 gtk_window_set_resizable (GTK_WINDOW(prefs), FALSE); | |
8292
90ed519c6645
[gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents:
8283
diff
changeset
|
2598 gtk_container_set_border_width(GTK_CONTAINER(prefs), 12); |
5440 | 2599 g_signal_connect(G_OBJECT(prefs), "destroy", |
2600 G_CALLBACK(delete_prefs), NULL); | |
2601 | |
8292
90ed519c6645
[gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents:
8283
diff
changeset
|
2602 vbox = gtk_vbox_new(FALSE, 12); |
5440 | 2603 gtk_container_add(GTK_CONTAINER(prefs), vbox); |
2604 gtk_widget_show(vbox); | |
2605 | |
2606 hbox = gtk_hbox_new (FALSE, 6); | |
2607 gtk_container_add (GTK_CONTAINER(vbox), hbox); | |
2608 gtk_widget_show (hbox); | |
2609 | |
2610 frame = gtk_frame_new (NULL); | |
2611 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); | |
2612 gtk_box_pack_start (GTK_BOX (hbox), frame, FALSE, FALSE, 0); | |
2613 gtk_widget_show (frame); | |
2614 | |
8335 | 2615 scrolled_window = gtk_scrolled_window_new(NULL, NULL); |
2616 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), | |
8340 | 2617 GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); |
8335 | 2618 gtk_container_add(GTK_CONTAINER(frame), scrolled_window); |
2619 gtk_widget_show(scrolled_window); | |
8998 | 2620 |
5440 | 2621 /* The tree -- much inspired by the Gimp */ |
2622 prefstree = gtk_tree_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_INT); | |
2623 tree_v = gtk_tree_view_new_with_model (GTK_TREE_MODEL (prefstree)); | |
8335 | 2624 gtk_container_add(GTK_CONTAINER(scrolled_window), tree_v); |
5440 | 2625 |
2626 gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_v), FALSE); | |
2627 gtk_widget_show(tree_v); | |
2628 /* icons */ | |
2629 /* XXX: to be used at a later date | |
2630 cell = gtk_cell_renderer_pixbuf_new (); | |
2631 column = gtk_tree_view_column_new_with_attributes ("icons", cell, "pixbuf", 0, NULL); | |
2632 */ | |
2633 | |
2634 /* text */ | |
2635 cell = gtk_cell_renderer_text_new (); | |
2636 column = gtk_tree_view_column_new_with_attributes ("text", cell, "text", 1, NULL); | |
2637 | |
2638 gtk_tree_view_append_column (GTK_TREE_VIEW (tree_v), column); | |
2639 | |
2640 /* The right side */ | |
2641 frame = gtk_frame_new (NULL); | |
2642 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); | |
2643 gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, 0); | |
2644 gtk_widget_show (frame); | |
2645 | |
2646 vbox2 = gtk_vbox_new (FALSE, 4); | |
2647 gtk_container_add (GTK_CONTAINER (frame), vbox2); | |
2648 gtk_widget_show (vbox2); | |
2649 | |
2650 frame = gtk_frame_new (NULL); | |
2651 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT); | |
2652 gtk_box_pack_start (GTK_BOX (vbox2), frame, FALSE, TRUE, 0); | |
2653 gtk_widget_show (frame); | |
2654 | |
2655 hbox = gtk_hbox_new (FALSE, 4); | |
2656 gtk_container_set_border_width (GTK_CONTAINER (hbox), 4); | |
2657 gtk_container_add (GTK_CONTAINER (frame), hbox); | |
2658 gtk_widget_show (hbox); | |
2659 | |
2660 preflabel = gtk_label_new(NULL); | |
2661 gtk_box_pack_end (GTK_BOX (hbox), preflabel, FALSE, FALSE, 0); | |
2662 gtk_widget_show (preflabel); | |
2663 | |
2664 /* The notebook */ | |
2665 prefsnotebook = notebook = gtk_notebook_new (); | |
2666 gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE); | |
2667 gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE); | |
2668 gtk_box_pack_start (GTK_BOX (vbox2), notebook, FALSE, FALSE, 0); | |
2669 | |
2670 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_v)); | |
2671 g_signal_connect (G_OBJECT (sel), "changed", | |
2672 G_CALLBACK (pref_nb_select), | |
2673 notebook); | |
2674 gtk_widget_show(notebook); | |
2675 sep = gtk_hseparator_new(); | |
2676 gtk_widget_show(sep); | |
2677 gtk_box_pack_start (GTK_BOX (vbox), sep, FALSE, FALSE, 0); | |
2678 | |
8713 | 2679 /* The buttons to press! */ |
8292
90ed519c6645
[gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents:
8283
diff
changeset
|
2680 bbox = gtk_hbutton_box_new(); |
90ed519c6645
[gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents:
8283
diff
changeset
|
2681 gtk_box_set_spacing(GTK_BOX(bbox), 6); |
90ed519c6645
[gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents:
8283
diff
changeset
|
2682 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
|
2683 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0); |
90ed519c6645
[gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents:
8283
diff
changeset
|
2684 gtk_widget_show (bbox); |
5440 | 2685 |
2686 button = gtk_button_new_from_stock (GTK_STOCK_CLOSE); | |
2687 g_signal_connect_swapped(G_OBJECT(button), "clicked", | |
2688 G_CALLBACK(gtk_widget_destroy), prefs); | |
8292
90ed519c6645
[gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents:
8283
diff
changeset
|
2689 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
5440 | 2690 gtk_widget_show(button); |
2691 | |
2692 prefs_notebook_init(); | |
2693 | |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
2694 /* Show everything. */ |
5440 | 2695 gtk_tree_view_expand_all (GTK_TREE_VIEW(tree_v)); |
2696 gtk_widget_show(prefs); | |
2697 } | |
2698 | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2699 static void |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2700 set_bool_pref(GtkWidget *w, const char *key) |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2701 { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2702 gaim_prefs_set_bool(key, |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2703 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2704 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2705 |
7976 | 2706 GtkWidget * |
7987 | 2707 gaim_gtk_prefs_checkbox(const char *text, const char *key, GtkWidget *page) |
5440 | 2708 { |
2709 GtkWidget *button; | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2710 |
5440 | 2711 button = gtk_check_button_new_with_mnemonic(text); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2712 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2713 gaim_prefs_get_bool(key)); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2714 |
5440 | 2715 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
|
2716 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2717 g_signal_connect(G_OBJECT(button), "clicked", |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2718 G_CALLBACK(set_bool_pref), (char *)key); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2719 |
5440 | 2720 gtk_widget_show(button); |
2721 | |
2722 return button; | |
2723 } | |
2724 | |
2725 void default_away_menu_init(GtkWidget *omenu) | |
2726 { | |
2727 GtkWidget *menu, *opt; | |
6216 | 2728 int index = 0, default_index = 0; |
5440 | 2729 GSList *awy = away_messages; |
2730 struct away_message *a; | |
6216 | 2731 const char *default_name; |
5440 | 2732 |
2733 menu = gtk_menu_new(); | |
2734 | |
6216 | 2735 default_name = gaim_prefs_get_string("/core/away/default_message"); |
2736 | |
5440 | 2737 while (awy) { |
2738 a = (struct away_message *)awy->data; | |
2739 opt = gtk_menu_item_new_with_label(a->name); | |
2740 g_signal_connect(G_OBJECT(opt), "activate", | |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
2741 G_CALLBACK(set_default_away), GINT_TO_POINTER(index)); |
5440 | 2742 gtk_widget_show(opt); |
2743 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); | |
2744 | |
6216 | 2745 if(!strcmp(default_name, a->name)) |
2746 default_index = index; | |
2747 | |
5440 | 2748 awy = awy->next; |
2749 index++; | |
2750 } | |
2751 | |
2752 gtk_option_menu_remove_menu(GTK_OPTION_MENU(omenu)); | |
2753 gtk_option_menu_set_menu(GTK_OPTION_MENU(omenu), menu); | |
6216 | 2754 gtk_option_menu_set_history(GTK_OPTION_MENU(omenu), default_index); |
5440 | 2755 } |
2756 | |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
2757 void set_default_away(GtkWidget *w, gpointer data) |
5440 | 2758 { |
6216 | 2759 struct away_message *default_away = NULL; |
5440 | 2760 int length = g_slist_length(away_messages); |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
2761 int i = GPOINTER_TO_INT(data); |
5440 | 2762 |
2763 if (away_messages == NULL) | |
2764 default_away = NULL; | |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
2765 else if (i >= length) |
5440 | 2766 default_away = g_slist_nth_data(away_messages, length - 1); |
2767 else | |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
2768 default_away = g_slist_nth_data(away_messages, i); |
6216 | 2769 |
2770 if(default_away) | |
2771 gaim_prefs_set_string("/core/away/default_message", default_away->name); | |
2772 else | |
2773 gaim_prefs_set_string("/core/away/default_message", ""); | |
5440 | 2774 } |
2775 | |
5770
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2776 static void |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2777 smiley_theme_pref_cb(const char *name, GaimPrefType type, gpointer value, |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2778 gpointer data) |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2779 { |
5841 | 2780 if (!strcmp(name, "/gaim/gtk/smileys/theme")) |
5771
f63a008726c6
[gaim-migrate @ 6196]
Christian Hammond <chipx86@chipx86.com>
parents:
5770
diff
changeset
|
2781 load_smiley_theme((const char *)value, TRUE); |
5770
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2782 } |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2783 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2784 void |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2785 gaim_gtk_prefs_init(void) |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2786 { |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2787 gaim_prefs_add_none("/gaim"); |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2788 gaim_prefs_add_none("/gaim/gtk"); |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2789 gaim_prefs_add_none("/plugins/gtk"); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2790 |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2791 /* XXX Move this! HACK! :( Aww... */ |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2792 gaim_prefs_add_none("/plugins/gtk/docklet"); |
5554
7b36d02031a2
[gaim-migrate @ 5955]
Christian Hammond <chipx86@chipx86.com>
parents:
5551
diff
changeset
|
2793 gaim_prefs_add_bool("/plugins/gtk/docklet/queue_messages", FALSE); |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2794 |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
2795 /* Accounts Dialog */ |
5567
cc9ddec20010
[gaim-migrate @ 5969]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
2796 gaim_prefs_add_none("/gaim/gtk/accounts"); |
cc9ddec20010
[gaim-migrate @ 5969]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
2797 gaim_prefs_add_none("/gaim/gtk/accounts/dialog"); |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
2798 gaim_prefs_add_int("/gaim/gtk/accounts/dialog/width", 550); |
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
2799 gaim_prefs_add_int("/gaim/gtk/accounts/dialog/height", 250); |
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
2800 |
5573
5e7de337a053
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5568
diff
changeset
|
2801 /* Away Queueing */ |
5e7de337a053
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5568
diff
changeset
|
2802 gaim_prefs_add_none("/gaim/gtk/away"); |
5e7de337a053
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5568
diff
changeset
|
2803 gaim_prefs_add_bool("/gaim/gtk/away/queue_messages", FALSE); |
5e7de337a053
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5568
diff
changeset
|
2804 |
8283 | 2805 #ifndef _WIN32 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2806 /* Browsers */ |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2807 gaim_prefs_add_none("/gaim/gtk/browsers"); |
8272 | 2808 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
|
2809 gaim_prefs_add_string("/gaim/gtk/browsers/command", ""); |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
2810 gaim_prefs_add_string("/gaim/gtk/browsers/browser", "mozilla"); |
8283 | 2811 #endif |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2812 |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2813 /* Idle */ |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2814 gaim_prefs_add_none("/gaim/gtk/idle"); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2815 gaim_prefs_add_string("/gaim/gtk/idle/reporting_method", "system"); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2816 |
5949
90d0849abd3c
[gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
2817 /* Plugins */ |
5982
35d3c1ac5ece
[gaim-migrate @ 6430]
Christian Hammond <chipx86@chipx86.com>
parents:
5981
diff
changeset
|
2818 gaim_prefs_add_none("/gaim/gtk/plugins"); |
5949
90d0849abd3c
[gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
2819 gaim_prefs_add_string_list("/gaim/gtk/plugins/loaded", NULL); |
90d0849abd3c
[gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
2820 |
5539
de09863bd4b5
[gaim-migrate @ 5939]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
2821 /* Smiley Themes */ |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
2822 gaim_prefs_add_none("/gaim/gtk/smileys"); |
5771
f63a008726c6
[gaim-migrate @ 6196]
Christian Hammond <chipx86@chipx86.com>
parents:
5770
diff
changeset
|
2823 gaim_prefs_add_string("/gaim/gtk/smileys/theme", ""); |
5770
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2824 |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2825 /* Smiley Callbacks */ |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2826 gaim_prefs_connect_callback("/gaim/gtk/smileys/theme", |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2827 smiley_theme_pref_cb, NULL); |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2828 } |
8905 | 2829 |
2830 void gaim_gtk_prefs_update_old() { | |
2831 /* Rename some old prefs */ | |
2832 gaim_prefs_rename("/gaim/gtk/logging/log_ims", "/core/logging/log_ims"); | |
2833 gaim_prefs_rename("/gaim/gtk/logging/log_chats", "/core/logging/log_chats"); | |
2834 gaim_prefs_rename("/core/conversations/placement", | |
8998 | 2835 "/gaim/gtk/conversations/placement"); |
8905 | 2836 |
9025 | 2837 gaim_prefs_rename("/gaim/gtk/conversations/use_custom_font", |
2838 "/gaim/gtk/conversations/send_formatting"); | |
2839 | |
8905 | 2840 /* Remove some no-longer-used prefs */ |
8945 | 2841 gaim_prefs_remove("/gaim/gtk/blist/show_group_count"); |
8946 | 2842 gaim_prefs_remove("/gaim/gtk/conversations/icons_on_tabs"); |
9049 | 2843 #if 0 /* PREFSLASH04 */ |
8944 | 2844 gaim_prefs_remove("/gaim/gtk/conversations/ignore_colors"); |
2845 gaim_prefs_remove("/gaim/gtk/conversations/ignore_fonts"); | |
2846 gaim_prefs_remove("/gaim/gtk/conversations/ignore_font_sizes"); | |
9049 | 2847 #endif |
8905 | 2848 gaim_prefs_remove("/gaim/gtk/conversations/show_urls_as_links"); |
2849 gaim_prefs_remove("/gaim/gtk/conversations/show_smileys"); | |
8941 | 2850 gaim_prefs_remove("/gaim/gtk/conversations/chat/tab_completion"); |
2851 gaim_prefs_remove("/gaim/gtk/conversations/chat/old_tab_complete"); | |
8947 | 2852 gaim_prefs_remove("/gaim/gtk/sound/signon"); |
2853 gaim_prefs_remove("/gaim/gtk/sound/silent_signon"); | |
8998 | 2854 gaim_prefs_remove("/gaim/gtk/logging/individual_logs"); |
9025 | 2855 gaim_prefs_remove("/gaim/gtk/conversations/use_custom_bgcolor"); |
2856 gaim_prefs_remove("/gaim/gtk/conversations/use_custom_fgcolor"); | |
2857 gaim_prefs_remove("/gaim/gtk/conversations/use_custom_size"); | |
8905 | 2858 } |