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