Mercurial > pidgin.yaz
annotate src/gtkprefs.c @ 7931:2a781d4178ba
[gaim-migrate @ 8602]
Make the prefs away message tree view thing actually scroll when you use
the arrow keys to scroll through your away messages. Same for the
privacy lists and for list of users in a chat. Although, the last one
you can't use the keyboard because input is stolen by the text input
box.
Make the menu item for blocking users gray out if the protocol doesn't
support it.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Fri, 26 Dec 2003 20:34:58 +0000 |
parents | 94a90bf90f32 |
children | 049443a8c76b |
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 | |
7931 | 100 static void set_default_away(GtkWidget *, gpointer); |
5545
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); | |
7931 | 572 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
5440 | 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); |
7731 | 861 prefs_checkbox(_("_Automatically expand contacts"), |
862 "/gaim/gtk/blist/auto_expand_contacts", vbox); | |
5440 | 863 |
864 gtk_widget_show_all(ret); | |
5547
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
865 |
5440 | 866 return ret; |
867 } | |
868 | |
869 GtkWidget *conv_page() { | |
870 GtkWidget *ret; | |
871 GtkWidget *vbox; | |
872 GtkWidget *label; | |
7128 | 873 GtkWidget *close_checkbox, *icons_checkbox; |
874 GtkWidget *tabs_checkbox, *same_checkbox; | |
5440 | 875 GtkSizeGroup *sg; |
876 GList *names = NULL; | |
877 | |
878 ret = gtk_vbox_new(FALSE, 18); | |
879 gtk_container_set_border_width(GTK_CONTAINER(ret), 12); | |
880 | |
881 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
882 vbox = gaim_gtk_make_frame(ret, _("Conversations")); |
5440 | 883 |
5858 | 884 names = gaim_conv_placement_get_options(); |
5440 | 885 |
7128 | 886 label = prefs_dropdown_from_list(vbox, _("_Placement:"), |
7561
cdfdbabd3266
[gaim-migrate @ 8175]
Christian Hammond <chipx86@chipx86.com>
parents:
7553
diff
changeset
|
887 GAIM_PREF_STRING, "/gaim/gtk/conversations/placement", names); |
5440 | 888 g_list_free(names); |
889 | |
890 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
891 gtk_size_group_add_widget(sg, label); | |
892 | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
893 prefs_checkbox(_("Send _URLs as Links"), |
5539
de09863bd4b5
[gaim-migrate @ 5939]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
894 "/core/conversations/send_urls_as_links", vbox); |
5440 | 895 |
7326
00a9ab26d607
[gaim-migrate @ 7912]
Christian Hammond <chipx86@chipx86.com>
parents:
7305
diff
changeset
|
896 prefs_checkbox(_("Show Formatting Toolbar"), |
00a9ab26d607
[gaim-migrate @ 7912]
Christian Hammond <chipx86@chipx86.com>
parents:
7305
diff
changeset
|
897 "/gaim/gtk/conversations/show_formatting_toolbar", vbox); |
00a9ab26d607
[gaim-migrate @ 7912]
Christian Hammond <chipx86@chipx86.com>
parents:
7305
diff
changeset
|
898 |
5547
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
899 vbox = gaim_gtk_make_frame (ret, _("Tab Options")); |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
900 |
5668 | 901 label = prefs_dropdown(vbox, _("_Tab Placement:"), GAIM_PREF_INT, |
5667 | 902 "/gaim/gtk/conversations/tab_side", |
5668 | 903 _("Top"), GTK_POS_TOP, |
904 _("Bottom"), GTK_POS_BOTTOM, | |
905 _("Left"), GTK_POS_LEFT, | |
906 _("Right"), GTK_POS_RIGHT, | |
907 NULL); | |
5667 | 908 |
909 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
910 gtk_size_group_add_widget(sg, label); | |
911 | |
7128 | 912 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
|
913 "/gaim/gtk/conversations/tabs", vbox); |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
914 |
7128 | 915 same_checkbox = prefs_checkbox(_("Show IMs and chats in _same tabbed window"), |
6799 | 916 "/core/conversations/combine_chat_im", vbox); |
917 | |
7128 | 918 if (!gaim_prefs_get_bool("/gaim/gtk/conversations/tabs")) { |
919 gtk_widget_set_sensitive(GTK_WIDGET(same_checkbox), FALSE); | |
920 } | |
921 | |
922 g_signal_connect(G_OBJECT(tabs_checkbox), "clicked", | |
923 G_CALLBACK(gaim_gtk_toggle_sensitive), same_checkbox); | |
924 | |
6455
cd0b5eaf9460
[gaim-migrate @ 6964]
Christian Hammond <chipx86@chipx86.com>
parents:
6421
diff
changeset
|
925 close_checkbox = prefs_checkbox(_("Show _close button on tabs"), |
5547
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
926 "/gaim/gtk/conversations/close_on_tabs", |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
927 vbox); |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
928 |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
929 if (!gaim_prefs_get_bool("/gaim/gtk/conversations/tabs")) { |
5547
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
930 gtk_widget_set_sensitive(GTK_WIDGET(close_checkbox), FALSE); |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
931 } |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
932 |
7128 | 933 g_signal_connect(G_OBJECT(tabs_checkbox), "clicked", |
5547
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
934 G_CALLBACK(gaim_gtk_toggle_sensitive), close_checkbox); |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
935 |
6455
cd0b5eaf9460
[gaim-migrate @ 6964]
Christian Hammond <chipx86@chipx86.com>
parents:
6421
diff
changeset
|
936 icons_checkbox = prefs_checkbox(_("Show status _icons on tabs"), |
6392
e9974608b319
[gaim-migrate @ 6897]
Christian Hammond <chipx86@chipx86.com>
parents:
6384
diff
changeset
|
937 "/gaim/gtk/conversations/icons_on_tabs", |
e9974608b319
[gaim-migrate @ 6897]
Christian Hammond <chipx86@chipx86.com>
parents:
6384
diff
changeset
|
938 vbox); |
e9974608b319
[gaim-migrate @ 6897]
Christian Hammond <chipx86@chipx86.com>
parents:
6384
diff
changeset
|
939 |
e9974608b319
[gaim-migrate @ 6897]
Christian Hammond <chipx86@chipx86.com>
parents:
6384
diff
changeset
|
940 if (!gaim_prefs_get_bool("/gaim/gtk/conversations/tabs")) { |
e9974608b319
[gaim-migrate @ 6897]
Christian Hammond <chipx86@chipx86.com>
parents:
6384
diff
changeset
|
941 gtk_widget_set_sensitive(GTK_WIDGET(icons_checkbox), FALSE); |
e9974608b319
[gaim-migrate @ 6897]
Christian Hammond <chipx86@chipx86.com>
parents:
6384
diff
changeset
|
942 } |
e9974608b319
[gaim-migrate @ 6897]
Christian Hammond <chipx86@chipx86.com>
parents:
6384
diff
changeset
|
943 |
7128 | 944 g_signal_connect(G_OBJECT(tabs_checkbox), "clicked", |
6392
e9974608b319
[gaim-migrate @ 6897]
Christian Hammond <chipx86@chipx86.com>
parents:
6384
diff
changeset
|
945 G_CALLBACK(gaim_gtk_toggle_sensitive), icons_checkbox); |
e9974608b319
[gaim-migrate @ 6897]
Christian Hammond <chipx86@chipx86.com>
parents:
6384
diff
changeset
|
946 |
5440 | 947 gtk_widget_show_all(ret); |
948 | |
949 return ret; | |
950 } | |
951 | |
952 GtkWidget *im_page() { | |
953 GtkWidget *ret; | |
954 GtkWidget *vbox; | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
955 GtkWidget *widge; |
5440 | 956 GtkSizeGroup *sg; |
957 | |
958 ret = gtk_vbox_new(FALSE, 18); | |
959 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
960 | |
961 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
962 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
963 vbox = gaim_gtk_make_frame (ret, _("Window")); |
5547
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
964 widge = prefs_dropdown(vbox, _("Show _buttons as:"), GAIM_PREF_INT, |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
965 "/gaim/gtk/conversations/im/button_type", |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
966 _("Pictures"), GAIM_BUTTON_IMAGE, |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
967 _("Text"), GAIM_BUTTON_TEXT, |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
968 _("Pictures and text"), GAIM_BUTTON_TEXT_IMAGE, |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
969 NULL); |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
970 |
5440 | 971 gtk_size_group_add_widget(sg, widge); |
972 gtk_misc_set_alignment(GTK_MISC(widge), 0, 0); | |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
973 prefs_labeled_spin_button(vbox, _("New window _width:"), |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
974 "/gaim/gtk/conversations/im/default_width", |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
975 25, 9999, sg); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
976 prefs_labeled_spin_button(vbox, _("New window _height:"), |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
977 "/gaim/gtk/conversations/im/default_height", |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
978 25, 9999, sg); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
979 prefs_labeled_spin_button(vbox, _("_Entry field height:"), |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
980 "/gaim/gtk/conversations/im/entry_height", |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
981 25, 9999, sg); |
6623 | 982 prefs_checkbox(_("_Raise window on events"), |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
983 "/gaim/gtk/conversations/im/raise_on_events", vbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
984 prefs_checkbox(_("Hide window on _send"), |
5631 | 985 "/gaim/gtk/conversations/im/hide_on_send", vbox); |
5440 | 986 gtk_widget_show (vbox); |
987 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
988 vbox = gaim_gtk_make_frame (ret, _("Buddy Icons")); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
989 prefs_checkbox(_("Show buddy _icons"), |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
990 "/gaim/gtk/conversations/im/show_buddy_icons", vbox); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
991 prefs_checkbox(_("Enable buddy icon a_nimation"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
992 "/gaim/gtk/conversations/im/animate_buddy_icons", vbox); |
5440 | 993 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
994 vbox = gaim_gtk_make_frame (ret, _("Display")); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
995 prefs_checkbox(_("Show _logins in window"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
996 "/core/conversations/im/show_login", vbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
997 prefs_checkbox(_("Show a_liases in tabs/titles"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
998 "/core/conversations/use_alias_for_title", vbox); |
5440 | 999 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1000 vbox = gaim_gtk_make_frame (ret, _("Typing Notification")); |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1001 prefs_checkbox(_("Notify buddies that you are _typing to them"), |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1002 "/core/conversations/im/send_typing", vbox); |
5440 | 1003 |
1004 gtk_widget_show_all(ret); | |
1005 return ret; | |
1006 } | |
1007 | |
1008 GtkWidget *chat_page() { | |
1009 GtkWidget *ret; | |
1010 GtkWidget *vbox; | |
1011 GtkWidget *dd; | |
1012 GtkSizeGroup *sg; | |
1013 | |
1014 ret = gtk_vbox_new(FALSE, 18); | |
1015 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1016 | |
1017 sg = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); | |
1018 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1019 vbox = gaim_gtk_make_frame (ret, _("Window")); |
5547
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
1020 dd = prefs_dropdown(vbox, _("Show _buttons as:"), GAIM_PREF_INT, |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
1021 "/gaim/gtk/conversations/chat/button_type", |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
1022 _("Pictures"), GAIM_BUTTON_IMAGE, |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
1023 _("Text"), GAIM_BUTTON_TEXT, |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
1024 _("Pictures and text"), GAIM_BUTTON_TEXT_IMAGE, |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
1025 NULL); |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
1026 |
5440 | 1027 gtk_size_group_add_widget(sg, dd); |
1028 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0); | |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1029 prefs_labeled_spin_button(vbox, _("New window _width:"), |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1030 "/gaim/gtk/conversations/chat/default_width", |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1031 25, 9999, sg); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1032 prefs_labeled_spin_button(vbox, _("New window _height:"), |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1033 "/gaim/gtk/conversations/chat/default_height", |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1034 25, 9999, sg); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1035 prefs_labeled_spin_button(vbox, _("_Entry field height:"), |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1036 "/gaim/gtk/conversations/chat/entry_height", |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1037 25, 9999, sg); |
6623 | 1038 prefs_checkbox(_("_Raise window on events"), |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1039 "/gaim/gtk/conversations/chat/raise_on_events", vbox); |
5440 | 1040 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1041 vbox = gaim_gtk_make_frame (ret, _("Tab Completion")); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1042 prefs_checkbox(_("_Tab-complete nicks"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1043 "/gaim/gtk/conversations/chat/tab_completion", vbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1044 prefs_checkbox(_("_Old-style tab completion"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1045 "/gaim/gtk/conversations/chat/old_tab_complete", vbox); |
5440 | 1046 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1047 vbox = gaim_gtk_make_frame (ret, _("Display")); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1048 prefs_checkbox(_("_Show people joining in window"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1049 "/core/conversations/chat/show_join", vbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1050 prefs_checkbox(_("_Show people leaving in window"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1051 "/core/conversations/chat/show_leave", vbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1052 prefs_checkbox(_("Co_lorize screennames"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1053 "/gaim/gtk/conversations/chat/color_nicks", vbox); |
5440 | 1054 |
1055 gtk_widget_show_all(ret); | |
1056 return ret; | |
1057 } | |
1058 | |
6001 | 1059 static void |
1060 proxy_changed_cb(const char *name, GaimPrefType type, gpointer value, | |
1061 gpointer data) | |
1062 { | |
1063 GtkWidget *frame = data; | |
1064 const char *proxy = value; | |
1065 | |
6621 | 1066 if (strcmp(proxy, "none") && strcmp(proxy, "envvar")) |
1067 gtk_widget_set_sensitive(frame, TRUE); | |
1068 else | |
1069 gtk_widget_set_sensitive(frame, FALSE); | |
6001 | 1070 } |
1071 | |
6006 | 1072 static void proxy_print_option(GtkEntry *entry, int entrynum) |
1073 { | |
1074 if (entrynum == PROXYHOST) | |
1075 gaim_prefs_set_string("/core/proxy/host", gtk_entry_get_text(entry)); | |
1076 else if (entrynum == PROXYPORT) | |
1077 gaim_prefs_set_int("/core/proxy/port", atoi(gtk_entry_get_text(entry))); | |
1078 else if (entrynum == PROXYUSER) | |
1079 gaim_prefs_set_string("/core/proxy/username", gtk_entry_get_text(entry)); | |
1080 else if (entrynum == PROXYPASS) | |
1081 gaim_prefs_set_string("/core/proxy/password", gtk_entry_get_text(entry)); | |
1082 } | |
1083 | |
5440 | 1084 GtkWidget *proxy_page() { |
1085 GtkWidget *ret; | |
1086 GtkWidget *vbox; | |
1087 GtkWidget *entry; | |
1088 GtkWidget *label; | |
1089 GtkWidget *hbox; | |
1090 GtkWidget *table; | |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1091 GaimProxyInfo *proxy_info; |
5440 | 1092 |
1093 ret = gtk_vbox_new(FALSE, 18); | |
1094 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1095 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1096 vbox = gaim_gtk_make_frame (ret, _("Proxy Type")); |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1097 prefs_dropdown(vbox, _("Proxy _type:"), GAIM_PREF_STRING, |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1098 "/core/proxy/type", |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1099 _("No proxy"), "none", |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1100 "SOCKS 4", "socks4", |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1101 "SOCKS 5", "socks5", |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1102 "HTTP", "http", |
6621 | 1103 _("Use Environmental Settings"), "envvar", |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1104 NULL); |
5440 | 1105 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1106 vbox = gaim_gtk_make_frame(ret, _("Proxy Server")); |
5440 | 1107 prefs_proxy_frame = vbox; |
1108 | |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1109 proxy_info = gaim_global_proxy_get_info(); |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1110 |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1111 if (proxy_info == NULL || |
6621 | 1112 gaim_proxy_info_get_type(proxy_info) == GAIM_PROXY_NONE || |
1113 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
|
1114 |
6001 | 1115 gtk_widget_set_sensitive(GTK_WIDGET(prefs_proxy_frame), FALSE); |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1116 } |
6001 | 1117 proxy_pref_id = gaim_prefs_connect_callback("/core/proxy/type", |
1118 proxy_changed_cb, prefs_proxy_frame); | |
1119 | |
5440 | 1120 table = gtk_table_new(2, 4, FALSE); |
1121 gtk_container_set_border_width(GTK_CONTAINER(table), 5); | |
1122 gtk_table_set_col_spacings(GTK_TABLE(table), 5); | |
1123 gtk_table_set_row_spacings(GTK_TABLE(table), 10); | |
1124 gtk_container_add(GTK_CONTAINER(vbox), table); | |
1125 | |
1126 | |
7797 | 1127 label = gtk_label_new_with_mnemonic(_("_Host:")); |
5440 | 1128 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
1129 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); | |
1130 | |
1131 entry = gtk_entry_new(); | |
1132 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
1133 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 0, 1, GTK_FILL, 0, 0, 0); | |
1134 g_signal_connect(G_OBJECT(entry), "changed", | |
1135 G_CALLBACK(proxy_print_option), (void *)PROXYHOST); | |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1136 |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1137 if (proxy_info != NULL && gaim_proxy_info_get_host(proxy_info)) |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1138 gtk_entry_set_text(GTK_ENTRY(entry), |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1139 gaim_proxy_info_get_host(proxy_info)); |
5440 | 1140 |
1141 hbox = gtk_hbox_new(TRUE, 5); | |
1142 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
1143 | |
7870 | 1144 label = gtk_label_new_with_mnemonic(_("_Port:")); |
5440 | 1145 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
1146 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, GTK_FILL, 0, 0, 0); | |
1147 | |
1148 entry = gtk_entry_new(); | |
1149 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
1150 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 1, 2, GTK_FILL, 0, 0, 0); | |
1151 g_signal_connect(G_OBJECT(entry), "changed", | |
1152 G_CALLBACK(proxy_print_option), (void *)PROXYPORT); | |
1153 | |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1154 if (proxy_info != NULL && gaim_proxy_info_get_port(proxy_info) != 0) { |
5440 | 1155 char buf[128]; |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1156 g_snprintf(buf, sizeof(buf), "%d", |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1157 gaim_proxy_info_get_port(proxy_info)); |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1158 |
5440 | 1159 gtk_entry_set_text(GTK_ENTRY(entry), buf); |
1160 } | |
1161 | |
7797 | 1162 label = gtk_label_new_with_mnemonic(_("_User:")); |
5440 | 1163 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
1164 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 2, 3, GTK_FILL, 0, 0, 0); | |
1165 | |
1166 entry = gtk_entry_new(); | |
1167 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
1168 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 2, 3, GTK_FILL, 0, 0, 0); | |
1169 g_signal_connect(G_OBJECT(entry), "changed", | |
1170 G_CALLBACK(proxy_print_option), (void *)PROXYUSER); | |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1171 |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1172 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
|
1173 gtk_entry_set_text(GTK_ENTRY(entry), |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1174 gaim_proxy_info_get_username(proxy_info)); |
5440 | 1175 |
1176 hbox = gtk_hbox_new(TRUE, 5); | |
1177 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
1178 | |
7797 | 1179 label = gtk_label_new_with_mnemonic(_("Pa_ssword:")); |
5440 | 1180 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
1181 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 3, 4, GTK_FILL, 0, 0, 0); | |
1182 | |
1183 entry = gtk_entry_new(); | |
1184 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
1185 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 3, 4, GTK_FILL , 0, 0, 0); | |
1186 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE); | |
1187 g_signal_connect(G_OBJECT(entry), "changed", | |
1188 G_CALLBACK(proxy_print_option), (void *)PROXYPASS); | |
5681
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1189 |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1190 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
|
1191 gtk_entry_set_text(GTK_ENTRY(entry), |
46d7ad0dfa26
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5673
diff
changeset
|
1192 gaim_proxy_info_get_password(proxy_info)); |
5440 | 1193 |
1194 gtk_widget_show_all(ret); | |
1195 return ret; | |
1196 } | |
1197 | |
1198 #ifndef _WIN32 | |
1199 static gboolean manual_browser_set(GtkWidget *entry, GdkEventFocus *event, gpointer data) { | |
1200 const char *program = gtk_entry_get_text(GTK_ENTRY(entry)); | |
1201 | |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1202 gaim_prefs_set_string("/gaim/gtk/browsers/command", program); |
5440 | 1203 |
1204 /* carry on normally */ | |
1205 return FALSE; | |
1206 } | |
1207 | |
5633 | 1208 static GList *get_available_browsers() |
5440 | 1209 { |
1210 struct browser { | |
1211 char *name; | |
1212 char *command; | |
1213 }; | |
1214 | |
1215 static struct browser possible_browsers[] = { | |
5633 | 1216 {N_("Opera"), "opera"}, |
1217 {N_("Netscape"), "netscape"}, | |
1218 {N_("Mozilla"), "mozilla"}, | |
6070 | 1219 {N_("Konqueror"), "kfmclient"}, |
7916 | 1220 {N_("Galeon"), "galeon"}, |
1221 {N_("Firebird"), "mozilla-firebird"} | |
5440 | 1222 }; |
7916 | 1223 static const int num_possible_browsers = 6; |
5440 | 1224 |
1225 GList *browsers = NULL; | |
1226 int i = 0; | |
5819 | 1227 char *browser_setting = (char *)gaim_prefs_get_string("/gaim/gtk/browsers/browser"); |
5440 | 1228 |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1229 browsers = g_list_prepend(browsers, "custom"); |
5440 | 1230 browsers = g_list_prepend(browsers, _("Manual")); |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1231 |
5440 | 1232 for (i = 0; i < num_possible_browsers; i++) { |
7108
6faeeecab0dc
[gaim-migrate @ 7673]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1233 if (gaim_program_is_valid(possible_browsers[i].command)) { |
5633 | 1234 browsers = g_list_prepend(browsers, |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1235 possible_browsers[i].command); |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1236 browsers = g_list_prepend(browsers, _(possible_browsers[i].name)); |
5825 | 1237 if(browser_setting && !strcmp(possible_browsers[i].command, browser_setting)) |
5819 | 1238 browser_setting = NULL; |
5440 | 1239 } |
1240 } | |
1241 | |
5819 | 1242 if(browser_setting) |
1243 gaim_prefs_set_string("/gaim/gtk/browsers/browser", "custom"); | |
1244 | |
5440 | 1245 return browsers; |
1246 } | |
1247 | |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1248 static void |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1249 browser_changed_cb(const char *name, GaimPrefType type, gpointer value, |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1250 gpointer data) |
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 GtkWidget *hbox = data; |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1253 const char *browser = value; |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1254 |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1255 gtk_widget_set_sensitive(hbox, !strcmp(browser, "custom")); |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1256 } |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1257 |
5440 | 1258 GtkWidget *browser_page() { |
1259 GtkWidget *ret; | |
1260 GtkWidget *vbox; | |
1261 GtkWidget *hbox; | |
1262 GtkWidget *label; | |
6007 | 1263 GtkWidget *entry; |
5440 | 1264 GtkSizeGroup *sg; |
1265 GList *browsers = NULL; | |
1266 | |
1267 ret = gtk_vbox_new(FALSE, 18); | |
1268 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1269 | |
1270 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1271 vbox = gaim_gtk_make_frame (ret, _("Browser Selection")); |
5440 | 1272 |
1273 browsers = get_available_browsers(); | |
1274 if (browsers != NULL) { | |
6007 | 1275 label = prefs_dropdown_from_list(vbox,_("_Browser:"), GAIM_PREF_STRING, |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1276 "/gaim/gtk/browsers/browser", |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1277 browsers); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1278 |
5440 | 1279 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
1280 gtk_size_group_add_widget(sg, label); | |
1281 } | |
1282 | |
1283 hbox = gtk_hbox_new(FALSE, 5); | |
1284 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
6031 | 1285 label = gtk_label_new_with_mnemonic(_("_Manual:\n(%s for URL)")); |
5440 | 1286 gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); |
1287 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
1288 gtk_size_group_add_widget(sg, label); | |
1289 | |
6007 | 1290 entry = gtk_entry_new(); |
1291 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1292 |
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1293 if (strcmp(gaim_prefs_get_string("/gaim/gtk/browsers/browser"), "custom")) |
5440 | 1294 gtk_widget_set_sensitive(hbox, FALSE); |
6005 | 1295 browser_pref_id = gaim_prefs_connect_callback("/gaim/gtk/browsers/browser", |
1296 browser_changed_cb, hbox); | |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1297 |
6007 | 1298 gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, FALSE, 0); |
1299 | |
1300 gtk_entry_set_text(GTK_ENTRY(entry), | |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1301 gaim_prefs_get_string("/gaim/gtk/browsers/command")); |
6007 | 1302 g_signal_connect(G_OBJECT(entry), "focus-out-event", |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1303 G_CALLBACK(manual_browser_set), NULL); |
5440 | 1304 |
1305 if (browsers != NULL) { | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1306 vbox = gaim_gtk_make_frame (ret, _("Browser Options")); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1307 label = prefs_checkbox(_("Open new _window by default"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1308 "/gaim/gtk/browsers/new_window", vbox); |
5440 | 1309 } |
1310 | |
1311 gtk_widget_show_all(ret); | |
1312 return ret; | |
1313 } | |
1314 #endif /*_WIN32*/ | |
1315 | |
1316 GtkWidget *logging_page() { | |
1317 GtkWidget *ret; | |
1318 GtkWidget *vbox; | |
7431 | 1319 GList *names; |
5440 | 1320 ret = gtk_vbox_new(FALSE, 18); |
1321 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1322 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1323 vbox = gaim_gtk_make_frame (ret, _("Message Logs")); |
7431 | 1324 names = gaim_log_logger_get_options(); |
1325 | |
1326 prefs_dropdown_from_list(vbox, _("Log _Format:"), GAIM_PREF_STRING, | |
1327 "/core/logging/format", | |
1328 names); | |
1329 | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1330 prefs_checkbox(_("_Log all instant messages"), |
7562
b859cfb5f31a
[gaim-migrate @ 8176]
Christian Hammond <chipx86@chipx86.com>
parents:
7561
diff
changeset
|
1331 "/core/logging/log_ims", vbox); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1332 prefs_checkbox(_("Log all c_hats"), |
7562
b859cfb5f31a
[gaim-migrate @ 8176]
Christian Hammond <chipx86@chipx86.com>
parents:
7561
diff
changeset
|
1333 "/core/logging/log_chats", vbox); |
7553 | 1334 /* |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1335 vbox = gaim_gtk_make_frame (ret, _("System Logs")); |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1336 prefs_checkbox(_("Log when buddies _sign on/sign off"), |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1337 "/gaim/gtk/logging/log_signon_signoff", vbox); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1338 prefs_checkbox(_("Log when buddies become _idle/un-idle"), |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1339 "/gaim/gtk/logging/log_idle_state", vbox); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1340 prefs_checkbox(_("Log when buddies go away/come _back"), |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1341 "/gaim/gtk/logging/log_away_state", vbox); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1342 prefs_checkbox(_("Log your _own signons/idleness/awayness"), |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1343 "/gaim/gtk/logging/log_own_states", vbox); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1344 prefs_checkbox(_("I_ndividual log file for each buddy's signons"), |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1345 "/gaim/gtk/logging/individual_logs", vbox); |
7553 | 1346 */ |
5440 | 1347 gtk_widget_show_all(ret); |
1348 return ret; | |
1349 } | |
1350 | |
1351 #ifndef _WIN32 | |
1352 static gint sound_cmd_yeah(GtkEntry *entry, gpointer d) | |
1353 { | |
5684 | 1354 gaim_prefs_set_string("/gaim/gtk/sound/command", |
6007 | 1355 gtk_entry_get_text(GTK_ENTRY(entry))); |
5440 | 1356 return TRUE; |
1357 } | |
6005 | 1358 |
1359 static void | |
1360 sound_changed_cb(const char *name, GaimPrefType type, gpointer value, | |
1361 gpointer data) | |
1362 { | |
1363 GtkWidget *hbox = data; | |
1364 const char *method = value; | |
1365 | |
1366 gtk_widget_set_sensitive(hbox, !strcmp(method, "custom")); | |
1367 } | |
5440 | 1368 #endif |
1369 | |
1370 GtkWidget *sound_page() { | |
1371 GtkWidget *ret; | |
1372 GtkWidget *vbox; | |
1373 GtkSizeGroup *sg; | |
1374 #ifndef _WIN32 | |
1375 GtkWidget *dd; | |
1376 GtkWidget *hbox; | |
1377 GtkWidget *label; | |
6007 | 1378 GtkWidget *entry; |
5684 | 1379 const char *cmd; |
5440 | 1380 #endif |
1381 | |
1382 ret = gtk_vbox_new(FALSE, 18); | |
1383 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1384 | |
1385 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
1386 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1387 vbox = gaim_gtk_make_frame (ret, _("Sound Options")); |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1388 prefs_checkbox(_("_No sounds when you log in"), |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1389 "/gaim/gtk/sound/silent_signon", vbox); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1390 prefs_checkbox(_("_Sounds while away"), |
5684 | 1391 "/core/sound/while_away", vbox); |
5440 | 1392 |
1393 #ifndef _WIN32 | |
6033 | 1394 vbox = gaim_gtk_make_frame (ret, _("Sound Method")); |
1395 dd = prefs_dropdown(vbox, _("_Method:"), GAIM_PREF_STRING, | |
5684 | 1396 "/gaim/gtk/sound/method", |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1397 _("Console beep"), "beep", |
5440 | 1398 #ifdef USE_AO |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1399 _("Automatic"), "automatic", |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1400 "ESD", "esd", |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1401 "Arts", "arts", |
5440 | 1402 #endif |
1403 #ifdef USE_NAS_AUDIO | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1404 "NAS", "nas", |
5440 | 1405 #endif |
5684 | 1406 _("Command"), "custom", |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1407 NULL); |
5440 | 1408 gtk_size_group_add_widget(sg, dd); |
1409 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0); | |
1410 | |
1411 hbox = gtk_hbox_new(FALSE, 5); | |
1412 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); | |
1413 | |
1414 hbox = gtk_hbox_new(FALSE, 5); | |
1415 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
6031 | 1416 label = gtk_label_new_with_mnemonic(_("Sound c_ommand:\n(%s for filename)")); |
5440 | 1417 gtk_size_group_add_widget(sg, label); |
1418 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
1419 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); | |
1420 | |
6007 | 1421 entry = gtk_entry_new(); |
1422 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
1423 | |
1424 gtk_editable_set_editable(GTK_EDITABLE(entry), TRUE); | |
5684 | 1425 cmd = gaim_prefs_get_string("/gaim/gtk/sound/command"); |
5440 | 1426 if(cmd) |
6007 | 1427 gtk_entry_set_text(GTK_ENTRY(entry), cmd); |
1428 gtk_widget_set_size_request(entry, 75, -1); | |
1429 | |
1430 gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 5); | |
1431 g_signal_connect(G_OBJECT(entry), "changed", | |
5440 | 1432 G_CALLBACK(sound_cmd_yeah), NULL); |
6005 | 1433 |
1434 gtk_widget_set_sensitive(hbox, | |
1435 !strcmp(gaim_prefs_get_string("/gaim/gtk/sound/method"), | |
1436 "custom")); | |
1437 sound_pref_id = gaim_prefs_connect_callback("/gaim/gtk/sound/method", | |
1438 sound_changed_cb, hbox); | |
1439 | |
5440 | 1440 #endif /* _WIN32 */ |
1441 gtk_widget_show_all(ret); | |
1442 return ret; | |
1443 } | |
1444 | |
6146
aef34b0c175f
[gaim-migrate @ 6620]
Christian Hammond <chipx86@chipx86.com>
parents:
6142
diff
changeset
|
1445 static void |
aef34b0c175f
[gaim-migrate @ 6620]
Christian Hammond <chipx86@chipx86.com>
parents:
6142
diff
changeset
|
1446 auto_resp_changed_cb(const char *name, GaimPrefType type, gpointer value, |
aef34b0c175f
[gaim-migrate @ 6620]
Christian Hammond <chipx86@chipx86.com>
parents:
6142
diff
changeset
|
1447 gpointer data) |
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 GtkWidget *hbox = data; |
6196 | 1450 gboolean enabled = GPOINTER_TO_INT(value); |
6146
aef34b0c175f
[gaim-migrate @ 6620]
Christian Hammond <chipx86@chipx86.com>
parents:
6142
diff
changeset
|
1451 |
aef34b0c175f
[gaim-migrate @ 6620]
Christian Hammond <chipx86@chipx86.com>
parents:
6142
diff
changeset
|
1452 gtk_widget_set_sensitive(hbox, enabled); |
aef34b0c175f
[gaim-migrate @ 6620]
Christian Hammond <chipx86@chipx86.com>
parents:
6142
diff
changeset
|
1453 } |
aef34b0c175f
[gaim-migrate @ 6620]
Christian Hammond <chipx86@chipx86.com>
parents:
6142
diff
changeset
|
1454 |
5440 | 1455 GtkWidget *away_page() { |
1456 GtkWidget *ret; | |
1457 GtkWidget *vbox; | |
1458 GtkWidget *hbox; | |
1459 GtkWidget *label; | |
1460 GtkWidget *button; | |
1461 GtkWidget *select; | |
1462 GtkWidget *dd; | |
1463 GtkSizeGroup *sg; | |
1464 | |
1465 ret = gtk_vbox_new(FALSE, 18); | |
1466 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1467 | |
1468 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
1469 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1470 vbox = gaim_gtk_make_frame (ret, _("Away")); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1471 prefs_checkbox(_("_Sending messages removes away status"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1472 "/core/conversations/away_back_on_send", vbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1473 prefs_checkbox(_("_Queue new messages when away"), |
5573
5e7de337a053
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5568
diff
changeset
|
1474 "/gaim/gtk/away/queue_messages", vbox); |
5440 | 1475 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1476 vbox = gaim_gtk_make_frame (ret, _("Auto-response")); |
5440 | 1477 hbox = gtk_hbox_new(FALSE, 0); |
1478 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1479 prefs_labeled_spin_button(hbox, _("Seconds before _resending:"), |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1480 "/core/away/auto_response/sec_before_resend", |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1481 1, 24 * 60 * 60, sg); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1482 prefs_checkbox(_("_Send auto-response"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1483 "/core/away/auto_response/enabled", vbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1484 prefs_checkbox(_("_Only send auto-response when idle"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1485 "/core/away/auto_response/idle_only", vbox); |
7129 | 1486 prefs_checkbox(_("Send auto-response in _active conversations"), |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1487 "/core/away/auto_response/in_active_conv", vbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1488 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1489 if (!gaim_prefs_get_bool("/core/away/auto_response/enabled")) |
5440 | 1490 gtk_widget_set_sensitive(hbox, FALSE); |
1491 | |
6142 | 1492 auto_resp_pref_id = gaim_prefs_connect_callback("/core/away/auto_response/enabled", |
1493 auto_resp_changed_cb, hbox); | |
1494 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1495 vbox = gaim_gtk_make_frame (ret, _("Idle")); |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1496 dd = prefs_dropdown(vbox, _("Idle _time reporting:"), GAIM_PREF_STRING, |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1497 "/gaim/gtk/idle/reporting_method", |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1498 _("None"), "none", |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1499 _("Gaim usage"), "gaim", |
5440 | 1500 #ifdef USE_SCREENSAVER |
1501 #ifndef _WIN32 | |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1502 _("X usage"), "system", |
5440 | 1503 #else |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1504 _("Windows usage"), "system", |
5440 | 1505 #endif |
1506 #endif | |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1507 NULL); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1508 |
5440 | 1509 gtk_size_group_add_widget(sg, dd); |
1510 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0); | |
1511 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1512 vbox = gaim_gtk_make_frame (ret, _("Auto-away")); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1513 button = prefs_checkbox(_("Set away _when idle"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1514 "/core/away/away_when_idle", vbox); |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1515 select = prefs_labeled_spin_button(vbox, _("_Minutes before setting away:"), |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1516 "/core/away/mins_before_away", |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1517 1, 24 * 60, sg); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1518 |
5440 | 1519 g_signal_connect(G_OBJECT(button), "clicked", |
1520 G_CALLBACK(gaim_gtk_toggle_sensitive), select); | |
1521 | |
1522 label = gtk_label_new_with_mnemonic(_("Away m_essage:")); | |
1523 gtk_size_group_add_widget(sg, label); | |
1524 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
1525 hbox = gtk_hbox_new(FALSE, 0); | |
1526 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
1527 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
1528 prefs_away_menu = gtk_option_menu_new(); | |
1529 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
|
1530 |
5440 | 1531 g_signal_connect(G_OBJECT(button), "clicked", |
1532 G_CALLBACK(gaim_gtk_toggle_sensitive), prefs_away_menu); | |
1533 default_away_menu_init(prefs_away_menu); | |
1534 gtk_widget_show(prefs_away_menu); | |
1535 gtk_box_pack_start(GTK_BOX(hbox), prefs_away_menu, FALSE, FALSE, 0); | |
1536 | |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1537 if (!gaim_prefs_get_bool("/core/away/away_when_idle")) { |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1538 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1539 gtk_widget_set_sensitive(GTK_WIDGET(prefs_away_menu), FALSE); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1540 } |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1541 |
5440 | 1542 gtk_widget_show_all(ret); |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1543 |
5440 | 1544 return ret; |
1545 } | |
1546 | |
1547 static GtkWidget *plugin_description=NULL, *plugin_details=NULL; | |
1548 | |
1549 static void prefs_plugin_sel (GtkTreeSelection *sel, GtkTreeModel *model) | |
1550 { | |
1551 gchar *buf, *pname, *perr, *pdesc, *pauth, *pweb; | |
1552 GtkTreeIter iter; | |
1553 GValue val = { 0, }; | |
1554 GaimPlugin *plug; | |
1555 | |
1556 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) | |
1557 return; | |
1558 gtk_tree_model_get_value (model, &iter, 2, &val); | |
1559 plug = g_value_get_pointer(&val); | |
1560 | |
1561 pname = g_markup_escape_text(_(plug->info->name), -1); | |
1562 pdesc = g_markup_escape_text(_(plug->info->description), -1); | |
1563 pauth = g_markup_escape_text(_(plug->info->author), -1); | |
1564 pweb = g_markup_escape_text(_(plug->info->homepage), -1); | |
1565 if (plug->error != NULL) { | |
1566 perr = g_markup_escape_text(_(plug->error), -1); | |
1567 buf = g_strdup_printf( | |
1568 "<span size=\"larger\">%s %s</span>\n\n" | |
1569 "<span weight=\"bold\" color=\"red\">%s</span>\n\n" | |
1570 "%s", | |
1571 pname, plug->info->version, perr, pdesc); | |
1572 g_free(perr); | |
1573 } | |
1574 else { | |
1575 buf = g_strdup_printf( | |
1576 "<span size=\"larger\">%s %s</span>\n\n%s", | |
1577 pname, plug->info->version, pdesc); | |
1578 } | |
1579 gtk_label_set_markup(GTK_LABEL(plugin_description), buf); | |
1580 g_free(buf); | |
1581 | |
1582 buf = g_strdup_printf( | |
1583 #ifndef _WIN32 | |
1584 _("<span size=\"larger\">%s %s</span>\n\n" | |
1585 "<span weight=\"bold\">Written by:</span>\t%s\n" | |
1586 "<span weight=\"bold\">Web site:</span>\t\t%s\n" | |
1587 "<span weight=\"bold\">File name:</span>\t%s"), | |
1588 #else | |
1589 _("<span size=\"larger\">%s %s</span>\n\n" | |
1590 "<span weight=\"bold\">Written by:</span> %s\n" | |
1591 "<span weight=\"bold\">URL:</span> %s\n" | |
1592 "<span weight=\"bold\">File name:</span> %s"), | |
1593 #endif | |
1594 pname, plug->info->version, pauth, pweb, plug->path); | |
1595 | |
1596 gtk_label_set_markup(GTK_LABEL(plugin_details), buf); | |
1597 g_value_unset(&val); | |
1598 g_free(buf); | |
1599 g_free(pname); | |
1600 g_free(pdesc); | |
1601 g_free(pauth); | |
1602 g_free(pweb); | |
1603 } | |
1604 | |
1605 static void plugin_load (GtkCellRendererToggle *cell, gchar *pth, gpointer data) | |
1606 { | |
1607 GtkTreeModel *model = (GtkTreeModel *)data; | |
1608 GtkTreeIter iter; | |
1609 GtkTreePath *path = gtk_tree_path_new_from_string(pth); | |
1610 GaimPlugin *plug; | |
1611 gchar buf[1024]; | |
6040 | 1612 gchar *name = NULL, *description = NULL; |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1613 |
5440 | 1614 GdkCursor *wait = gdk_cursor_new (GDK_WATCH); |
1615 gdk_window_set_cursor(prefs->window, wait); | |
1616 gdk_cursor_unref(wait); | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1617 |
5440 | 1618 gtk_tree_model_get_iter (model, &iter, path); |
1619 gtk_tree_model_get (model, &iter, 2, &plug, -1); | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1620 |
5440 | 1621 if (!gaim_plugin_is_loaded(plug)) { |
1622 gaim_plugin_load(plug); | |
1623 | |
1624 /* | |
1625 * NOTE: This is basically the same check as before | |
1626 * (plug->type == plugin), but now there aren't plugin types. | |
1627 * Not yet, anyway. I want to do a V2 of the plugin API. | |
1628 * The thing is, we should have a flag specifying the UI type, | |
1629 * or just whether it's a general plugin or a UI-specific | |
1630 * plugin. We should only load this if it's UI-specific. | |
1631 * | |
1632 * -- ChipX86 | |
1633 */ | |
1634 if (GAIM_IS_GTK_PLUGIN(plug)) | |
1635 { | |
1636 GtkWidget *config_frame; | |
1637 GaimGtkPluginUiInfo *ui_info; | |
1638 | |
1639 ui_info = GAIM_GTK_PLUGIN_UI_INFO(plug); | |
1640 config_frame = gaim_gtk_plugin_get_config_frame(plug); | |
1641 | |
1642 if (config_frame != NULL) { | |
1643 ui_info->iter = g_new0(GtkTreeIter, 1); | |
1644 prefs_notebook_add_page(_(plug->info->name), NULL, | |
1645 config_frame, ui_info->iter, | |
1646 &plugin_iter, notebook_page++); | |
1647 | |
1648 if (gtk_tree_model_iter_n_children(GTK_TREE_MODEL(prefstree), | |
1649 &plugin_iter) == 1) { | |
1650 | |
1651 /* Expand the tree for the first plugin added */ | |
1652 GtkTreePath *path2; | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1653 |
5440 | 1654 path2 = gtk_tree_model_get_path(GTK_TREE_MODEL(prefstree), |
1655 &plugin_iter); | |
1656 gtk_tree_view_expand_row(GTK_TREE_VIEW(tree_v), | |
1657 path2, TRUE); | |
1658 gtk_tree_path_free(path2); | |
1659 } | |
1660 } | |
1661 } | |
1662 } | |
1663 else { | |
1664 if (GAIM_IS_GTK_PLUGIN(plug)) { | |
1665 GaimGtkPluginUiInfo *ui_info; | |
1666 | |
1667 ui_info = GAIM_GTK_PLUGIN_UI_INFO(plug); | |
1668 | |
1669 if (ui_info != NULL && ui_info->iter != NULL) { | |
1670 gtk_tree_store_remove(GTK_TREE_STORE(prefstree), ui_info->iter); | |
1671 g_free(ui_info->iter); | |
1672 ui_info->iter = NULL; | |
1673 } | |
1674 } | |
1675 | |
1676 gaim_plugin_unload(plug); | |
1677 } | |
1678 | |
1679 gdk_window_set_cursor(prefs->window, NULL); | |
1680 | |
6040 | 1681 name = g_markup_escape_text(_(plug->info->name), -1); |
1682 description = g_markup_escape_text(_(plug->info->description), -1); | |
5440 | 1683 if (plug->error != NULL) { |
6040 | 1684 gchar *error = g_markup_escape_text(plug->error, -1); |
5440 | 1685 g_snprintf(buf, sizeof(buf), |
1686 "<span size=\"larger\">%s %s</span>\n\n" | |
1687 "<span weight=\"bold\" color=\"red\">%s</span>\n\n" | |
1688 "%s", | |
6040 | 1689 name, plug->info->version, error, description); |
1690 g_free(error); | |
1691 } else { | |
5440 | 1692 g_snprintf(buf, sizeof(buf), |
1693 "<span size=\"larger\">%s %s</span>\n\n%s", | |
6040 | 1694 name, plug->info->version, description); |
5440 | 1695 } |
6040 | 1696 g_free(name); |
1697 g_free(description); | |
5440 | 1698 |
1699 gtk_label_set_markup(GTK_LABEL(plugin_description), buf); | |
1700 gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, | |
1701 gaim_plugin_is_loaded(plug), -1); | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1702 |
5440 | 1703 gtk_label_set_markup(GTK_LABEL(plugin_description), buf); |
1704 gtk_tree_path_free(path); | |
5981
81564bb4db68
[gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents:
5966
diff
changeset
|
1705 |
81564bb4db68
[gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents:
5966
diff
changeset
|
1706 gaim_gtk_plugins_save(); |
5440 | 1707 } |
1708 | |
1709 static void | |
1710 update_plugin_list(void *data) | |
1711 { | |
1712 GtkListStore *ls = GTK_LIST_STORE(data); | |
1713 GtkTreeIter iter; | |
1714 GList *probes; | |
1715 GaimPlugin *plug; | |
1716 | |
1717 gtk_list_store_clear(ls); | |
1718 | |
1719 for (probes = gaim_plugins_get_all(); | |
1720 probes != NULL; | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1721 probes = probes->next) |
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1722 { |
5440 | 1723 plug = probes->data; |
1724 | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1725 if (plug->info->type != GAIM_PLUGIN_STANDARD || |
6930
31c45d99e1a8
[gaim-migrate @ 7477]
Christian Hammond <chipx86@chipx86.com>
parents:
6928
diff
changeset
|
1726 (plug->info->flags & GAIM_PLUGIN_FLAG_INVISIBLE)) |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1727 { |
5440 | 1728 continue; |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1729 } |
5440 | 1730 |
1731 gtk_list_store_append (ls, &iter); | |
1732 gtk_list_store_set(ls, &iter, | |
1733 0, gaim_plugin_is_loaded(plug), | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1734 1, plug->info->name ? _(plug->info->name) : plug->path, |
5440 | 1735 2, plug, -1); |
1736 } | |
1737 } | |
1738 | |
1739 static GtkWidget *plugin_page () | |
1740 { | |
1741 GtkWidget *ret; | |
1742 GtkWidget *sw, *vp; | |
1743 GtkWidget *event_view; | |
1744 GtkListStore *ls; | |
1745 GtkCellRenderer *rend, *rendt; | |
1746 GtkTreeViewColumn *col; | |
1747 GtkTreeSelection *sel; | |
1748 GtkTreePath *path; | |
1749 GtkWidget *nb; | |
1750 | |
1751 ret = gtk_vbox_new(FALSE, 18); | |
1752 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1753 | |
1754 sw = gtk_scrolled_window_new(NULL,NULL); | |
1755 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); | |
1756 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); | |
1757 | |
1758 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); | |
1759 | |
1760 ls = gtk_list_store_new (3, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_POINTER); | |
1761 | |
1762 update_plugin_list(ls); | |
1763 | |
1764 event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(ls)); | |
1765 | |
1766 rend = gtk_cell_renderer_toggle_new(); | |
1767 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); | |
1768 | |
1769 col = gtk_tree_view_column_new_with_attributes (_("Load"), | |
1770 rend, | |
1771 "active", 0, | |
1772 NULL); | |
1773 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
1774 | |
1775 rendt = gtk_cell_renderer_text_new(); | |
1776 col = gtk_tree_view_column_new_with_attributes (_("Name"), | |
1777 rendt, | |
1778 "text", 1, | |
1779 NULL); | |
1780 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
1781 g_object_unref(G_OBJECT(ls)); | |
1782 gtk_container_add(GTK_CONTAINER(sw), event_view); | |
1783 | |
1784 | |
1785 nb = gtk_notebook_new(); | |
1786 gtk_notebook_set_tab_pos (GTK_NOTEBOOK(nb), GTK_POS_BOTTOM); | |
1787 gtk_notebook_popup_disable(GTK_NOTEBOOK(nb)); | |
1788 | |
1789 /* Description */ | |
1790 sw = gtk_scrolled_window_new(NULL, NULL); | |
1791 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | |
1792 plugin_description = gtk_label_new(NULL); | |
1793 | |
1794 vp = gtk_viewport_new(NULL, NULL); | |
1795 gtk_viewport_set_shadow_type(GTK_VIEWPORT(vp), GTK_SHADOW_NONE); | |
1796 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_NONE); | |
1797 | |
1798 gtk_container_add(GTK_CONTAINER(vp), plugin_description); | |
1799 gtk_container_add(GTK_CONTAINER(sw), vp); | |
1800 | |
1801 gtk_label_set_selectable(GTK_LABEL(plugin_description), TRUE); | |
1802 gtk_label_set_line_wrap(GTK_LABEL(plugin_description), TRUE); | |
1803 gtk_misc_set_alignment(GTK_MISC(plugin_description), 0, 0); | |
1804 gtk_misc_set_padding(GTK_MISC(plugin_description), 6, 6); | |
1805 gtk_notebook_append_page(GTK_NOTEBOOK(nb), sw, gtk_label_new(_("Description"))); | |
1806 | |
1807 /* Details */ | |
1808 sw = gtk_scrolled_window_new(NULL, NULL); | |
1809 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | |
1810 plugin_details = gtk_label_new(NULL); | |
1811 | |
1812 vp = gtk_viewport_new(NULL, NULL); | |
1813 gtk_viewport_set_shadow_type(GTK_VIEWPORT(vp), GTK_SHADOW_NONE); | |
1814 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_NONE); | |
1815 | |
1816 gtk_container_add(GTK_CONTAINER(vp), plugin_details); | |
1817 gtk_container_add(GTK_CONTAINER(sw), vp); | |
1818 | |
1819 gtk_label_set_selectable(GTK_LABEL(plugin_details), TRUE); | |
1820 gtk_label_set_line_wrap(GTK_LABEL(plugin_details), TRUE); | |
1821 gtk_misc_set_alignment(GTK_MISC(plugin_details), 0, 0); | |
1822 gtk_misc_set_padding(GTK_MISC(plugin_details), 6, 6); | |
1823 gtk_notebook_append_page(GTK_NOTEBOOK(nb), sw, gtk_label_new(_("Details"))); | |
1824 gtk_box_pack_start(GTK_BOX(ret), nb, TRUE, TRUE, 0); | |
1825 | |
1826 g_signal_connect (G_OBJECT (sel), "changed", | |
1827 G_CALLBACK (prefs_plugin_sel), | |
1828 NULL); | |
1829 g_signal_connect (G_OBJECT(rend), "toggled", | |
1830 G_CALLBACK(plugin_load), ls); | |
1831 | |
1832 path = gtk_tree_path_new_first(); | |
1833 gtk_tree_selection_select_path(sel, path); | |
1834 gtk_tree_path_free(path); | |
1835 | |
1836 gaim_plugins_register_probe_notify_cb(update_plugin_list, ls); | |
1837 | |
1838 gtk_widget_show_all(ret); | |
1839 return ret; | |
1840 } | |
1841 | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1842 static void |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1843 event_toggled(GtkCellRendererToggle *cell, gchar *pth, gpointer data) |
5440 | 1844 { |
1845 GtkTreeModel *model = (GtkTreeModel *)data; | |
1846 GtkTreeIter iter; | |
1847 GtkTreePath *path = gtk_tree_path_new_from_string(pth); | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1848 const char *pref; |
5440 | 1849 |
1850 gtk_tree_model_get_iter (model, &iter, path); | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1851 gtk_tree_model_get (model, &iter, |
5612 | 1852 2, &pref, |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1853 -1); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1854 |
5684 | 1855 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
|
1856 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1857 gtk_list_store_set(GTK_LIST_STORE (model), &iter, |
5612 | 1858 0, !gtk_cell_renderer_toggle_get_active(cell), |
1859 -1); | |
5440 | 1860 |
1861 gtk_tree_path_free(path); | |
1862 } | |
1863 | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1864 static void |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1865 test_sound(GtkWidget *button, gpointer i_am_NULL) |
5440 | 1866 { |
5684 | 1867 char *pref; |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1868 gboolean temp_value1, temp_value2; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1869 |
5684 | 1870 pref = g_strdup_printf("/gaim/gtk/sound/enabled/%s", |
1871 gaim_gtk_sound_get_event_option(sound_row_sel)); | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1872 |
5821 | 1873 temp_value1 = gaim_prefs_get_bool("/core/sound/while_away"); |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1874 temp_value2 = gaim_prefs_get_bool(pref); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1875 |
5821 | 1876 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
|
1877 if (!temp_value2) gaim_prefs_set_bool(pref, TRUE); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1878 |
5440 | 1879 gaim_sound_play_event(sound_row_sel); |
1880 | |
5821 | 1881 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
|
1882 if (!temp_value2) gaim_prefs_set_bool(pref, FALSE); |
5684 | 1883 |
1884 g_free(pref); | |
5440 | 1885 } |
1886 | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1887 static void |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1888 reset_sound(GtkWidget *button, gpointer i_am_also_NULL) |
5440 | 1889 { |
5684 | 1890 char *pref = g_strdup_printf("/gaim/gtk/sound/file/%s", |
1891 gaim_gtk_sound_get_event_option(sound_row_sel)); | |
1892 | |
5440 | 1893 /* This just resets a sound file back to default */ |
5684 | 1894 gaim_prefs_set_string(pref, ""); |
1895 g_free(pref); | |
5440 | 1896 |
1897 gtk_entry_set_text(GTK_ENTRY(sound_entry), "(default)"); | |
1898 } | |
1899 | |
1900 void close_sounddialog(GtkWidget *w, GtkWidget *w2) | |
1901 { | |
1902 | |
1903 GtkWidget *dest; | |
1904 | |
1905 if (!GTK_IS_WIDGET(w2)) | |
1906 dest = w; | |
1907 else | |
1908 dest = w2; | |
1909 | |
1910 sounddialog = NULL; | |
1911 | |
1912 gtk_widget_destroy(dest); | |
1913 } | |
1914 | |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
1915 void do_select_sound(GtkWidget *w, gpointer data) |
5440 | 1916 { |
1917 const char *file; | |
5684 | 1918 char *pref; |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
1919 int snd; |
5440 | 1920 |
1921 file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(sounddialog)); | |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
1922 snd = GPOINTER_TO_INT(data); |
5440 | 1923 |
1924 /* If they type in a directory, change there */ | |
5966 | 1925 if (gaim_gtk_check_if_dir(file, GTK_FILE_SELECTION(sounddialog))) |
5440 | 1926 return; |
1927 | |
1928 /* Set it -- and forget it */ | |
5684 | 1929 pref = g_strdup_printf("/gaim/gtk/sound/file/%s", |
1930 gaim_gtk_sound_get_event_option(snd)); | |
1931 gaim_prefs_set_string(pref, file); | |
1932 g_free(pref); | |
5440 | 1933 |
1934 /* Set our text entry */ | |
1935 gtk_entry_set_text(GTK_ENTRY(sound_entry), file); | |
1936 | |
1937 /* Close the window! It's getting cold in here! */ | |
1938 close_sounddialog(NULL, sounddialog); | |
1939 | |
1940 if (last_sound_dir) | |
1941 g_free(last_sound_dir); | |
1942 last_sound_dir = g_path_get_dirname(file); | |
1943 } | |
1944 | |
1945 static void sel_sound(GtkWidget *button, gpointer being_NULL_is_fun) | |
1946 { | |
1947 char *buf = g_malloc(BUF_LEN); | |
1948 | |
1949 if (!sounddialog) { | |
1950 sounddialog = gtk_file_selection_new(_("Sound Selection")); | |
1951 | |
1952 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(sounddialog)); | |
1953 | |
1954 g_snprintf(buf, BUF_LEN - 1, "%s" G_DIR_SEPARATOR_S, last_sound_dir ? last_sound_dir : gaim_home_dir()); | |
1955 | |
1956 gtk_file_selection_set_filename(GTK_FILE_SELECTION(sounddialog), buf); | |
1957 | |
1958 g_signal_connect(G_OBJECT(sounddialog), "destroy", | |
1959 G_CALLBACK(close_sounddialog), sounddialog); | |
1960 | |
1961 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(sounddialog)->ok_button), | |
1962 "clicked", | |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
1963 G_CALLBACK(do_select_sound), GINT_TO_POINTER(sound_row_sel)); |
5440 | 1964 |
1965 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(sounddialog)->cancel_button), | |
1966 "clicked", | |
1967 G_CALLBACK(close_sounddialog), sounddialog); | |
1968 } | |
1969 | |
1970 g_free(buf); | |
1971 gtk_widget_show(sounddialog); | |
1972 gdk_window_raise(sounddialog->window); | |
1973 } | |
1974 | |
1975 | |
1976 static void prefs_sound_sel (GtkTreeSelection *sel, GtkTreeModel *model) { | |
1977 GtkTreeIter iter; | |
1978 GValue val = { 0, }; | |
5684 | 1979 const char *file; |
1980 char *pref; | |
5440 | 1981 |
1982 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) | |
1983 return; | |
5612 | 1984 gtk_tree_model_get_value (model, &iter, 3, &val); |
5440 | 1985 sound_row_sel = g_value_get_uint(&val); |
5684 | 1986 |
1987 pref = g_strdup_printf("/gaim/gtk/sound/file/%s", | |
1988 gaim_gtk_sound_get_event_option(sound_row_sel)); | |
1989 file = gaim_prefs_get_string(pref); | |
1990 g_free(pref); | |
5440 | 1991 if (sound_entry) |
6088 | 1992 gtk_entry_set_text(GTK_ENTRY(sound_entry), (file && *file != '\0') ? file : "(default)"); |
5440 | 1993 g_value_unset (&val); |
1994 if (sounddialog) | |
1995 gtk_widget_destroy(sounddialog); | |
1996 } | |
1997 | |
1998 GtkWidget *sound_events_page() { | |
1999 | |
2000 GtkWidget *ret; | |
2001 GtkWidget *sw; | |
2002 GtkWidget *button, *hbox; | |
2003 GtkTreeIter iter; | |
2004 GtkWidget *event_view; | |
2005 GtkListStore *event_store; | |
2006 GtkCellRenderer *rend; | |
2007 GtkTreeViewColumn *col; | |
2008 GtkTreeSelection *sel; | |
2009 GtkTreePath *path; | |
2010 int j; | |
5684 | 2011 const char *file; |
2012 char *pref; | |
5440 | 2013 |
2014 ret = gtk_vbox_new(FALSE, 18); | |
2015 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
2016 | |
2017 sw = gtk_scrolled_window_new(NULL,NULL); | |
2018 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); | |
2019 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); | |
2020 | |
2021 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); | |
5612 | 2022 event_store = gtk_list_store_new (4, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT); |
5440 | 2023 |
2024 for (j=0; j < GAIM_NUM_SOUNDS; j++) { | |
5684 | 2025 char *pref = g_strdup_printf("/gaim/gtk/sound/enabled/%s", |
2026 gaim_gtk_sound_get_event_option(j)); | |
2027 const char *label = gaim_gtk_sound_get_event_label(j); | |
2028 | |
5870 | 2029 if (label == NULL) { |
2030 g_free(pref); | |
5440 | 2031 continue; |
5870 | 2032 } |
5440 | 2033 |
2034 gtk_list_store_append (event_store, &iter); | |
2035 gtk_list_store_set(event_store, &iter, | |
5612 | 2036 0, gaim_prefs_get_bool(pref), |
5684 | 2037 1, _(label), |
5612 | 2038 2, pref, |
2039 3, j, | |
2040 -1); | |
5684 | 2041 g_free(pref); |
5440 | 2042 } |
2043 | |
2044 event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(event_store)); | |
2045 | |
2046 rend = gtk_cell_renderer_toggle_new(); | |
2047 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); | |
2048 g_signal_connect (G_OBJECT (sel), "changed", | |
2049 G_CALLBACK (prefs_sound_sel), | |
2050 NULL); | |
2051 g_signal_connect (G_OBJECT(rend), "toggled", | |
2052 G_CALLBACK(event_toggled), event_store); | |
2053 path = gtk_tree_path_new_first(); | |
2054 gtk_tree_selection_select_path(sel, path); | |
2055 gtk_tree_path_free(path); | |
2056 | |
2057 col = gtk_tree_view_column_new_with_attributes (_("Play"), | |
2058 rend, | |
2059 "active", 0, | |
2060 NULL); | |
2061 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
2062 | |
2063 rend = gtk_cell_renderer_text_new(); | |
2064 col = gtk_tree_view_column_new_with_attributes (_("Event"), | |
2065 rend, | |
2066 "text", 1, | |
2067 NULL); | |
2068 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
2069 g_object_unref(G_OBJECT(event_store)); | |
2070 gtk_container_add(GTK_CONTAINER(sw), event_view); | |
2071 | |
2072 hbox = gtk_hbox_new(FALSE, 6); | |
2073 gtk_box_pack_start(GTK_BOX(ret), hbox, FALSE, FALSE, 0); | |
2074 sound_entry = gtk_entry_new(); | |
5684 | 2075 pref = g_strdup_printf("/gaim/gtk/sound/file/%s", |
2076 gaim_gtk_sound_get_event_option(0)); | |
2077 file = gaim_prefs_get_string(pref); | |
2078 g_free(pref); | |
6088 | 2079 gtk_entry_set_text(GTK_ENTRY(sound_entry), (file && *file != '\0') ? file : "(default)"); |
5440 | 2080 gtk_editable_set_editable(GTK_EDITABLE(sound_entry), FALSE); |
2081 gtk_box_pack_start(GTK_BOX(hbox), sound_entry, FALSE, FALSE, 5); | |
2082 | |
2083 button = gtk_button_new_with_label(_("Test")); | |
2084 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(test_sound), NULL); | |
2085 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); | |
2086 | |
2087 button = gtk_button_new_with_label(_("Reset")); | |
2088 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(reset_sound), NULL); | |
2089 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); | |
2090 | |
2091 button = gtk_button_new_with_label(_("Choose...")); | |
2092 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(sel_sound), NULL); | |
2093 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); | |
2094 | |
2095 gtk_widget_show_all (ret); | |
2096 | |
2097 return ret; | |
2098 } | |
2099 | |
6979 | 2100 static void away_message_sel_cb(GtkTreeSelection *sel, GtkTreeModel *model) |
5440 | 2101 { |
2102 GtkTreeIter iter; | |
2103 GValue val = { 0, }; | |
2104 gchar buffer[BUF_LONG]; | |
2105 char *tmp; | |
2106 struct away_message *am; | |
2107 | |
2108 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) | |
2109 return; | |
2110 gtk_tree_model_get_value (model, &iter, 1, &val); | |
2111 am = g_value_get_pointer(&val); | |
2112 gtk_imhtml_clear(GTK_IMHTML(away_text)); | |
2113 strncpy(buffer, am->message, BUF_LONG); | |
2114 tmp = stylize(buffer, BUF_LONG); | |
6982 | 2115 gtk_imhtml_append_text(GTK_IMHTML(away_text), tmp, GTK_IMHTML_NO_TITLE | |
5440 | 2116 GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_SCROLL); |
6982 | 2117 gtk_imhtml_append_text(GTK_IMHTML(away_text), "<BR>", GTK_IMHTML_NO_TITLE | |
5440 | 2118 GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_SCROLL); |
2119 g_free(tmp); | |
2120 g_value_unset (&val); | |
2121 | |
2122 } | |
2123 | |
6979 | 2124 static gboolean away_message_click_cb(GtkWidget *tv, GdkEventButton *event, gpointer null) |
2125 { | |
2126 /* Only respond to double click on button 1 */ | |
2127 if ((event->button != 1) || (event->type != GDK_2BUTTON_PRESS)) | |
2128 return FALSE; | |
2129 | |
2130 /* Show the edit away message dialog */ | |
2131 create_away_mess(NULL, tv); | |
2132 | |
2133 return FALSE; | |
2134 } | |
2135 | |
5440 | 2136 void remove_away_message(GtkWidget *widget, GtkTreeView *tv) { |
6016 | 2137 struct away_message *am; |
5440 | 2138 GtkTreeIter iter; |
2139 GtkTreeSelection *sel = gtk_tree_view_get_selection(tv); | |
2140 GtkTreeModel *model = GTK_TREE_MODEL(prefs_away_store); | |
2141 GValue val = { 0, }; | |
2142 | |
2143 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) | |
2144 return; | |
2145 gtk_tree_model_get_value (GTK_TREE_MODEL(prefs_away_store), &iter, 1, &val); | |
2146 am = g_value_get_pointer (&val); | |
2147 gtk_imhtml_clear(GTK_IMHTML(away_text)); | |
2148 rem_away_mess(NULL, am); | |
2149 } | |
2150 | |
2151 GtkWidget *away_message_page() { | |
2152 GtkWidget *ret; | |
2153 GtkWidget *hbox; | |
2154 GtkWidget *button; | |
2155 GtkWidget *sw; | |
2156 GtkTreeIter iter; | |
2157 GtkWidget *event_view; | |
2158 GtkCellRenderer *rend; | |
2159 GtkTreeViewColumn *col; | |
2160 GtkTreeSelection *sel; | |
2161 GSList *awy = away_messages; | |
2162 struct away_message *a; | |
2163 GtkSizeGroup *sg; | |
2164 | |
2165 ret = gtk_vbox_new(FALSE, 18); | |
2166 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
2167 | |
2168 sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); | |
2169 | |
2170 sw = gtk_scrolled_window_new(NULL,NULL); | |
7931 | 2171 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
7929 | 2172 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
5440 | 2173 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); |
2174 | |
2175 prefs_away_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER); | |
2176 while (awy) { | |
2177 a = (struct away_message *)awy->data; | |
2178 gtk_list_store_append (prefs_away_store, &iter); | |
2179 gtk_list_store_set(prefs_away_store, &iter, | |
2180 0, a->name, | |
2181 1, a, -1); | |
2182 awy = awy->next; | |
2183 } | |
2184 event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(prefs_away_store)); | |
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); | |
7931 | 2194 gtk_container_add(GTK_CONTAINER(sw), event_view); |
5440 | 2195 |
7929 | 2196 sw = gtk_scrolled_window_new(NULL, NULL); |
7931 | 2197 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
7929 | 2198 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), |
5440 | 2199 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
7929 | 2200 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); |
2201 | |
2202 away_text = gtk_imhtml_new(NULL, NULL); | |
7931 | 2203 gtk_container_add(GTK_CONTAINER(sw), away_text); |
2204 | |
5440 | 2205 gaim_setup_imhtml(away_text); |
2206 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); | |
6979 | 2207 g_signal_connect(G_OBJECT(sel), "changed", |
2208 G_CALLBACK(away_message_sel_cb), NULL); | |
2209 g_signal_connect(G_OBJECT(event_view), "button-press-event", | |
2210 G_CALLBACK(away_message_click_cb), NULL); | |
5440 | 2211 hbox = gtk_hbox_new(TRUE, 5); |
2212 gtk_box_pack_start(GTK_BOX(ret), hbox, FALSE, FALSE, 0); | |
2213 button = gtk_button_new_from_stock (GTK_STOCK_ADD); | |
2214 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
2215 gtk_size_group_add_widget(sg, button); | |
2216 g_signal_connect(G_OBJECT(button), "clicked", | |
2217 G_CALLBACK(create_away_mess), NULL); | |
2218 | |
2219 button = gtk_button_new_from_stock (GTK_STOCK_REMOVE); | |
2220 gtk_size_group_add_widget(sg, button); | |
2221 g_signal_connect(G_OBJECT(button), "clicked", | |
2222 G_CALLBACK(remove_away_message), event_view); | |
2223 | |
2224 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
2225 | |
2226 button = gaim_pixbuf_button_from_stock(_("_Edit"), GAIM_STOCK_EDIT, GAIM_BUTTON_HORIZONTAL); | |
2227 gtk_size_group_add_widget(sg, button); | |
2228 g_signal_connect(G_OBJECT(button), "clicked", | |
2229 G_CALLBACK(create_away_mess), event_view); | |
2230 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
2231 | |
2232 gtk_widget_show_all(ret); | |
2233 return ret; | |
2234 } | |
2235 | |
2236 GtkTreeIter *prefs_notebook_add_page(const char *text, | |
2237 GdkPixbuf *pixbuf, | |
2238 GtkWidget *page, | |
2239 GtkTreeIter *iter, | |
2240 GtkTreeIter *parent, | |
2241 int ind) { | |
2242 GdkPixbuf *icon = NULL; | |
2243 | |
2244 if (pixbuf) | |
2245 icon = gdk_pixbuf_scale_simple (pixbuf, 18, 18, GDK_INTERP_BILINEAR); | |
2246 | |
2247 gtk_tree_store_append (prefstree, iter, parent); | |
2248 gtk_tree_store_set (prefstree, iter, 0, icon, 1, text, 2, ind, -1); | |
2249 | |
2250 if (pixbuf) | |
2251 g_object_unref(pixbuf); | |
2252 if (icon) | |
2253 g_object_unref(icon); | |
2254 gtk_notebook_append_page(GTK_NOTEBOOK(prefsnotebook), page, gtk_label_new(text)); | |
2255 return iter; | |
2256 } | |
2257 | |
2258 void prefs_notebook_init() { | |
2259 GtkTreeIter p, p2, c; | |
2260 GList *l; | |
2261 GaimPlugin *plug; | |
2262 prefs_notebook_add_page(_("Interface"), NULL, interface_page(), &p, NULL, notebook_page++); | |
2263 prefs_notebook_add_page(_("Smiley Themes"), NULL, theme_page(), &c, &p, notebook_page++); | |
2264 prefs_notebook_add_page(_("Fonts"), NULL, font_page(), &c, &p, notebook_page++); | |
2265 prefs_notebook_add_page(_("Message Text"), NULL, messages_page(), &c, &p, notebook_page++); | |
2266 prefs_notebook_add_page(_("Shortcuts"), NULL, hotkeys_page(), &c, &p, notebook_page++); | |
2267 prefs_notebook_add_page(_("Buddy List"), NULL, list_page(), &c, &p, notebook_page++); | |
2268 prefs_notebook_add_page(_("Conversations"), NULL, conv_page(), &p2, NULL, notebook_page++); | |
2269 prefs_notebook_add_page(_("IMs"), NULL, im_page(), &c, &p2, notebook_page++); | |
2270 prefs_notebook_add_page(_("Chats"), NULL, chat_page(), &c, &p2, notebook_page++); | |
2271 prefs_notebook_add_page(_("Proxy"), NULL, proxy_page(), &p, NULL, notebook_page++); | |
2272 #ifndef _WIN32 | |
2273 /* We use the registered default browser in windows */ | |
2274 prefs_notebook_add_page(_("Browser"), NULL, browser_page(), &p, NULL, notebook_page++); | |
2275 #endif | |
2276 prefs_notebook_add_page(_("Logging"), NULL, logging_page(), &p, NULL, notebook_page++); | |
2277 prefs_notebook_add_page(_("Sounds"), NULL, sound_page(), &p, NULL, notebook_page++); | |
2278 prefs_notebook_add_page(_("Sound Events"), NULL, sound_events_page(), &c, &p, notebook_page++); | |
2279 prefs_notebook_add_page(_("Away / Idle"), NULL, away_page(), &p, NULL, notebook_page++); | |
2280 prefs_notebook_add_page(_("Away Messages"), NULL, away_message_page(), &c, &p, notebook_page++); | |
2281 | |
2282 if (gaim_plugins_enabled()) { | |
2283 prefs_notebook_add_page(_("Plugins"), NULL, plugin_page(), &plugin_iter, NULL, notebook_page++); | |
2284 | |
2285 for (l = gaim_plugins_get_loaded(); l != NULL; l = l->next) { | |
2286 plug = l->data; | |
2287 | |
2288 if (GAIM_IS_GTK_PLUGIN(plug)) { | |
2289 GtkWidget *config_frame; | |
2290 GaimGtkPluginUiInfo *ui_info; | |
2291 | |
2292 ui_info = GAIM_GTK_PLUGIN_UI_INFO(plug); | |
2293 config_frame = gaim_gtk_plugin_get_config_frame(plug); | |
2294 | |
2295 if (config_frame != NULL) { | |
2296 ui_info->iter = g_new0(GtkTreeIter, 1); | |
2297 prefs_notebook_add_page(_(plug->info->name), NULL, | |
2298 config_frame, ui_info->iter, | |
2299 &plugin_iter, notebook_page++); | |
2300 } | |
2301 } | |
2302 } | |
2303 } | |
2304 } | |
2305 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2306 void gaim_gtk_prefs_show(void) |
5440 | 2307 { |
2308 GtkWidget *vbox, *vbox2; | |
2309 GtkWidget *hbox; | |
2310 GtkWidget *frame; | |
2311 GtkTreeViewColumn *column; | |
2312 GtkCellRenderer *cell; | |
2313 GtkTreeSelection *sel; | |
2314 GtkWidget *notebook; | |
2315 GtkWidget *sep; | |
2316 GtkWidget *button; | |
2317 GtkSizeGroup *sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); | |
2318 | |
2319 if (prefs) { | |
2320 gtk_window_present(GTK_WINDOW(prefs)); | |
2321 return; | |
2322 } | |
2323 | |
2324 /* copy the preferences to tmp values... | |
2325 * I liked "take affect immediately" Oh well :-( */ | |
6016 | 2326 /* (that should have been "effect," right?) */ |
2327 | |
5440 | 2328 /* Back to instant-apply! I win! BU-HAHAHA! */ |
2329 | |
2330 /* Create the window */ | |
2331 prefs = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
2332 gtk_window_set_role(GTK_WINDOW(prefs), "preferences"); | |
2333 gtk_widget_realize(prefs); | |
2334 gtk_window_set_title(GTK_WINDOW(prefs), _("Preferences")); | |
2335 gtk_window_set_resizable (GTK_WINDOW(prefs), FALSE); | |
2336 g_signal_connect(G_OBJECT(prefs), "destroy", | |
2337 G_CALLBACK(delete_prefs), NULL); | |
2338 | |
2339 vbox = gtk_vbox_new(FALSE, 5); | |
2340 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); | |
2341 gtk_container_add(GTK_CONTAINER(prefs), vbox); | |
2342 gtk_widget_show(vbox); | |
2343 | |
2344 hbox = gtk_hbox_new (FALSE, 6); | |
2345 gtk_container_set_border_width (GTK_CONTAINER (hbox), 6); | |
2346 gtk_container_add (GTK_CONTAINER(vbox), hbox); | |
2347 gtk_widget_show (hbox); | |
2348 | |
2349 frame = gtk_frame_new (NULL); | |
2350 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); | |
2351 gtk_box_pack_start (GTK_BOX (hbox), frame, FALSE, FALSE, 0); | |
2352 gtk_widget_show (frame); | |
2353 | |
2354 /* The tree -- much inspired by the Gimp */ | |
2355 prefstree = gtk_tree_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_INT); | |
2356 tree_v = gtk_tree_view_new_with_model (GTK_TREE_MODEL (prefstree)); | |
2357 gtk_container_add (GTK_CONTAINER (frame), tree_v); | |
2358 | |
2359 gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_v), FALSE); | |
2360 gtk_widget_show(tree_v); | |
2361 /* icons */ | |
2362 /* XXX: to be used at a later date | |
2363 cell = gtk_cell_renderer_pixbuf_new (); | |
2364 column = gtk_tree_view_column_new_with_attributes ("icons", cell, "pixbuf", 0, NULL); | |
2365 */ | |
2366 | |
2367 /* text */ | |
2368 cell = gtk_cell_renderer_text_new (); | |
2369 column = gtk_tree_view_column_new_with_attributes ("text", cell, "text", 1, NULL); | |
2370 | |
2371 gtk_tree_view_append_column (GTK_TREE_VIEW (tree_v), column); | |
2372 | |
2373 /* The right side */ | |
2374 frame = gtk_frame_new (NULL); | |
2375 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); | |
2376 gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, 0); | |
2377 gtk_widget_show (frame); | |
2378 | |
2379 vbox2 = gtk_vbox_new (FALSE, 4); | |
2380 gtk_container_add (GTK_CONTAINER (frame), vbox2); | |
2381 gtk_widget_show (vbox2); | |
2382 | |
2383 frame = gtk_frame_new (NULL); | |
2384 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT); | |
2385 gtk_box_pack_start (GTK_BOX (vbox2), frame, FALSE, TRUE, 0); | |
2386 gtk_widget_show (frame); | |
2387 | |
2388 hbox = gtk_hbox_new (FALSE, 4); | |
2389 gtk_container_set_border_width (GTK_CONTAINER (hbox), 4); | |
2390 gtk_container_add (GTK_CONTAINER (frame), hbox); | |
2391 gtk_widget_show (hbox); | |
2392 | |
2393 preflabel = gtk_label_new(NULL); | |
2394 gtk_box_pack_end (GTK_BOX (hbox), preflabel, FALSE, FALSE, 0); | |
2395 gtk_widget_show (preflabel); | |
2396 | |
2397 /* The notebook */ | |
2398 prefsnotebook = notebook = gtk_notebook_new (); | |
2399 gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE); | |
2400 gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE); | |
2401 gtk_box_pack_start (GTK_BOX (vbox2), notebook, FALSE, FALSE, 0); | |
2402 | |
2403 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_v)); | |
2404 g_signal_connect (G_OBJECT (sel), "changed", | |
2405 G_CALLBACK (pref_nb_select), | |
2406 notebook); | |
2407 gtk_widget_show(notebook); | |
2408 sep = gtk_hseparator_new(); | |
2409 gtk_widget_show(sep); | |
2410 gtk_box_pack_start (GTK_BOX (vbox), sep, FALSE, FALSE, 0); | |
2411 | |
2412 /* The buttons^H to press! */ | |
2413 hbox = gtk_hbox_new (FALSE, 6); | |
2414 gtk_container_set_border_width (GTK_CONTAINER (hbox), 6); | |
2415 gtk_container_add (GTK_CONTAINER(vbox), hbox); | |
2416 gtk_widget_show (hbox); | |
2417 | |
2418 button = gtk_button_new_from_stock (GTK_STOCK_CLOSE); | |
2419 gtk_size_group_add_widget(sg, button); | |
2420 g_signal_connect_swapped(G_OBJECT(button), "clicked", | |
2421 G_CALLBACK(gtk_widget_destroy), prefs); | |
2422 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
2423 gtk_widget_show(button); | |
2424 | |
2425 prefs_notebook_init(); | |
2426 | |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
2427 /* Show everything. */ |
5440 | 2428 gtk_tree_view_expand_all (GTK_TREE_VIEW(tree_v)); |
2429 gtk_widget_show(prefs); | |
2430 } | |
2431 | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2432 #if 0 |
5440 | 2433 static void set_logging_option(GtkWidget *w, int option) |
2434 { | |
2435 logging_options ^= option; | |
2436 | |
2437 if (option == OPT_LOG_CONVOS || option == OPT_LOG_CHATS) | |
2438 update_log_convs(); | |
2439 } | |
2440 | |
2441 static void set_convo_option(GtkWidget *w, int option) | |
2442 { | |
2443 convo_options ^= option; | |
2444 | |
2445 if (option == OPT_CONVO_SHOW_SMILEY) | |
2446 gaim_gtkconv_toggle_smileys(); | |
2447 | |
2448 if (option == OPT_CONVO_SHOW_TIME) | |
2449 gaim_gtkconv_toggle_timestamps(); | |
2450 } | |
2451 | |
2452 static void set_im_option(GtkWidget *w, int option) | |
2453 { | |
2454 im_options ^= option; | |
2455 | |
2456 #if 0 | |
2457 if (option == OPT_IM_ONE_WINDOW) | |
2458 im_tabize(); | |
2459 #endif | |
2460 } | |
2461 | |
2462 static void set_chat_option(GtkWidget *w, int option) | |
2463 { | |
2464 chat_options ^= option; | |
2465 | |
2466 #if 0 | |
2467 if (option == OPT_CHAT_ONE_WINDOW) | |
2468 chat_tabize(); | |
2469 #endif | |
2470 } | |
2471 | |
2472 static void set_away_option(GtkWidget *w, int option) | |
2473 { | |
2474 away_options ^= option; | |
2475 | |
2476 if (option == OPT_AWAY_QUEUE) | |
2477 toggle_away_queue(); | |
2478 } | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2479 #endif |
5440 | 2480 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2481 static void |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2482 set_bool_pref(GtkWidget *w, const char *key) |
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 gaim_prefs_set_bool(key, |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2485 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2486 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2487 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2488 static GtkWidget * |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2489 prefs_checkbox(const char *text, const char *key, GtkWidget *page) |
5440 | 2490 { |
2491 GtkWidget *button; | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2492 |
5440 | 2493 button = gtk_check_button_new_with_mnemonic(text); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2494 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2495 gaim_prefs_get_bool(key)); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2496 |
5440 | 2497 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
|
2498 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2499 g_signal_connect(G_OBJECT(button), "clicked", |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2500 G_CALLBACK(set_bool_pref), (char *)key); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2501 |
5440 | 2502 gtk_widget_show(button); |
2503 | |
2504 return button; | |
2505 } | |
2506 | |
2507 void default_away_menu_init(GtkWidget *omenu) | |
2508 { | |
2509 GtkWidget *menu, *opt; | |
6216 | 2510 int index = 0, default_index = 0; |
5440 | 2511 GSList *awy = away_messages; |
2512 struct away_message *a; | |
6216 | 2513 const char *default_name; |
5440 | 2514 |
2515 menu = gtk_menu_new(); | |
2516 | |
6216 | 2517 default_name = gaim_prefs_get_string("/core/away/default_message"); |
2518 | |
5440 | 2519 while (awy) { |
2520 a = (struct away_message *)awy->data; | |
2521 opt = gtk_menu_item_new_with_label(a->name); | |
2522 g_signal_connect(G_OBJECT(opt), "activate", | |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
2523 G_CALLBACK(set_default_away), GINT_TO_POINTER(index)); |
5440 | 2524 gtk_widget_show(opt); |
2525 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); | |
2526 | |
6216 | 2527 if(!strcmp(default_name, a->name)) |
2528 default_index = index; | |
2529 | |
5440 | 2530 awy = awy->next; |
2531 index++; | |
2532 } | |
2533 | |
2534 gtk_option_menu_remove_menu(GTK_OPTION_MENU(omenu)); | |
2535 gtk_option_menu_set_menu(GTK_OPTION_MENU(omenu), menu); | |
6216 | 2536 gtk_option_menu_set_history(GTK_OPTION_MENU(omenu), default_index); |
5440 | 2537 } |
2538 | |
2539 GtkWidget *pref_fg_picture = NULL; | |
2540 GtkWidget *pref_bg_picture = NULL; | |
2541 | |
2542 void destroy_colorsel(GtkWidget *w, gpointer d) | |
2543 { | |
2544 if (d) { | |
2545 gtk_widget_destroy(fgcseld); | |
2546 fgcseld = NULL; | |
2547 } else { | |
2548 gtk_widget_destroy(bgcseld); | |
2549 bgcseld = NULL; | |
2550 } | |
2551 } | |
2552 | |
2553 void apply_color_dlg(GtkWidget *w, gpointer d) | |
2554 { | |
5671 | 2555 char buf[14]; |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2556 |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
2557 if (GPOINTER_TO_INT(d) == 1) { |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2558 GdkColor fgcolor; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2559 |
5440 | 2560 gtk_color_selection_get_current_color(GTK_COLOR_SELECTION |
2561 (GTK_COLOR_SELECTION_DIALOG(fgcseld)->colorsel), | |
2562 &fgcolor); | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2563 |
5671 | 2564 g_snprintf(buf, sizeof(buf), "#%04x%04x%04x", |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2565 fgcolor.red, fgcolor.green, fgcolor.blue); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2566 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2567 gaim_prefs_set_string("/gaim/gtk/conversations/fgcolor", buf); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2568 |
5440 | 2569 destroy_colorsel(NULL, (void *)1); |
2570 update_color(NULL, pref_fg_picture); | |
2571 } else { | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2572 GdkColor bgcolor; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2573 |
5440 | 2574 gtk_color_selection_get_current_color(GTK_COLOR_SELECTION |
2575 (GTK_COLOR_SELECTION_DIALOG(bgcseld)->colorsel), | |
2576 &bgcolor); | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2577 |
5671 | 2578 g_snprintf(buf, sizeof(buf), "#%04x%04x%04x", |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2579 bgcolor.red, bgcolor.green, bgcolor.blue); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2580 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2581 gaim_prefs_set_string("/gaim/gtk/conversations/bgcolor", buf); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2582 |
5440 | 2583 destroy_colorsel(NULL, (void *)0); |
2584 update_color(NULL, pref_bg_picture); | |
2585 } | |
2586 gaim_conversation_foreach(gaim_gtkconv_update_font_colors); | |
2587 } | |
2588 | |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
2589 void set_default_away(GtkWidget *w, gpointer data) |
5440 | 2590 { |
6216 | 2591 struct away_message *default_away = NULL; |
5440 | 2592 int length = g_slist_length(away_messages); |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
2593 int i = GPOINTER_TO_INT(data); |
5440 | 2594 |
2595 if (away_messages == NULL) | |
2596 default_away = NULL; | |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
2597 else if (i >= length) |
5440 | 2598 default_away = g_slist_nth_data(away_messages, length - 1); |
2599 else | |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
2600 default_away = g_slist_nth_data(away_messages, i); |
6216 | 2601 |
2602 if(default_away) | |
2603 gaim_prefs_set_string("/core/away/default_message", default_away->name); | |
2604 else | |
2605 gaim_prefs_set_string("/core/away/default_message", ""); | |
5440 | 2606 } |
2607 | |
2608 static GtkWidget *show_color_pref(GtkWidget *box, gboolean fgc) | |
2609 { | |
2610 /* more stuff stolen from X-Chat */ | |
2611 GtkWidget *swid; | |
2612 GdkColor c; | |
2613 GtkStyle *style; | |
2614 c.pixel = 0; | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2615 |
5440 | 2616 if (fgc) { |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2617 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
|
2618 GdkColor fgcolor; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2619 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2620 gdk_color_parse( |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2621 gaim_prefs_get_string("/gaim/gtk/conversations/fgcolor"), |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2622 &fgcolor); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2623 |
5440 | 2624 c.red = fgcolor.red; |
2625 c.blue = fgcolor.blue; | |
2626 c.green = fgcolor.green; | |
2627 } else { | |
2628 c.red = 0; | |
2629 c.blue = 0; | |
2630 c.green = 0; | |
2631 } | |
2632 } else { | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2633 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
|
2634 GdkColor bgcolor; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2635 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2636 gdk_color_parse( |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2637 gaim_prefs_get_string("/gaim/gtk/conversations/bgcolor"), |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2638 &bgcolor); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2639 |
5440 | 2640 c.red = bgcolor.red; |
2641 c.blue = bgcolor.blue; | |
2642 c.green = bgcolor.green; | |
2643 } else { | |
2644 c.red = 0xffff; | |
2645 c.blue = 0xffff; | |
2646 c.green = 0xffff; | |
2647 } | |
2648 } | |
2649 | |
2650 style = gtk_style_new(); | |
2651 style->bg[0] = c; | |
2652 | |
2653 swid = gtk_event_box_new(); | |
2654 gtk_widget_set_style(GTK_WIDGET(swid), style); | |
2655 g_object_unref(style); | |
2656 gtk_widget_set_size_request(GTK_WIDGET(swid), 40, -1); | |
2657 gtk_box_pack_start(GTK_BOX(box), swid, FALSE, FALSE, 5); | |
2658 gtk_widget_show(swid); | |
2659 return swid; | |
2660 } | |
2661 | |
2662 void apply_font_dlg(GtkWidget *w, GtkWidget *f) | |
2663 { | |
7079 | 2664 char *fontname, *space; |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2665 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2666 fontname = |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2667 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
|
2668 |
5440 | 2669 destroy_fontsel(0, 0); |
2670 | |
7079 | 2671 space = strrchr(fontname, ' '); |
2672 if(space && isdigit(*(space+1))) | |
2673 *space = '\0'; | |
5440 | 2674 |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2675 gaim_prefs_set_string("/gaim/gtk/conversations/font_face", fontname); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2676 |
5440 | 2677 g_free(fontname); |
2678 | |
2679 gaim_conversation_foreach(gaim_gtkconv_update_font_face); | |
2680 } | |
2681 | |
5770
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2682 static void |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2683 smiley_theme_pref_cb(const char *name, GaimPrefType type, gpointer value, |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2684 gpointer data) |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2685 { |
5841 | 2686 if (!strcmp(name, "/gaim/gtk/smileys/theme")) |
5771
f63a008726c6
[gaim-migrate @ 6196]
Christian Hammond <chipx86@chipx86.com>
parents:
5770
diff
changeset
|
2687 load_smiley_theme((const char *)value, TRUE); |
5770
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2688 } |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2689 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2690 void |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2691 gaim_gtk_prefs_init(void) |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2692 { |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2693 gaim_prefs_add_none("/gaim"); |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2694 gaim_prefs_add_none("/gaim/gtk"); |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2695 gaim_prefs_add_none("/plugins/gtk"); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2696 |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2697 /* XXX Move this! HACK! :( Aww... */ |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2698 gaim_prefs_add_none("/plugins/gtk/docklet"); |
5554
7b36d02031a2
[gaim-migrate @ 5955]
Christian Hammond <chipx86@chipx86.com>
parents:
5551
diff
changeset
|
2699 gaim_prefs_add_bool("/plugins/gtk/docklet/queue_messages", FALSE); |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2700 |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
2701 /* Accounts Dialog */ |
5567
cc9ddec20010
[gaim-migrate @ 5969]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
2702 gaim_prefs_add_none("/gaim/gtk/accounts"); |
cc9ddec20010
[gaim-migrate @ 5969]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
2703 gaim_prefs_add_none("/gaim/gtk/accounts/dialog"); |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
2704 gaim_prefs_add_int("/gaim/gtk/accounts/dialog/width", 550); |
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
2705 gaim_prefs_add_int("/gaim/gtk/accounts/dialog/height", 250); |
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
2706 |
5573
5e7de337a053
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5568
diff
changeset
|
2707 /* Away Queueing */ |
5e7de337a053
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5568
diff
changeset
|
2708 gaim_prefs_add_none("/gaim/gtk/away"); |
5e7de337a053
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5568
diff
changeset
|
2709 gaim_prefs_add_bool("/gaim/gtk/away/queue_messages", FALSE); |
5e7de337a053
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5568
diff
changeset
|
2710 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2711 /* Browsers */ |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2712 gaim_prefs_add_none("/gaim/gtk/browsers"); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2713 gaim_prefs_add_bool("/gaim/gtk/browsers/new_window", FALSE); |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
2714 gaim_prefs_add_string("/gaim/gtk/browsers/command", ""); |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
2715 gaim_prefs_add_string("/gaim/gtk/browsers/browser", "mozilla"); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2716 |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2717 /* Idle */ |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2718 gaim_prefs_add_none("/gaim/gtk/idle"); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2719 gaim_prefs_add_string("/gaim/gtk/idle/reporting_method", "system"); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2720 |
5949
90d0849abd3c
[gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
2721 /* Plugins */ |
5982
35d3c1ac5ece
[gaim-migrate @ 6430]
Christian Hammond <chipx86@chipx86.com>
parents:
5981
diff
changeset
|
2722 gaim_prefs_add_none("/gaim/gtk/plugins"); |
5949
90d0849abd3c
[gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
2723 gaim_prefs_add_string_list("/gaim/gtk/plugins/loaded", NULL); |
90d0849abd3c
[gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
2724 |
5539
de09863bd4b5
[gaim-migrate @ 5939]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
2725 /* Smiley Themes */ |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
2726 gaim_prefs_add_none("/gaim/gtk/smileys"); |
5771
f63a008726c6
[gaim-migrate @ 6196]
Christian Hammond <chipx86@chipx86.com>
parents:
5770
diff
changeset
|
2727 gaim_prefs_add_string("/gaim/gtk/smileys/theme", ""); |
5770
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2728 |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2729 /* Smiley Callbacks */ |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2730 gaim_prefs_connect_callback("/gaim/gtk/smileys/theme", |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2731 smiley_theme_pref_cb, NULL); |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2732 } |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2733 |