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