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