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