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