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