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