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