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