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