Mercurial > pidgin
annotate src/gtkprefs.c @ 7778:3db18c16f573
[gaim-migrate @ 8423]
This is half-complete, but I want to make sure I commit it before I really
totally screw it up and have no clue where it went sour. You can now copy
from and paste to a gtkimhtml and retain formatting... to some extent.
It's really easy to break. The parser isn't finished yet, so if some things
are really important to you, like, say, links, don't use this.
committer: Tailor Script <tailor@pidgin.im>
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Sat, 06 Dec 2003 21:32:20 +0000 |
parents | 36727d6e1d5a |
children | 0fb10479a6a3 |
rev | line source |
---|---|
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1 /** |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2 * @file gtkprefs.c GTK+ Preferences |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
3 * @ingroup gtkui |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
4 * |
5440 | 5 * gaim |
6 * | |
7 * Copyright (C) 1998-2002, Mark Spencer <markster@marko.net> | |
8 * | |
9 * This program is free software; you can redistribute it and/or modify | |
10 * it under the terms of the GNU General Public License as published by | |
11 * the Free Software Foundation; either version 2 of the License, or | |
12 * (at your option) any later version. | |
13 * | |
14 * This program is distributed in the hope that it will be useful, | |
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 * GNU General Public License for more details. | |
18 * | |
19 * You should have received a copy of the GNU General Public License | |
20 * along with this program; if not, write to the Free Software | |
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
22 * | |
23 */ | |
6371
8f94cce8faa5
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6216
diff
changeset
|
24 #include "gtkinternal.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
25 |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
26 #include "debug.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
27 #include "notify.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
28 #include "prefs.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
29 #include "proxy.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
30 #include "prpl.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
31 #include "sound.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
32 #include "util.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
33 |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
34 #include "gtkblist.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
35 #include "gtkconv.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
36 #include "gtkdebug.h" |
5440 | 37 #include "gtkimhtml.h" |
38 #include "gtkplugin.h" | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
39 #include "gtkprefs.h" |
5684 | 40 #include "gtksound.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
41 #include "gtkutils.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
42 #include "stock.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
43 |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
44 #include "ui.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
45 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
46 #define PROXYHOST 0 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
47 #define PROXYPORT 1 |
6005 | 48 #define PROXYUSER 2 |
49 #define PROXYPASS 3 | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
50 |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
51 /* XXX This needs to be made static after we solve the away.c mess. */ |
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
52 GtkListStore *prefs_away_store = NULL; |
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
53 GtkWidget *prefs_away_menu = NULL; |
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
54 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
55 static GtkWidget *tree_v = NULL; |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
56 |
5440 | 57 |
58 static int sound_row_sel = 0; | |
59 static char *last_sound_dir = NULL; | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
60 static GtkWidget *preflabel; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
61 static GtkWidget *prefsnotebook; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
62 static GtkTreeStore *prefstree; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
63 |
5440 | 64 |
65 static GtkWidget *sounddialog = NULL; | |
66 static GtkWidget *sound_entry = NULL; | |
67 static GtkWidget *away_text = NULL; | |
68 static GtkListStore *smiley_theme_store = NULL; | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
69 static GtkWidget *prefs_proxy_frame = NULL; |
5440 | 70 |
71 static GtkWidget *prefs = NULL; | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
72 static GtkWidget *debugbutton = NULL; |
5440 | 73 static int notebook_page = 0; |
74 static GtkTreeIter plugin_iter; | |
75 | |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
76 static guint browser_pref_id = 0; |
6001 | 77 static guint proxy_pref_id = 0; |
6005 | 78 static guint sound_pref_id = 0; |
6142 | 79 static guint auto_resp_pref_id = 0; |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
80 |
5440 | 81 /* |
82 * PROTOTYPES | |
83 */ | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
84 static GtkTreeIter *prefs_notebook_add_page(const char*, GdkPixbuf*, |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
85 GtkWidget*, GtkTreeIter*, |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
86 GtkTreeIter*, int); |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
87 static GtkWidget *prefs_checkbox(const char *, const char *, GtkWidget *); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
88 static GtkWidget *prefs_labeled_spin_button(GtkWidget *, const gchar *, |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
89 char *key, int, int, |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
90 GtkSizeGroup *); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
91 static GtkWidget *prefs_dropdown(GtkWidget *, const gchar *, GaimPrefType type, |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
92 const char *, ...); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
93 static GtkWidget *prefs_dropdown_from_list(GtkWidget *, const gchar *, |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
94 GaimPrefType type, |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
95 const char *, GList *); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
96 static GtkWidget *show_color_pref(GtkWidget *, gboolean); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
97 static void delete_prefs(GtkWidget *, void *); |
5440 | 98 static void update_plugin_list(void *data); |
99 | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
100 void set_default_away(GtkWidget *, gpointer); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
101 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
102 static void |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
103 update_spin_value(GtkWidget *w, GtkWidget *spin) |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
104 { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
105 const char *key = g_object_get_data(G_OBJECT(spin), "val"); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
106 int value; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
107 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
108 value = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin)); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
109 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
110 gaim_prefs_set_int(key, value); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
111 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
112 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
113 static GtkWidget * |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
114 prefs_labeled_spin_button(GtkWidget *box, const gchar *title, char *key, |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
115 int min, int max, GtkSizeGroup *sg) |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
116 { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
117 GtkWidget *hbox; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
118 GtkWidget *label; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
119 GtkWidget *spin; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
120 GtkObject *adjust; |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
121 int val; |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
122 |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
123 val = gaim_prefs_get_int(key); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
124 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
125 hbox = gtk_hbox_new(FALSE, 5); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
126 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
127 gtk_widget_show(hbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
128 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
129 label = gtk_label_new_with_mnemonic(title); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
130 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
131 gtk_widget_show(label); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
132 |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
133 adjust = gtk_adjustment_new(val, min, max, 1, 1, 1); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
134 spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
135 g_object_set_data(G_OBJECT(spin), "val", key); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
136 gtk_widget_set_size_request(spin, 50, -1); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
137 gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
138 g_signal_connect(G_OBJECT(adjust), "value-changed", |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
139 G_CALLBACK(update_spin_value), GTK_WIDGET(spin)); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
140 gtk_widget_show(spin); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
141 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
142 gtk_label_set_mnemonic_widget(GTK_LABEL(label), spin); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
143 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
144 if (sg) { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
145 gtk_size_group_add_widget(sg, label); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
146 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
147 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
148 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
149 return label; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
150 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
151 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
152 static void |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
153 dropdown_set(GObject *w, const char *key) |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
154 { |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
155 const char *bool_key; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
156 const char *str_value; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
157 int int_value; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
158 GaimPrefType type; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
159 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
160 type = GPOINTER_TO_INT(g_object_get_data(w, "type")); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
161 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
162 if (type == GAIM_PREF_INT) { |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
163 int_value = GPOINTER_TO_INT(g_object_get_data(w, "value")); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
164 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
165 gaim_prefs_set_int(key, int_value); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
166 } |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
167 else if (type == GAIM_PREF_STRING) { |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
168 str_value = (const char *)g_object_get_data(w, "value"); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
169 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
170 gaim_prefs_set_string(key, str_value); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
171 } |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
172 else if (type == GAIM_PREF_BOOLEAN) { |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
173 bool_key = (const char *)g_object_get_data(w, "value"); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
174 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
175 if (!strcmp(key, bool_key)) |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
176 return; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
177 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
178 gaim_prefs_set_bool(key, FALSE); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
179 gaim_prefs_set_bool(bool_key, TRUE); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
180 } |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
181 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
182 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
183 static GtkWidget * |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
184 prefs_dropdown_from_list(GtkWidget *box, const gchar *title, GaimPrefType type, |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
185 const char *key, GList *menuitems) |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
186 { |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
187 GtkWidget *dropdown, *opt, *menu; |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
188 GtkWidget *label; |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
189 GtkWidget *hbox; |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
190 gchar *text; |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
191 const char *bool_key = NULL; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
192 const char *stored_str = NULL; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
193 int stored_int = 0; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
194 int int_value = 0; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
195 const char *str_value = NULL; |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
196 int o = 0; |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
197 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
198 g_return_val_if_fail(menuitems != NULL, NULL); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
199 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
200 hbox = gtk_hbox_new(FALSE, 5); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
201 gtk_container_add (GTK_CONTAINER (box), hbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
202 gtk_widget_show(hbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
203 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
204 label = gtk_label_new_with_mnemonic(title); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
205 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
206 gtk_widget_show(label); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
207 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
208 dropdown = gtk_option_menu_new(); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
209 menu = gtk_menu_new(); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
210 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
211 gtk_label_set_mnemonic_widget(GTK_LABEL(label), dropdown); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
212 |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
213 if (type == GAIM_PREF_INT) |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
214 stored_int = gaim_prefs_get_int(key); |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
215 else if (type == GAIM_PREF_STRING) |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
216 stored_str = gaim_prefs_get_string(key); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
217 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
218 while (menuitems != NULL && (text = (char *) menuitems->data) != NULL) { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
219 menuitems = g_list_next(menuitems); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
220 g_return_val_if_fail(menuitems != NULL, NULL); |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
221 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
222 opt = gtk_menu_item_new_with_label(text); |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
223 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
224 g_object_set_data(G_OBJECT(opt), "type", GINT_TO_POINTER(type)); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
225 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
226 if (type == GAIM_PREF_INT) { |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
227 int_value = GPOINTER_TO_INT(menuitems->data); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
228 g_object_set_data(G_OBJECT(opt), "value", |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
229 GINT_TO_POINTER(int_value)); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
230 } |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
231 else if (type == GAIM_PREF_STRING) { |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
232 str_value = (const char *)menuitems->data; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
233 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
234 g_object_set_data(G_OBJECT(opt), "value", (char *)str_value); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
235 } |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
236 else if (type == GAIM_PREF_BOOLEAN) { |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
237 bool_key = (const char *)menuitems->data; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
238 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
239 g_object_set_data(G_OBJECT(opt), "value", (char *)bool_key); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
240 } |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
241 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
242 g_signal_connect(G_OBJECT(opt), "activate", |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
243 G_CALLBACK(dropdown_set), (char *)key); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
244 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
245 gtk_widget_show(opt); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
246 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
247 |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
248 if ((type == GAIM_PREF_INT && stored_int == int_value) || |
5753
96214f5de47c
[gaim-migrate @ 6178]
Christian Hammond <chipx86@chipx86.com>
parents:
5716
diff
changeset
|
249 (type == GAIM_PREF_STRING && stored_str != NULL && |
96214f5de47c
[gaim-migrate @ 6178]
Christian Hammond <chipx86@chipx86.com>
parents:
5716
diff
changeset
|
250 !strcmp(stored_str, str_value)) || |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
251 (type == GAIM_PREF_BOOLEAN && gaim_prefs_get_bool(bool_key))) { |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
252 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
253 gtk_menu_set_active(GTK_MENU(menu), o); |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
254 } |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
255 |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
256 menuitems = g_list_next(menuitems); |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
257 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
258 o++; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
259 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
260 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
261 gtk_option_menu_set_menu(GTK_OPTION_MENU(dropdown), menu); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
262 gtk_box_pack_start(GTK_BOX(hbox), dropdown, FALSE, FALSE, 0); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
263 gtk_widget_show(dropdown); |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
264 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
265 return label; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
266 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
267 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
268 static GtkWidget * |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
269 prefs_dropdown(GtkWidget *box, const gchar *title, GaimPrefType type, |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
270 const char *key, ...) |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
271 { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
272 va_list ap; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
273 GList *menuitems = NULL; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
274 GtkWidget *dropdown = NULL; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
275 char *name; |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
276 int int_value; |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
277 const char *str_value; |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
278 |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
279 va_start(ap, key); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
280 while ((name = va_arg(ap, char *)) != NULL) { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
281 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
282 menuitems = g_list_prepend(menuitems, name); |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
283 |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
284 if (type == GAIM_PREF_INT) { |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
285 int_value = va_arg(ap, int); |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
286 menuitems = g_list_prepend(menuitems, GINT_TO_POINTER(int_value)); |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
287 } |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
288 else { |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
289 str_value = va_arg(ap, const char *); |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
290 menuitems = g_list_prepend(menuitems, (char *)str_value); |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
291 } |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
292 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
293 va_end(ap); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
294 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
295 g_return_val_if_fail(menuitems != NULL, NULL); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
296 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
297 menuitems = g_list_reverse(menuitems); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
298 |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
299 dropdown = prefs_dropdown_from_list(box, title, type, key, menuitems); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
300 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
301 g_list_free(menuitems); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
302 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
303 return dropdown; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
304 } |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
305 |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
306 static void |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
307 delete_prefs(GtkWidget *asdf, void *gdsa) |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
308 { |
5440 | 309 GList *l; |
310 GaimPlugin *plug; | |
311 | |
312 gaim_plugins_unregister_probe_notify_cb(update_plugin_list); | |
313 | |
314 prefs = NULL; | |
315 tree_v = NULL; | |
316 sound_entry = NULL; | |
317 debugbutton = NULL; | |
318 prefs_away_menu = NULL; | |
319 notebook_page = 0; | |
320 smiley_theme_store = NULL; | |
321 if(sounddialog) | |
322 gtk_widget_destroy(sounddialog); | |
323 g_object_unref(G_OBJECT(prefs_away_store)); | |
324 prefs_away_store = NULL; | |
325 | |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
326 /* Unregister callbacks. */ |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
327 gaim_prefs_disconnect_callback(browser_pref_id); |
6001 | 328 gaim_prefs_disconnect_callback(proxy_pref_id); |
6005 | 329 gaim_prefs_disconnect_callback(sound_pref_id); |
6142 | 330 gaim_prefs_disconnect_callback(auto_resp_pref_id); |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
331 |
5440 | 332 for (l = gaim_plugins_get_loaded(); l != NULL; l = l->next) { |
333 plug = l->data; | |
334 | |
335 if (GAIM_IS_GTK_PLUGIN(plug)) { | |
336 GaimGtkPluginUiInfo *ui_info; | |
337 | |
338 ui_info = GAIM_GTK_PLUGIN_UI_INFO(plug); | |
339 | |
340 if (ui_info->iter != NULL) { | |
341 g_free(ui_info->iter); | |
342 ui_info->iter = NULL; | |
343 } | |
344 } | |
345 } | |
346 } | |
347 | |
348 static void pref_nb_select(GtkTreeSelection *sel, GtkNotebook *nb) { | |
349 GtkTreeIter iter; | |
350 char text[128]; | |
351 GValue val = { 0, }; | |
352 GtkTreeModel *model = GTK_TREE_MODEL(prefstree); | |
353 | |
354 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) | |
355 return; | |
356 gtk_tree_model_get_value (model, &iter, 1, &val); | |
357 g_snprintf(text, sizeof(text), "<span weight=\"bold\" size=\"larger\">%s</span>", | |
358 g_value_get_string(&val)); | |
359 gtk_label_set_markup (GTK_LABEL(preflabel), text); | |
360 g_value_unset (&val); | |
361 gtk_tree_model_get_value (model, &iter, 2, &val); | |
362 gtk_notebook_set_current_page (GTK_NOTEBOOK (prefsnotebook), g_value_get_int (&val)); | |
363 | |
364 } | |
365 | |
366 /* These are the pages in the preferences notebook */ | |
367 GtkWidget *interface_page() { | |
368 GtkWidget *ret; | |
369 GtkWidget *vbox; | |
370 ret = gtk_vbox_new(FALSE, 18); | |
371 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
372 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
373 vbox = gaim_gtk_make_frame(ret, _("Interface Options")); |
5440 | 374 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
375 prefs_checkbox(_("D_isplay remote nicknames if no alias is set"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
376 "/core/buddies/use_server_alias", vbox); |
5440 | 377 |
378 | |
379 gtk_widget_show_all(ret); | |
380 return ret; | |
381 } | |
382 | |
383 static void smiley_sel (GtkTreeSelection *sel, GtkTreeModel *model) { | |
384 GtkTreeIter iter; | |
385 const char *filename; | |
386 GValue val = { 0, }; | |
5841 | 387 |
5440 | 388 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) |
389 return; | |
390 gtk_tree_model_get_value (model, &iter, 2, &val); | |
391 filename = g_value_get_string(&val); | |
5770
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
392 gaim_prefs_set_string("/gaim/gtk/smileys/theme", filename); |
5440 | 393 g_value_unset (&val); |
394 } | |
395 | |
396 GtkTreePath *theme_refresh_theme_list() | |
397 { | |
398 GdkPixbuf *pixbuf; | |
399 GSList *themes; | |
400 GtkTreeIter iter; | |
401 GtkTreePath *path = NULL; | |
402 int ind = 0; | |
403 | |
404 | |
405 smiley_theme_probe(); | |
406 | |
407 if (!smiley_themes) | |
408 return NULL; | |
409 | |
410 themes = smiley_themes; | |
411 | |
412 gtk_list_store_clear(smiley_theme_store); | |
413 | |
414 while (themes) { | |
415 struct smiley_theme *theme = themes->data; | |
416 char *description = g_strdup_printf("<span size='larger' weight='bold'>%s</span> - %s\n" | |
417 "<span size='smaller' foreground='dim grey'>%s</span>", | |
418 theme->name, theme->author, theme->desc); | |
419 gtk_list_store_append (smiley_theme_store, &iter); | |
420 pixbuf = gdk_pixbuf_new_from_file(theme->icon, NULL); | |
421 | |
422 gtk_list_store_set(smiley_theme_store, &iter, | |
423 0, pixbuf, | |
424 1, description, | |
425 2, theme->path, | |
426 -1); | |
7094
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
427 |
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
428 if (pixbuf != NULL) |
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
429 g_object_unref(G_OBJECT(pixbuf)); |
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
430 |
5440 | 431 g_free(description); |
432 themes = themes->next; | |
433 if (current_smiley_theme && !strcmp(theme->path, current_smiley_theme->path)) { | |
434 /* path = gtk_tree_path_new_from_indices(ind); */ | |
435 char *iwishihadgtk2_2 = g_strdup_printf("%d", ind); | |
436 path = gtk_tree_path_new_from_string(iwishihadgtk2_2); | |
437 g_free(iwishihadgtk2_2); | |
438 } | |
439 ind++; | |
440 } | |
441 | |
442 return path; | |
443 } | |
444 | |
445 void theme_install_theme(char *path, char *extn) { | |
446 #ifndef _WIN32 | |
447 gchar *command; | |
448 #endif | |
449 gchar *destdir; | |
450 gchar *tail; | |
451 | |
452 /* Just to be safe */ | |
453 g_strchomp(path); | |
454 | |
455 /* I dont know what you are, get out of here */ | |
456 if (extn != NULL) | |
457 tail = extn; | |
458 else if ((tail = strrchr(path, '.')) == NULL) | |
459 return; | |
460 | |
461 destdir = g_strconcat(gaim_user_dir(), G_DIR_SEPARATOR_S "smileys", NULL); | |
462 | |
463 /* We'll check this just to make sure. This also lets us do something different on | |
464 * other platforms, if need be */ | |
465 if (!g_ascii_strcasecmp(tail, ".gz") || !g_ascii_strcasecmp(tail, ".tgz")) { | |
466 #ifndef _WIN32 | |
467 command = g_strdup_printf("tar > /dev/null xzf \"%s\" -C %s", path, destdir); | |
468 #else | |
469 if(!wgaim_gz_untar(path, destdir)) { | |
470 g_free(destdir); | |
471 return; | |
472 } | |
473 #endif | |
474 } | |
475 else { | |
476 g_free(destdir); | |
477 return; | |
478 } | |
479 | |
480 #ifndef _WIN32 | |
481 /* Fire! */ | |
482 system(command); | |
483 | |
484 g_free(command); | |
485 #endif | |
486 g_free(destdir); | |
487 | |
488 theme_refresh_theme_list(); | |
489 } | |
490 | |
7094
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
491 static void |
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
492 theme_got_url(void *data, const char *themedata, size_t len) |
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
493 { |
5440 | 494 FILE *f; |
495 gchar *path; | |
496 | |
497 f = gaim_mkstemp(&path); | |
498 fwrite(themedata, len, 1, f); | |
499 fclose(f); | |
500 | |
501 theme_install_theme(path, data); | |
502 | |
503 unlink(path); | |
504 g_free(path); | |
505 } | |
506 | |
507 void theme_dnd_recv(GtkWidget *widget, GdkDragContext *dc, guint x, guint y, GtkSelectionData *sd, | |
508 guint info, guint t, gpointer data) { | |
509 gchar *name = sd->data; | |
510 | |
511 if ((sd->length >= 0) && (sd->format == 8)) { | |
512 /* Well, it looks like the drag event was cool. | |
513 * Let's do something with it */ | |
514 | |
515 if (!g_ascii_strncasecmp(name, "file://", 7)) { | |
516 GError *converr = NULL; | |
517 gchar *tmp; | |
518 /* It looks like we're dealing with a local file. Let's | |
519 * just untar it in the right place */ | |
520 if(!(tmp = g_filename_from_uri(name, NULL, &converr))) { | |
521 gaim_debug(GAIM_DEBUG_ERROR, "theme dnd", "%s\n", | |
522 (converr ? converr->message : | |
523 "g_filename_from_uri error")); | |
524 return; | |
525 } | |
526 theme_install_theme(tmp, NULL); | |
527 g_free(tmp); | |
528 } else if (!g_ascii_strncasecmp(name, "http://", 7)) { | |
529 /* Oo, a web drag and drop. This is where things | |
530 * will start to get interesting */ | |
531 gchar *tail; | |
532 | |
533 if ((tail = strrchr(name, '.')) == NULL) | |
534 return; | |
535 | |
536 /* We'll check this just to make sure. This also lets us do something different on | |
537 * other platforms, if need be */ | |
7094
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7092
diff
changeset
|
538 gaim_url_fetch(name, TRUE, NULL, FALSE, theme_got_url, ".tgz"); |
5440 | 539 } |
540 | |
541 gtk_drag_finish(dc, TRUE, FALSE, t); | |
542 } | |
543 | |
544 gtk_drag_finish(dc, FALSE, FALSE, t); | |
545 } | |
546 | |
547 GtkWidget *theme_page() { | |
548 GtkWidget *ret; | |
549 GtkWidget *sw; | |
550 GtkWidget *view; | |
551 GtkCellRenderer *rend; | |
552 GtkTreeViewColumn *col; | |
553 GtkTreeSelection *sel; | |
554 GtkTreePath *path = NULL; | |
555 GtkWidget *label; | |
556 GtkTargetEntry te[3] = {{"text/plain", 0, 0},{"text/uri-list", 0, 1},{"STRING", 0, 2}}; | |
557 | |
558 ret = gtk_vbox_new(FALSE, 18); | |
559 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
560 | |
561 label = gtk_label_new(_("Select a smiley theme that you would like to use from the list below. New themes can be installed by dragging and dropping them onto the theme list.")); | |
562 | |
563 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
564 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
565 gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT); | |
566 | |
567 gtk_box_pack_start(GTK_BOX(ret), label, FALSE, TRUE, 0); | |
568 gtk_widget_show(label); | |
569 | |
570 sw = gtk_scrolled_window_new(NULL,NULL); | |
571 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); | |
572 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); | |
573 | |
574 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); | |
575 smiley_theme_store = gtk_list_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING); | |
576 | |
577 path = theme_refresh_theme_list(); | |
578 | |
579 view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(smiley_theme_store)); | |
580 | |
581 gtk_drag_dest_set(view, GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_HIGHLIGHT | GTK_DEST_DEFAULT_DROP, te, | |
582 sizeof(te) / sizeof(GtkTargetEntry) , GDK_ACTION_COPY | GDK_ACTION_MOVE); | |
583 | |
584 g_signal_connect(G_OBJECT(view), "drag_data_received", G_CALLBACK(theme_dnd_recv), smiley_theme_store); | |
585 | |
586 rend = gtk_cell_renderer_pixbuf_new(); | |
587 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); | |
588 | |
589 if(path) { | |
590 gtk_tree_selection_select_path(sel, path); | |
591 gtk_tree_path_free(path); | |
592 } | |
593 | |
594 col = gtk_tree_view_column_new_with_attributes (_("Icon"), | |
595 rend, | |
596 "pixbuf", 0, | |
597 NULL); | |
598 gtk_tree_view_append_column (GTK_TREE_VIEW(view), col); | |
599 | |
600 rend = gtk_cell_renderer_text_new(); | |
601 col = gtk_tree_view_column_new_with_attributes (_("Description"), | |
602 rend, | |
603 "markup", 1, | |
604 NULL); | |
605 gtk_tree_view_append_column (GTK_TREE_VIEW(view), col); | |
606 g_object_unref(G_OBJECT(smiley_theme_store)); | |
607 gtk_container_add(GTK_CONTAINER(sw), view); | |
608 | |
609 g_signal_connect (G_OBJECT (sel), "changed", | |
610 G_CALLBACK (smiley_sel), | |
611 NULL); | |
612 | |
613 | |
614 gtk_widget_show_all(ret); | |
615 return ret; | |
616 } | |
617 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
618 static void update_color(GtkWidget *w, GtkWidget *pic) |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
619 { |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
620 GdkColor c; |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
621 GtkStyle *style; |
5627 | 622 GdkColor color; |
623 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
624 c.pixel = 0; |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
625 |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
626 if (pic == pref_fg_picture) { |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
627 if (gaim_prefs_get_bool("/gaim/gtk/conversations/use_custom_fgcolor")) { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
628 gdk_color_parse(gaim_prefs_get_string("/gaim/gtk/conversations/fgcolor"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
629 &color); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
630 c.red = color.red; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
631 c.blue = color.blue; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
632 c.green = color.green; |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
633 } else { |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
634 c.red = 0; |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
635 c.blue = 0; |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
636 c.green = 0; |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
637 } |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
638 } else { |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
639 if (gaim_prefs_get_bool("/gaim/gtk/conversations/use_custom_bgcolor")) { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
640 gdk_color_parse(gaim_prefs_get_string("/gaim/gtk/conversations/bgcolor"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
641 &color); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
642 c.red = color.red; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
643 c.blue = color.blue; |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
644 c.green = color.green; |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
645 } else { |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
646 c.red = 0xffff; |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
647 c.blue = 0xffff; |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
648 c.green = 0xffff; |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
649 } |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
650 } |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
651 |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
652 style = gtk_style_new(); |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
653 style->bg[0] = c; |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
654 gtk_widget_set_style(pic, style); |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
655 g_object_unref(style); |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
656 } |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
657 |
5440 | 658 GtkWidget *font_page() { |
659 GtkWidget *ret; | |
660 GtkWidget *button; | |
661 GtkWidget *vbox, *hbox; | |
662 GtkWidget *select = NULL; | |
663 GtkSizeGroup *sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
664 | |
665 ret = gtk_vbox_new(FALSE, 18); | |
666 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
667 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
668 vbox = gaim_gtk_make_frame(ret, _("Style")); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
669 prefs_checkbox(_("_Bold"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
670 "/gaim/gtk/conversations/send_bold", vbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
671 prefs_checkbox(_("_Italics"), |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
672 "/gaim/gtk/conversations/send_italic", vbox); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
673 prefs_checkbox(_("_Underline"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
674 "/gaim/gtk/conversations/send_underline", vbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
675 prefs_checkbox(_("_Strikethrough"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
676 "/gaim/gtk/conversations/send_strikethrough", vbox); |
5440 | 677 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
678 vbox = gaim_gtk_make_frame(ret, _("Face")); |
5440 | 679 hbox = gtk_hbox_new(FALSE, 6); |
680 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
681 button = prefs_checkbox(_("Use custo_m face"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
682 "/gaim/gtk/conversations/use_custom_font", hbox); |
5440 | 683 gtk_size_group_add_widget(sg, button); |
684 select = gtk_button_new_from_stock(GTK_STOCK_SELECT_FONT); | |
685 | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
686 if (!gaim_prefs_get_bool("/gaim/gtk/conversations/use_custom_font")) |
5440 | 687 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
688 |
5440 | 689 g_signal_connect(G_OBJECT(button), "clicked", |
690 G_CALLBACK(gaim_gtk_toggle_sensitive), select); | |
691 g_signal_connect(G_OBJECT(select), "clicked", | |
692 G_CALLBACK(show_font_dialog), NULL); | |
693 gtk_box_pack_start(GTK_BOX(hbox), select, FALSE, FALSE, 0); | |
694 | |
695 hbox = gtk_hbox_new(FALSE, 5); | |
696 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
697 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
698 button = prefs_checkbox(_("Use custom si_ze"), |
6141 | 699 "/gaim/gtk/conversations/use_custom_size", hbox); |
5440 | 700 gtk_size_group_add_widget(sg, button); |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
701 select = prefs_labeled_spin_button(hbox, NULL, |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
702 "/gaim/gtk/conversations/font_size", |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
703 1, 7, NULL); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
704 |
6384
6e5dbdaf33f2
[gaim-migrate @ 6889]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
705 if (!gaim_prefs_get_bool("/gaim/gtk/conversations/use_custom_size")) |
5440 | 706 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
707 |
5440 | 708 g_signal_connect(G_OBJECT(button), "clicked", |
709 G_CALLBACK(gaim_gtk_toggle_sensitive), select); | |
710 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
711 vbox = gaim_gtk_make_frame(ret, _("Color")); |
5440 | 712 hbox = gtk_hbox_new(FALSE, 5); |
713 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
714 | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
715 button = prefs_checkbox(_("_Text color"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
716 "/gaim/gtk/conversations/use_custom_fgcolor", hbox); |
5440 | 717 gtk_size_group_add_widget(sg, button); |
718 | |
719 select = gtk_button_new_from_stock(GTK_STOCK_SELECT_COLOR); | |
720 gtk_box_pack_start(GTK_BOX(hbox), select, FALSE, FALSE, 0); | |
721 pref_fg_picture = show_color_pref(hbox, TRUE); | |
722 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(update_color), | |
723 pref_fg_picture); | |
724 | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
725 if (!gaim_prefs_get_bool("/gaim/gtk/conversations/use_custom_fgcolor")) |
5440 | 726 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
727 |
5440 | 728 g_signal_connect(G_OBJECT(button), "clicked", |
729 G_CALLBACK(gaim_gtk_toggle_sensitive), select); | |
730 g_signal_connect(G_OBJECT(select), "clicked", G_CALLBACK(show_fgcolor_dialog), NULL); | |
731 hbox = gtk_hbox_new(FALSE, 5); | |
732 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
733 | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
734 button = prefs_checkbox(_("Bac_kground color"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
735 "/gaim/gtk/conversations/use_custom_bgcolor", hbox); |
5440 | 736 gtk_size_group_add_widget(sg, button); |
737 select = gtk_button_new_from_stock(GTK_STOCK_SELECT_COLOR); | |
738 gtk_box_pack_start(GTK_BOX(hbox), select, FALSE, FALSE, 0); | |
739 pref_bg_picture = show_color_pref(hbox, FALSE); | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
740 g_signal_connect(G_OBJECT(button), "clicked", |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
741 G_CALLBACK(update_color), pref_bg_picture); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
742 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
743 if (!gaim_prefs_get_bool("/gaim/gtk/conversations/use_custom_bgcolor")) |
5440 | 744 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
745 |
5440 | 746 g_signal_connect(G_OBJECT(select), "clicked", |
747 G_CALLBACK(show_bgcolor_dialog), NULL); | |
748 g_signal_connect(G_OBJECT(button), "clicked", | |
749 G_CALLBACK(gaim_gtk_toggle_sensitive), select); | |
750 | |
751 gtk_widget_show_all(ret); | |
752 return ret; | |
753 } | |
754 | |
755 | |
756 GtkWidget *messages_page() { | |
757 GtkWidget *ret; | |
758 GtkWidget *vbox; | |
759 ret = gtk_vbox_new(FALSE, 18); | |
760 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
761 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
762 vbox = gaim_gtk_make_frame (ret, _("Display")); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
763 prefs_checkbox(_("Show graphical _smileys"), |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
764 "/gaim/gtk/conversations/show_smileys", vbox); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
765 prefs_checkbox(_("Show _timestamp on messages"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
766 "/gaim/gtk/conversations/show_timestamps", vbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
767 prefs_checkbox(_("Show _URLs as links"), |
5539
de09863bd4b5
[gaim-migrate @ 5939]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
768 "/gaim/gtk/conversations/show_urls_as_links", vbox); |
de09863bd4b5
[gaim-migrate @ 5939]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
769 |
5440 | 770 #ifdef USE_GTKSPELL |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
771 prefs_checkbox(_("_Highlight misspelled words"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
772 "/gaim/gtk/conversations/spellcheck", vbox); |
5440 | 773 #endif |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
774 vbox = gaim_gtk_make_frame (ret, _("Ignore")); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
775 prefs_checkbox(_("Ignore c_olors"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
776 "/gaim/gtk/conversations/ignore_colors", vbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
777 prefs_checkbox(_("Ignore font _faces"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
778 "/gaim/gtk/conversations/ignore_fonts", vbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
779 prefs_checkbox(_("Ignore font si_zes"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
780 "/gaim/gtk/conversations/ignore_font_sizes", vbox); |
5440 | 781 |
782 gtk_widget_show_all(ret); | |
783 return ret; | |
784 } | |
785 | |
786 GtkWidget *hotkeys_page() { | |
787 GtkWidget *ret; | |
788 GtkWidget *vbox; | |
789 ret = gtk_vbox_new(FALSE, 18); | |
790 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
791 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
792 vbox = gaim_gtk_make_frame(ret, _("Send Message")); |
5716 | 793 prefs_checkbox(_("Enter _sends message"), |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
794 "/gaim/gtk/conversations/enter_sends", vbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
795 prefs_checkbox(_("C_ontrol-Enter sends message"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
796 "/gaim/gtk/conversations/ctrl_enter_sends", vbox); |
5440 | 797 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
798 vbox = gaim_gtk_make_frame (ret, _("Window Closing")); |
5716 | 799 prefs_checkbox(_("_Escape closes window"), |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
800 "/gaim/gtk/conversations/escape_closes", vbox); |
5440 | 801 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
802 vbox = gaim_gtk_make_frame(ret, _("Insertions")); |
6039 | 803 prefs_checkbox(_("Control-{B/I/U} inserts _HTML tags"), |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
804 "/gaim/gtk/conversations/html_shortcuts", vbox); |
5716 | 805 prefs_checkbox(_("Control-(number) _inserts smileys"), |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
806 "/gaim/gtk/conversations/smiley_shortcuts", vbox); |
5440 | 807 |
808 gtk_widget_show_all(ret); | |
809 return ret; | |
810 } | |
811 | |
812 GtkWidget *list_page() { | |
813 GtkWidget *ret; | |
814 GtkWidget *vbox; | |
815 GList *l= NULL; | |
5567
cc9ddec20010
[gaim-migrate @ 5969]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
816 GSList *sl; |
5440 | 817 ret = gtk_vbox_new(FALSE, 18); |
818 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
7305 | 819 |
820 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
821 vbox = gaim_gtk_make_frame (ret, _("Buddy List Sorting")); |
5567
cc9ddec20010
[gaim-migrate @ 5969]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
822 |
cc9ddec20010
[gaim-migrate @ 5969]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
823 for (sl = gaim_gtk_blist_sort_methods; sl != NULL; sl = sl->next) { |
5631 | 824 struct gaim_gtk_blist_sort_method *method = sl->data; |
825 | |
826 l = g_list_append(l, method->name); | |
827 l = g_list_append(l, method->id); | |
5440 | 828 } |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
829 |
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
830 prefs_dropdown_from_list(vbox, _("Sorting:"), GAIM_PREF_STRING, |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
831 "/gaim/gtk/blist/sort_type", l); |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
832 |
5440 | 833 g_list_free(l); |
834 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
835 vbox = gaim_gtk_make_frame (ret, _("Buddy List Toolbar")); |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
836 prefs_dropdown(vbox, _("Show _buttons as:"), GAIM_PREF_INT, |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
837 "/gaim/gtk/blist/button_style", |
5547
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
838 _("Pictures"), GAIM_BUTTON_IMAGE, |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
839 _("Text"), GAIM_BUTTON_TEXT, |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
840 _("Pictures and text"), GAIM_BUTTON_TEXT_IMAGE, |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
841 _("None"), GAIM_BUTTON_NONE, |
90a67ea697f7
[gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents:
5546
diff
changeset
|
842 NULL); |
5440 | 843 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
844 vbox = gaim_gtk_make_frame (ret, _("Buddy List Window")); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
845 prefs_checkbox(_("_Raise window on events"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
846 "/gaim/gtk/blist/raise_on_events", vbox); |
5440 | 847 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
848 vbox = gaim_gtk_make_frame (ret, _("Group Display")); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
849 prefs_checkbox(_("Show _numbers in groups"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
850 "/gaim/gtk/blist/show_group_count", vbox); |
5440 | 851 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
852 vbox = gaim_gtk_make_frame (ret, _("Buddy Display")); |
7305 | 853 prefs_checkbox(_("Show buddy _icons"), |
854 "/gaim/gtk/blist/show_buddy_icons", vbox); | |
855 prefs_checkbox(_("Show _warning levels"), | |
856 "/gaim/gtk/blist/show_warning_level", vbox); | |
857 prefs_checkbox(_("Show idle _times"), | |
858 "/gaim/gtk/blist/show_idle_time", vbox); | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
859 prefs_checkbox(_("Dim i_dle buddies"), |
7305 | 860 "/gaim/gtk/blist/grey_idle_buddies", vbox); |
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 | |
1127 label = gtk_label_new_with_mnemonic(_("_Host")); | |
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 | |
1144 label = gtk_label_new_with_mnemonic(_("Port")); | |
1145 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); | |
1146 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, GTK_FILL, 0, 0, 0); | |
1147 | |
1148 entry = gtk_entry_new(); | |
1149 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
1150 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 1, 2, GTK_FILL, 0, 0, 0); | |
1151 g_signal_connect(G_OBJECT(entry), "changed", | |
1152 G_CALLBACK(proxy_print_option), (void *)PROXYPORT); | |
1153 | |
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 | |
1162 label = gtk_label_new_with_mnemonic(_("_User")); | |
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 | |
1179 label = gtk_label_new_with_mnemonic(_("Pa_ssword")); | |
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"}, |
1220 {N_("Galeon"), "galeon"} | |
5440 | 1221 }; |
1222 static const int num_possible_browsers = 5; | |
1223 | |
1224 GList *browsers = NULL; | |
1225 int i = 0; | |
5819 | 1226 char *browser_setting = (char *)gaim_prefs_get_string("/gaim/gtk/browsers/browser"); |
5440 | 1227 |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1228 browsers = g_list_prepend(browsers, "custom"); |
5440 | 1229 browsers = g_list_prepend(browsers, _("Manual")); |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1230 |
5440 | 1231 for (i = 0; i < num_possible_browsers; i++) { |
7108
6faeeecab0dc
[gaim-migrate @ 7673]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1232 if (gaim_program_is_valid(possible_browsers[i].command)) { |
5633 | 1233 browsers = g_list_prepend(browsers, |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1234 possible_browsers[i].command); |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1235 browsers = g_list_prepend(browsers, _(possible_browsers[i].name)); |
5825 | 1236 if(browser_setting && !strcmp(possible_browsers[i].command, browser_setting)) |
5819 | 1237 browser_setting = NULL; |
5440 | 1238 } |
1239 } | |
1240 | |
5819 | 1241 if(browser_setting) |
1242 gaim_prefs_set_string("/gaim/gtk/browsers/browser", "custom"); | |
1243 | |
5440 | 1244 return browsers; |
1245 } | |
1246 | |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1247 static void |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1248 browser_changed_cb(const char *name, GaimPrefType type, gpointer value, |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1249 gpointer data) |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1250 { |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1251 GtkWidget *hbox = data; |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1252 const char *browser = value; |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1253 |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1254 gtk_widget_set_sensitive(hbox, !strcmp(browser, "custom")); |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1255 } |
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
1256 |
5440 | 1257 GtkWidget *browser_page() { |
1258 GtkWidget *ret; | |
1259 GtkWidget *vbox; | |
1260 GtkWidget *hbox; | |
1261 GtkWidget *label; | |
6007 | 1262 GtkWidget *entry; |
5440 | 1263 GtkSizeGroup *sg; |
1264 GList *browsers = NULL; | |
1265 | |
1266 ret = gtk_vbox_new(FALSE, 18); | |
1267 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1268 | |
1269 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1270 vbox = gaim_gtk_make_frame (ret, _("Browser Selection")); |
5440 | 1271 |
1272 browsers = get_available_browsers(); | |
1273 if (browsers != NULL) { | |
6007 | 1274 label = prefs_dropdown_from_list(vbox,_("_Browser:"), GAIM_PREF_STRING, |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1275 "/gaim/gtk/browsers/browser", |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1276 browsers); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1277 |
5440 | 1278 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
1279 gtk_size_group_add_widget(sg, label); | |
1280 } | |
1281 | |
1282 hbox = gtk_hbox_new(FALSE, 5); | |
1283 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
6031 | 1284 label = gtk_label_new_with_mnemonic(_("_Manual:\n(%s for URL)")); |
5440 | 1285 gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); |
1286 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
1287 gtk_size_group_add_widget(sg, label); | |
1288 | |
6007 | 1289 entry = gtk_entry_new(); |
1290 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1291 |
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1292 if (strcmp(gaim_prefs_get_string("/gaim/gtk/browsers/browser"), "custom")) |
5440 | 1293 gtk_widget_set_sensitive(hbox, FALSE); |
6005 | 1294 browser_pref_id = gaim_prefs_connect_callback("/gaim/gtk/browsers/browser", |
1295 browser_changed_cb, hbox); | |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1296 |
6007 | 1297 gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, FALSE, 0); |
1298 | |
1299 gtk_entry_set_text(GTK_ENTRY(entry), | |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1300 gaim_prefs_get_string("/gaim/gtk/browsers/command")); |
6007 | 1301 g_signal_connect(G_OBJECT(entry), "focus-out-event", |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
1302 G_CALLBACK(manual_browser_set), NULL); |
5440 | 1303 |
1304 if (browsers != NULL) { | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1305 vbox = gaim_gtk_make_frame (ret, _("Browser Options")); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1306 label = prefs_checkbox(_("Open new _window by default"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1307 "/gaim/gtk/browsers/new_window", vbox); |
5440 | 1308 } |
1309 | |
1310 gtk_widget_show_all(ret); | |
1311 return ret; | |
1312 } | |
1313 #endif /*_WIN32*/ | |
1314 | |
1315 GtkWidget *logging_page() { | |
1316 GtkWidget *ret; | |
1317 GtkWidget *vbox; | |
7431 | 1318 GList *names; |
5440 | 1319 ret = gtk_vbox_new(FALSE, 18); |
1320 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1321 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1322 vbox = gaim_gtk_make_frame (ret, _("Message Logs")); |
7431 | 1323 names = gaim_log_logger_get_options(); |
1324 | |
1325 prefs_dropdown_from_list(vbox, _("Log _Format:"), GAIM_PREF_STRING, | |
1326 "/core/logging/format", | |
1327 names); | |
1328 | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1329 prefs_checkbox(_("_Log all instant messages"), |
7562
b859cfb5f31a
[gaim-migrate @ 8176]
Christian Hammond <chipx86@chipx86.com>
parents:
7561
diff
changeset
|
1330 "/core/logging/log_ims", vbox); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1331 prefs_checkbox(_("Log all c_hats"), |
7562
b859cfb5f31a
[gaim-migrate @ 8176]
Christian Hammond <chipx86@chipx86.com>
parents:
7561
diff
changeset
|
1332 "/core/logging/log_chats", vbox); |
7553 | 1333 /* |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1334 vbox = gaim_gtk_make_frame (ret, _("System Logs")); |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1335 prefs_checkbox(_("Log when buddies _sign on/sign off"), |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1336 "/gaim/gtk/logging/log_signon_signoff", vbox); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1337 prefs_checkbox(_("Log when buddies become _idle/un-idle"), |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1338 "/gaim/gtk/logging/log_idle_state", vbox); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1339 prefs_checkbox(_("Log when buddies go away/come _back"), |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1340 "/gaim/gtk/logging/log_away_state", vbox); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1341 prefs_checkbox(_("Log your _own signons/idleness/awayness"), |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1342 "/gaim/gtk/logging/log_own_states", vbox); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1343 prefs_checkbox(_("I_ndividual log file for each buddy's signons"), |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1344 "/gaim/gtk/logging/individual_logs", vbox); |
7553 | 1345 */ |
5440 | 1346 gtk_widget_show_all(ret); |
1347 return ret; | |
1348 } | |
1349 | |
1350 #ifndef _WIN32 | |
1351 static gint sound_cmd_yeah(GtkEntry *entry, gpointer d) | |
1352 { | |
5684 | 1353 gaim_prefs_set_string("/gaim/gtk/sound/command", |
6007 | 1354 gtk_entry_get_text(GTK_ENTRY(entry))); |
5440 | 1355 return TRUE; |
1356 } | |
6005 | 1357 |
1358 static void | |
1359 sound_changed_cb(const char *name, GaimPrefType type, gpointer value, | |
1360 gpointer data) | |
1361 { | |
1362 GtkWidget *hbox = data; | |
1363 const char *method = value; | |
1364 | |
1365 gtk_widget_set_sensitive(hbox, !strcmp(method, "custom")); | |
1366 } | |
5440 | 1367 #endif |
1368 | |
1369 GtkWidget *sound_page() { | |
1370 GtkWidget *ret; | |
1371 GtkWidget *vbox; | |
1372 GtkSizeGroup *sg; | |
1373 #ifndef _WIN32 | |
1374 GtkWidget *dd; | |
1375 GtkWidget *hbox; | |
1376 GtkWidget *label; | |
6007 | 1377 GtkWidget *entry; |
5684 | 1378 const char *cmd; |
5440 | 1379 #endif |
1380 | |
1381 ret = gtk_vbox_new(FALSE, 18); | |
1382 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1383 | |
1384 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
1385 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1386 vbox = gaim_gtk_make_frame (ret, _("Sound Options")); |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1387 prefs_checkbox(_("_No sounds when you log in"), |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1388 "/gaim/gtk/sound/silent_signon", vbox); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1389 prefs_checkbox(_("_Sounds while away"), |
5684 | 1390 "/core/sound/while_away", vbox); |
5440 | 1391 |
1392 #ifndef _WIN32 | |
6033 | 1393 vbox = gaim_gtk_make_frame (ret, _("Sound Method")); |
1394 dd = prefs_dropdown(vbox, _("_Method:"), GAIM_PREF_STRING, | |
5684 | 1395 "/gaim/gtk/sound/method", |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1396 _("Console beep"), "beep", |
5440 | 1397 #ifdef USE_AO |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1398 _("Automatic"), "automatic", |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1399 "ESD", "esd", |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1400 "Arts", "arts", |
5440 | 1401 #endif |
1402 #ifdef USE_NAS_AUDIO | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
1403 "NAS", "nas", |
5440 | 1404 #endif |
5684 | 1405 _("Command"), "custom", |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1406 NULL); |
5440 | 1407 gtk_size_group_add_widget(sg, dd); |
1408 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0); | |
1409 | |
1410 hbox = gtk_hbox_new(FALSE, 5); | |
1411 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); | |
1412 | |
1413 hbox = gtk_hbox_new(FALSE, 5); | |
1414 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
6031 | 1415 label = gtk_label_new_with_mnemonic(_("Sound c_ommand:\n(%s for filename)")); |
5440 | 1416 gtk_size_group_add_widget(sg, label); |
1417 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
1418 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); | |
1419 | |
6007 | 1420 entry = gtk_entry_new(); |
1421 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); | |
1422 | |
1423 gtk_editable_set_editable(GTK_EDITABLE(entry), TRUE); | |
5684 | 1424 cmd = gaim_prefs_get_string("/gaim/gtk/sound/command"); |
5440 | 1425 if(cmd) |
6007 | 1426 gtk_entry_set_text(GTK_ENTRY(entry), cmd); |
1427 gtk_widget_set_size_request(entry, 75, -1); | |
1428 | |
1429 gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 5); | |
1430 g_signal_connect(G_OBJECT(entry), "changed", | |
5440 | 1431 G_CALLBACK(sound_cmd_yeah), NULL); |
6005 | 1432 |
1433 gtk_widget_set_sensitive(hbox, | |
1434 !strcmp(gaim_prefs_get_string("/gaim/gtk/sound/method"), | |
1435 "custom")); | |
1436 sound_pref_id = gaim_prefs_connect_callback("/gaim/gtk/sound/method", | |
1437 sound_changed_cb, hbox); | |
1438 | |
5440 | 1439 #endif /* _WIN32 */ |
1440 gtk_widget_show_all(ret); | |
1441 return ret; | |
1442 } | |
1443 | |
6146
aef34b0c175f
[gaim-migrate @ 6620]
Christian Hammond <chipx86@chipx86.com>
parents:
6142
diff
changeset
|
1444 static void |
aef34b0c175f
[gaim-migrate @ 6620]
Christian Hammond <chipx86@chipx86.com>
parents:
6142
diff
changeset
|
1445 auto_resp_changed_cb(const char *name, GaimPrefType type, gpointer value, |
aef34b0c175f
[gaim-migrate @ 6620]
Christian Hammond <chipx86@chipx86.com>
parents:
6142
diff
changeset
|
1446 gpointer data) |
aef34b0c175f
[gaim-migrate @ 6620]
Christian Hammond <chipx86@chipx86.com>
parents:
6142
diff
changeset
|
1447 { |
aef34b0c175f
[gaim-migrate @ 6620]
Christian Hammond <chipx86@chipx86.com>
parents:
6142
diff
changeset
|
1448 GtkWidget *hbox = data; |
6196 | 1449 gboolean enabled = GPOINTER_TO_INT(value); |
6146
aef34b0c175f
[gaim-migrate @ 6620]
Christian Hammond <chipx86@chipx86.com>
parents:
6142
diff
changeset
|
1450 |
aef34b0c175f
[gaim-migrate @ 6620]
Christian Hammond <chipx86@chipx86.com>
parents:
6142
diff
changeset
|
1451 gtk_widget_set_sensitive(hbox, enabled); |
aef34b0c175f
[gaim-migrate @ 6620]
Christian Hammond <chipx86@chipx86.com>
parents:
6142
diff
changeset
|
1452 } |
aef34b0c175f
[gaim-migrate @ 6620]
Christian Hammond <chipx86@chipx86.com>
parents:
6142
diff
changeset
|
1453 |
5440 | 1454 GtkWidget *away_page() { |
1455 GtkWidget *ret; | |
1456 GtkWidget *vbox; | |
1457 GtkWidget *hbox; | |
1458 GtkWidget *label; | |
1459 GtkWidget *button; | |
1460 GtkWidget *select; | |
1461 GtkWidget *dd; | |
1462 GtkSizeGroup *sg; | |
1463 | |
1464 ret = gtk_vbox_new(FALSE, 18); | |
1465 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1466 | |
1467 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
1468 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1469 vbox = gaim_gtk_make_frame (ret, _("Away")); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1470 prefs_checkbox(_("_Sending messages removes away status"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1471 "/core/conversations/away_back_on_send", vbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1472 prefs_checkbox(_("_Queue new messages when away"), |
5573
5e7de337a053
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5568
diff
changeset
|
1473 "/gaim/gtk/away/queue_messages", vbox); |
5440 | 1474 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1475 vbox = gaim_gtk_make_frame (ret, _("Auto-response")); |
5440 | 1476 hbox = gtk_hbox_new(FALSE, 0); |
1477 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1478 prefs_labeled_spin_button(hbox, _("Seconds before _resending:"), |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1479 "/core/away/auto_response/sec_before_resend", |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1480 1, 24 * 60 * 60, sg); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1481 prefs_checkbox(_("_Send auto-response"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1482 "/core/away/auto_response/enabled", vbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1483 prefs_checkbox(_("_Only send auto-response when idle"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1484 "/core/away/auto_response/idle_only", vbox); |
7129 | 1485 prefs_checkbox(_("Send auto-response in _active conversations"), |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1486 "/core/away/auto_response/in_active_conv", vbox); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1487 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1488 if (!gaim_prefs_get_bool("/core/away/auto_response/enabled")) |
5440 | 1489 gtk_widget_set_sensitive(hbox, FALSE); |
1490 | |
6142 | 1491 auto_resp_pref_id = gaim_prefs_connect_callback("/core/away/auto_response/enabled", |
1492 auto_resp_changed_cb, hbox); | |
1493 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1494 vbox = gaim_gtk_make_frame (ret, _("Idle")); |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1495 dd = prefs_dropdown(vbox, _("Idle _time reporting:"), GAIM_PREF_STRING, |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1496 "/gaim/gtk/idle/reporting_method", |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1497 _("None"), "none", |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1498 _("Gaim usage"), "gaim", |
5440 | 1499 #ifdef USE_SCREENSAVER |
1500 #ifndef _WIN32 | |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1501 _("X usage"), "system", |
5440 | 1502 #else |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1503 _("Windows usage"), "system", |
5440 | 1504 #endif |
1505 #endif | |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1506 NULL); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1507 |
5440 | 1508 gtk_size_group_add_widget(sg, dd); |
1509 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0); | |
1510 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
1511 vbox = gaim_gtk_make_frame (ret, _("Auto-away")); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1512 button = prefs_checkbox(_("Set away _when idle"), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
1513 "/core/away/away_when_idle", vbox); |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1514 select = prefs_labeled_spin_button(vbox, _("_Minutes before setting away:"), |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1515 "/core/away/mins_before_away", |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1516 1, 24 * 60, sg); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1517 |
5440 | 1518 g_signal_connect(G_OBJECT(button), "clicked", |
1519 G_CALLBACK(gaim_gtk_toggle_sensitive), select); | |
1520 | |
1521 label = gtk_label_new_with_mnemonic(_("Away m_essage:")); | |
1522 gtk_size_group_add_widget(sg, label); | |
1523 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
1524 hbox = gtk_hbox_new(FALSE, 0); | |
1525 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
1526 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
1527 prefs_away_menu = gtk_option_menu_new(); | |
1528 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
|
1529 |
5440 | 1530 g_signal_connect(G_OBJECT(button), "clicked", |
1531 G_CALLBACK(gaim_gtk_toggle_sensitive), prefs_away_menu); | |
1532 default_away_menu_init(prefs_away_menu); | |
1533 gtk_widget_show(prefs_away_menu); | |
1534 gtk_box_pack_start(GTK_BOX(hbox), prefs_away_menu, FALSE, FALSE, 0); | |
1535 | |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1536 if (!gaim_prefs_get_bool("/core/away/away_when_idle")) { |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1537 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1538 gtk_widget_set_sensitive(GTK_WIDGET(prefs_away_menu), FALSE); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1539 } |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1540 |
5440 | 1541 gtk_widget_show_all(ret); |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
1542 |
5440 | 1543 return ret; |
1544 } | |
1545 | |
1546 static GtkWidget *plugin_description=NULL, *plugin_details=NULL; | |
1547 | |
1548 static void prefs_plugin_sel (GtkTreeSelection *sel, GtkTreeModel *model) | |
1549 { | |
1550 gchar *buf, *pname, *perr, *pdesc, *pauth, *pweb; | |
1551 GtkTreeIter iter; | |
1552 GValue val = { 0, }; | |
1553 GaimPlugin *plug; | |
1554 | |
1555 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) | |
1556 return; | |
1557 gtk_tree_model_get_value (model, &iter, 2, &val); | |
1558 plug = g_value_get_pointer(&val); | |
1559 | |
1560 pname = g_markup_escape_text(_(plug->info->name), -1); | |
1561 pdesc = g_markup_escape_text(_(plug->info->description), -1); | |
1562 pauth = g_markup_escape_text(_(plug->info->author), -1); | |
1563 pweb = g_markup_escape_text(_(plug->info->homepage), -1); | |
1564 if (plug->error != NULL) { | |
1565 perr = g_markup_escape_text(_(plug->error), -1); | |
1566 buf = g_strdup_printf( | |
1567 "<span size=\"larger\">%s %s</span>\n\n" | |
1568 "<span weight=\"bold\" color=\"red\">%s</span>\n\n" | |
1569 "%s", | |
1570 pname, plug->info->version, perr, pdesc); | |
1571 g_free(perr); | |
1572 } | |
1573 else { | |
1574 buf = g_strdup_printf( | |
1575 "<span size=\"larger\">%s %s</span>\n\n%s", | |
1576 pname, plug->info->version, pdesc); | |
1577 } | |
1578 gtk_label_set_markup(GTK_LABEL(plugin_description), buf); | |
1579 g_free(buf); | |
1580 | |
1581 buf = g_strdup_printf( | |
1582 #ifndef _WIN32 | |
1583 _("<span size=\"larger\">%s %s</span>\n\n" | |
1584 "<span weight=\"bold\">Written by:</span>\t%s\n" | |
1585 "<span weight=\"bold\">Web site:</span>\t\t%s\n" | |
1586 "<span weight=\"bold\">File name:</span>\t%s"), | |
1587 #else | |
1588 _("<span size=\"larger\">%s %s</span>\n\n" | |
1589 "<span weight=\"bold\">Written by:</span> %s\n" | |
1590 "<span weight=\"bold\">URL:</span> %s\n" | |
1591 "<span weight=\"bold\">File name:</span> %s"), | |
1592 #endif | |
1593 pname, plug->info->version, pauth, pweb, plug->path); | |
1594 | |
1595 gtk_label_set_markup(GTK_LABEL(plugin_details), buf); | |
1596 g_value_unset(&val); | |
1597 g_free(buf); | |
1598 g_free(pname); | |
1599 g_free(pdesc); | |
1600 g_free(pauth); | |
1601 g_free(pweb); | |
1602 } | |
1603 | |
1604 static void plugin_load (GtkCellRendererToggle *cell, gchar *pth, gpointer data) | |
1605 { | |
1606 GtkTreeModel *model = (GtkTreeModel *)data; | |
1607 GtkTreeIter iter; | |
1608 GtkTreePath *path = gtk_tree_path_new_from_string(pth); | |
1609 GaimPlugin *plug; | |
1610 gchar buf[1024]; | |
6040 | 1611 gchar *name = NULL, *description = NULL; |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1612 |
5440 | 1613 GdkCursor *wait = gdk_cursor_new (GDK_WATCH); |
1614 gdk_window_set_cursor(prefs->window, wait); | |
1615 gdk_cursor_unref(wait); | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1616 |
5440 | 1617 gtk_tree_model_get_iter (model, &iter, path); |
1618 gtk_tree_model_get (model, &iter, 2, &plug, -1); | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1619 |
5440 | 1620 if (!gaim_plugin_is_loaded(plug)) { |
1621 gaim_plugin_load(plug); | |
1622 | |
1623 /* | |
1624 * NOTE: This is basically the same check as before | |
1625 * (plug->type == plugin), but now there aren't plugin types. | |
1626 * Not yet, anyway. I want to do a V2 of the plugin API. | |
1627 * The thing is, we should have a flag specifying the UI type, | |
1628 * or just whether it's a general plugin or a UI-specific | |
1629 * plugin. We should only load this if it's UI-specific. | |
1630 * | |
1631 * -- ChipX86 | |
1632 */ | |
1633 if (GAIM_IS_GTK_PLUGIN(plug)) | |
1634 { | |
1635 GtkWidget *config_frame; | |
1636 GaimGtkPluginUiInfo *ui_info; | |
1637 | |
1638 ui_info = GAIM_GTK_PLUGIN_UI_INFO(plug); | |
1639 config_frame = gaim_gtk_plugin_get_config_frame(plug); | |
1640 | |
1641 if (config_frame != NULL) { | |
1642 ui_info->iter = g_new0(GtkTreeIter, 1); | |
1643 prefs_notebook_add_page(_(plug->info->name), NULL, | |
1644 config_frame, ui_info->iter, | |
1645 &plugin_iter, notebook_page++); | |
1646 | |
1647 if (gtk_tree_model_iter_n_children(GTK_TREE_MODEL(prefstree), | |
1648 &plugin_iter) == 1) { | |
1649 | |
1650 /* Expand the tree for the first plugin added */ | |
1651 GtkTreePath *path2; | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1652 |
5440 | 1653 path2 = gtk_tree_model_get_path(GTK_TREE_MODEL(prefstree), |
1654 &plugin_iter); | |
1655 gtk_tree_view_expand_row(GTK_TREE_VIEW(tree_v), | |
1656 path2, TRUE); | |
1657 gtk_tree_path_free(path2); | |
1658 } | |
1659 } | |
1660 } | |
1661 } | |
1662 else { | |
1663 if (GAIM_IS_GTK_PLUGIN(plug)) { | |
1664 GaimGtkPluginUiInfo *ui_info; | |
1665 | |
1666 ui_info = GAIM_GTK_PLUGIN_UI_INFO(plug); | |
1667 | |
1668 if (ui_info != NULL && ui_info->iter != NULL) { | |
1669 gtk_tree_store_remove(GTK_TREE_STORE(prefstree), ui_info->iter); | |
1670 g_free(ui_info->iter); | |
1671 ui_info->iter = NULL; | |
1672 } | |
1673 } | |
1674 | |
1675 gaim_plugin_unload(plug); | |
1676 } | |
1677 | |
1678 gdk_window_set_cursor(prefs->window, NULL); | |
1679 | |
6040 | 1680 name = g_markup_escape_text(_(plug->info->name), -1); |
1681 description = g_markup_escape_text(_(plug->info->description), -1); | |
5440 | 1682 if (plug->error != NULL) { |
6040 | 1683 gchar *error = g_markup_escape_text(plug->error, -1); |
5440 | 1684 g_snprintf(buf, sizeof(buf), |
1685 "<span size=\"larger\">%s %s</span>\n\n" | |
1686 "<span weight=\"bold\" color=\"red\">%s</span>\n\n" | |
1687 "%s", | |
6040 | 1688 name, plug->info->version, error, description); |
1689 g_free(error); | |
1690 } else { | |
5440 | 1691 g_snprintf(buf, sizeof(buf), |
1692 "<span size=\"larger\">%s %s</span>\n\n%s", | |
6040 | 1693 name, plug->info->version, description); |
5440 | 1694 } |
6040 | 1695 g_free(name); |
1696 g_free(description); | |
5440 | 1697 |
1698 gtk_label_set_markup(GTK_LABEL(plugin_description), buf); | |
1699 gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, | |
1700 gaim_plugin_is_loaded(plug), -1); | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1701 |
5440 | 1702 gtk_label_set_markup(GTK_LABEL(plugin_description), buf); |
1703 gtk_tree_path_free(path); | |
5981
81564bb4db68
[gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents:
5966
diff
changeset
|
1704 |
81564bb4db68
[gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents:
5966
diff
changeset
|
1705 gaim_gtk_plugins_save(); |
5440 | 1706 } |
1707 | |
1708 static void | |
1709 update_plugin_list(void *data) | |
1710 { | |
1711 GtkListStore *ls = GTK_LIST_STORE(data); | |
1712 GtkTreeIter iter; | |
1713 GList *probes; | |
1714 GaimPlugin *plug; | |
1715 | |
1716 gtk_list_store_clear(ls); | |
1717 | |
1718 for (probes = gaim_plugins_get_all(); | |
1719 probes != NULL; | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1720 probes = probes->next) |
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1721 { |
5440 | 1722 plug = probes->data; |
1723 | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1724 if (plug->info->type != GAIM_PLUGIN_STANDARD || |
6930
31c45d99e1a8
[gaim-migrate @ 7477]
Christian Hammond <chipx86@chipx86.com>
parents:
6928
diff
changeset
|
1725 (plug->info->flags & GAIM_PLUGIN_FLAG_INVISIBLE)) |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1726 { |
5440 | 1727 continue; |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1728 } |
5440 | 1729 |
1730 gtk_list_store_append (ls, &iter); | |
1731 gtk_list_store_set(ls, &iter, | |
1732 0, gaim_plugin_is_loaded(plug), | |
6928
6ed0a1c045b4
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6861
diff
changeset
|
1733 1, plug->info->name ? _(plug->info->name) : plug->path, |
5440 | 1734 2, plug, -1); |
1735 } | |
1736 } | |
1737 | |
1738 static GtkWidget *plugin_page () | |
1739 { | |
1740 GtkWidget *ret; | |
1741 GtkWidget *sw, *vp; | |
1742 GtkWidget *event_view; | |
1743 GtkListStore *ls; | |
1744 GtkCellRenderer *rend, *rendt; | |
1745 GtkTreeViewColumn *col; | |
1746 GtkTreeSelection *sel; | |
1747 GtkTreePath *path; | |
1748 GtkWidget *nb; | |
1749 | |
1750 ret = gtk_vbox_new(FALSE, 18); | |
1751 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1752 | |
1753 sw = gtk_scrolled_window_new(NULL,NULL); | |
1754 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); | |
1755 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); | |
1756 | |
1757 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); | |
1758 | |
1759 ls = gtk_list_store_new (3, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_POINTER); | |
1760 | |
1761 update_plugin_list(ls); | |
1762 | |
1763 event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(ls)); | |
1764 | |
1765 rend = gtk_cell_renderer_toggle_new(); | |
1766 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); | |
1767 | |
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 GtkWidget *sw2; | |
2164 GtkSizeGroup *sg; | |
2165 | |
2166 ret = gtk_vbox_new(FALSE, 18); | |
2167 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
2168 | |
2169 sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); | |
2170 | |
2171 sw = gtk_scrolled_window_new(NULL,NULL); | |
2172 away_text = gtk_imhtml_new(NULL, NULL); | |
2173 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); | |
2174 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); | |
2175 | |
2176 prefs_away_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER); | |
2177 while (awy) { | |
2178 a = (struct away_message *)awy->data; | |
2179 gtk_list_store_append (prefs_away_store, &iter); | |
2180 gtk_list_store_set(prefs_away_store, &iter, | |
2181 0, a->name, | |
2182 1, a, -1); | |
2183 awy = awy->next; | |
2184 } | |
2185 event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(prefs_away_store)); | |
2186 | |
2187 | |
2188 rend = gtk_cell_renderer_text_new(); | |
2189 col = gtk_tree_view_column_new_with_attributes ("NULL", | |
2190 rend, | |
2191 "text", 0, | |
2192 NULL); | |
2193 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
2194 gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(event_view), FALSE); | |
2195 gtk_widget_show(event_view); | |
2196 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), event_view); | |
2197 | |
2198 sw2 = gtk_scrolled_window_new(NULL, NULL); | |
2199 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw2), | |
2200 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); | |
2201 gtk_box_pack_start(GTK_BOX(ret), sw2, TRUE, TRUE, 0); | |
2202 | |
2203 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw2), away_text); | |
2204 gaim_setup_imhtml(away_text); | |
2205 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); | |
6979 | 2206 g_signal_connect(G_OBJECT(sel), "changed", |
2207 G_CALLBACK(away_message_sel_cb), NULL); | |
2208 g_signal_connect(G_OBJECT(event_view), "button-press-event", | |
2209 G_CALLBACK(away_message_click_cb), NULL); | |
5440 | 2210 hbox = gtk_hbox_new(TRUE, 5); |
2211 gtk_box_pack_start(GTK_BOX(ret), hbox, FALSE, FALSE, 0); | |
2212 button = gtk_button_new_from_stock (GTK_STOCK_ADD); | |
2213 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
2214 gtk_size_group_add_widget(sg, button); | |
2215 g_signal_connect(G_OBJECT(button), "clicked", | |
2216 G_CALLBACK(create_away_mess), NULL); | |
2217 | |
2218 button = gtk_button_new_from_stock (GTK_STOCK_REMOVE); | |
2219 gtk_size_group_add_widget(sg, button); | |
2220 g_signal_connect(G_OBJECT(button), "clicked", | |
2221 G_CALLBACK(remove_away_message), event_view); | |
2222 | |
2223 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
2224 | |
2225 button = gaim_pixbuf_button_from_stock(_("_Edit"), GAIM_STOCK_EDIT, GAIM_BUTTON_HORIZONTAL); | |
2226 gtk_size_group_add_widget(sg, button); | |
2227 g_signal_connect(G_OBJECT(button), "clicked", | |
2228 G_CALLBACK(create_away_mess), event_view); | |
2229 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
2230 | |
2231 gtk_widget_show_all(ret); | |
2232 return ret; | |
2233 } | |
2234 | |
2235 GtkTreeIter *prefs_notebook_add_page(const char *text, | |
2236 GdkPixbuf *pixbuf, | |
2237 GtkWidget *page, | |
2238 GtkTreeIter *iter, | |
2239 GtkTreeIter *parent, | |
2240 int ind) { | |
2241 GdkPixbuf *icon = NULL; | |
2242 | |
2243 if (pixbuf) | |
2244 icon = gdk_pixbuf_scale_simple (pixbuf, 18, 18, GDK_INTERP_BILINEAR); | |
2245 | |
2246 gtk_tree_store_append (prefstree, iter, parent); | |
2247 gtk_tree_store_set (prefstree, iter, 0, icon, 1, text, 2, ind, -1); | |
2248 | |
2249 if (pixbuf) | |
2250 g_object_unref(pixbuf); | |
2251 if (icon) | |
2252 g_object_unref(icon); | |
2253 gtk_notebook_append_page(GTK_NOTEBOOK(prefsnotebook), page, gtk_label_new(text)); | |
2254 return iter; | |
2255 } | |
2256 | |
2257 void prefs_notebook_init() { | |
2258 GtkTreeIter p, p2, c; | |
2259 GList *l; | |
2260 GaimPlugin *plug; | |
2261 prefs_notebook_add_page(_("Interface"), NULL, interface_page(), &p, NULL, notebook_page++); | |
2262 prefs_notebook_add_page(_("Smiley Themes"), NULL, theme_page(), &c, &p, notebook_page++); | |
2263 prefs_notebook_add_page(_("Fonts"), NULL, font_page(), &c, &p, notebook_page++); | |
2264 prefs_notebook_add_page(_("Message Text"), NULL, messages_page(), &c, &p, notebook_page++); | |
2265 prefs_notebook_add_page(_("Shortcuts"), NULL, hotkeys_page(), &c, &p, notebook_page++); | |
2266 prefs_notebook_add_page(_("Buddy List"), NULL, list_page(), &c, &p, notebook_page++); | |
2267 prefs_notebook_add_page(_("Conversations"), NULL, conv_page(), &p2, NULL, notebook_page++); | |
2268 prefs_notebook_add_page(_("IMs"), NULL, im_page(), &c, &p2, notebook_page++); | |
2269 prefs_notebook_add_page(_("Chats"), NULL, chat_page(), &c, &p2, notebook_page++); | |
2270 prefs_notebook_add_page(_("Proxy"), NULL, proxy_page(), &p, NULL, notebook_page++); | |
2271 #ifndef _WIN32 | |
2272 /* We use the registered default browser in windows */ | |
2273 prefs_notebook_add_page(_("Browser"), NULL, browser_page(), &p, NULL, notebook_page++); | |
2274 #endif | |
2275 prefs_notebook_add_page(_("Logging"), NULL, logging_page(), &p, NULL, notebook_page++); | |
2276 prefs_notebook_add_page(_("Sounds"), NULL, sound_page(), &p, NULL, notebook_page++); | |
2277 prefs_notebook_add_page(_("Sound Events"), NULL, sound_events_page(), &c, &p, notebook_page++); | |
2278 prefs_notebook_add_page(_("Away / Idle"), NULL, away_page(), &p, NULL, notebook_page++); | |
2279 prefs_notebook_add_page(_("Away Messages"), NULL, away_message_page(), &c, &p, notebook_page++); | |
2280 | |
2281 if (gaim_plugins_enabled()) { | |
2282 prefs_notebook_add_page(_("Plugins"), NULL, plugin_page(), &plugin_iter, NULL, notebook_page++); | |
2283 | |
2284 for (l = gaim_plugins_get_loaded(); l != NULL; l = l->next) { | |
2285 plug = l->data; | |
2286 | |
2287 if (GAIM_IS_GTK_PLUGIN(plug)) { | |
2288 GtkWidget *config_frame; | |
2289 GaimGtkPluginUiInfo *ui_info; | |
2290 | |
2291 ui_info = GAIM_GTK_PLUGIN_UI_INFO(plug); | |
2292 config_frame = gaim_gtk_plugin_get_config_frame(plug); | |
2293 | |
2294 if (config_frame != NULL) { | |
2295 ui_info->iter = g_new0(GtkTreeIter, 1); | |
2296 prefs_notebook_add_page(_(plug->info->name), NULL, | |
2297 config_frame, ui_info->iter, | |
2298 &plugin_iter, notebook_page++); | |
2299 } | |
2300 } | |
2301 } | |
2302 } | |
2303 } | |
2304 | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2305 void gaim_gtk_prefs_show(void) |
5440 | 2306 { |
2307 GtkWidget *vbox, *vbox2; | |
2308 GtkWidget *hbox; | |
2309 GtkWidget *frame; | |
2310 GtkTreeViewColumn *column; | |
2311 GtkCellRenderer *cell; | |
2312 GtkTreeSelection *sel; | |
2313 GtkWidget *notebook; | |
2314 GtkWidget *sep; | |
2315 GtkWidget *button; | |
2316 GtkSizeGroup *sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); | |
2317 | |
2318 if (prefs) { | |
2319 gtk_window_present(GTK_WINDOW(prefs)); | |
2320 return; | |
2321 } | |
2322 | |
2323 /* copy the preferences to tmp values... | |
2324 * I liked "take affect immediately" Oh well :-( */ | |
6016 | 2325 /* (that should have been "effect," right?) */ |
2326 | |
5440 | 2327 /* Back to instant-apply! I win! BU-HAHAHA! */ |
2328 | |
2329 /* Create the window */ | |
2330 prefs = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
2331 gtk_window_set_role(GTK_WINDOW(prefs), "preferences"); | |
2332 gtk_widget_realize(prefs); | |
2333 gtk_window_set_title(GTK_WINDOW(prefs), _("Preferences")); | |
2334 gtk_window_set_resizable (GTK_WINDOW(prefs), FALSE); | |
2335 g_signal_connect(G_OBJECT(prefs), "destroy", | |
2336 G_CALLBACK(delete_prefs), NULL); | |
2337 | |
2338 vbox = gtk_vbox_new(FALSE, 5); | |
2339 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); | |
2340 gtk_container_add(GTK_CONTAINER(prefs), vbox); | |
2341 gtk_widget_show(vbox); | |
2342 | |
2343 hbox = gtk_hbox_new (FALSE, 6); | |
2344 gtk_container_set_border_width (GTK_CONTAINER (hbox), 6); | |
2345 gtk_container_add (GTK_CONTAINER(vbox), hbox); | |
2346 gtk_widget_show (hbox); | |
2347 | |
2348 frame = gtk_frame_new (NULL); | |
2349 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); | |
2350 gtk_box_pack_start (GTK_BOX (hbox), frame, FALSE, FALSE, 0); | |
2351 gtk_widget_show (frame); | |
2352 | |
2353 /* The tree -- much inspired by the Gimp */ | |
2354 prefstree = gtk_tree_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_INT); | |
2355 tree_v = gtk_tree_view_new_with_model (GTK_TREE_MODEL (prefstree)); | |
2356 gtk_container_add (GTK_CONTAINER (frame), tree_v); | |
2357 | |
2358 gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_v), FALSE); | |
2359 gtk_widget_show(tree_v); | |
2360 /* icons */ | |
2361 /* XXX: to be used at a later date | |
2362 cell = gtk_cell_renderer_pixbuf_new (); | |
2363 column = gtk_tree_view_column_new_with_attributes ("icons", cell, "pixbuf", 0, NULL); | |
2364 */ | |
2365 | |
2366 /* text */ | |
2367 cell = gtk_cell_renderer_text_new (); | |
2368 column = gtk_tree_view_column_new_with_attributes ("text", cell, "text", 1, NULL); | |
2369 | |
2370 gtk_tree_view_append_column (GTK_TREE_VIEW (tree_v), column); | |
2371 | |
2372 /* The right side */ | |
2373 frame = gtk_frame_new (NULL); | |
2374 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); | |
2375 gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, 0); | |
2376 gtk_widget_show (frame); | |
2377 | |
2378 vbox2 = gtk_vbox_new (FALSE, 4); | |
2379 gtk_container_add (GTK_CONTAINER (frame), vbox2); | |
2380 gtk_widget_show (vbox2); | |
2381 | |
2382 frame = gtk_frame_new (NULL); | |
2383 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT); | |
2384 gtk_box_pack_start (GTK_BOX (vbox2), frame, FALSE, TRUE, 0); | |
2385 gtk_widget_show (frame); | |
2386 | |
2387 hbox = gtk_hbox_new (FALSE, 4); | |
2388 gtk_container_set_border_width (GTK_CONTAINER (hbox), 4); | |
2389 gtk_container_add (GTK_CONTAINER (frame), hbox); | |
2390 gtk_widget_show (hbox); | |
2391 | |
2392 preflabel = gtk_label_new(NULL); | |
2393 gtk_box_pack_end (GTK_BOX (hbox), preflabel, FALSE, FALSE, 0); | |
2394 gtk_widget_show (preflabel); | |
2395 | |
2396 /* The notebook */ | |
2397 prefsnotebook = notebook = gtk_notebook_new (); | |
2398 gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE); | |
2399 gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE); | |
2400 gtk_box_pack_start (GTK_BOX (vbox2), notebook, FALSE, FALSE, 0); | |
2401 | |
2402 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_v)); | |
2403 g_signal_connect (G_OBJECT (sel), "changed", | |
2404 G_CALLBACK (pref_nb_select), | |
2405 notebook); | |
2406 gtk_widget_show(notebook); | |
2407 sep = gtk_hseparator_new(); | |
2408 gtk_widget_show(sep); | |
2409 gtk_box_pack_start (GTK_BOX (vbox), sep, FALSE, FALSE, 0); | |
2410 | |
2411 /* The buttons^H to press! */ | |
2412 hbox = gtk_hbox_new (FALSE, 6); | |
2413 gtk_container_set_border_width (GTK_CONTAINER (hbox), 6); | |
2414 gtk_container_add (GTK_CONTAINER(vbox), hbox); | |
2415 gtk_widget_show (hbox); | |
2416 | |
2417 button = gtk_button_new_from_stock (GTK_STOCK_CLOSE); | |
2418 gtk_size_group_add_widget(sg, button); | |
2419 g_signal_connect_swapped(G_OBJECT(button), "clicked", | |
2420 G_CALLBACK(gtk_widget_destroy), prefs); | |
2421 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
2422 gtk_widget_show(button); | |
2423 | |
2424 prefs_notebook_init(); | |
2425 | |
5568
fb4f7bd7525c
[gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
2426 /* Show everything. */ |
5440 | 2427 gtk_tree_view_expand_all (GTK_TREE_VIEW(tree_v)); |
2428 gtk_widget_show(prefs); | |
2429 } | |
2430 | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2431 #if 0 |
5440 | 2432 static void set_logging_option(GtkWidget *w, int option) |
2433 { | |
2434 logging_options ^= option; | |
2435 | |
2436 if (option == OPT_LOG_CONVOS || option == OPT_LOG_CHATS) | |
2437 update_log_convs(); | |
2438 } | |
2439 | |
2440 static void set_convo_option(GtkWidget *w, int option) | |
2441 { | |
2442 convo_options ^= option; | |
2443 | |
2444 if (option == OPT_CONVO_SHOW_SMILEY) | |
2445 gaim_gtkconv_toggle_smileys(); | |
2446 | |
2447 if (option == OPT_CONVO_SHOW_TIME) | |
2448 gaim_gtkconv_toggle_timestamps(); | |
2449 } | |
2450 | |
2451 static void set_im_option(GtkWidget *w, int option) | |
2452 { | |
2453 im_options ^= option; | |
2454 | |
2455 #if 0 | |
2456 if (option == OPT_IM_ONE_WINDOW) | |
2457 im_tabize(); | |
2458 #endif | |
2459 } | |
2460 | |
2461 static void set_chat_option(GtkWidget *w, int option) | |
2462 { | |
2463 chat_options ^= option; | |
2464 | |
2465 #if 0 | |
2466 if (option == OPT_CHAT_ONE_WINDOW) | |
2467 chat_tabize(); | |
2468 #endif | |
2469 } | |
2470 | |
2471 static void set_away_option(GtkWidget *w, int option) | |
2472 { | |
2473 away_options ^= option; | |
2474 | |
2475 if (option == OPT_AWAY_QUEUE) | |
2476 toggle_away_queue(); | |
2477 } | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2478 #endif |
5440 | 2479 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2480 static void |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2481 set_bool_pref(GtkWidget *w, const char *key) |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2482 { |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2483 gaim_prefs_set_bool(key, |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2484 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2485 } |
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 static GtkWidget * |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2488 prefs_checkbox(const char *text, const char *key, GtkWidget *page) |
5440 | 2489 { |
2490 GtkWidget *button; | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2491 |
5440 | 2492 button = gtk_check_button_new_with_mnemonic(text); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2493 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2494 gaim_prefs_get_bool(key)); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2495 |
5440 | 2496 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
|
2497 |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2498 g_signal_connect(G_OBJECT(button), "clicked", |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2499 G_CALLBACK(set_bool_pref), (char *)key); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2500 |
5440 | 2501 gtk_widget_show(button); |
2502 | |
2503 return button; | |
2504 } | |
2505 | |
2506 void default_away_menu_init(GtkWidget *omenu) | |
2507 { | |
2508 GtkWidget *menu, *opt; | |
6216 | 2509 int index = 0, default_index = 0; |
5440 | 2510 GSList *awy = away_messages; |
2511 struct away_message *a; | |
6216 | 2512 const char *default_name; |
5440 | 2513 |
2514 menu = gtk_menu_new(); | |
2515 | |
6216 | 2516 default_name = gaim_prefs_get_string("/core/away/default_message"); |
2517 | |
5440 | 2518 while (awy) { |
2519 a = (struct away_message *)awy->data; | |
2520 opt = gtk_menu_item_new_with_label(a->name); | |
2521 g_signal_connect(G_OBJECT(opt), "activate", | |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
2522 G_CALLBACK(set_default_away), GINT_TO_POINTER(index)); |
5440 | 2523 gtk_widget_show(opt); |
2524 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); | |
2525 | |
6216 | 2526 if(!strcmp(default_name, a->name)) |
2527 default_index = index; | |
2528 | |
5440 | 2529 awy = awy->next; |
2530 index++; | |
2531 } | |
2532 | |
2533 gtk_option_menu_remove_menu(GTK_OPTION_MENU(omenu)); | |
2534 gtk_option_menu_set_menu(GTK_OPTION_MENU(omenu), menu); | |
6216 | 2535 gtk_option_menu_set_history(GTK_OPTION_MENU(omenu), default_index); |
5440 | 2536 } |
2537 | |
2538 GtkWidget *pref_fg_picture = NULL; | |
2539 GtkWidget *pref_bg_picture = NULL; | |
2540 | |
2541 void destroy_colorsel(GtkWidget *w, gpointer d) | |
2542 { | |
2543 if (d) { | |
2544 gtk_widget_destroy(fgcseld); | |
2545 fgcseld = NULL; | |
2546 } else { | |
2547 gtk_widget_destroy(bgcseld); | |
2548 bgcseld = NULL; | |
2549 } | |
2550 } | |
2551 | |
2552 void apply_color_dlg(GtkWidget *w, gpointer d) | |
2553 { | |
5671 | 2554 char buf[14]; |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2555 |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
2556 if (GPOINTER_TO_INT(d) == 1) { |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2557 GdkColor fgcolor; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2558 |
5440 | 2559 gtk_color_selection_get_current_color(GTK_COLOR_SELECTION |
2560 (GTK_COLOR_SELECTION_DIALOG(fgcseld)->colorsel), | |
2561 &fgcolor); | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2562 |
5671 | 2563 g_snprintf(buf, sizeof(buf), "#%04x%04x%04x", |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2564 fgcolor.red, fgcolor.green, fgcolor.blue); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2565 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2566 gaim_prefs_set_string("/gaim/gtk/conversations/fgcolor", buf); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2567 |
5440 | 2568 destroy_colorsel(NULL, (void *)1); |
2569 update_color(NULL, pref_fg_picture); | |
2570 } else { | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2571 GdkColor bgcolor; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2572 |
5440 | 2573 gtk_color_selection_get_current_color(GTK_COLOR_SELECTION |
2574 (GTK_COLOR_SELECTION_DIALOG(bgcseld)->colorsel), | |
2575 &bgcolor); | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2576 |
5671 | 2577 g_snprintf(buf, sizeof(buf), "#%04x%04x%04x", |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2578 bgcolor.red, bgcolor.green, bgcolor.blue); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2579 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2580 gaim_prefs_set_string("/gaim/gtk/conversations/bgcolor", buf); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2581 |
5440 | 2582 destroy_colorsel(NULL, (void *)0); |
2583 update_color(NULL, pref_bg_picture); | |
2584 } | |
2585 gaim_conversation_foreach(gaim_gtkconv_update_font_colors); | |
2586 } | |
2587 | |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
2588 void set_default_away(GtkWidget *w, gpointer data) |
5440 | 2589 { |
6216 | 2590 struct away_message *default_away = NULL; |
5440 | 2591 int length = g_slist_length(away_messages); |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
2592 int i = GPOINTER_TO_INT(data); |
5440 | 2593 |
2594 if (away_messages == NULL) | |
2595 default_away = NULL; | |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
2596 else if (i >= length) |
5440 | 2597 default_away = g_slist_nth_data(away_messages, length - 1); |
2598 else | |
6478
338147ea6896
[gaim-migrate @ 6991]
Christian Hammond <chipx86@chipx86.com>
parents:
6455
diff
changeset
|
2599 default_away = g_slist_nth_data(away_messages, i); |
6216 | 2600 |
2601 if(default_away) | |
2602 gaim_prefs_set_string("/core/away/default_message", default_away->name); | |
2603 else | |
2604 gaim_prefs_set_string("/core/away/default_message", ""); | |
5440 | 2605 } |
2606 | |
2607 static GtkWidget *show_color_pref(GtkWidget *box, gboolean fgc) | |
2608 { | |
2609 /* more stuff stolen from X-Chat */ | |
2610 GtkWidget *swid; | |
2611 GdkColor c; | |
2612 GtkStyle *style; | |
2613 c.pixel = 0; | |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2614 |
5440 | 2615 if (fgc) { |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2616 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
|
2617 GdkColor fgcolor; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2618 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2619 gdk_color_parse( |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2620 gaim_prefs_get_string("/gaim/gtk/conversations/fgcolor"), |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2621 &fgcolor); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2622 |
5440 | 2623 c.red = fgcolor.red; |
2624 c.blue = fgcolor.blue; | |
2625 c.green = fgcolor.green; | |
2626 } else { | |
2627 c.red = 0; | |
2628 c.blue = 0; | |
2629 c.green = 0; | |
2630 } | |
2631 } else { | |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2632 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
|
2633 GdkColor bgcolor; |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2634 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2635 gdk_color_parse( |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2636 gaim_prefs_get_string("/gaim/gtk/conversations/bgcolor"), |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2637 &bgcolor); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2638 |
5440 | 2639 c.red = bgcolor.red; |
2640 c.blue = bgcolor.blue; | |
2641 c.green = bgcolor.green; | |
2642 } else { | |
2643 c.red = 0xffff; | |
2644 c.blue = 0xffff; | |
2645 c.green = 0xffff; | |
2646 } | |
2647 } | |
2648 | |
2649 style = gtk_style_new(); | |
2650 style->bg[0] = c; | |
2651 | |
2652 swid = gtk_event_box_new(); | |
2653 gtk_widget_set_style(GTK_WIDGET(swid), style); | |
2654 g_object_unref(style); | |
2655 gtk_widget_set_size_request(GTK_WIDGET(swid), 40, -1); | |
2656 gtk_box_pack_start(GTK_BOX(box), swid, FALSE, FALSE, 5); | |
2657 gtk_widget_show(swid); | |
2658 return swid; | |
2659 } | |
2660 | |
2661 void apply_font_dlg(GtkWidget *w, GtkWidget *f) | |
2662 { | |
7079 | 2663 char *fontname, *space; |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2664 |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2665 fontname = |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2666 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
|
2667 |
5440 | 2668 destroy_fontsel(0, 0); |
2669 | |
7079 | 2670 space = strrchr(fontname, ' '); |
2671 if(space && isdigit(*(space+1))) | |
2672 *space = '\0'; | |
5440 | 2673 |
5551
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2674 gaim_prefs_set_string("/gaim/gtk/conversations/font_face", fontname); |
51699de873af
[gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents:
5550
diff
changeset
|
2675 |
5440 | 2676 g_free(fontname); |
2677 | |
2678 gaim_conversation_foreach(gaim_gtkconv_update_font_face); | |
2679 } | |
2680 | |
5770
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2681 static void |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2682 smiley_theme_pref_cb(const char *name, GaimPrefType type, gpointer value, |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2683 gpointer data) |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2684 { |
5841 | 2685 if (!strcmp(name, "/gaim/gtk/smileys/theme")) |
5771
f63a008726c6
[gaim-migrate @ 6196]
Christian Hammond <chipx86@chipx86.com>
parents:
5770
diff
changeset
|
2686 load_smiley_theme((const char *)value, TRUE); |
5770
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2687 } |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2688 |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2689 void |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2690 gaim_gtk_prefs_init(void) |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2691 { |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2692 gaim_prefs_add_none("/gaim"); |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2693 gaim_prefs_add_none("/gaim/gtk"); |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2694 gaim_prefs_add_none("/plugins/gtk"); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2695 |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2696 /* XXX Move this! HACK! :( Aww... */ |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2697 gaim_prefs_add_none("/plugins/gtk/docklet"); |
5554
7b36d02031a2
[gaim-migrate @ 5955]
Christian Hammond <chipx86@chipx86.com>
parents:
5551
diff
changeset
|
2698 gaim_prefs_add_bool("/plugins/gtk/docklet/queue_messages", FALSE); |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2699 |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
2700 /* Accounts Dialog */ |
5567
cc9ddec20010
[gaim-migrate @ 5969]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
2701 gaim_prefs_add_none("/gaim/gtk/accounts"); |
cc9ddec20010
[gaim-migrate @ 5969]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
2702 gaim_prefs_add_none("/gaim/gtk/accounts/dialog"); |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
2703 gaim_prefs_add_int("/gaim/gtk/accounts/dialog/width", 550); |
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
2704 gaim_prefs_add_int("/gaim/gtk/accounts/dialog/height", 250); |
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
2705 |
5573
5e7de337a053
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5568
diff
changeset
|
2706 /* Away Queueing */ |
5e7de337a053
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5568
diff
changeset
|
2707 gaim_prefs_add_none("/gaim/gtk/away"); |
5e7de337a053
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5568
diff
changeset
|
2708 gaim_prefs_add_bool("/gaim/gtk/away/queue_messages", FALSE); |
5e7de337a053
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5568
diff
changeset
|
2709 |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2710 /* Browsers */ |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2711 gaim_prefs_add_none("/gaim/gtk/browsers"); |
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2712 gaim_prefs_add_bool("/gaim/gtk/browsers/new_window", FALSE); |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
2713 gaim_prefs_add_string("/gaim/gtk/browsers/command", ""); |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
2714 gaim_prefs_add_string("/gaim/gtk/browsers/browser", "mozilla"); |
5545
7a64114641c3
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5539
diff
changeset
|
2715 |
5550
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2716 /* Idle */ |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2717 gaim_prefs_add_none("/gaim/gtk/idle"); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2718 gaim_prefs_add_string("/gaim/gtk/idle/reporting_method", "system"); |
b18c2a37cc96
[gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents:
5547
diff
changeset
|
2719 |
5949
90d0849abd3c
[gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
2720 /* Plugins */ |
5982
35d3c1ac5ece
[gaim-migrate @ 6430]
Christian Hammond <chipx86@chipx86.com>
parents:
5981
diff
changeset
|
2721 gaim_prefs_add_none("/gaim/gtk/plugins"); |
5949
90d0849abd3c
[gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
2722 gaim_prefs_add_string_list("/gaim/gtk/plugins/loaded", NULL); |
90d0849abd3c
[gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
2723 |
5539
de09863bd4b5
[gaim-migrate @ 5939]
Christian Hammond <chipx86@chipx86.com>
parents:
5535
diff
changeset
|
2724 /* Smiley Themes */ |
5546
22cf337e8b8f
[gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents:
5545
diff
changeset
|
2725 gaim_prefs_add_none("/gaim/gtk/smileys"); |
5771
f63a008726c6
[gaim-migrate @ 6196]
Christian Hammond <chipx86@chipx86.com>
parents:
5770
diff
changeset
|
2726 gaim_prefs_add_string("/gaim/gtk/smileys/theme", ""); |
5770
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2727 |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2728 /* Smiley Callbacks */ |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2729 gaim_prefs_connect_callback("/gaim/gtk/smileys/theme", |
a86051df9122
[gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents:
5753
diff
changeset
|
2730 smiley_theme_pref_cb, NULL); |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2731 } |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5440
diff
changeset
|
2732 |