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