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