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