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