src/gtkprefs.c

Wed, 01 Dec 2004 01:17:19 +0000

author
Scott Shedden
date
Wed, 01 Dec 2004 01:17:19 +0000
changeset 10282
055f7b0e0f43
parent 10272
29aff2eb9290
child 10297
b36800725b7a
permissions
-rw-r--r--

[gaim-migrate @ 11451]
Patch from Scott Shedden to have the blist hidden when Gaim starts.

This actually probably won't work for most people currently, because
on X11, the docklet is added asynchrously, so we usually won't realize the
docklet exists until we've already created the blist. I'm sure there
must be some way around this, though (Scott's solution was to manually hide
the buddy list when the docklet was finally embedded. I may fall back on
that).

committer: Sean Egan <seanegan@pidgin.im>

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
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
5 * gaim
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
6 *
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 8015
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 8015
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 8015
diff changeset
9 * source distribution.
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
10 *
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
14 * (at your option) any later version.
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
15 *
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
19 * GNU General Public License for more details.
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
20 *
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
24 *
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
25 */
9791
f5c5bda0b96b [gaim-migrate @ 10659]
Gary Kramlich <grim@pidgin.im>
parents: 9769
diff changeset
26 #include "internal.h"
f5c5bda0b96b [gaim-migrate @ 10659]
Gary Kramlich <grim@pidgin.im>
parents: 9769
diff changeset
27 #include "gtkgaim.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
28
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
29 #include "debug.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
30 #include "notify.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
31 #include "prefs.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
32 #include "proxy.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
33 #include "prpl.h"
9508
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
34 #include "request.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
35 #include "sound.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
36 #include "util.h"
8231
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
37 #include "network.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
38
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
39 #include "gtkblist.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
40 #include "gtkconv.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
41 #include "gtkdebug.h"
9709
2e73f176cc80 [gaim-migrate @ 10570]
Mark Doliner <markdoliner@pidgin.im>
parents: 9707
diff changeset
42 #include "gtkdialogs.h"
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
43 #include "gtkimhtml.h"
8833
29a56613ce77 [gaim-migrate @ 9597]
Sean Egan <seanegan@pidgin.im>
parents: 8814
diff changeset
44 #include "gtkimhtmltoolbar.h"
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
45 #include "gtkplugin.h"
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
46 #include "gtkpluginpref.h"
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
47 #include "gtkprefs.h"
5684
10b916deb20c [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5681
diff changeset
48 #include "gtksound.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
49 #include "gtkutils.h"
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
50 #include "stock.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
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
57 static int sound_row_sel = 0;
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
58 static GtkWidget *prefsnotebook;
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
59
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
60 static GtkWidget *sound_entry = NULL;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
61 static GtkListStore *smiley_theme_store = NULL;
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
62 static GtkWidget *prefs_proxy_frame = NULL;
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
63
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
64 static GtkWidget *prefs = NULL;
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
65 static GtkWidget *debugbutton = NULL;
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
66 static int notebook_page = 0;
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
67 static GtkTreeIter proto_iter, plugin_iter;
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
68
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
69 /*
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
70 * PROTOTYPES
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
71 */
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
72 static GtkTreeIter *prefs_notebook_add_page(const char*, GdkPixbuf*,
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
73 GtkWidget*, GtkTreeIter*,
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
74 GtkTreeIter*, int);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
75 static void delete_prefs(GtkWidget *, void *);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
76 static void update_plugin_list(void *data);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
77
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
78 static void
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
79 update_spin_value(GtkWidget *w, GtkWidget *spin)
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
80 {
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
81 const char *key = g_object_get_data(G_OBJECT(spin), "val");
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
82 int value;
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
83
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
84 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
85
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
86 gaim_prefs_set_int(key, value);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
87 }
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
88
7976
fa3b5ed4ac97 [gaim-migrate @ 8653]
Daniel Atallah <datallah@pidgin.im>
parents: 7940
diff changeset
89 GtkWidget *
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
90 gaim_gtk_prefs_labeled_spin_button(GtkWidget *box, const gchar *title,
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
91 char *key, int min, int max, GtkSizeGroup *sg)
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
92 {
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
93 GtkWidget *hbox;
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
94 GtkWidget *label;
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
95 GtkWidget *spin;
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
96 GtkObject *adjust;
5550
1938d1e59cf8 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
97 int val;
1938d1e59cf8 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
98
1938d1e59cf8 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
99 val = gaim_prefs_get_int(key);
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
100
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
101 hbox = gtk_hbox_new(FALSE, 5);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
102 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
103 gtk_widget_show(hbox);
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 label = gtk_label_new_with_mnemonic(title);
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
106 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
107 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
108 gtk_widget_show(label);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
109
5550
1938d1e59cf8 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
110 adjust = gtk_adjustment_new(val, min, max, 1, 1, 1);
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
111 spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
112 g_object_set_data(G_OBJECT(spin), "val", key);
8467
95c289667891 [gaim-migrate @ 9197]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8458
diff changeset
113 if (max < 10000)
95c289667891 [gaim-migrate @ 9197]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8458
diff changeset
114 gtk_widget_set_size_request(spin, 50, -1);
95c289667891 [gaim-migrate @ 9197]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8458
diff changeset
115 else
95c289667891 [gaim-migrate @ 9197]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8458
diff changeset
116 gtk_widget_set_size_request(spin, 60, -1);
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
117 gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
118 g_signal_connect(G_OBJECT(adjust), "value-changed",
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
119 G_CALLBACK(update_spin_value), GTK_WIDGET(spin));
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
120 gtk_widget_show(spin);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
121
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
122 gtk_label_set_mnemonic_widget(GTK_LABEL(label), spin);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
123
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
124 if (sg) {
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
125 gtk_size_group_add_widget(sg, label);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
126 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
127 }
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
128
8137
ca2132ad085e [gaim-migrate @ 8842]
Marc Mulcahy
parents: 8104
diff changeset
129 gaim_set_accessible_label (spin, label);
ca2132ad085e [gaim-migrate @ 8842]
Marc Mulcahy
parents: 8104
diff changeset
130
8238
f7d22f952df5 [gaim-migrate @ 8961]
Mark Doliner <markdoliner@pidgin.im>
parents: 8231
diff changeset
131 return hbox;
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
132 }
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
133
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
134 static void
9422
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
135 entry_set(GtkEntry *entry, gpointer data) {
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
136 char *key = (char*)data;
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
137
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
138 gaim_prefs_set_string(key, gtk_entry_get_text(entry));
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
139 }
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
140
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
141 GtkWidget *
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
142 gaim_gtk_prefs_labeled_entry(GtkWidget *page, const gchar *title, char *key,
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
143 GtkSizeGroup *sg)
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
144 {
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
145 GtkWidget *hbox, *label, *entry;
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
146 const gchar *value;
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
147
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
148 value = gaim_prefs_get_string(key);
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
149
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
150 hbox = gtk_hbox_new(FALSE, 5);
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
151 gtk_box_pack_start(GTK_BOX(page), hbox, FALSE, FALSE, 5);
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
152 gtk_widget_show(hbox);
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
153
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
154 label = gtk_label_new_with_mnemonic(title);
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
155 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
156 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
157 gtk_widget_show(label);
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
158
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
159 entry = gtk_entry_new();
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
160 gtk_entry_set_text(GTK_ENTRY(entry), value);
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
161 gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 0);
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
162 g_signal_connect(G_OBJECT(entry), "changed",
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
163 G_CALLBACK(entry_set), (char*)key);
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
164 gtk_widget_show(entry);
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
165
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
166 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
167
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
168 if(sg) {
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
169 gtk_size_group_add_widget(sg, label);
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
170 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
171 }
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
172
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
173 gaim_set_accessible_label(entry, label);
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
174
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
175 return hbox;
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
176 }
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
177
fda18b808f1c [gaim-migrate @ 10240]
Gary Kramlich <grim@pidgin.im>
parents: 9405
diff changeset
178 static void
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
179 dropdown_set(GObject *w, const char *key)
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
180 {
5551
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
181 const char *str_value;
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
182 int int_value;
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
183 GaimPrefType type;
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
184
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
185 type = GPOINTER_TO_INT(g_object_get_data(w, "type"));
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
186
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
187 if (type == GAIM_PREF_INT) {
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
188 int_value = GPOINTER_TO_INT(g_object_get_data(w, "value"));
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
189
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
190 gaim_prefs_set_int(key, int_value);
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
191 }
5551
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
192 else if (type == GAIM_PREF_STRING) {
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
193 str_value = (const char *)g_object_get_data(w, "value");
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
194
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
195 gaim_prefs_set_string(key, str_value);
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
196 }
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
197 else if (type == GAIM_PREF_BOOLEAN) {
9151
deba164a360e [gaim-migrate @ 9935]
Nathan Walp <nwalp@pidgin.im>
parents: 9150
diff changeset
198 gaim_prefs_set_bool(key,
deba164a360e [gaim-migrate @ 9935]
Nathan Walp <nwalp@pidgin.im>
parents: 9150
diff changeset
199 GPOINTER_TO_INT(g_object_get_data(w, "value")));
5551
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
200 }
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
201 }
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
202
7976
fa3b5ed4ac97 [gaim-migrate @ 8653]
Daniel Atallah <datallah@pidgin.im>
parents: 7940
diff changeset
203 GtkWidget *
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
204 gaim_gtk_prefs_dropdown_from_list(GtkWidget *box, const gchar *title,
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
205 GaimPrefType type, const char *key, GList *menuitems)
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
206 {
5546
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
207 GtkWidget *dropdown, *opt, *menu;
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
208 GtkWidget *label;
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
209 GtkWidget *hbox;
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
210 gchar *text;
5551
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
211 const char *stored_str = NULL;
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
212 int stored_int = 0;
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
213 int int_value = 0;
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
214 const char *str_value = NULL;
5546
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
215 int o = 0;
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
216
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
217 g_return_val_if_fail(menuitems != NULL, NULL);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
218
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
219 hbox = gtk_hbox_new(FALSE, 5);
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
220 /*gtk_container_add (GTK_CONTAINER (box), hbox);*/
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
221 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
222 gtk_widget_show(hbox);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
223
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
224 label = gtk_label_new_with_mnemonic(title);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
225 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
226 gtk_widget_show(label);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
227
8577
64f25a17f8e4 [gaim-migrate @ 9326]
Nathan Walp <nwalp@pidgin.im>
parents: 8573
diff changeset
228 #if 0 /* GTK_CHECK_VERSION(2,4,0) */
64f25a17f8e4 [gaim-migrate @ 9326]
Nathan Walp <nwalp@pidgin.im>
parents: 8573
diff changeset
229 if(type == GAIM_PREF_INT)
64f25a17f8e4 [gaim-migrate @ 9326]
Nathan Walp <nwalp@pidgin.im>
parents: 8573
diff changeset
230 model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT);
64f25a17f8e4 [gaim-migrate @ 9326]
Nathan Walp <nwalp@pidgin.im>
parents: 8573
diff changeset
231 else if(type == GAIM_PREF_STRING)
64f25a17f8e4 [gaim-migrate @ 9326]
Nathan Walp <nwalp@pidgin.im>
parents: 8573
diff changeset
232 model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING);
64f25a17f8e4 [gaim-migrate @ 9326]
Nathan Walp <nwalp@pidgin.im>
parents: 8573
diff changeset
233 dropdown = gtk_combo_box_new_with_model(model);
64f25a17f8e4 [gaim-migrate @ 9326]
Nathan Walp <nwalp@pidgin.im>
parents: 8573
diff changeset
234 #else
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
235 dropdown = gtk_option_menu_new();
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
236 menu = gtk_menu_new();
8577
64f25a17f8e4 [gaim-migrate @ 9326]
Nathan Walp <nwalp@pidgin.im>
parents: 8573
diff changeset
237 #endif
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
238
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
239 gtk_label_set_mnemonic_widget(GTK_LABEL(label), dropdown);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
240
5546
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
241 if (type == GAIM_PREF_INT)
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
242 stored_int = gaim_prefs_get_int(key);
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
243 else if (type == GAIM_PREF_STRING)
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
244 stored_str = gaim_prefs_get_string(key);
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
245
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
246 while (menuitems != NULL && (text = (char *) menuitems->data) != NULL) {
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
247 menuitems = g_list_next(menuitems);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
248 g_return_val_if_fail(menuitems != NULL, NULL);
5546
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
249
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
250 opt = gtk_menu_item_new_with_label(text);
5551
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
251
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
252 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
253
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
254 if (type == GAIM_PREF_INT) {
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
255 int_value = GPOINTER_TO_INT(menuitems->data);
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
256 g_object_set_data(G_OBJECT(opt), "value",
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
257 GINT_TO_POINTER(int_value));
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
258 }
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
259 else if (type == GAIM_PREF_STRING) {
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
260 str_value = (const char *)menuitems->data;
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
261
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
262 g_object_set_data(G_OBJECT(opt), "value", (char *)str_value);
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
263 }
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
264 else if (type == GAIM_PREF_BOOLEAN) {
9151
deba164a360e [gaim-migrate @ 9935]
Nathan Walp <nwalp@pidgin.im>
parents: 9150
diff changeset
265 g_object_set_data(G_OBJECT(opt), "value",
deba164a360e [gaim-migrate @ 9935]
Nathan Walp <nwalp@pidgin.im>
parents: 9150
diff changeset
266 menuitems->data);
5551
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
267 }
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
268
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
269 g_signal_connect(G_OBJECT(opt), "activate",
5551
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
270 G_CALLBACK(dropdown_set), (char *)key);
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
271
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
272 gtk_widget_show(opt);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
273 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
274
5551
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
275 if ((type == GAIM_PREF_INT && stored_int == int_value) ||
5753
5daa987c6b87 [gaim-migrate @ 6178]
Christian Hammond <chipx86@chipx86.com>
parents: 5716
diff changeset
276 (type == GAIM_PREF_STRING && stored_str != NULL &&
5daa987c6b87 [gaim-migrate @ 6178]
Christian Hammond <chipx86@chipx86.com>
parents: 5716
diff changeset
277 !strcmp(stored_str, str_value)) ||
9151
deba164a360e [gaim-migrate @ 9935]
Nathan Walp <nwalp@pidgin.im>
parents: 9150
diff changeset
278 (type == GAIM_PREF_BOOLEAN &&
deba164a360e [gaim-migrate @ 9935]
Nathan Walp <nwalp@pidgin.im>
parents: 9150
diff changeset
279 (gaim_prefs_get_bool(key) == GPOINTER_TO_INT(menuitems->data)))) {
5546
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
280
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
281 gtk_menu_set_active(GTK_MENU(menu), o);
5546
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
282 }
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
283
5568
3c7cc231c8c4 [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
284 menuitems = g_list_next(menuitems);
3c7cc231c8c4 [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
285
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
286 o++;
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
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
289 gtk_option_menu_set_menu(GTK_OPTION_MENU(dropdown), menu);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
290 gtk_box_pack_start(GTK_BOX(hbox), dropdown, FALSE, FALSE, 0);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
291 gtk_widget_show(dropdown);
8137
ca2132ad085e [gaim-migrate @ 8842]
Marc Mulcahy
parents: 8104
diff changeset
292 gaim_set_accessible_label (dropdown, label);
5551
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
293
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
294 return label;
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
295 }
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
296
7976
fa3b5ed4ac97 [gaim-migrate @ 8653]
Daniel Atallah <datallah@pidgin.im>
parents: 7940
diff changeset
297 GtkWidget *
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
298 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
299 const char *key, ...)
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
300 {
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
301 va_list ap;
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
302 GList *menuitems = NULL;
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
303 GtkWidget *dropdown = NULL;
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
304 char *name;
5546
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
305 int int_value;
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
306 const char *str_value;
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
307
9151
deba164a360e [gaim-migrate @ 9935]
Nathan Walp <nwalp@pidgin.im>
parents: 9150
diff changeset
308 g_return_val_if_fail(type == GAIM_PREF_BOOLEAN || type == GAIM_PREF_INT ||
deba164a360e [gaim-migrate @ 9935]
Nathan Walp <nwalp@pidgin.im>
parents: 9150
diff changeset
309 type == GAIM_PREF_STRING, NULL);
deba164a360e [gaim-migrate @ 9935]
Nathan Walp <nwalp@pidgin.im>
parents: 9150
diff changeset
310
5551
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
311 va_start(ap, key);
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
312 while ((name = va_arg(ap, char *)) != NULL) {
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
313
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
314 menuitems = g_list_prepend(menuitems, name);
5546
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
315
9151
deba164a360e [gaim-migrate @ 9935]
Nathan Walp <nwalp@pidgin.im>
parents: 9150
diff changeset
316 if (type == GAIM_PREF_INT || type == GAIM_PREF_BOOLEAN) {
5546
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
317 int_value = va_arg(ap, int);
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
318 menuitems = g_list_prepend(menuitems, GINT_TO_POINTER(int_value));
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
319 }
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
320 else {
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
321 str_value = va_arg(ap, const char *);
5551
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
322 menuitems = g_list_prepend(menuitems, (char *)str_value);
5546
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
323 }
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
324 }
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
325 va_end(ap);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
326
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
327 g_return_val_if_fail(menuitems != NULL, NULL);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
328
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
329 menuitems = g_list_reverse(menuitems);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
330
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
331 dropdown = gaim_gtk_prefs_dropdown_from_list(box, title, type, key,
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
332 menuitems);
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
333
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
334 g_list_free(menuitems);
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
335
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
336 return dropdown;
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
337 }
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
338
5551
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
339 static void
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
340 delete_prefs(GtkWidget *asdf, void *gdsa)
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
341 {
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
342 GList *l;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
343 GaimPlugin *plug;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
344
9508
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
345 /* Close any "select sound" request dialogs */
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
346 gaim_request_close_with_handle(prefs);
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
347
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
348 gaim_plugins_unregister_probe_notify_cb(update_plugin_list);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
349
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
350 /* Unregister callbacks. */
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
351 gaim_prefs_disconnect_by_handle(prefs);
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
352
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
353 prefs = NULL;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
354 sound_entry = NULL;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
355 debugbutton = NULL;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
356 notebook_page = 0;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
357 smiley_theme_store = NULL;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
358
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
359 for (l = gaim_plugins_get_loaded(); l != NULL; l = l->next) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
360 plug = l->data;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
361
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
362 if (GAIM_IS_GTK_PLUGIN(plug)) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
363 GaimGtkPluginUiInfo *ui_info;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
364
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
365 ui_info = GAIM_GTK_PLUGIN_UI_INFO(plug);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
366
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
367 if (ui_info->iter != NULL) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
368 g_free(ui_info->iter);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
369 ui_info->iter = NULL;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
370 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
371 }
8745
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
372
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
373 if(GAIM_PLUGIN_HAS_PREF_FRAME(plug)) {
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
374 GaimPluginUiInfo *prefs_info;
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
375
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
376 prefs_info = GAIM_PLUGIN_UI_INFO(plug);
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
377
8814
b665afb21b2c [gaim-migrate @ 9576]
Gary Kramlich <grim@pidgin.im>
parents: 8811
diff changeset
378 if(prefs_info->frame != NULL) {
b665afb21b2c [gaim-migrate @ 9576]
Gary Kramlich <grim@pidgin.im>
parents: 8811
diff changeset
379 gaim_plugin_pref_frame_destroy(prefs_info->frame);
b665afb21b2c [gaim-migrate @ 9576]
Gary Kramlich <grim@pidgin.im>
parents: 8811
diff changeset
380 prefs_info->frame = NULL;
b665afb21b2c [gaim-migrate @ 9576]
Gary Kramlich <grim@pidgin.im>
parents: 8811
diff changeset
381 }
b665afb21b2c [gaim-migrate @ 9576]
Gary Kramlich <grim@pidgin.im>
parents: 8811
diff changeset
382
8745
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
383 if(prefs_info->iter != NULL) {
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
384 g_free(prefs_info->iter);
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
385 prefs_info->iter = NULL;
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
386 }
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
387 }
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
388 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
389 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
390
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
391 /* These are the pages in the preferences notebook */
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
392 GtkWidget *interface_page() {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
393 GtkWidget *ret;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
394 GtkWidget *vbox;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
395 ret = gtk_vbox_new(FALSE, 18);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
396 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
397
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
398 vbox = gaim_gtk_make_frame(ret, _("Interface Options"));
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
399
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
400 gaim_gtk_prefs_checkbox(_("D_isplay remote nicknames if no alias is set"),
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
401 "/core/buddies/use_server_alias", vbox);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
402
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
403
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
404 gtk_widget_show_all(ret);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
405 return ret;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
406 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
407
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
408 static void smiley_sel (GtkTreeSelection *sel, GtkTreeModel *model) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
409 GtkTreeIter iter;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
410 const char *filename;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
411 GValue val = { 0, };
5841
cf5e01e43741 [gaim-migrate @ 6272]
Nathan Walp <nwalp@pidgin.im>
parents: 5825
diff changeset
412
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
413 if (! gtk_tree_selection_get_selected (sel, &model, &iter))
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
414 return;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
415 gtk_tree_model_get_value (model, &iter, 2, &val);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
416 filename = g_value_get_string(&val);
5770
e18c7f1947f0 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
417 gaim_prefs_set_string("/gaim/gtk/smileys/theme", filename);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
418 g_value_unset (&val);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
419 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
420
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
421 GtkTreePath *theme_refresh_theme_list()
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
422 {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
423 GdkPixbuf *pixbuf;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
424 GSList *themes;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
425 GtkTreeIter iter;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
426 GtkTreePath *path = NULL;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
427 int ind = 0;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
428
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
429
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
430 smiley_theme_probe();
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
431
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
432 if (!smiley_themes)
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
433 return NULL;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
434
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
435 themes = smiley_themes;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
436
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
437 gtk_list_store_clear(smiley_theme_store);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
438
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
439 while (themes) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
440 struct smiley_theme *theme = themes->data;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
441 char *description = g_strdup_printf("<span size='larger' weight='bold'>%s</span> - %s\n"
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
442 "<span size='smaller' foreground='dim grey'>%s</span>",
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
443 theme->name, theme->author, theme->desc);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
444 gtk_list_store_append (smiley_theme_store, &iter);
8494
55cc657d9d8d [gaim-migrate @ 9229]
Mark Doliner <markdoliner@pidgin.im>
parents: 8467
diff changeset
445
55cc657d9d8d [gaim-migrate @ 9229]
Mark Doliner <markdoliner@pidgin.im>
parents: 8467
diff changeset
446 /*
55cc657d9d8d [gaim-migrate @ 9229]
Mark Doliner <markdoliner@pidgin.im>
parents: 8467
diff changeset
447 * LEAK - Gentoo memprof thinks pixbuf is leaking here... but it
55cc657d9d8d [gaim-migrate @ 9229]
Mark Doliner <markdoliner@pidgin.im>
parents: 8467
diff changeset
448 * 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
449 */
8963
034540b215ef [gaim-migrate @ 9737]
Kevin Stange <kstange@pidgin.im>
parents: 8949
diff changeset
450 pixbuf = (theme->icon ? gdk_pixbuf_new_from_file(theme->icon, NULL) : NULL);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
451
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
452 gtk_list_store_set(smiley_theme_store, &iter,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
453 0, pixbuf,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
454 1, description,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
455 2, theme->path,
8928
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
456 3, theme->name,
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
457 -1);
7094
8f9588491993 [gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents: 7092
diff changeset
458
8f9588491993 [gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents: 7092
diff changeset
459 if (pixbuf != NULL)
8f9588491993 [gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents: 7092
diff changeset
460 g_object_unref(G_OBJECT(pixbuf));
8f9588491993 [gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents: 7092
diff changeset
461
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
462 g_free(description);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
463 themes = themes->next;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
464 if (current_smiley_theme && !strcmp(theme->path, current_smiley_theme->path)) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
465 /* path = gtk_tree_path_new_from_indices(ind); */
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
466 char *iwishihadgtk2_2 = g_strdup_printf("%d", ind);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
467 path = gtk_tree_path_new_from_string(iwishihadgtk2_2);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
468 g_free(iwishihadgtk2_2);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
469 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
470 ind++;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
471 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
472
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
473 return path;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
474 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
475
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
476 void theme_install_theme(char *path, char *extn) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
477 #ifndef _WIN32
9769
90a3f960b0c7 [gaim-migrate @ 10637]
Luke Schierer <lschiere@pidgin.im>
parents: 9736
diff changeset
478 gchar *command, *escaped;
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
479 #endif
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
480 gchar *destdir;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
481 gchar *tail;
8494
55cc657d9d8d [gaim-migrate @ 9229]
Mark Doliner <markdoliner@pidgin.im>
parents: 8467
diff changeset
482 GtkTreePath *themepath = NULL;
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
483
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
484 /* Just to be safe */
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
485 g_strchomp(path);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
486
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
487 /* I dont know what you are, get out of here */
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
488 if (extn != NULL)
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
489 tail = extn;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
490 else if ((tail = strrchr(path, '.')) == NULL)
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
491 return;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
492
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
493 destdir = g_strconcat(gaim_user_dir(), G_DIR_SEPARATOR_S "smileys", NULL);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
494
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
495 /* We'll check this just to make sure. This also lets us do something different on
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
496 * other platforms, if need be */
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
497 if (!g_ascii_strcasecmp(tail, ".gz") || !g_ascii_strcasecmp(tail, ".tgz")) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
498 #ifndef _WIN32
9769
90a3f960b0c7 [gaim-migrate @ 10637]
Luke Schierer <lschiere@pidgin.im>
parents: 9736
diff changeset
499 escaped = g_shell_quote(path);
90a3f960b0c7 [gaim-migrate @ 10637]
Luke Schierer <lschiere@pidgin.im>
parents: 9736
diff changeset
500 command = g_strdup_printf("tar > /dev/null xzf %s -C %s", escaped, destdir);
90a3f960b0c7 [gaim-migrate @ 10637]
Luke Schierer <lschiere@pidgin.im>
parents: 9736
diff changeset
501 g_free(escaped);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
502 #else
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
503 if(!wgaim_gz_untar(path, destdir)) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
504 g_free(destdir);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
505 return;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
506 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
507 #endif
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
508 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
509 else {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
510 g_free(destdir);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
511 return;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
512 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
513
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
514 #ifndef _WIN32
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
515 /* Fire! */
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
516 system(command);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
517
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
518 g_free(command);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
519 #endif
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
520 g_free(destdir);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
521
8494
55cc657d9d8d [gaim-migrate @ 9229]
Mark Doliner <markdoliner@pidgin.im>
parents: 8467
diff changeset
522 themepath = theme_refresh_theme_list();
55cc657d9d8d [gaim-migrate @ 9229]
Mark Doliner <markdoliner@pidgin.im>
parents: 8467
diff changeset
523 if (themepath != NULL)
55cc657d9d8d [gaim-migrate @ 9229]
Mark Doliner <markdoliner@pidgin.im>
parents: 8467
diff changeset
524 gtk_tree_path_free(themepath);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
525 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
526
7094
8f9588491993 [gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents: 7092
diff changeset
527 static void
8f9588491993 [gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents: 7092
diff changeset
528 theme_got_url(void *data, const char *themedata, size_t len)
8f9588491993 [gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents: 7092
diff changeset
529 {
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
530 FILE *f;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
531 gchar *path;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
532
10203
21d6c11a53c6 [gaim-migrate @ 11324]
Herman Bloggs <herman@bluedigits.com>
parents: 10182
diff changeset
533 f = gaim_mkstemp(&path, TRUE);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
534 fwrite(themedata, len, 1, f);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
535 fclose(f);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
536
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
537 theme_install_theme(path, data);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
538
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
539 unlink(path);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
540 g_free(path);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
541 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
542
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
543 void theme_dnd_recv(GtkWidget *widget, GdkDragContext *dc, guint x, guint y, GtkSelectionData *sd,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
544 guint info, guint t, gpointer data) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
545 gchar *name = sd->data;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
546
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
547 if ((sd->length >= 0) && (sd->format == 8)) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
548 /* Well, it looks like the drag event was cool.
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
549 * Let's do something with it */
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
550
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
551 if (!g_ascii_strncasecmp(name, "file://", 7)) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
552 GError *converr = NULL;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
553 gchar *tmp;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
554 /* It looks like we're dealing with a local file. Let's
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
555 * just untar it in the right place */
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
556 if(!(tmp = g_filename_from_uri(name, NULL, &converr))) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
557 gaim_debug(GAIM_DEBUG_ERROR, "theme dnd", "%s\n",
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
558 (converr ? converr->message :
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
559 "g_filename_from_uri error"));
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
560 return;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
561 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
562 theme_install_theme(tmp, NULL);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
563 g_free(tmp);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
564 } else if (!g_ascii_strncasecmp(name, "http://", 7)) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
565 /* Oo, a web drag and drop. This is where things
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
566 * will start to get interesting */
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
567 gchar *tail;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
568
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
569 if ((tail = strrchr(name, '.')) == NULL)
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
570 return;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
571
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
572 /* We'll check this just to make sure. This also lets us do something different on
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
573 * other platforms, if need be */
7094
8f9588491993 [gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents: 7092
diff changeset
574 gaim_url_fetch(name, TRUE, NULL, FALSE, theme_got_url, ".tgz");
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
575 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
576
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
577 gtk_drag_finish(dc, TRUE, FALSE, t);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
578 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
579
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
580 gtk_drag_finish(dc, FALSE, FALSE, t);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
581 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
582
8928
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
583 /* Does same as normal sort, except "none" is sorted first */
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
584 gint gaim_sort_smileys (GtkTreeModel *model,
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
585 GtkTreeIter *a,
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
586 GtkTreeIter *b,
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
587 gpointer userdata)
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
588 {
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
589 gint ret = 0;
9949
377cd65fab3d [gaim-migrate @ 10845]
Daniel Atallah <datallah@pidgin.im>
parents: 9944
diff changeset
590 gchar *name1 = NULL, *name2 = NULL;
8928
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
591
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
592 gtk_tree_model_get(model, a, 3, &name1, -1);
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
593 gtk_tree_model_get(model, b, 3, &name2, -1);
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
594
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
595 if (name1 == NULL || name2 == NULL) {
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
596 if (!(name1 == NULL && name2 == NULL))
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
597 ret = (name1 == NULL) ? -1: 1;
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
598 } else if (!g_ascii_strcasecmp(name1, "none")) {
10167
3f4db9c54e04 [gaim-migrate @ 11254]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10164
diff changeset
599 if (!g_utf8_collate(name1, name2))
3f4db9c54e04 [gaim-migrate @ 11254]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10164
diff changeset
600 ret = 0;
3f4db9c54e04 [gaim-migrate @ 11254]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10164
diff changeset
601 else
3f4db9c54e04 [gaim-migrate @ 11254]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10164
diff changeset
602 /* Sort name1 first */
3f4db9c54e04 [gaim-migrate @ 11254]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10164
diff changeset
603 ret = -1;
8928
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
604 } else if (!g_ascii_strcasecmp(name2, "none")) {
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
605 /* Sort name2 first */
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
606 ret = 1;
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
607 } else {
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
608 /* Neither string is "none", default to normal sort */
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
609 ret = g_utf8_collate(name1,name2);
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
610 }
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
611
9521
9c611a48614b [gaim-migrate @ 10348]
Mark Doliner <markdoliner@pidgin.im>
parents: 9508
diff changeset
612 g_free(name1);
9c611a48614b [gaim-migrate @ 10348]
Mark Doliner <markdoliner@pidgin.im>
parents: 9508
diff changeset
613 g_free(name2);
9c611a48614b [gaim-migrate @ 10348]
Mark Doliner <markdoliner@pidgin.im>
parents: 9508
diff changeset
614
8928
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
615 return ret;
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
616 }
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
617
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
618 GtkWidget *theme_page() {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
619 GtkWidget *ret;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
620 GtkWidget *sw;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
621 GtkWidget *view;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
622 GtkCellRenderer *rend;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
623 GtkTreeViewColumn *col;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
624 GtkTreeSelection *sel;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
625 GtkTreePath *path = NULL;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
626 GtkWidget *label;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
627 GtkTargetEntry te[3] = {{"text/plain", 0, 0},{"text/uri-list", 0, 1},{"STRING", 0, 2}};
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
628
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
629 ret = gtk_vbox_new(FALSE, 18);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
630 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
631
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
632 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."));
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
633
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
634 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
635 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
636 gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
637
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
638 gtk_box_pack_start(GTK_BOX(ret), label, FALSE, TRUE, 0);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
639 gtk_widget_show(label);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
640
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
641 sw = gtk_scrolled_window_new(NULL,NULL);
7939
e44763efd9eb [gaim-migrate @ 8610]
Mark Doliner <markdoliner@pidgin.im>
parents: 7932
diff changeset
642 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
643 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
644
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
645 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0);
8928
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
646 smiley_theme_store = gtk_list_store_new (4, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
647
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
648 path = theme_refresh_theme_list();
8075
78e53e4f34ee [gaim-migrate @ 8774]
Mark Doliner <markdoliner@pidgin.im>
parents: 8063
diff changeset
649
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
650 view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(smiley_theme_store));
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
651
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
652 gtk_drag_dest_set(view, GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_HIGHLIGHT | GTK_DEST_DEFAULT_DROP, te,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
653 sizeof(te) / sizeof(GtkTargetEntry) , GDK_ACTION_COPY | GDK_ACTION_MOVE);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
654
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
655 g_signal_connect(G_OBJECT(view), "drag_data_received", G_CALLBACK(theme_dnd_recv), smiley_theme_store);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
656
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
657 rend = gtk_cell_renderer_pixbuf_new();
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
658 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (view));
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
659
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
660 if(path) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
661 gtk_tree_selection_select_path(sel, path);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
662 gtk_tree_path_free(path);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
663 }
8928
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
664
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
665 /* Custom sort so "none" theme is at top of list */
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
666 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(smiley_theme_store),
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
667 3, gaim_sort_smileys, NULL, NULL);
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
668
8075
78e53e4f34ee [gaim-migrate @ 8774]
Mark Doliner <markdoliner@pidgin.im>
parents: 8063
diff changeset
669 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(smiley_theme_store),
8928
da3379f6b4ab [gaim-migrate @ 9698]
Don Seiler <rizzo@gentoo.org>
parents: 8927
diff changeset
670 3, GTK_SORT_ASCENDING);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
671
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
672 col = gtk_tree_view_column_new_with_attributes (_("Icon"),
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
673 rend,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
674 "pixbuf", 0,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
675 NULL);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
676 gtk_tree_view_append_column (GTK_TREE_VIEW(view), col);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
677
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
678 rend = gtk_cell_renderer_text_new();
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
679 col = gtk_tree_view_column_new_with_attributes (_("Description"),
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
680 rend,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
681 "markup", 1,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
682 NULL);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
683 gtk_tree_view_append_column (GTK_TREE_VIEW(view), col);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
684 g_object_unref(G_OBJECT(smiley_theme_store));
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
685 gtk_container_add(GTK_CONTAINER(sw), view);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
686
8075
78e53e4f34ee [gaim-migrate @ 8774]
Mark Doliner <markdoliner@pidgin.im>
parents: 8063
diff changeset
687 g_signal_connect(G_OBJECT(sel), "changed", G_CALLBACK(smiley_sel), NULL);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
688
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
689 gtk_widget_show_all(ret);
8137
ca2132ad085e [gaim-migrate @ 8842]
Marc Mulcahy
parents: 8104
diff changeset
690
ca2132ad085e [gaim-migrate @ 8842]
Marc Mulcahy
parents: 8104
diff changeset
691 gaim_set_accessible_label (view, label);
ca2132ad085e [gaim-migrate @ 8842]
Marc Mulcahy
parents: 8104
diff changeset
692
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
693 return ret;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
694 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
695
9025
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
696 static void
10181
2425c3773266 [gaim-migrate @ 11296]
Mark Doliner <markdoliner@pidgin.im>
parents: 10168
diff changeset
697 formatting_reset_cb(GtkWidget *w, GtkWidget *imhtml) {
9025
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
698 gboolean bold, italic, uline;
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
699 bold = italic = uline = FALSE;
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
700
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
701 gtk_imhtml_get_current_format(GTK_IMHTML(imhtml), &bold, &italic, &uline);
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
702 if (bold)
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
703 gtk_imhtml_toggle_bold(GTK_IMHTML(imhtml));
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
704 if (italic)
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
705 gtk_imhtml_toggle_italic(GTK_IMHTML(imhtml));
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
706 if (uline)
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
707 gtk_imhtml_toggle_underline(GTK_IMHTML(imhtml));
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
708
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
709 gtk_imhtml_font_set_size(GTK_IMHTML(imhtml), 3);
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
710 gtk_imhtml_toggle_forecolor(GTK_IMHTML(imhtml), NULL);
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
711 gtk_imhtml_toggle_backcolor(GTK_IMHTML(imhtml), NULL);
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
712 gtk_imhtml_toggle_fontface(GTK_IMHTML(imhtml), NULL);
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
713 }
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
714
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
715 static void
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
716 formatting_toggle_cb(GtkIMHtml *imhtml, GtkIMHtmlButtons buttons, void *bah)
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
717 {
9025
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
718 gboolean bold, italic, uline;
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
719
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
720 bold = italic = uline = FALSE;
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
721 gtk_imhtml_get_current_format(GTK_IMHTML(imhtml),
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
722 &bold, &italic, &uline);
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
723
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
724 if (buttons & GTK_IMHTML_BOLD)
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
725 gaim_prefs_set_bool("/gaim/gtk/conversations/send_bold", bold);
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
726 if (buttons & GTK_IMHTML_ITALIC)
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
727 gaim_prefs_set_bool("/gaim/gtk/conversations/send_italic", italic);
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
728 if (buttons & GTK_IMHTML_UNDERLINE)
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
729 gaim_prefs_set_bool("/gaim/gtk/conversations/send_underline", uline);
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
730
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
731 if (buttons & GTK_IMHTML_GROW || buttons & GTK_IMHTML_SHRINK)
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
732 gaim_prefs_set_int("/gaim/gtk/conversations/font_size",
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
733 gtk_imhtml_get_current_fontsize(GTK_IMHTML(imhtml)));
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
734 if (buttons & GTK_IMHTML_FACE) {
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
735 char *face = gtk_imhtml_get_current_fontface(GTK_IMHTML(imhtml));
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
736 if (!face)
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
737 face = g_strdup("");
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
738
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
739 gaim_prefs_set_string("/gaim/gtk/conversations/font_face", face);
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
740 g_free(face);
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
741 }
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
742
9025
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
743 if (buttons & GTK_IMHTML_FORECOLOR) {
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
744 char *color = gtk_imhtml_get_current_forecolor(GTK_IMHTML(imhtml));
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
745 if (!color)
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
746 color = g_strdup("");
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
747
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
748 gaim_prefs_set_string("/gaim/gtk/conversations/fgcolor", color);
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
749 g_free(color);
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
750 }
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
751
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
752 if (buttons & GTK_IMHTML_BACKCOLOR) {
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
753 char *color = gtk_imhtml_get_current_backcolor(GTK_IMHTML(imhtml));
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
754 if (!color)
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
755 color = g_strdup("");
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
756
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
757 gaim_prefs_set_string("/gaim/gtk/conversations/bgcolor", color);
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
758 g_free(color);
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
759 }
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
760 }
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
761
8988
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
762 GtkWidget *messages_page() {
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
763 GtkWidget *ret;
9025
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
764 GtkWidget *vbox, *fontvbox;
8833
29a56613ce77 [gaim-migrate @ 9597]
Sean Egan <seanegan@pidgin.im>
parents: 8814
diff changeset
765 GtkWidget *imhtml;
29a56613ce77 [gaim-migrate @ 9597]
Sean Egan <seanegan@pidgin.im>
parents: 8814
diff changeset
766 GtkWidget *toolbar;
8988
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
767 GtkWidget *frame;
9025
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
768 GtkWidget *option;
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
769 GtkWidget *button;
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
770
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
771 ret = gtk_vbox_new(FALSE, 18);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
772 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
773
8988
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
774 vbox = gaim_gtk_make_frame (ret, _("Display"));
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
775 gaim_gtk_prefs_checkbox(_("Show _timestamp on messages"),
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
776 "/gaim/gtk/conversations/show_timestamps", vbox);
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
777 #ifdef USE_GTKSPELL
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
778 gaim_gtk_prefs_checkbox(_("_Highlight misspelled words"),
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
779 "/gaim/gtk/conversations/spellcheck", vbox);
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
780 #endif
9049
fa66a5200d34 [gaim-migrate @ 9825]
Mark Doliner <markdoliner@pidgin.im>
parents: 9025
diff changeset
781 vbox = gaim_gtk_make_frame (ret, _("Ignore"));
fa66a5200d34 [gaim-migrate @ 9825]
Mark Doliner <markdoliner@pidgin.im>
parents: 9025
diff changeset
782 gaim_gtk_prefs_checkbox(_("Ignore c_olors"),
fa66a5200d34 [gaim-migrate @ 9825]
Mark Doliner <markdoliner@pidgin.im>
parents: 9025
diff changeset
783 "/gaim/gtk/conversations/ignore_colors", vbox);
fa66a5200d34 [gaim-migrate @ 9825]
Mark Doliner <markdoliner@pidgin.im>
parents: 9025
diff changeset
784 gaim_gtk_prefs_checkbox(_("Ignore font _faces"),
fa66a5200d34 [gaim-migrate @ 9825]
Mark Doliner <markdoliner@pidgin.im>
parents: 9025
diff changeset
785 "/gaim/gtk/conversations/ignore_fonts", vbox);
fa66a5200d34 [gaim-migrate @ 9825]
Mark Doliner <markdoliner@pidgin.im>
parents: 9025
diff changeset
786 gaim_gtk_prefs_checkbox(_("Ignore font si_zes"),
fa66a5200d34 [gaim-migrate @ 9825]
Mark Doliner <markdoliner@pidgin.im>
parents: 9025
diff changeset
787 "/gaim/gtk/conversations/ignore_font_sizes", vbox);
8988
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
788
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
789 vbox = gaim_gtk_make_frame (ret, _("Default Formatting"));
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
790
9025
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
791 option = gaim_gtk_prefs_checkbox(_("_Send default formatting with outgoing messages"),
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
792 "/gaim/gtk/conversations/send_formatting", vbox);
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
793
8988
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
794
9025
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
795 fontvbox = gtk_vbox_new(FALSE, 0);
10181
2425c3773266 [gaim-migrate @ 11296]
Mark Doliner <markdoliner@pidgin.im>
parents: 10168
diff changeset
796 gtk_container_add(GTK_CONTAINER(vbox), fontvbox);
2425c3773266 [gaim-migrate @ 11296]
Mark Doliner <markdoliner@pidgin.im>
parents: 10168
diff changeset
797
2425c3773266 [gaim-migrate @ 11296]
Mark Doliner <markdoliner@pidgin.im>
parents: 10168
diff changeset
798 frame = gaim_gtk_create_imhtml(TRUE, &imhtml, &toolbar);
9025
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
799 gtk_widget_set_name(imhtml, "gaim_gtkprefs_font_imhtml");
8836
2271c0da812f [gaim-migrate @ 9602]
Sean Egan <seanegan@pidgin.im>
parents: 8834
diff changeset
800 gtk_imhtml_set_whole_buffer_formatting_only(GTK_IMHTML(imhtml), TRUE);
9025
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
801 gtk_imhtml_append_text(GTK_IMHTML(imhtml), _("This is how your outgoing message text will appear when you use protocols that support formatting. :)"), 0);
10181
2425c3773266 [gaim-migrate @ 11296]
Mark Doliner <markdoliner@pidgin.im>
parents: 10168
diff changeset
802 gtk_box_pack_start(GTK_BOX(fontvbox), frame, FALSE, FALSE, 0);
8988
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
803
9056
57aefb1d4471 [gaim-migrate @ 9832]
Luke Schierer <lschiere@pidgin.im>
parents: 9049
diff changeset
804 button = gtk_button_new_with_mnemonic(_("_Clear Formatting"));
9025
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
805 gtk_box_pack_start(GTK_BOX(fontvbox), button, FALSE, FALSE, 0);
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
806
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
807 if (!gaim_prefs_get_bool("/gaim/gtk/conversations/send_formatting"))
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
808 gtk_widget_set_sensitive(fontvbox, FALSE);
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
809
8836
2271c0da812f [gaim-migrate @ 9602]
Sean Egan <seanegan@pidgin.im>
parents: 8834
diff changeset
810 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_bold"))
2271c0da812f [gaim-migrate @ 9602]
Sean Egan <seanegan@pidgin.im>
parents: 8834
diff changeset
811 gtk_imhtml_toggle_bold(GTK_IMHTML(imhtml));
2271c0da812f [gaim-migrate @ 9602]
Sean Egan <seanegan@pidgin.im>
parents: 8834
diff changeset
812 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_italic"))
2271c0da812f [gaim-migrate @ 9602]
Sean Egan <seanegan@pidgin.im>
parents: 8834
diff changeset
813 gtk_imhtml_toggle_italic(GTK_IMHTML(imhtml));
2271c0da812f [gaim-migrate @ 9602]
Sean Egan <seanegan@pidgin.im>
parents: 8834
diff changeset
814 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_underline"))
2271c0da812f [gaim-migrate @ 9602]
Sean Egan <seanegan@pidgin.im>
parents: 8834
diff changeset
815 gtk_imhtml_toggle_underline(GTK_IMHTML(imhtml));
2271c0da812f [gaim-migrate @ 9602]
Sean Egan <seanegan@pidgin.im>
parents: 8834
diff changeset
816
2271c0da812f [gaim-migrate @ 9602]
Sean Egan <seanegan@pidgin.im>
parents: 8834
diff changeset
817 gtk_imhtml_font_set_size(GTK_IMHTML(imhtml), gaim_prefs_get_int("/gaim/gtk/conversations/font_size"));
2271c0da812f [gaim-migrate @ 9602]
Sean Egan <seanegan@pidgin.im>
parents: 8834
diff changeset
818 gtk_imhtml_toggle_forecolor(GTK_IMHTML(imhtml), gaim_prefs_get_string("/gaim/gtk/conversations/fgcolor"));
2271c0da812f [gaim-migrate @ 9602]
Sean Egan <seanegan@pidgin.im>
parents: 8834
diff changeset
819 gtk_imhtml_toggle_backcolor(GTK_IMHTML(imhtml), gaim_prefs_get_string("/gaim/gtk/conversations/bgcolor"));
2271c0da812f [gaim-migrate @ 9602]
Sean Egan <seanegan@pidgin.im>
parents: 8834
diff changeset
820 gtk_imhtml_toggle_fontface(GTK_IMHTML(imhtml), gaim_prefs_get_string("/gaim/gtk/conversations/font_face"));
2271c0da812f [gaim-migrate @ 9602]
Sean Egan <seanegan@pidgin.im>
parents: 8834
diff changeset
821
9025
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
822 g_signal_connect(G_OBJECT(button), "clicked",
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
823 G_CALLBACK(formatting_reset_cb), imhtml);
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
824
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
825 g_signal_connect(G_OBJECT(option), "clicked",
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
826 G_CALLBACK(gaim_gtk_toggle_sensitive), fontvbox);
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
827
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
828 g_signal_connect(G_OBJECT(imhtml), "format_function_toggle",
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
829 G_CALLBACK(formatting_toggle_cb), NULL);
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
830
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
831 gtk_widget_show_all(ret);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
832 return ret;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
833 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
834
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
835 GtkWidget *hotkeys_page() {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
836 GtkWidget *ret;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
837 GtkWidget *vbox;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
838 ret = gtk_vbox_new(FALSE, 18);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
839 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
840
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
841 vbox = gaim_gtk_make_frame (ret, _("Window Closing"));
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
842 gaim_gtk_prefs_checkbox(_("_Escape closes window"),
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
843 "/gaim/gtk/conversations/escape_closes", vbox);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
844
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
845 gtk_widget_show_all(ret);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
846 return ret;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
847 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
848
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
849 GtkWidget *list_page() {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
850 GtkWidget *ret;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
851 GtkWidget *vbox;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
852 GList *l= NULL;
5567
248932da7121 [gaim-migrate @ 5969]
Christian Hammond <chipx86@chipx86.com>
parents: 5563
diff changeset
853 GSList *sl;
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
854 ret = gtk_vbox_new(FALSE, 18);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
855 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
7305
4a612d68784d [gaim-migrate @ 7889]
Nathan Walp <nwalp@pidgin.im>
parents: 7167
diff changeset
856
4a612d68784d [gaim-migrate @ 7889]
Nathan Walp <nwalp@pidgin.im>
parents: 7167
diff changeset
857
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
858 vbox = gaim_gtk_make_frame (ret, _("Buddy List Sorting"));
5567
248932da7121 [gaim-migrate @ 5969]
Christian Hammond <chipx86@chipx86.com>
parents: 5563
diff changeset
859
248932da7121 [gaim-migrate @ 5969]
Christian Hammond <chipx86@chipx86.com>
parents: 5563
diff changeset
860 for (sl = gaim_gtk_blist_sort_methods; sl != NULL; sl = sl->next) {
5631
7f510b22ccf5 [gaim-migrate @ 6038]
Nathan Walp <nwalp@pidgin.im>
parents: 5627
diff changeset
861 struct gaim_gtk_blist_sort_method *method = sl->data;
7f510b22ccf5 [gaim-migrate @ 6038]
Nathan Walp <nwalp@pidgin.im>
parents: 5627
diff changeset
862
7f510b22ccf5 [gaim-migrate @ 6038]
Nathan Walp <nwalp@pidgin.im>
parents: 5627
diff changeset
863 l = g_list_append(l, method->name);
7f510b22ccf5 [gaim-migrate @ 6038]
Nathan Walp <nwalp@pidgin.im>
parents: 5627
diff changeset
864 l = g_list_append(l, method->id);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
865 }
5546
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
866
8063
049980aafb9f [gaim-migrate @ 8756]
Mark Doliner <markdoliner@pidgin.im>
parents: 8046
diff changeset
867 gaim_gtk_prefs_dropdown_from_list(vbox, _("_Sorting:"), GAIM_PREF_STRING,
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
868 "/gaim/gtk/blist/sort_type", l);
5546
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
869
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
870 g_list_free(l);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
871
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
872 vbox = gaim_gtk_make_frame (ret, _("Buddy Display"));
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
873 gaim_gtk_prefs_checkbox(_("Show buddy _icons"),
7305
4a612d68784d [gaim-migrate @ 7889]
Nathan Walp <nwalp@pidgin.im>
parents: 7167
diff changeset
874 "/gaim/gtk/blist/show_buddy_icons", vbox);
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
875 gaim_gtk_prefs_checkbox(_("Show _warning levels"),
7305
4a612d68784d [gaim-migrate @ 7889]
Nathan Walp <nwalp@pidgin.im>
parents: 7167
diff changeset
876 "/gaim/gtk/blist/show_warning_level", vbox);
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
877 gaim_gtk_prefs_checkbox(_("Show idle _times"),
7305
4a612d68784d [gaim-migrate @ 7889]
Nathan Walp <nwalp@pidgin.im>
parents: 7167
diff changeset
878 "/gaim/gtk/blist/show_idle_time", vbox);
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
879 gaim_gtk_prefs_checkbox(_("_Automatically expand contacts"),
7731
7c3bb30a94c4 [gaim-migrate @ 8376]
Nathan Walp <nwalp@pidgin.im>
parents: 7562
diff changeset
880 "/gaim/gtk/blist/auto_expand_contacts", vbox);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
881
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
882 gtk_widget_show_all(ret);
5547
385f123facb7 [gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents: 5546
diff changeset
883
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
884 return ret;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
885 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
886
8979
b2e7d7b9ca4d [gaim-migrate @ 9753]
Etan Reisner <deryni@pidgin.im>
parents: 8966
diff changeset
887 static void
9155
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
888 conversation_usetabs_cb(const char *name, GaimPrefType type, gpointer value,
8979
b2e7d7b9ca4d [gaim-migrate @ 9753]
Etan Reisner <deryni@pidgin.im>
parents: 8966
diff changeset
889 gpointer data)
b2e7d7b9ca4d [gaim-migrate @ 9753]
Etan Reisner <deryni@pidgin.im>
parents: 8966
diff changeset
890 {
10112
3133c5f8eb10 [gaim-migrate @ 11145]
Nathan Walp <nwalp@pidgin.im>
parents: 10108
diff changeset
891 gboolean usetabs = GPOINTER_TO_INT(value);
9155
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
892
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
893 if (usetabs)
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
894 gtk_widget_set_sensitive(GTK_WIDGET(data), TRUE);
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
895 else
8979
b2e7d7b9ca4d [gaim-migrate @ 9753]
Etan Reisner <deryni@pidgin.im>
parents: 8966
diff changeset
896 gtk_widget_set_sensitive(GTK_WIDGET(data), FALSE);
b2e7d7b9ca4d [gaim-migrate @ 9753]
Etan Reisner <deryni@pidgin.im>
parents: 8966
diff changeset
897 }
b2e7d7b9ca4d [gaim-migrate @ 9753]
Etan Reisner <deryni@pidgin.im>
parents: 8966
diff changeset
898
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
899 GtkWidget *conv_page() {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
900 GtkWidget *ret;
9155
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
901 GtkWidget *vbox, *vbox2;
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
902 GtkWidget *label;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
903 GtkSizeGroup *sg;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
904 GList *names = NULL;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
905
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
906 ret = gtk_vbox_new(FALSE, 18);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
907 gtk_container_set_border_width(GTK_CONTAINER(ret), 12);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
908
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
909 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
910 vbox = gaim_gtk_make_frame(ret, _("Conversations"));
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
911
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
912 label = gaim_gtk_prefs_dropdown(vbox, _("Show _buttons as:"), GAIM_PREF_INT,
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
913 "/gaim/gtk/conversations/button_type",
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
914 _("Pictures"), GAIM_BUTTON_IMAGE,
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
915 _("Text"), GAIM_BUTTON_TEXT,
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
916 _("Pictures and text"), GAIM_BUTTON_TEXT_IMAGE,
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
917 _("None"), GAIM_BUTTON_NONE,
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
918 NULL);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
919 gtk_size_group_add_widget(sg, label);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
920 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
921
9832
c3207fe2136a [gaim-migrate @ 10703]
Tim Ringenbach <marv@pidgin.im>
parents: 9827
diff changeset
922 #if 0
9301
c05274a72788 [gaim-migrate @ 10105]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9285
diff changeset
923 gaim_gtk_prefs_checkbox(_("Enable \"_slash\" commands"),
c05274a72788 [gaim-migrate @ 10105]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9285
diff changeset
924 "/gaim/gtk/conversations/enable_commands", vbox);
9832
c3207fe2136a [gaim-migrate @ 10703]
Tim Ringenbach <marv@pidgin.im>
parents: 9827
diff changeset
925 #endif
c3207fe2136a [gaim-migrate @ 10703]
Tim Ringenbach <marv@pidgin.im>
parents: 9827
diff changeset
926 gaim_gtk_prefs_checkbox(_("Send unknown \"_slash\" commands as messages"),
c3207fe2136a [gaim-migrate @ 10703]
Tim Ringenbach <marv@pidgin.im>
parents: 9827
diff changeset
927 "/gaim/gtk/conversations/passthrough_unknown_commands", vbox);
9301
c05274a72788 [gaim-migrate @ 10105]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9285
diff changeset
928
8600
bb958d9f9c33 [gaim-migrate @ 9351]
Robert McQueen <robot101@debian.org>
parents: 8577
diff changeset
929 gaim_gtk_prefs_checkbox(_("Show _formatting toolbar"),
7326
599c9e8c9da4 [gaim-migrate @ 7912]
Nathan Fredrickson <nathan@silverorange.com>
parents: 7305
diff changeset
930 "/gaim/gtk/conversations/show_formatting_toolbar", vbox);
9155
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
931 gaim_gtk_prefs_checkbox(_("Show _aliases in tabs/titles"),
8015
52c74f82aff3 [gaim-migrate @ 8695]
Nathan Walp <nwalp@pidgin.im>
parents: 7987
diff changeset
932 "/core/conversations/use_alias_for_title", vbox);
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
933 gaim_gtk_prefs_checkbox(_("Show buddy _icons"),
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
934 "/gaim/gtk/conversations/im/show_buddy_icons", vbox);
9155
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
935 gaim_gtk_prefs_checkbox(_("Enable buddy ic_on animation"),
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
936 "/gaim/gtk/conversations/im/animate_buddy_icons", vbox);
9155
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
937 gaim_gtk_prefs_checkbox(_("_Notify buddies that you are typing to them"),
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
938 "/core/conversations/im/send_typing", vbox);
9301
c05274a72788 [gaim-migrate @ 10105]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9285
diff changeset
939 gaim_gtk_prefs_checkbox(_("_Raise IM window on events"),
c05274a72788 [gaim-migrate @ 10105]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9285
diff changeset
940 "/gaim/gtk/conversations/im/raise_on_events", vbox);
c05274a72788 [gaim-migrate @ 10105]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9285
diff changeset
941
9303
e257ad08c77c [gaim-migrate @ 10107]
Mark Doliner <markdoliner@pidgin.im>
parents: 9301
diff changeset
942 gaim_gtk_prefs_checkbox(_("Raise chat _window on events"),
9301
c05274a72788 [gaim-migrate @ 10105]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9285
diff changeset
943 "/gaim/gtk/conversations/chat/raise_on_events", vbox);
9155
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
944
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
945 /* All the tab options! */
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
946 vbox = gaim_gtk_make_frame(ret, _("Tab Options"));
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
947
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
948 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
949 "/gaim/gtk/conversations/tabs", vbox);
9155
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
950
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
951 /*
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
952 * Connect a signal to the above preference. When conversations are not
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
953 * shown in a tabbed window then all tabbing options should be disabled.
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
954 */
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
955 vbox2 = gtk_vbox_new(FALSE, 0);
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
956 gtk_box_pack_start(GTK_BOX(vbox), vbox2, FALSE, FALSE, 0);
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
957 gaim_prefs_connect_callback(prefs, "/gaim/gtk/conversations/tabs",
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
958 conversation_usetabs_cb, vbox2);
9155
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
959 if (!gaim_prefs_get_bool("/gaim/gtk/conversations/tabs"))
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
960 gtk_widget_set_sensitive(vbox2, FALSE);
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
961
9891
a192b99a29e9 [gaim-migrate @ 10779]
Mark Doliner <markdoliner@pidgin.im>
parents: 9832
diff changeset
962 gaim_gtk_prefs_checkbox(_("Show close b_utton on tabs"),
9155
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
963 "/gaim/gtk/conversations/close_on_tabs", vbox2);
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
964
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
965 label = gaim_gtk_prefs_dropdown(vbox2, _("Tab p_lacement:"), GAIM_PREF_INT,
8988
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
966 "/gaim/gtk/conversations/tab_side",
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
967 _("Top"), GTK_POS_TOP,
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
968 _("Bottom"), GTK_POS_BOTTOM,
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
969 _("Left"), GTK_POS_LEFT,
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
970 _("Right"), GTK_POS_RIGHT,
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
971 NULL);
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
972 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
973 gtk_size_group_add_widget(sg, label);
834d226131f9 [gaim-migrate @ 9763]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8979
diff changeset
974
9155
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
975 names = gaim_conv_placement_get_options();
9251
60b4994e93b8 [gaim-migrate @ 10050]
Ethan Blanton <elb@pidgin.im>
parents: 9155
diff changeset
976 label = gaim_gtk_prefs_dropdown_from_list(vbox2, _("New conversation _placement:"),
9155
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
977 GAIM_PREF_STRING, "/gaim/gtk/conversations/placement", names);
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
978 gtk_size_group_add_widget(sg, label);
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
979 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
980 g_list_free(names);
29d593903d2b [gaim-migrate @ 9939]
Mark Doliner <markdoliner@pidgin.im>
parents: 9151
diff changeset
981
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
982 gtk_widget_show_all(ret);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
983
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
984 return ret;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
985 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
986
8231
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
987 static void network_ip_changed(GtkEntry *entry, gpointer data)
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
988 {
8834
0a798e3d2b84 [gaim-migrate @ 9598]
Mark Doliner <markdoliner@pidgin.im>
parents: 8833
diff changeset
989 gaim_network_set_public_ip(gtk_entry_get_text(entry));
8231
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
990 }
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
991
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
992 static void
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
993 proxy_changed_cb(const char *name, GaimPrefType type, gpointer value,
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
994 gpointer data)
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
995 {
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
996 GtkWidget *frame = data;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
997 const char *proxy = value;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
998
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
999 if (strcmp(proxy, "none") && strcmp(proxy, "envvar"))
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1000 gtk_widget_set_sensitive(frame, TRUE);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1001 else
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1002 gtk_widget_set_sensitive(frame, FALSE);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1003 }
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1004
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1005 static void proxy_print_option(GtkEntry *entry, int entrynum)
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1006 {
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1007 if (entrynum == PROXYHOST)
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1008 gaim_prefs_set_string("/core/proxy/host", gtk_entry_get_text(entry));
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1009 else if (entrynum == PROXYPORT)
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1010 gaim_prefs_set_int("/core/proxy/port", atoi(gtk_entry_get_text(entry)));
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1011 else if (entrynum == PROXYUSER)
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1012 gaim_prefs_set_string("/core/proxy/username", gtk_entry_get_text(entry));
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1013 else if (entrynum == PROXYPASS)
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1014 gaim_prefs_set_string("/core/proxy/password", gtk_entry_get_text(entry));
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1015 }
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1016
8231
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1017 GtkWidget *network_page() {
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1018 GtkWidget *ret;
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1019 GtkWidget *vbox, *hbox, *entry;
8231
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1020 GtkWidget *table, *label, *auto_ip_checkbox, *ports_checkbox, *spin_button;
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1021 GtkSizeGroup *sg;
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1022 GaimProxyInfo *proxy_info;
8231
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1023
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1024 ret = gtk_vbox_new(FALSE, 18);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1025 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1026
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1027 vbox = gaim_gtk_make_frame (ret, _("IP Address"));
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1028
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1029 auto_ip_checkbox = gaim_gtk_prefs_checkbox(_("_Autodetect IP Address"),
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1030 "/core/network/auto_ip", vbox);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1031
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1032 table = gtk_table_new(2, 1, FALSE);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1033 gtk_container_set_border_width(GTK_CONTAINER(table), 5);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1034 gtk_table_set_col_spacings(GTK_TABLE(table), 5);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1035 gtk_table_set_row_spacings(GTK_TABLE(table), 10);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1036 gtk_container_add(GTK_CONTAINER(vbox), table);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1037
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1038 label = gtk_label_new_with_mnemonic(_("Public _IP:"));
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1039 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1040 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_FILL, 0, 0, 0);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1041
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1042 entry = gtk_entry_new();
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1043 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1044 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 0, 1, GTK_FILL, 0, 0, 0);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1045 g_signal_connect(G_OBJECT(entry), "changed",
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1046 G_CALLBACK(network_ip_changed), NULL);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1047
8834
0a798e3d2b84 [gaim-migrate @ 9598]
Mark Doliner <markdoliner@pidgin.im>
parents: 8833
diff changeset
1048 if (gaim_network_get_public_ip() != NULL)
8231
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1049 gtk_entry_set_text(GTK_ENTRY(entry),
8834
0a798e3d2b84 [gaim-migrate @ 9598]
Mark Doliner <markdoliner@pidgin.im>
parents: 8833
diff changeset
1050 gaim_network_get_public_ip());
8231
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1051
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1052 gaim_set_accessible_label (entry, label);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1053
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1054
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1055 if (gaim_prefs_get_bool("/core/network/auto_ip")) {
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1056 gtk_widget_set_sensitive(GTK_WIDGET(table), FALSE);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1057 }
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1058
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1059 g_signal_connect(G_OBJECT(auto_ip_checkbox), "clicked",
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1060 G_CALLBACK(gaim_gtk_toggle_sensitive), table);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1061
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1062 vbox = gaim_gtk_make_frame (ret, _("Ports"));
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1063 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1064
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1065 ports_checkbox = gaim_gtk_prefs_checkbox(_("_Manually specify range of ports to listen on"),
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1066 "/core/network/ports_range_use", vbox);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1067
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1068 spin_button = gaim_gtk_prefs_labeled_spin_button(vbox, _("_Start Port:"),
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1069 "/core/network/ports_range_start", 0, 65535, sg);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1070 if (!gaim_prefs_get_bool("/core/network/ports_range_use"))
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1071 gtk_widget_set_sensitive(GTK_WIDGET(spin_button), FALSE);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1072 g_signal_connect(G_OBJECT(ports_checkbox), "clicked",
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1073 G_CALLBACK(gaim_gtk_toggle_sensitive), spin_button);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1074
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1075 spin_button = gaim_gtk_prefs_labeled_spin_button(vbox, _("_End Port:"),
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1076 "/core/network/ports_range_end", 0, 65535, sg);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1077 if (!gaim_prefs_get_bool("/core/network/ports_range_use"))
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1078 gtk_widget_set_sensitive(GTK_WIDGET(spin_button), FALSE);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1079 g_signal_connect(G_OBJECT(ports_checkbox), "clicked",
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1080 G_CALLBACK(gaim_gtk_toggle_sensitive), spin_button);
347c8992c445 [gaim-migrate @ 8954]
Tim Ringenbach <marv@pidgin.im>
parents: 8188
diff changeset
1081
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1082 vbox = gaim_gtk_make_frame(ret, _("Proxy Server"));
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1083 prefs_proxy_frame = gtk_vbox_new(FALSE, 0);
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1084 gaim_gtk_prefs_dropdown(vbox, _("Proxy _type:"), GAIM_PREF_STRING,
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1085 "/core/proxy/type",
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1086 _("No proxy"), "none",
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1087 "SOCKS 4", "socks4",
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1088 "SOCKS 5", "socks5",
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1089 "HTTP", "http",
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1090 _("Use Environmental Settings"), "envvar",
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1091 NULL);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1092 gtk_box_pack_start(GTK_BOX(vbox), prefs_proxy_frame, 0, 0, 0);
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1093 proxy_info = gaim_global_proxy_get_info();
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1094
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1095 if (proxy_info == NULL ||
6621
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6516
diff changeset
1096 gaim_proxy_info_get_type(proxy_info) == GAIM_PROXY_NONE ||
2a18ef3e5224 [gaim-migrate @ 7145]
Robert McQueen <robot101@debian.org>
parents: 6516
diff changeset
1097 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
1098
6001
1abbeff6571c [gaim-migrate @ 6449]
Mark Doliner <markdoliner@pidgin.im>
parents: 5982
diff changeset
1099 gtk_widget_set_sensitive(GTK_WIDGET(prefs_proxy_frame), FALSE);
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1100 }
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
1101 gaim_prefs_connect_callback(prefs, "/core/proxy/type",
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
1102 proxy_changed_cb, prefs_proxy_frame);
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1103
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1104 table = gtk_table_new(4, 2, FALSE);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1105 gtk_container_set_border_width(GTK_CONTAINER(table), 5);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1106 gtk_table_set_col_spacings(GTK_TABLE(table), 5);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1107 gtk_table_set_row_spacings(GTK_TABLE(table), 10);
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1108 gtk_container_add(GTK_CONTAINER(prefs_proxy_frame), table);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1109
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1110
7797
9bdc74669c80 [gaim-migrate @ 8443]
Mark Doliner <markdoliner@pidgin.im>
parents: 7731
diff changeset
1111 label = gtk_label_new_with_mnemonic(_("_Host:"));
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1112 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1113 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_FILL, 0, 0, 0);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1114
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1115 entry = gtk_entry_new();
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1116 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1117 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 0, 1, GTK_FILL, 0, 0, 0);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1118 g_signal_connect(G_OBJECT(entry), "changed",
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1119 G_CALLBACK(proxy_print_option), (void *)PROXYHOST);
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1120
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1121 if (proxy_info != NULL && gaim_proxy_info_get_host(proxy_info))
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1122 gtk_entry_set_text(GTK_ENTRY(entry),
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1123 gaim_proxy_info_get_host(proxy_info));
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1124
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1125 hbox = gtk_hbox_new(TRUE, 5);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1126 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
8137
ca2132ad085e [gaim-migrate @ 8842]
Marc Mulcahy
parents: 8104
diff changeset
1127 gaim_set_accessible_label (entry, label);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1128
7870
a91330fa7cbd [gaim-migrate @ 8524]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 7797
diff changeset
1129 label = gtk_label_new_with_mnemonic(_("_Port:"));
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1130 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1131 gtk_table_attach(GTK_TABLE(table), label, 2, 3, 0, 1, GTK_FILL, 0, 0, 0);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1132
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1133 entry = gtk_entry_new();
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1134 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1135 gtk_table_attach(GTK_TABLE(table), entry, 3, 4, 0, 1, GTK_FILL, 0, 0, 0);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1136 g_signal_connect(G_OBJECT(entry), "changed",
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1137 G_CALLBACK(proxy_print_option), (void *)PROXYPORT);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1138
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1139 if (proxy_info != NULL && gaim_proxy_info_get_port(proxy_info) != 0) {
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1140 char buf[128];
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1141 g_snprintf(buf, sizeof(buf), "%d",
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1142 gaim_proxy_info_get_port(proxy_info));
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1143
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1144 gtk_entry_set_text(GTK_ENTRY(entry), buf);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1145 }
8137
ca2132ad085e [gaim-migrate @ 8842]
Marc Mulcahy
parents: 8104
diff changeset
1146 gaim_set_accessible_label (entry, label);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1147
7797
9bdc74669c80 [gaim-migrate @ 8443]
Mark Doliner <markdoliner@pidgin.im>
parents: 7731
diff changeset
1148 label = gtk_label_new_with_mnemonic(_("_User:"));
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1149 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1150 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, GTK_FILL, 0, 0, 0);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1151
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1152 entry = gtk_entry_new();
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1153 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1154 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 1, 2, GTK_FILL, 0, 0, 0);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1155 g_signal_connect(G_OBJECT(entry), "changed",
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1156 G_CALLBACK(proxy_print_option), (void *)PROXYUSER);
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1157
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1158 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
1159 gtk_entry_set_text(GTK_ENTRY(entry),
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1160 gaim_proxy_info_get_username(proxy_info));
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1161
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1162 hbox = gtk_hbox_new(TRUE, 5);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1163 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
8137
ca2132ad085e [gaim-migrate @ 8842]
Marc Mulcahy
parents: 8104
diff changeset
1164 gaim_set_accessible_label (entry, label);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1165
7797
9bdc74669c80 [gaim-migrate @ 8443]
Mark Doliner <markdoliner@pidgin.im>
parents: 7731
diff changeset
1166 label = gtk_label_new_with_mnemonic(_("Pa_ssword:"));
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1167 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1168 gtk_table_attach(GTK_TABLE(table), label, 2, 3, 1, 2, GTK_FILL, 0, 0, 0);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1169
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1170 entry = gtk_entry_new();
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1171 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1172 gtk_table_attach(GTK_TABLE(table), entry, 3, 4, 1, 2, GTK_FILL , 0, 0, 0);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1173 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1174 g_signal_connect(G_OBJECT(entry), "changed",
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1175 G_CALLBACK(proxy_print_option), (void *)PROXYPASS);
5681
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1176
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1177 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
1178 gtk_entry_set_text(GTK_ENTRY(entry),
514fbc5374dc [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1179 gaim_proxy_info_get_password(proxy_info));
8137
ca2132ad085e [gaim-migrate @ 8842]
Marc Mulcahy
parents: 8104
diff changeset
1180 gaim_set_accessible_label (entry, label);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1181
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1182 gtk_widget_show_all(ret);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1183 return ret;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1184 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1185
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1186 #ifndef _WIN32
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1187 static gboolean manual_browser_set(GtkWidget *entry, GdkEventFocus *event, gpointer data) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1188 const char *program = gtk_entry_get_text(GTK_ENTRY(entry));
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1189
5560
7cd6678f838b [gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents: 5554
diff changeset
1190 gaim_prefs_set_string("/gaim/gtk/browsers/command", program);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1191
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1192 /* carry on normally */
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1193 return FALSE;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1194 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1195
5633
1e82c97da6af [gaim-migrate @ 6040]
Nathan Walp <nwalp@pidgin.im>
parents: 5631
diff changeset
1196 static GList *get_available_browsers()
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1197 {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1198 struct browser {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1199 char *name;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1200 char *command;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1201 };
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1202
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1203 static struct browser possible_browsers[] = {
9405
3413b3694435 [gaim-migrate @ 10219]
Mark Doliner <markdoliner@pidgin.im>
parents: 9307
diff changeset
1204 {N_("Epiphany"), "epiphany"},
8267
53bdf5396546 [gaim-migrate @ 8990]
Mark Doliner <markdoliner@pidgin.im>
parents: 8238
diff changeset
1205 {N_("Firebird"), "mozilla-firebird"},
8356
0bc6befd956d [gaim-migrate @ 9080]
Nathan Walp <nwalp@pidgin.im>
parents: 8340
diff changeset
1206 {N_("Firefox"), "firefox"},
9405
3413b3694435 [gaim-migrate @ 10219]
Mark Doliner <markdoliner@pidgin.im>
parents: 9307
diff changeset
1207 {N_("Galeon"), "galeon"},
3413b3694435 [gaim-migrate @ 10219]
Mark Doliner <markdoliner@pidgin.im>
parents: 9307
diff changeset
1208 {N_("Gnome Default"), "gnome-open"},
3413b3694435 [gaim-migrate @ 10219]
Mark Doliner <markdoliner@pidgin.im>
parents: 9307
diff changeset
1209 {N_("Konqueror"), "kfmclient"},
3413b3694435 [gaim-migrate @ 10219]
Mark Doliner <markdoliner@pidgin.im>
parents: 9307
diff changeset
1210 {N_("Mozilla"), "mozilla"},
3413b3694435 [gaim-migrate @ 10219]
Mark Doliner <markdoliner@pidgin.im>
parents: 9307
diff changeset
1211 {N_("Netscape"), "netscape"},
3413b3694435 [gaim-migrate @ 10219]
Mark Doliner <markdoliner@pidgin.im>
parents: 9307
diff changeset
1212 {N_("Opera"), "opera"}
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1213 };
9405
3413b3694435 [gaim-migrate @ 10219]
Mark Doliner <markdoliner@pidgin.im>
parents: 9307
diff changeset
1214 static const int num_possible_browsers = 9;
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1215
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1216 GList *browsers = NULL;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1217 int i = 0;
5819
a96604ecebc4 [gaim-migrate @ 6249]
Ka-Hing Cheung <khc@pidgin.im>
parents: 5771
diff changeset
1218 char *browser_setting = (char *)gaim_prefs_get_string("/gaim/gtk/browsers/browser");
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1219
5568
3c7cc231c8c4 [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1220 browsers = g_list_prepend(browsers, "custom");
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1221 browsers = g_list_prepend(browsers, _("Manual"));
5568
3c7cc231c8c4 [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1222
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1223 for (i = 0; i < num_possible_browsers; i++) {
7108
82655fa54acb [gaim-migrate @ 7673]
Christian Hammond <chipx86@chipx86.com>
parents: 7095
diff changeset
1224 if (gaim_program_is_valid(possible_browsers[i].command)) {
5633
1e82c97da6af [gaim-migrate @ 6040]
Nathan Walp <nwalp@pidgin.im>
parents: 5631
diff changeset
1225 browsers = g_list_prepend(browsers,
5551
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
1226 possible_browsers[i].command);
5568
3c7cc231c8c4 [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1227 browsers = g_list_prepend(browsers, _(possible_browsers[i].name));
5825
fed4daea7eb9 [gaim-migrate @ 6255]
Sean Egan <seanegan@pidgin.im>
parents: 5821
diff changeset
1228 if(browser_setting && !strcmp(possible_browsers[i].command, browser_setting))
5819
a96604ecebc4 [gaim-migrate @ 6249]
Ka-Hing Cheung <khc@pidgin.im>
parents: 5771
diff changeset
1229 browser_setting = NULL;
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1230 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1231 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1232
5819
a96604ecebc4 [gaim-migrate @ 6249]
Ka-Hing Cheung <khc@pidgin.im>
parents: 5771
diff changeset
1233 if(browser_setting)
a96604ecebc4 [gaim-migrate @ 6249]
Ka-Hing Cheung <khc@pidgin.im>
parents: 5771
diff changeset
1234 gaim_prefs_set_string("/gaim/gtk/browsers/browser", "custom");
a96604ecebc4 [gaim-migrate @ 6249]
Ka-Hing Cheung <khc@pidgin.im>
parents: 5771
diff changeset
1235
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1236 return browsers;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1237 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1238
5568
3c7cc231c8c4 [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1239 static void
8274
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1240 browser_changed1_cb(const char *name, GaimPrefType type, gpointer value,
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1241 gpointer data)
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1242 {
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1243 GtkWidget *hbox = data;
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1244 const char *browser = value;
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1245
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1246 gtk_widget_set_sensitive(hbox, strcmp(browser, "custom"));
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1247 }
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1248
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1249 static void
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1250 browser_changed2_cb(const char *name, GaimPrefType type, gpointer value,
5568
3c7cc231c8c4 [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1251 gpointer data)
3c7cc231c8c4 [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1252 {
3c7cc231c8c4 [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1253 GtkWidget *hbox = data;
3c7cc231c8c4 [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1254 const char *browser = value;
3c7cc231c8c4 [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1255
3c7cc231c8c4 [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1256 gtk_widget_set_sensitive(hbox, !strcmp(browser, "custom"));
3c7cc231c8c4 [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1257 }
3c7cc231c8c4 [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1258
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1259 GtkWidget *browser_page() {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1260 GtkWidget *ret;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1261 GtkWidget *vbox;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1262 GtkWidget *hbox;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1263 GtkWidget *label;
6007
8a852b9295e0 [gaim-migrate @ 6455]
Mark Doliner <markdoliner@pidgin.im>
parents: 6006
diff changeset
1264 GtkWidget *entry;
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1265 GtkSizeGroup *sg;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1266 GList *browsers = NULL;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1267
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1268 ret = gtk_vbox_new(FALSE, 18);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1269 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1270
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1271 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1272 vbox = gaim_gtk_make_frame (ret, _("Browser Selection"));
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1273
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1274 browsers = get_available_browsers();
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1275 if (browsers != NULL) {
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1276 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
1277 "/gaim/gtk/browsers/browser",
1938d1e59cf8 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1278 browsers);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1279 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1280 gtk_size_group_add_widget(sg, label);
8274
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1281
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1282 hbox = gtk_hbox_new(FALSE, 0);
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1283 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
1284 "/gaim/gtk/browsers/place",
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1285 _("Browser default"), GAIM_BROWSER_DEFAULT,
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1286 _("Existing window"), GAIM_BROWSER_CURRENT,
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1287 _("New window"), GAIM_BROWSER_NEW_WINDOW,
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1288 _("New tab"), GAIM_BROWSER_NEW_TAB,
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1289 NULL);
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1290 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1291 gtk_size_group_add_widget(sg, label);
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1292 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1293
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1294 if (!strcmp(gaim_prefs_get_string("/gaim/gtk/browsers/browser"), "custom"))
a9a41c888a4e [gaim-migrate @ 8998]
Mark Doliner <markdoliner@pidgin.im>
parents: 8272
diff changeset
1295 gtk_widget_set_sensitive(hbox, FALSE);
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
1296 gaim_prefs_connect_callback(prefs, "/gaim/gtk/browsers/browser",
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
1297 browser_changed1_cb, hbox);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1298 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1299
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1300 hbox = gtk_hbox_new(FALSE, 5);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1301 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
1302 label = gtk_label_new_with_mnemonic(_("_Manual:\n(%s for URL)"));
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1303 gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1304 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1305 gtk_size_group_add_widget(sg, label);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1306
6007
8a852b9295e0 [gaim-migrate @ 6455]
Mark Doliner <markdoliner@pidgin.im>
parents: 6006
diff changeset
1307 entry = gtk_entry_new();
8a852b9295e0 [gaim-migrate @ 6455]
Mark Doliner <markdoliner@pidgin.im>
parents: 6006
diff changeset
1308 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
5560
7cd6678f838b [gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents: 5554
diff changeset
1309
7cd6678f838b [gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents: 5554
diff changeset
1310 if (strcmp(gaim_prefs_get_string("/gaim/gtk/browsers/browser"), "custom"))
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1311 gtk_widget_set_sensitive(hbox, FALSE);
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
1312 gaim_prefs_connect_callback(prefs, "/gaim/gtk/browsers/browser",
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
1313 browser_changed2_cb, hbox);
5560
7cd6678f838b [gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents: 5554
diff changeset
1314
6007
8a852b9295e0 [gaim-migrate @ 6455]
Mark Doliner <markdoliner@pidgin.im>
parents: 6006
diff changeset
1315 gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, FALSE, 0);
8a852b9295e0 [gaim-migrate @ 6455]
Mark Doliner <markdoliner@pidgin.im>
parents: 6006
diff changeset
1316
8a852b9295e0 [gaim-migrate @ 6455]
Mark Doliner <markdoliner@pidgin.im>
parents: 6006
diff changeset
1317 gtk_entry_set_text(GTK_ENTRY(entry),
5560
7cd6678f838b [gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents: 5554
diff changeset
1318 gaim_prefs_get_string("/gaim/gtk/browsers/command"));
6007
8a852b9295e0 [gaim-migrate @ 6455]
Mark Doliner <markdoliner@pidgin.im>
parents: 6006
diff changeset
1319 g_signal_connect(G_OBJECT(entry), "focus-out-event",
5560
7cd6678f838b [gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents: 5554
diff changeset
1320 G_CALLBACK(manual_browser_set), NULL);
8188
00097fe3f4a4 [gaim-migrate @ 8909]
Christian Hammond <chipx86@chipx86.com>
parents: 8170
diff changeset
1321 gaim_set_accessible_label (entry, label);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1322
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1323 gtk_widget_show_all(ret);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1324 return ret;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1325 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1326 #endif /*_WIN32*/
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1327
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1328 GtkWidget *logging_page() {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1329 GtkWidget *ret;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1330 GtkWidget *vbox;
7431
f3eaace13491 [gaim-migrate @ 8036]
Sean Egan <seanegan@pidgin.im>
parents: 7326
diff changeset
1331 GList *names;
8573
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1332 GtkWidget *sys_box;
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1333 GtkWidget *box;
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1334 int syslog_enabled = gaim_prefs_get_bool("/core/logging/log_system");
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1335
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1336 ret = gtk_vbox_new(FALSE, 18);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1337 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1338
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1339 vbox = gaim_gtk_make_frame (ret, _("Message Logs"));
7431
f3eaace13491 [gaim-migrate @ 8036]
Sean Egan <seanegan@pidgin.im>
parents: 7326
diff changeset
1340 names = gaim_log_logger_get_options();
f3eaace13491 [gaim-migrate @ 8036]
Sean Egan <seanegan@pidgin.im>
parents: 7326
diff changeset
1341
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1342 gaim_gtk_prefs_dropdown_from_list(vbox, _("Log _Format:"), GAIM_PREF_STRING,
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1343 "/core/logging/format", names);
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1344
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1345 gaim_gtk_prefs_checkbox(_("_Log all instant messages"),
7562
7cbd89f3cef1 [gaim-migrate @ 8176]
Christian Hammond <chipx86@chipx86.com>
parents: 7561
diff changeset
1346 "/core/logging/log_ims", vbox);
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1347 gaim_gtk_prefs_checkbox(_("Log all c_hats"),
7562
7cbd89f3cef1 [gaim-migrate @ 8176]
Christian Hammond <chipx86@chipx86.com>
parents: 7561
diff changeset
1348 "/core/logging/log_chats", vbox);
8573
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1349
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1350 vbox = gaim_gtk_make_frame (ret, _("System Logs"));
8573
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1351
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1352 sys_box = gaim_gtk_prefs_checkbox(_("_Enable system log"),
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1353 "/core/logging/log_system", vbox);
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1354
10272
29aff2eb9290 [gaim-migrate @ 11421]
Mark Doliner <markdoliner@pidgin.im>
parents: 10203
diff changeset
1355 box = gaim_gtk_prefs_checkbox(_("Log when buddies log in/log _out"),
8573
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1356 "/core/logging/log_signon_signoff", vbox);
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1357 g_signal_connect(G_OBJECT(sys_box), "clicked",
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1358 G_CALLBACK(gaim_gtk_toggle_sensitive), box);
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1359 gtk_widget_set_sensitive(box, syslog_enabled);
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1360
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1361 box = gaim_gtk_prefs_checkbox(_("Log when buddies become _idle/un-idle"),
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1362 "/core/logging/log_idle_state", vbox);
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1363 g_signal_connect(G_OBJECT(sys_box), "clicked",
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1364 G_CALLBACK(gaim_gtk_toggle_sensitive), box);
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1365 gtk_widget_set_sensitive(box, syslog_enabled);
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1366
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1367 box = gaim_gtk_prefs_checkbox(_("Log when buddies go away/come _back"),
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1368 "/core/logging/log_away_state", vbox);
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1369 g_signal_connect(G_OBJECT(sys_box), "clicked",
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1370 G_CALLBACK(gaim_gtk_toggle_sensitive), box);
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1371 gtk_widget_set_sensitive(box, syslog_enabled);
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1372
10272
29aff2eb9290 [gaim-migrate @ 11421]
Mark Doliner <markdoliner@pidgin.im>
parents: 10203
diff changeset
1373 box = gaim_gtk_prefs_checkbox(_("Log your own _signons/idleness/awayness"),
8573
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1374 "/core/logging/log_own_states", vbox);
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1375 g_signal_connect(G_OBJECT(sys_box), "clicked",
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1376 G_CALLBACK(gaim_gtk_toggle_sensitive), box);
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1377 gtk_widget_set_sensitive(box, syslog_enabled);
3f37bd7005c8 [gaim-migrate @ 9321]
Ka-Hing Cheung <khc@pidgin.im>
parents: 8494
diff changeset
1378
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1379 gtk_widget_show_all(ret);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1380 return ret;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1381 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1382
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1383 #ifndef _WIN32
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1384 static gint sound_cmd_yeah(GtkEntry *entry, gpointer d)
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1385 {
5684
10b916deb20c [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5681
diff changeset
1386 gaim_prefs_set_string("/gaim/gtk/sound/command",
6007
8a852b9295e0 [gaim-migrate @ 6455]
Mark Doliner <markdoliner@pidgin.im>
parents: 6006
diff changeset
1387 gtk_entry_get_text(GTK_ENTRY(entry)));
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1388 return TRUE;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1389 }
6005
596ca49e2514 [gaim-migrate @ 6453]
Mark Doliner <markdoliner@pidgin.im>
parents: 6001
diff changeset
1390
596ca49e2514 [gaim-migrate @ 6453]
Mark Doliner <markdoliner@pidgin.im>
parents: 6001
diff changeset
1391 static void
10074
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1392 sound_changed1_cb(const char *name, GaimPrefType type, gpointer value,
6005
596ca49e2514 [gaim-migrate @ 6453]
Mark Doliner <markdoliner@pidgin.im>
parents: 6001
diff changeset
1393 gpointer data)
596ca49e2514 [gaim-migrate @ 6453]
Mark Doliner <markdoliner@pidgin.im>
parents: 6001
diff changeset
1394 {
596ca49e2514 [gaim-migrate @ 6453]
Mark Doliner <markdoliner@pidgin.im>
parents: 6001
diff changeset
1395 GtkWidget *hbox = data;
596ca49e2514 [gaim-migrate @ 6453]
Mark Doliner <markdoliner@pidgin.im>
parents: 6001
diff changeset
1396 const char *method = value;
596ca49e2514 [gaim-migrate @ 6453]
Mark Doliner <markdoliner@pidgin.im>
parents: 6001
diff changeset
1397
596ca49e2514 [gaim-migrate @ 6453]
Mark Doliner <markdoliner@pidgin.im>
parents: 6001
diff changeset
1398 gtk_widget_set_sensitive(hbox, !strcmp(method, "custom"));
596ca49e2514 [gaim-migrate @ 6453]
Mark Doliner <markdoliner@pidgin.im>
parents: 6001
diff changeset
1399 }
10074
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1400
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1401 static void
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1402 sound_changed2_cb(const char *name, GaimPrefType type, gpointer value,
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1403 gpointer data)
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1404 {
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1405 GtkWidget *vbox = data;
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1406 const char *method = value;
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1407
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1408 gtk_widget_set_sensitive(vbox, strcmp(method, "none"));
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1409 }
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1410 #endif
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1411
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1412
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1413 static void
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1414 event_toggled(GtkCellRendererToggle *cell, gchar *pth, gpointer data)
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1415 {
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1416 GtkTreeModel *model = (GtkTreeModel *)data;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1417 GtkTreeIter iter;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1418 GtkTreePath *path = gtk_tree_path_new_from_string(pth);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1419 const char *pref;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1420
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1421 gtk_tree_model_get_iter (model, &iter, path);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1422 gtk_tree_model_get (model, &iter,
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1423 2, &pref,
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1424 -1);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1425
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1426 gaim_prefs_set_bool(pref, !gtk_cell_renderer_toggle_get_active(cell));
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1427
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1428 gtk_list_store_set(GTK_LIST_STORE (model), &iter,
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1429 0, !gtk_cell_renderer_toggle_get_active(cell),
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1430 -1);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1431
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1432 gtk_tree_path_free(path);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1433 }
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1434
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1435 static void
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1436 test_sound(GtkWidget *button, gpointer i_am_NULL)
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1437 {
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1438 char *pref;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1439 gboolean temp_value1, temp_value2;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1440
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1441 pref = g_strdup_printf("/gaim/gtk/sound/enabled/%s",
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1442 gaim_gtk_sound_get_event_option(sound_row_sel));
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1443
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1444 temp_value1 = gaim_prefs_get_bool("/core/sound/while_away");
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1445 temp_value2 = gaim_prefs_get_bool(pref);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1446
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1447 if (!temp_value1) gaim_prefs_set_bool("/core/sound/while_away", TRUE);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1448 if (!temp_value2) gaim_prefs_set_bool(pref, TRUE);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1449
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1450 gaim_sound_play_event(sound_row_sel);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1451
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1452 if (!temp_value1) gaim_prefs_set_bool("/core/sound/while_away", FALSE);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1453 if (!temp_value2) gaim_prefs_set_bool(pref, FALSE);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1454
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1455 g_free(pref);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1456 }
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1457
9508
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1458 /*
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1459 * Resets a sound file back to default.
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1460 */
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1461 static void
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1462 reset_sound(GtkWidget *button, gpointer i_am_also_NULL)
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1463 {
9508
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1464 gchar *pref;
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1465
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1466 pref = g_strdup_printf("/gaim/gtk/sound/file/%s",
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1467 gaim_gtk_sound_get_event_option(sound_row_sel));
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1468 gaim_prefs_set_string(pref, "");
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1469 g_free(pref);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1470
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1471 gtk_entry_set_text(GTK_ENTRY(sound_entry), "(default)");
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1472 }
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1473
9508
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1474 static void
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1475 sound_chosen_cb(void *user_data, const char *filename)
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1476 {
9508
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1477 gchar *pref;
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1478 int sound;
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1479
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1480 sound = GPOINTER_TO_INT(user_data);
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1481
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1482 /* Set it -- and forget it */
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1483 pref = g_strdup_printf("/gaim/gtk/sound/file/%s",
9508
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1484 gaim_gtk_sound_get_event_option(sound));
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1485 gaim_prefs_set_string(pref, filename);
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1486 g_free(pref);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1487
9508
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1488 /*
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1489 * If the sound we just changed is still the currently selected
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1490 * sound, then update the box showing the file name.
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1491 */
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1492 if (sound == sound_row_sel)
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1493 gtk_entry_set_text(GTK_ENTRY(sound_entry), filename);
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1494 }
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1495
9508
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1496 static void select_sound(GtkWidget *button, gpointer being_NULL_is_fun)
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1497 {
9508
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1498 gchar *pref;
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1499 const char *filename;
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1500
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1501 pref = g_strdup_printf("/gaim/gtk/sound/file/%s",
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1502 gaim_gtk_sound_get_event_option(sound_row_sel));
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1503 filename = gaim_prefs_get_string(pref);
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1504 g_free(pref);
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1505
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1506 if (*filename == '\0')
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1507 filename = NULL;
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1508
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1509 gaim_request_file(prefs, _("Sound Selection"), filename, FALSE,
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1510 G_CALLBACK(sound_chosen_cb), NULL, GINT_TO_POINTER(sound_row_sel));
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1511 }
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1512
9508
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1513 static void prefs_sound_sel(GtkTreeSelection *sel, GtkTreeModel *model) {
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1514 GtkTreeIter iter;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1515 GValue val = { 0, };
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1516 const char *file;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1517 char *pref;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1518
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1519 if (! gtk_tree_selection_get_selected (sel, &model, &iter))
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1520 return;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1521 gtk_tree_model_get_value (model, &iter, 3, &val);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1522 sound_row_sel = g_value_get_uint(&val);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1523
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1524 pref = g_strdup_printf("/gaim/gtk/sound/file/%s",
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1525 gaim_gtk_sound_get_event_option(sound_row_sel));
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1526 file = gaim_prefs_get_string(pref);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1527 g_free(pref);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1528 if (sound_entry)
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1529 gtk_entry_set_text(GTK_ENTRY(sound_entry), (file && *file != '\0') ? file : "(default)");
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1530 g_value_unset (&val);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1531 }
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1532
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1533 GtkWidget *sound_page() {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1534 GtkWidget *ret;
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1535 GtkWidget *vbox, *sw, *button;
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1536 GtkSizeGroup *sg;
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1537 GtkTreeIter iter;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1538 GtkWidget *event_view;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1539 GtkListStore *event_store;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1540 GtkCellRenderer *rend;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1541 GtkTreeViewColumn *col;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1542 GtkTreeSelection *sel;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1543 GtkTreePath *path;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1544 GtkWidget *hbox;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1545 int j;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1546 const char *file;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1547 char *pref;
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1548 #ifndef _WIN32
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1549 GtkWidget *dd;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1550 GtkWidget *label;
6007
8a852b9295e0 [gaim-migrate @ 6455]
Mark Doliner <markdoliner@pidgin.im>
parents: 6006
diff changeset
1551 GtkWidget *entry;
5684
10b916deb20c [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5681
diff changeset
1552 const char *cmd;
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1553 #endif
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1554
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1555 ret = gtk_vbox_new(FALSE, 18);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1556 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1557
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1558 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1559
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1560 #ifndef _WIN32
6033
258034132922 [gaim-migrate @ 6483]
Mark Doliner <markdoliner@pidgin.im>
parents: 6031
diff changeset
1561 vbox = gaim_gtk_make_frame (ret, _("Sound Method"));
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1562 dd = gaim_gtk_prefs_dropdown(vbox, _("_Method:"), GAIM_PREF_STRING,
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1563 "/gaim/gtk/sound/method",
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1564 _("Console beep"), "beep",
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1565 #ifdef USE_AO
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1566 _("Automatic"), "automatic",
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1567 "ESD", "esd",
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1568 "Arts", "arts",
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1569 #endif
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1570 #ifdef USE_NAS_AUDIO
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1571 "NAS", "nas",
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1572 #endif
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1573 _("Command"), "custom",
10074
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1574 _("No sounds"), "none",
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1575 NULL);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1576 gtk_size_group_add_widget(sg, dd);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1577 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1578
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1579 hbox = gtk_hbox_new(FALSE, 5);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1580 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1581
6031
7bcdcf180d48 [gaim-migrate @ 6481]
Mark Doliner <markdoliner@pidgin.im>
parents: 6016
diff changeset
1582 label = gtk_label_new_with_mnemonic(_("Sound c_ommand:\n(%s for filename)"));
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1583 gtk_size_group_add_widget(sg, label);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1584 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1585 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1586
6007
8a852b9295e0 [gaim-migrate @ 6455]
Mark Doliner <markdoliner@pidgin.im>
parents: 6006
diff changeset
1587 entry = gtk_entry_new();
8a852b9295e0 [gaim-migrate @ 6455]
Mark Doliner <markdoliner@pidgin.im>
parents: 6006
diff changeset
1588 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
8a852b9295e0 [gaim-migrate @ 6455]
Mark Doliner <markdoliner@pidgin.im>
parents: 6006
diff changeset
1589
8a852b9295e0 [gaim-migrate @ 6455]
Mark Doliner <markdoliner@pidgin.im>
parents: 6006
diff changeset
1590 gtk_editable_set_editable(GTK_EDITABLE(entry), TRUE);
5684
10b916deb20c [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5681
diff changeset
1591 cmd = gaim_prefs_get_string("/gaim/gtk/sound/command");
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1592 if(cmd)
6007
8a852b9295e0 [gaim-migrate @ 6455]
Mark Doliner <markdoliner@pidgin.im>
parents: 6006
diff changeset
1593 gtk_entry_set_text(GTK_ENTRY(entry), cmd);
8a852b9295e0 [gaim-migrate @ 6455]
Mark Doliner <markdoliner@pidgin.im>
parents: 6006
diff changeset
1594 gtk_widget_set_size_request(entry, 75, -1);
8a852b9295e0 [gaim-migrate @ 6455]
Mark Doliner <markdoliner@pidgin.im>
parents: 6006
diff changeset
1595
8a852b9295e0 [gaim-migrate @ 6455]
Mark Doliner <markdoliner@pidgin.im>
parents: 6006
diff changeset
1596 gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 5);
8a852b9295e0 [gaim-migrate @ 6455]
Mark Doliner <markdoliner@pidgin.im>
parents: 6006
diff changeset
1597 g_signal_connect(G_OBJECT(entry), "changed",
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1598 G_CALLBACK(sound_cmd_yeah), NULL);
6005
596ca49e2514 [gaim-migrate @ 6453]
Mark Doliner <markdoliner@pidgin.im>
parents: 6001
diff changeset
1599
596ca49e2514 [gaim-migrate @ 6453]
Mark Doliner <markdoliner@pidgin.im>
parents: 6001
diff changeset
1600 gtk_widget_set_sensitive(hbox,
596ca49e2514 [gaim-migrate @ 6453]
Mark Doliner <markdoliner@pidgin.im>
parents: 6001
diff changeset
1601 !strcmp(gaim_prefs_get_string("/gaim/gtk/sound/method"),
596ca49e2514 [gaim-migrate @ 6453]
Mark Doliner <markdoliner@pidgin.im>
parents: 6001
diff changeset
1602 "custom"));
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
1603 gaim_prefs_connect_callback(prefs, "/gaim/gtk/sound/method",
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
1604 sound_changed1_cb, hbox);
6005
596ca49e2514 [gaim-migrate @ 6453]
Mark Doliner <markdoliner@pidgin.im>
parents: 6001
diff changeset
1605
8141
9b0385146140 [gaim-migrate @ 8849]
Daniel Atallah <datallah@pidgin.im>
parents: 8137
diff changeset
1606 gaim_set_accessible_label (entry, label);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1607 #endif /* _WIN32 */
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1608
10074
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1609 vbox = gaim_gtk_make_frame (ret, _("Sound Options"));
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1610 gaim_gtk_prefs_checkbox(_("Sounds when conversation has _focus"),
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1611 "/gaim/gtk/sound/conv_focus", vbox);
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1612 gaim_gtk_prefs_checkbox(_("_Sounds while away"),
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1613 "/core/sound/while_away", vbox);
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1614
10075
d2d752ab0335 [gaim-migrate @ 11055]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10074
diff changeset
1615 #ifndef _WIN32
10074
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1616 gtk_widget_set_sensitive(vbox,
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1617 strcmp(gaim_prefs_get_string("/gaim/gtk/sound/method"), "none"));
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
1618 gaim_prefs_connect_callback(prefs, "/gaim/gtk/sound/method",
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
1619 sound_changed2_cb, vbox);
10075
d2d752ab0335 [gaim-migrate @ 11055]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10074
diff changeset
1620 #endif
10074
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1621
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1622 vbox = gaim_gtk_make_frame(ret, _("Sound Events"));
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1623
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1624 /* The following is an ugly hack to make the frame expand so the
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1625 * sound events list is big enough to be usable */
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1626 gtk_box_set_child_packing(GTK_BOX(vbox->parent), vbox, TRUE, TRUE, 0,
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1627 GTK_PACK_START);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1628 gtk_box_set_child_packing(GTK_BOX(vbox->parent->parent), vbox->parent, TRUE,
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1629 TRUE, 0, GTK_PACK_START);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1630 gtk_box_set_child_packing(GTK_BOX(vbox->parent->parent->parent),
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1631 vbox->parent->parent, TRUE, TRUE, 0, GTK_PACK_START);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1632
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1633 sw = gtk_scrolled_window_new(NULL,NULL);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1634 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1635 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1636
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1637 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1638 event_store = gtk_list_store_new (4, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1639
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1640 for (j=0; j < GAIM_NUM_SOUNDS; j++) {
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1641 char *pref = g_strdup_printf("/gaim/gtk/sound/enabled/%s",
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1642 gaim_gtk_sound_get_event_option(j));
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1643 const char *label = gaim_gtk_sound_get_event_label(j);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1644
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1645 if (label == NULL) {
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1646 g_free(pref);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1647 continue;
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1648 }
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1649
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1650 gtk_list_store_append (event_store, &iter);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1651 gtk_list_store_set(event_store, &iter,
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1652 0, gaim_prefs_get_bool(pref),
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1653 1, _(label),
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1654 2, pref,
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1655 3, j,
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1656 -1);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1657 g_free(pref);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1658 }
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1659
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1660 event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(event_store));
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1661
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1662 rend = gtk_cell_renderer_toggle_new();
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1663 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view));
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1664 g_signal_connect (G_OBJECT (sel), "changed",
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1665 G_CALLBACK (prefs_sound_sel),
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1666 NULL);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1667 g_signal_connect (G_OBJECT(rend), "toggled",
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1668 G_CALLBACK(event_toggled), event_store);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1669 path = gtk_tree_path_new_first();
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1670 gtk_tree_selection_select_path(sel, path);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1671 gtk_tree_path_free(path);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1672
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1673 col = gtk_tree_view_column_new_with_attributes (_("Play"),
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1674 rend,
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1675 "active", 0,
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1676 NULL);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1677 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1678
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1679 rend = gtk_cell_renderer_text_new();
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1680 col = gtk_tree_view_column_new_with_attributes (_("Event"),
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1681 rend,
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1682 "text", 1,
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1683 NULL);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1684 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1685 g_object_unref(G_OBJECT(event_store));
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1686 gtk_container_add(GTK_CONTAINER(sw), event_view);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1687
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1688 hbox = gtk_hbox_new(FALSE, 6);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1689 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1690 sound_entry = gtk_entry_new();
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1691 pref = g_strdup_printf("/gaim/gtk/sound/file/%s",
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1692 gaim_gtk_sound_get_event_option(0));
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1693 file = gaim_prefs_get_string(pref);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1694 g_free(pref);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1695 gtk_entry_set_text(GTK_ENTRY(sound_entry), (file && *file != '\0') ? file : "(default)");
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1696 gtk_editable_set_editable(GTK_EDITABLE(sound_entry), FALSE);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1697 gtk_box_pack_start(GTK_BOX(hbox), sound_entry, FALSE, FALSE, 5);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1698
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1699 button = gtk_button_new_with_label(_("Test"));
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1700 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(test_sound), NULL);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1701 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1702
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1703 button = gtk_button_new_with_label(_("Reset"));
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1704 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(reset_sound), NULL);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1705 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1706
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1707 button = gtk_button_new_with_label(_("Choose..."));
9508
c757be6aad9b [gaim-migrate @ 10335]
Mark Doliner <markdoliner@pidgin.im>
parents: 9422
diff changeset
1708 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(select_sound), NULL);
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1709 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1710 gtk_widget_show_all(ret);
9118
6391db1b5068 [gaim-migrate @ 9895]
Nathan Walp <nwalp@pidgin.im>
parents: 9112
diff changeset
1711
10075
d2d752ab0335 [gaim-migrate @ 11055]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10074
diff changeset
1712 #ifndef _WIN32
10074
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1713 gtk_widget_set_sensitive(vbox,
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1714 strcmp(gaim_prefs_get_string("/gaim/gtk/sound/method"), "none"));
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
1715 gaim_prefs_connect_callback(prefs, "/gaim/gtk/sound/method",
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
1716 sound_changed2_cb, vbox);
10075
d2d752ab0335 [gaim-migrate @ 11055]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10074
diff changeset
1717 #endif
10074
4fab99572bf1 [gaim-migrate @ 11054]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10061
diff changeset
1718
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1719 return ret;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1720 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1721
10182
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1722 /* XXX CORE/UI */
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1723 #if 0
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1724 static void
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1725 set_default_away(GtkWidget *w, gpointer data)
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1726 {
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1727 struct away_message *default_away = NULL;
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1728 int length = g_slist_length(away_messages);
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1729 int i = GPOINTER_TO_INT(data);
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1730
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1731 if (away_messages == NULL)
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1732 default_away = NULL;
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1733 else if (i >= length)
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1734 default_away = g_slist_nth_data(away_messages, length - 1);
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1735 else
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1736 default_away = g_slist_nth_data(away_messages, i);
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1737
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1738 if(default_away)
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1739 gaim_prefs_set_string("/core/away/default_message", default_away->name);
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1740 else
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1741 gaim_prefs_set_string("/core/away/default_message", "");
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1742 }
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1743 #endif
960939362f7f [gaim-migrate @ 11297]
Mark Doliner <markdoliner@pidgin.im>
parents: 10181
diff changeset
1744
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1745 GtkWidget *away_page() {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1746 GtkWidget *ret;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1747 GtkWidget *vbox;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1748 GtkWidget *hbox;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1749 GtkWidget *label;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1750 GtkWidget *button;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1751 GtkWidget *select;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1752 GtkWidget *dd;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1753 GtkSizeGroup *sg;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1754
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1755 ret = gtk_vbox_new(FALSE, 18);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1756 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1757
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1758 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1759
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1760 vbox = gaim_gtk_make_frame (ret, _("Away"));
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1761 gaim_gtk_prefs_checkbox(_("_Queue new messages when away"),
5573
633880e3f137 [gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents: 5568
diff changeset
1762 "/gaim/gtk/away/queue_messages", vbox);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1763
9596
5f5575b051e6 [gaim-migrate @ 10439]
Mark Doliner <markdoliner@pidgin.im>
parents: 9521
diff changeset
1764 label = gaim_gtk_prefs_dropdown(vbox, _("_Auto-reply:"),
5f5575b051e6 [gaim-migrate @ 10439]
Mark Doliner <markdoliner@pidgin.im>
parents: 9521
diff changeset
1765 GAIM_PREF_STRING, "/core/away/auto_reply",
5f5575b051e6 [gaim-migrate @ 10439]
Mark Doliner <markdoliner@pidgin.im>
parents: 9521
diff changeset
1766 _("Never"), "never",
9736
5e26835f2cbd [gaim-migrate @ 10597]
Sean Egan <seanegan@pidgin.im>
parents: 9730
diff changeset
1767 _("When away"), "away",
5e26835f2cbd [gaim-migrate @ 10597]
Sean Egan <seanegan@pidgin.im>
parents: 9730
diff changeset
1768 _("When away and idle"), "awayidle",
9596
5f5575b051e6 [gaim-migrate @ 10439]
Mark Doliner <markdoliner@pidgin.im>
parents: 9521
diff changeset
1769 NULL);
6142
6c6733b2e804 [gaim-migrate @ 6616]
Lee Roach <phroggster@gmail.com>
parents: 6141
diff changeset
1770
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1771 vbox = gaim_gtk_make_frame (ret, _("Idle"));
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1772 dd = gaim_gtk_prefs_dropdown(vbox, _("Idle _time reporting:"),
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1773 GAIM_PREF_STRING, "/gaim/gtk/idle/reporting_method",
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1774 _("None"), "none",
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1775 _("Gaim usage"), "gaim",
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1776 #ifdef USE_SCREENSAVER
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1777 #ifndef _WIN32
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1778 _("X usage"), "system",
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1779 #else
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1780 _("Windows usage"), "system",
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1781 #endif
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1782 #endif
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1783 NULL);
5550
1938d1e59cf8 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1784
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1785 gtk_size_group_add_widget(sg, dd);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1786 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1787
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1788 vbox = gaim_gtk_make_frame (ret, _("Auto-away"));
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1789 button = gaim_gtk_prefs_checkbox(_("Set away _when idle"),
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1790 "/core/away/away_when_idle", vbox);
8238
f7d22f952df5 [gaim-migrate @ 8961]
Mark Doliner <markdoliner@pidgin.im>
parents: 8231
diff changeset
1791
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1792 select = gaim_gtk_prefs_labeled_spin_button(vbox,
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1793 _("_Minutes before setting away:"), "/core/away/mins_before_away",
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1794 1, 24 * 60, sg);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1795 g_signal_connect(G_OBJECT(button), "clicked",
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1796 G_CALLBACK(gaim_gtk_toggle_sensitive), select);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1797
8238
f7d22f952df5 [gaim-migrate @ 8961]
Mark Doliner <markdoliner@pidgin.im>
parents: 8231
diff changeset
1798 hbox = gtk_hbox_new(FALSE, 0);
f7d22f952df5 [gaim-migrate @ 8961]
Mark Doliner <markdoliner@pidgin.im>
parents: 8231
diff changeset
1799 gtk_container_add(GTK_CONTAINER(vbox), hbox);
f7d22f952df5 [gaim-migrate @ 8961]
Mark Doliner <markdoliner@pidgin.im>
parents: 8231
diff changeset
1800
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1801 label = gtk_label_new_with_mnemonic(_("Away m_essage:"));
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1802 gtk_size_group_add_widget(sg, label);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1803 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
8238
f7d22f952df5 [gaim-migrate @ 8961]
Mark Doliner <markdoliner@pidgin.im>
parents: 8231
diff changeset
1804 g_signal_connect(G_OBJECT(button), "clicked",
f7d22f952df5 [gaim-migrate @ 8961]
Mark Doliner <markdoliner@pidgin.im>
parents: 8231
diff changeset
1805 G_CALLBACK(gaim_gtk_toggle_sensitive), label);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1806 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
1807
5550
1938d1e59cf8 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1808 if (!gaim_prefs_get_bool("/core/away/away_when_idle")) {
1938d1e59cf8 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1809 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE);
8238
f7d22f952df5 [gaim-migrate @ 8961]
Mark Doliner <markdoliner@pidgin.im>
parents: 8231
diff changeset
1810 gtk_widget_set_sensitive(GTK_WIDGET(label), FALSE);
5550
1938d1e59cf8 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1811 }
1938d1e59cf8 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1812
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1813 gtk_widget_show_all(ret);
5550
1938d1e59cf8 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1814
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1815 return ret;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1816 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1817
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1818 static GtkWidget *plugin_description=NULL, *plugin_details=NULL;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1819
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1820 static void prefs_plugin_sel (GtkTreeSelection *sel, GtkTreeModel *model)
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1821 {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1822 gchar *buf, *pname, *perr, *pdesc, *pauth, *pweb;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1823 GtkTreeIter iter;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1824 GValue val = { 0, };
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1825 GaimPlugin *plug;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1826
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1827 if (! gtk_tree_selection_get_selected (sel, &model, &iter))
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1828 return;
8104
8426a9a604f1 [gaim-migrate @ 8804]
Gary Kramlich <grim@pidgin.im>
parents: 8075
diff changeset
1829 gtk_tree_model_get_value (model, &iter, 3, &val);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1830 plug = g_value_get_pointer(&val);
8998
e18e340f1111 [gaim-migrate @ 9773]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8994
diff changeset
1831
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1832 pname = g_markup_escape_text(_(plug->info->name), -1);
9307
a446c1ba05ee [gaim-migrate @ 10115]
Gary Kramlich <grim@pidgin.im>
parents: 9303
diff changeset
1833 pdesc = (plug->info->description) ?
a446c1ba05ee [gaim-migrate @ 10115]
Gary Kramlich <grim@pidgin.im>
parents: 9303
diff changeset
1834 g_markup_escape_text(_(plug->info->description), -1) : NULL;
a446c1ba05ee [gaim-migrate @ 10115]
Gary Kramlich <grim@pidgin.im>
parents: 9303
diff changeset
1835 pauth = (plug->info->author) ?
a446c1ba05ee [gaim-migrate @ 10115]
Gary Kramlich <grim@pidgin.im>
parents: 9303
diff changeset
1836 g_markup_escape_text(_(plug->info->author), -1) : NULL;
a446c1ba05ee [gaim-migrate @ 10115]
Gary Kramlich <grim@pidgin.im>
parents: 9303
diff changeset
1837 pweb = (plug->info->homepage) ?
a446c1ba05ee [gaim-migrate @ 10115]
Gary Kramlich <grim@pidgin.im>
parents: 9303
diff changeset
1838 g_markup_escape_text(_(plug->info->homepage), -1) : NULL;
a446c1ba05ee [gaim-migrate @ 10115]
Gary Kramlich <grim@pidgin.im>
parents: 9303
diff changeset
1839
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1840 if (plug->error != NULL) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1841 perr = g_markup_escape_text(_(plug->error), -1);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1842 buf = g_strdup_printf(
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1843 "<span size=\"larger\">%s %s</span>\n\n"
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1844 "<span weight=\"bold\" color=\"red\">%s</span>\n\n"
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1845 "%s",
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1846 pname, plug->info->version, perr, pdesc);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1847 g_free(perr);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1848 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1849 else {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1850 buf = g_strdup_printf(
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1851 "<span size=\"larger\">%s %s</span>\n\n%s",
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1852 pname, plug->info->version, pdesc);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1853 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1854 gtk_label_set_markup(GTK_LABEL(plugin_description), buf);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1855 g_free(buf);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1856
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1857 buf = g_strdup_printf(
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1858 #ifndef _WIN32
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1859 _("<span size=\"larger\">%s %s</span>\n\n"
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1860 "<span weight=\"bold\">Written by:</span>\t%s\n"
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1861 "<span weight=\"bold\">Web site:</span>\t\t%s\n"
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1862 "<span weight=\"bold\">File name:</span>\t%s"),
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1863 #else
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1864 _("<span size=\"larger\">%s %s</span>\n\n"
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1865 "<span weight=\"bold\">Written by:</span> %s\n"
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1866 "<span weight=\"bold\">URL:</span> %s\n"
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1867 "<span weight=\"bold\">File name:</span> %s"),
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1868 #endif
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1869 pname, plug->info->version, pauth, pweb, plug->path);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1870
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1871 gtk_label_set_markup(GTK_LABEL(plugin_details), buf);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1872 g_value_unset(&val);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1873 g_free(buf);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1874 g_free(pname);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1875 g_free(pdesc);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1876 g_free(pauth);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1877 g_free(pweb);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1878 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1879
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1880 static void plugin_load (GtkCellRendererToggle *cell, gchar *pth, gpointer data)
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1881 {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1882 GtkTreeModel *model = (GtkTreeModel *)data;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1883 GtkTreeIter iter;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1884 GtkTreePath *path = gtk_tree_path_new_from_string(pth);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1885 GaimPlugin *plug;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1886 gchar buf[1024];
6040
ab00305db747 [gaim-migrate @ 6490]
Mark Doliner <markdoliner@pidgin.im>
parents: 6039
diff changeset
1887 gchar *name = NULL, *description = NULL;
6928
17e0c572bd97 [gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents: 6861
diff changeset
1888
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1889 GdkCursor *wait = gdk_cursor_new (GDK_WATCH);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1890 gdk_window_set_cursor(prefs->window, wait);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1891 gdk_cursor_unref(wait);
6928
17e0c572bd97 [gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents: 6861
diff changeset
1892
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1893 gtk_tree_model_get_iter (model, &iter, path);
8104
8426a9a604f1 [gaim-migrate @ 8804]
Gary Kramlich <grim@pidgin.im>
parents: 8075
diff changeset
1894 gtk_tree_model_get (model, &iter, 3, &plug, -1);
6928
17e0c572bd97 [gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents: 6861
diff changeset
1895
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1896 if (!gaim_plugin_is_loaded(plug)) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1897 gaim_plugin_load(plug);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1898
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1899 /*
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1900 * NOTE: This is basically the same check as before
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1901 * (plug->type == plugin), but now there aren't plugin types.
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1902 * Not yet, anyway. I want to do a V2 of the plugin API.
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1903 * The thing is, we should have a flag specifying the UI type,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1904 * or just whether it's a general plugin or a UI-specific
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1905 * plugin. We should only load this if it's UI-specific.
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1906 *
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1907 * -- ChipX86
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1908 */
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1909 if (GAIM_IS_GTK_PLUGIN(plug))
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1910 {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1911 GtkWidget *config_frame;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1912 GaimGtkPluginUiInfo *ui_info;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1913
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1914 ui_info = GAIM_GTK_PLUGIN_UI_INFO(plug);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1915 config_frame = gaim_gtk_plugin_get_config_frame(plug);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1916
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1917 if (config_frame != NULL) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1918 ui_info->iter = g_new0(GtkTreeIter, 1);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1919 prefs_notebook_add_page(_(plug->info->name), NULL,
10078
97237f516d12 [gaim-migrate @ 11060]
Sean Egan <seanegan@pidgin.im>
parents: 10075
diff changeset
1920 config_frame, ui_info->iter,
97237f516d12 [gaim-migrate @ 11060]
Sean Egan <seanegan@pidgin.im>
parents: 10075
diff changeset
1921 &plugin_iter, notebook_page++);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1922 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1923 }
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1924
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1925 if(GAIM_PLUGIN_HAS_PREF_FRAME(plug)) {
8998
e18e340f1111 [gaim-migrate @ 9773]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8994
diff changeset
1926 GtkTreeIter iter;
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1927 GtkWidget *pref_frame;
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1928 GaimPluginUiInfo *prefs_info;
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1929
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1930 if(plug->info->type == GAIM_PLUGIN_PROTOCOL)
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1931 iter = proto_iter;
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1932 else
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1933 iter = plugin_iter;
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1934
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1935 prefs_info = GAIM_PLUGIN_UI_INFO(plug);
8814
b665afb21b2c [gaim-migrate @ 9576]
Gary Kramlich <grim@pidgin.im>
parents: 8811
diff changeset
1936 prefs_info->frame = prefs_info->get_plugin_pref_frame(plug);
b665afb21b2c [gaim-migrate @ 9576]
Gary Kramlich <grim@pidgin.im>
parents: 8811
diff changeset
1937 pref_frame = gaim_gtk_plugin_pref_create_frame(prefs_info->frame);
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1938
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1939 if(pref_frame != NULL) {
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1940 prefs_info->iter = g_new0(GtkTreeIter, 1);
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1941 prefs_notebook_add_page(_(plug->info->name), NULL,
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1942 pref_frame, prefs_info->iter,
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1943 &iter, notebook_page++);
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1944 }
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1945 }
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1946 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1947 else {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1948 if (GAIM_IS_GTK_PLUGIN(plug)) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1949 GaimGtkPluginUiInfo *ui_info;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1950
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1951 ui_info = GAIM_GTK_PLUGIN_UI_INFO(plug);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1952
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1953 if (ui_info != NULL && ui_info->iter != NULL) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1954 g_free(ui_info->iter);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1955 ui_info->iter = NULL;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1956 }
8745
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
1957 }
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
1958
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
1959 if (GAIM_PLUGIN_HAS_PREF_FRAME(plug)) {
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1960 GaimPluginUiInfo *prefs_info;
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1961
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1962 prefs_info = GAIM_PLUGIN_UI_INFO(plug);
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1963
8745
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
1964 if(prefs_info != NULL) {
8814
b665afb21b2c [gaim-migrate @ 9576]
Gary Kramlich <grim@pidgin.im>
parents: 8811
diff changeset
1965 if(prefs_info->frame != NULL) {
b665afb21b2c [gaim-migrate @ 9576]
Gary Kramlich <grim@pidgin.im>
parents: 8811
diff changeset
1966 gaim_plugin_pref_frame_destroy(prefs_info->frame);
b665afb21b2c [gaim-migrate @ 9576]
Gary Kramlich <grim@pidgin.im>
parents: 8811
diff changeset
1967 prefs_info->frame = NULL;
b665afb21b2c [gaim-migrate @ 9576]
Gary Kramlich <grim@pidgin.im>
parents: 8811
diff changeset
1968 }
b665afb21b2c [gaim-migrate @ 9576]
Gary Kramlich <grim@pidgin.im>
parents: 8811
diff changeset
1969
8745
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
1970 if(prefs_info->iter != NULL) {
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
1971 g_free(prefs_info->iter);
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
1972 prefs_info->iter = NULL;
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
1973 }
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
1974 }
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1975 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1976
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1977 gaim_plugin_unload(plug);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1978 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1979
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1980 gdk_window_set_cursor(prefs->window, NULL);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1981
6040
ab00305db747 [gaim-migrate @ 6490]
Mark Doliner <markdoliner@pidgin.im>
parents: 6039
diff changeset
1982 name = g_markup_escape_text(_(plug->info->name), -1);
ab00305db747 [gaim-migrate @ 6490]
Mark Doliner <markdoliner@pidgin.im>
parents: 6039
diff changeset
1983 description = g_markup_escape_text(_(plug->info->description), -1);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1984 if (plug->error != NULL) {
6040
ab00305db747 [gaim-migrate @ 6490]
Mark Doliner <markdoliner@pidgin.im>
parents: 6039
diff changeset
1985 gchar *error = g_markup_escape_text(plug->error, -1);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1986 g_snprintf(buf, sizeof(buf),
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1987 "<span size=\"larger\">%s %s</span>\n\n"
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1988 "<span weight=\"bold\" color=\"red\">%s</span>\n\n"
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1989 "%s",
6040
ab00305db747 [gaim-migrate @ 6490]
Mark Doliner <markdoliner@pidgin.im>
parents: 6039
diff changeset
1990 name, plug->info->version, error, description);
ab00305db747 [gaim-migrate @ 6490]
Mark Doliner <markdoliner@pidgin.im>
parents: 6039
diff changeset
1991 g_free(error);
ab00305db747 [gaim-migrate @ 6490]
Mark Doliner <markdoliner@pidgin.im>
parents: 6039
diff changeset
1992 } else {
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1993 g_snprintf(buf, sizeof(buf),
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1994 "<span size=\"larger\">%s %s</span>\n\n%s",
6040
ab00305db747 [gaim-migrate @ 6490]
Mark Doliner <markdoliner@pidgin.im>
parents: 6039
diff changeset
1995 name, plug->info->version, description);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1996 }
6040
ab00305db747 [gaim-migrate @ 6490]
Mark Doliner <markdoliner@pidgin.im>
parents: 6039
diff changeset
1997 g_free(name);
ab00305db747 [gaim-migrate @ 6490]
Mark Doliner <markdoliner@pidgin.im>
parents: 6039
diff changeset
1998 g_free(description);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1999
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2000 gtk_label_set_markup(GTK_LABEL(plugin_description), buf);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2001 gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2002 gaim_plugin_is_loaded(plug), -1);
6928
17e0c572bd97 [gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents: 6861
diff changeset
2003
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2004 gtk_label_set_markup(GTK_LABEL(plugin_description), buf);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2005 gtk_tree_path_free(path);
5981
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
2006
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5966
diff changeset
2007 gaim_gtk_plugins_save();
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2008 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2009
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2010 static void
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2011 update_plugin_list(void *data)
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2012 {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2013 GtkListStore *ls = GTK_LIST_STORE(data);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2014 GtkTreeIter iter;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2015 GList *probes;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2016 GaimPlugin *plug;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2017
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2018 gtk_list_store_clear(ls);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2019
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2020 for (probes = gaim_plugins_get_all();
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2021 probes != NULL;
6928
17e0c572bd97 [gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents: 6861
diff changeset
2022 probes = probes->next)
17e0c572bd97 [gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents: 6861
diff changeset
2023 {
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2024 plug = probes->data;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2025
6928
17e0c572bd97 [gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents: 6861
diff changeset
2026 if (plug->info->type != GAIM_PLUGIN_STANDARD ||
6930
67eb5dee2584 [gaim-migrate @ 7477]
Christian Hammond <chipx86@chipx86.com>
parents: 6928
diff changeset
2027 (plug->info->flags & GAIM_PLUGIN_FLAG_INVISIBLE))
6928
17e0c572bd97 [gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents: 6861
diff changeset
2028 {
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2029 continue;
6928
17e0c572bd97 [gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents: 6861
diff changeset
2030 }
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2031
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2032 gtk_list_store_append (ls, &iter);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2033 gtk_list_store_set(ls, &iter,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2034 0, gaim_plugin_is_loaded(plug),
6928
17e0c572bd97 [gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents: 6861
diff changeset
2035 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
2036 2, _(plug->info->summary),
8104
8426a9a604f1 [gaim-migrate @ 8804]
Gary Kramlich <grim@pidgin.im>
parents: 8075
diff changeset
2037 3, plug, -1);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2038 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2039 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2040
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2041 static GtkWidget *plugin_page ()
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2042 {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2043 GtkWidget *ret;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2044 GtkWidget *sw, *vp;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2045 GtkWidget *event_view;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2046 GtkListStore *ls;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2047 GtkCellRenderer *rend, *rendt;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2048 GtkTreeViewColumn *col;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2049 GtkTreeSelection *sel;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2050 GtkTreePath *path;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2051 GtkWidget *nb;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2052
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2053 ret = gtk_vbox_new(FALSE, 18);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2054 gtk_container_set_border_width (GTK_CONTAINER (ret), 12);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2055
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2056 sw = gtk_scrolled_window_new(NULL,NULL);
8104
8426a9a604f1 [gaim-migrate @ 8804]
Gary Kramlich <grim@pidgin.im>
parents: 8075
diff changeset
2057 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2058 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2059
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2060 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2061
8104
8426a9a604f1 [gaim-migrate @ 8804]
Gary Kramlich <grim@pidgin.im>
parents: 8075
diff changeset
2062 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
2063 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(ls),
e44763efd9eb [gaim-migrate @ 8610]
Mark Doliner <markdoliner@pidgin.im>
parents: 7932
diff changeset
2064 1, GTK_SORT_ASCENDING);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2065
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2066 update_plugin_list(ls);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2067
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2068 event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(ls));
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2069
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2070 rend = gtk_cell_renderer_toggle_new();
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2071 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view));
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2072
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2073 col = gtk_tree_view_column_new_with_attributes (_("Load"),
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2074 rend,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2075 "active", 0,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2076 NULL);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2077 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2078
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2079 rendt = gtk_cell_renderer_text_new();
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2080 col = gtk_tree_view_column_new_with_attributes (_("Name"),
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2081 rendt,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2082 "text", 1,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2083 NULL);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2084 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col);
8998
e18e340f1111 [gaim-migrate @ 9773]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8994
diff changeset
2085
8104
8426a9a604f1 [gaim-migrate @ 8804]
Gary Kramlich <grim@pidgin.im>
parents: 8075
diff changeset
2086 rendt = gtk_cell_renderer_text_new();
8426a9a604f1 [gaim-migrate @ 8804]
Gary Kramlich <grim@pidgin.im>
parents: 8075
diff changeset
2087 col = gtk_tree_view_column_new_with_attributes(_("Summary"),
8426a9a604f1 [gaim-migrate @ 8804]
Gary Kramlich <grim@pidgin.im>
parents: 8075
diff changeset
2088 rendt,
8426a9a604f1 [gaim-migrate @ 8804]
Gary Kramlich <grim@pidgin.im>
parents: 8075
diff changeset
2089 "text", 2,
8426a9a604f1 [gaim-migrate @ 8804]
Gary Kramlich <grim@pidgin.im>
parents: 8075
diff changeset
2090 NULL);
8426a9a604f1 [gaim-migrate @ 8804]
Gary Kramlich <grim@pidgin.im>
parents: 8075
diff changeset
2091 gtk_tree_view_append_column(GTK_TREE_VIEW(event_view), col);
8998
e18e340f1111 [gaim-migrate @ 9773]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8994
diff changeset
2092
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2093 g_object_unref(G_OBJECT(ls));
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2094 gtk_container_add(GTK_CONTAINER(sw), event_view);
8998
e18e340f1111 [gaim-migrate @ 9773]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8994
diff changeset
2095
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2096
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2097 nb = gtk_notebook_new();
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2098 gtk_notebook_set_tab_pos (GTK_NOTEBOOK(nb), GTK_POS_BOTTOM);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2099 gtk_notebook_popup_disable(GTK_NOTEBOOK(nb));
8998
e18e340f1111 [gaim-migrate @ 9773]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8994
diff changeset
2100
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2101 /* Description */
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2102 sw = gtk_scrolled_window_new(NULL, NULL);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2103 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2104 plugin_description = gtk_label_new(NULL);
8998
e18e340f1111 [gaim-migrate @ 9773]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8994
diff changeset
2105
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2106 vp = gtk_viewport_new(NULL, NULL);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2107 gtk_viewport_set_shadow_type(GTK_VIEWPORT(vp), GTK_SHADOW_NONE);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2108 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_NONE);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2109
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2110 gtk_container_add(GTK_CONTAINER(vp), plugin_description);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2111 gtk_container_add(GTK_CONTAINER(sw), vp);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2112
8998
e18e340f1111 [gaim-migrate @ 9773]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8994
diff changeset
2113 gtk_label_set_selectable(GTK_LABEL(plugin_description), TRUE);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2114 gtk_label_set_line_wrap(GTK_LABEL(plugin_description), TRUE);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2115 gtk_misc_set_alignment(GTK_MISC(plugin_description), 0, 0);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2116 gtk_misc_set_padding(GTK_MISC(plugin_description), 6, 6);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2117 gtk_notebook_append_page(GTK_NOTEBOOK(nb), sw, gtk_label_new(_("Description")));
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2118
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2119 /* Details */
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2120 sw = gtk_scrolled_window_new(NULL, NULL);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2121 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2122 plugin_details = gtk_label_new(NULL);
8998
e18e340f1111 [gaim-migrate @ 9773]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8994
diff changeset
2123
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2124 vp = gtk_viewport_new(NULL, NULL);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2125 gtk_viewport_set_shadow_type(GTK_VIEWPORT(vp), GTK_SHADOW_NONE);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2126 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_NONE);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2127
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2128 gtk_container_add(GTK_CONTAINER(vp), plugin_details);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2129 gtk_container_add(GTK_CONTAINER(sw), vp);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2130
8998
e18e340f1111 [gaim-migrate @ 9773]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8994
diff changeset
2131 gtk_label_set_selectable(GTK_LABEL(plugin_details), TRUE);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2132 gtk_label_set_line_wrap(GTK_LABEL(plugin_details), TRUE);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2133 gtk_misc_set_alignment(GTK_MISC(plugin_details), 0, 0);
8998
e18e340f1111 [gaim-migrate @ 9773]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8994
diff changeset
2134 gtk_misc_set_padding(GTK_MISC(plugin_details), 6, 6);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2135 gtk_notebook_append_page(GTK_NOTEBOOK(nb), sw, gtk_label_new(_("Details")));
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2136 gtk_box_pack_start(GTK_BOX(ret), nb, TRUE, TRUE, 0);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2137
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2138 g_signal_connect (G_OBJECT (sel), "changed",
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2139 G_CALLBACK (prefs_plugin_sel),
8998
e18e340f1111 [gaim-migrate @ 9773]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8994
diff changeset
2140 NULL);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2141 g_signal_connect (G_OBJECT(rend), "toggled",
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2142 G_CALLBACK(plugin_load), ls);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2143
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2144 path = gtk_tree_path_new_first();
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2145 gtk_tree_selection_select_path(sel, path);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2146 gtk_tree_path_free(path);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2147
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2148 gaim_plugins_register_probe_notify_cb(update_plugin_list, ls);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2149
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2150 gtk_widget_show_all(ret);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2151 return ret;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2152 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2153
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2154 GtkTreeIter *prefs_notebook_add_page(const char *text,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2155 GdkPixbuf *pixbuf,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2156 GtkWidget *page,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2157 GtkTreeIter *iter,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2158 GtkTreeIter *parent,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2159 int ind) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2160 GdkPixbuf *icon = NULL;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2161
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2162 if (pixbuf)
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2163 icon = gdk_pixbuf_scale_simple (pixbuf, 18, 18, GDK_INTERP_BILINEAR);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2164
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2165 if (pixbuf)
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2166 g_object_unref(pixbuf);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2167 if (icon)
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2168 g_object_unref(icon);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2169 gtk_notebook_append_page(GTK_NOTEBOOK(prefsnotebook), page, gtk_label_new(text));
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2170 return iter;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2171 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2172
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2173 void prefs_notebook_init() {
9267
fbed6e494b05 [gaim-migrate @ 10066]
Tim Ringenbach <marv@pidgin.im>
parents: 9251
diff changeset
2174 GtkTreeIter p, c, c2;
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2175 GList *l;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2176 GaimPlugin *plug;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2177 prefs_notebook_add_page(_("Interface"), NULL, interface_page(), &p, NULL, notebook_page++);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2178 prefs_notebook_add_page(_("Buddy List"), NULL, list_page(), &c, &p, notebook_page++);
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
2179 prefs_notebook_add_page(_("Conversations"), NULL, conv_page(), &c, &p, notebook_page++);
9267
fbed6e494b05 [gaim-migrate @ 10066]
Tim Ringenbach <marv@pidgin.im>
parents: 9251
diff changeset
2180 prefs_notebook_add_page(_("Message Text"), NULL, messages_page(), &c2, &c, notebook_page++);
fbed6e494b05 [gaim-migrate @ 10066]
Tim Ringenbach <marv@pidgin.im>
parents: 9251
diff changeset
2181 prefs_notebook_add_page(_("Shortcuts"), NULL, hotkeys_page(), &c2, &c, notebook_page++);
fbed6e494b05 [gaim-migrate @ 10066]
Tim Ringenbach <marv@pidgin.im>
parents: 9251
diff changeset
2182 prefs_notebook_add_page(_("Smiley Themes"), NULL, theme_page(), &c2, &c, notebook_page++);
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
2183 prefs_notebook_add_page(_("Sounds"), NULL, sound_page(), &c, &p, notebook_page++);
8238
f7d22f952df5 [gaim-migrate @ 8961]
Mark Doliner <markdoliner@pidgin.im>
parents: 8231
diff changeset
2184 prefs_notebook_add_page(_("Network"), NULL, network_page(), &p, NULL, notebook_page++);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2185 #ifndef _WIN32
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2186 /* We use the registered default browser in windows */
10060
4256ee599d8c [gaim-migrate @ 11030]
Tim Ringenbach <marv@pidgin.im>
parents: 9993
diff changeset
2187 /* if the user is running gnome 2.x, hide the browsers tab */
10061
2833056ea11c [gaim-migrate @ 11033]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10060
diff changeset
2188 if (gaim_running_gnome() == FALSE) {
10060
4256ee599d8c [gaim-migrate @ 11030]
Tim Ringenbach <marv@pidgin.im>
parents: 9993
diff changeset
2189 prefs_notebook_add_page(_("Browser"), NULL, browser_page(), &p, NULL, notebook_page++);
4256ee599d8c [gaim-migrate @ 11030]
Tim Ringenbach <marv@pidgin.im>
parents: 9993
diff changeset
2190 }
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2191 #endif
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2192 prefs_notebook_add_page(_("Logging"), NULL, logging_page(), &p, NULL, notebook_page++);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2193 prefs_notebook_add_page(_("Away / Idle"), NULL, away_page(), &p, NULL, notebook_page++);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2194
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2195 if (gaim_plugins_enabled()) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2196 prefs_notebook_add_page(_("Plugins"), NULL, plugin_page(), &plugin_iter, NULL, notebook_page++);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2197
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2198 for (l = gaim_plugins_get_loaded(); l != NULL; l = l->next) {
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
2199 plug = (GaimPlugin *)l->data;
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2200
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2201 if (GAIM_IS_GTK_PLUGIN(plug)) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2202 GtkWidget *config_frame;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2203 GaimGtkPluginUiInfo *ui_info;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2204
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2205 ui_info = GAIM_GTK_PLUGIN_UI_INFO(plug);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2206 config_frame = gaim_gtk_plugin_get_config_frame(plug);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2207
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2208 if (config_frame != NULL) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2209 ui_info->iter = g_new0(GtkTreeIter, 1);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2210 prefs_notebook_add_page(_(plug->info->name), NULL,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2211 config_frame, ui_info->iter,
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2212 &plugin_iter, notebook_page++);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2213 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2214 }
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
2215
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
2216 if(GAIM_PLUGIN_HAS_PREF_FRAME(plug)) {
8745
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
2217 GtkWidget *gtk_frame;
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
2218 GaimPluginUiInfo *prefs_info;
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
2219
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
2220 prefs_info = GAIM_PLUGIN_UI_INFO(plug);
8814
b665afb21b2c [gaim-migrate @ 9576]
Gary Kramlich <grim@pidgin.im>
parents: 8811
diff changeset
2221 prefs_info->frame = prefs_info->get_plugin_pref_frame(plug);
b665afb21b2c [gaim-migrate @ 9576]
Gary Kramlich <grim@pidgin.im>
parents: 8811
diff changeset
2222 gtk_frame = gaim_gtk_plugin_pref_create_frame(prefs_info->frame);
8745
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
2223
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
2224 if(GTK_IS_WIDGET(gtk_frame)) {
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
2225 prefs_info->iter = g_new0(GtkTreeIter, 1);
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
2226 prefs_notebook_add_page(_(plug->info->name), NULL,
8745
c3f2b6cd076b [gaim-migrate @ 9500]
Gary Kramlich <grim@pidgin.im>
parents: 8713
diff changeset
2227 gtk_frame, prefs_info->iter,
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
2228 (plug->info->type == GAIM_PLUGIN_PROTOCOL) ? NULL : &plugin_iter,
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
2229 notebook_page++);
8814
b665afb21b2c [gaim-migrate @ 9576]
Gary Kramlich <grim@pidgin.im>
parents: 8811
diff changeset
2230 } else if(prefs_info->frame) {
b665afb21b2c [gaim-migrate @ 9576]
Gary Kramlich <grim@pidgin.im>
parents: 8811
diff changeset
2231 /* in the event that there is a pref frame and we can
b665afb21b2c [gaim-migrate @ 9576]
Gary Kramlich <grim@pidgin.im>
parents: 8811
diff changeset
2232 * not make a widget out of it, we free the
b665afb21b2c [gaim-migrate @ 9576]
Gary Kramlich <grim@pidgin.im>
parents: 8811
diff changeset
2233 * pluginpref frame --Gary
b665afb21b2c [gaim-migrate @ 9576]
Gary Kramlich <grim@pidgin.im>
parents: 8811
diff changeset
2234 */
b665afb21b2c [gaim-migrate @ 9576]
Gary Kramlich <grim@pidgin.im>
parents: 8811
diff changeset
2235 gaim_plugin_pref_frame_destroy(prefs_info->frame);
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
2236 }
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
2237 }
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2238 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2239 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2240 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2241
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
2242 void gaim_gtk_prefs_show(void)
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2243 {
10078
97237f516d12 [gaim-migrate @ 11060]
Sean Egan <seanegan@pidgin.im>
parents: 10075
diff changeset
2244 GtkWidget *vbox;
8292
9b25d6300cda [gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents: 8283
diff changeset
2245 GtkWidget *bbox;
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2246 GtkWidget *notebook;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2247 GtkWidget *button;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2248
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2249 if (prefs) {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2250 gtk_window_present(GTK_WINDOW(prefs));
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2251 return;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2252 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2253
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2254 /* copy the preferences to tmp values...
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2255 * I liked "take affect immediately" Oh well :-( */
6016
31360de33beb [gaim-migrate @ 6466]
Mark Doliner <markdoliner@pidgin.im>
parents: 6007
diff changeset
2256 /* (that should have been "effect," right?) */
31360de33beb [gaim-migrate @ 6466]
Mark Doliner <markdoliner@pidgin.im>
parents: 6007
diff changeset
2257
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2258 /* Back to instant-apply! I win! BU-HAHAHA! */
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2259
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2260 /* Create the window */
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2261 prefs = gtk_window_new(GTK_WINDOW_TOPLEVEL);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2262 gtk_window_set_role(GTK_WINDOW(prefs), "preferences");
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2263 gtk_window_set_title(GTK_WINDOW(prefs), _("Preferences"));
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2264 gtk_window_set_resizable (GTK_WINDOW(prefs), FALSE);
8292
9b25d6300cda [gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents: 8283
diff changeset
2265 gtk_container_set_border_width(GTK_CONTAINER(prefs), 12);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2266 g_signal_connect(G_OBJECT(prefs), "destroy",
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2267 G_CALLBACK(delete_prefs), NULL);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2268
8292
9b25d6300cda [gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents: 8283
diff changeset
2269 vbox = gtk_vbox_new(FALSE, 12);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2270 gtk_container_add(GTK_CONTAINER(prefs), vbox);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2271 gtk_widget_show(vbox);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2272
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2273 /* The notebook */
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2274 prefsnotebook = notebook = gtk_notebook_new ();
10078
97237f516d12 [gaim-migrate @ 11060]
Sean Egan <seanegan@pidgin.im>
parents: 10075
diff changeset
2275 gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook), GTK_POS_LEFT);
97237f516d12 [gaim-migrate @ 11060]
Sean Egan <seanegan@pidgin.im>
parents: 10075
diff changeset
2276 gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), TRUE);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2277 gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE);
10078
97237f516d12 [gaim-migrate @ 11060]
Sean Egan <seanegan@pidgin.im>
parents: 10075
diff changeset
2278 gtk_box_pack_start (GTK_BOX (vbox), notebook, FALSE, FALSE, 0);
97237f516d12 [gaim-migrate @ 11060]
Sean Egan <seanegan@pidgin.im>
parents: 10075
diff changeset
2279
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2280
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents: 8705
diff changeset
2281 /* The buttons to press! */
8292
9b25d6300cda [gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents: 8283
diff changeset
2282 bbox = gtk_hbutton_box_new();
9b25d6300cda [gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents: 8283
diff changeset
2283 gtk_box_set_spacing(GTK_BOX(bbox), 6);
9b25d6300cda [gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents: 8283
diff changeset
2284 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
2285 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
9b25d6300cda [gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents: 8283
diff changeset
2286 gtk_widget_show (bbox);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2287
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2288 button = gtk_button_new_from_stock (GTK_STOCK_CLOSE);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2289 g_signal_connect_swapped(G_OBJECT(button), "clicked",
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2290 G_CALLBACK(gtk_widget_destroy), prefs);
8292
9b25d6300cda [gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents: 8283
diff changeset
2291 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2292 gtk_widget_show(button);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2293
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2294 prefs_notebook_init();
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2295
5568
3c7cc231c8c4 [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
2296 /* Show everything. */
10078
97237f516d12 [gaim-migrate @ 11060]
Sean Egan <seanegan@pidgin.im>
parents: 10075
diff changeset
2297 gtk_widget_show_all(prefs);
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2298 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2299
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
2300 static void
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
2301 set_bool_pref(GtkWidget *w, const char *key)
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
2302 {
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
2303 gaim_prefs_set_bool(key,
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
2304 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)));
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
2305 }
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
2306
7976
fa3b5ed4ac97 [gaim-migrate @ 8653]
Daniel Atallah <datallah@pidgin.im>
parents: 7940
diff changeset
2307 GtkWidget *
7987
3678cf633995 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
2308 gaim_gtk_prefs_checkbox(const char *text, const char *key, GtkWidget *page)
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2309 {
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2310 GtkWidget *button;
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
2311
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2312 button = gtk_check_button_new_with_mnemonic(text);
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
2313 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
2314 gaim_prefs_get_bool(key));
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
2315
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2316 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
2317
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
2318 g_signal_connect(G_OBJECT(button), "clicked",
5551
f92bd449fd90 [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
2319 G_CALLBACK(set_bool_pref), (char *)key);
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
2320
5440
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2321 gtk_widget_show(button);
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2322
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2323 return button;
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2324 }
3127b1a3210f [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2325
5770
e18c7f1947f0 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
2326 static void
e18c7f1947f0 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
2327 smiley_theme_pref_cb(const char *name, GaimPrefType type, gpointer value,
e18c7f1947f0 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
2328 gpointer data)
e18c7f1947f0 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
2329 {
5841
cf5e01e43741 [gaim-migrate @ 6272]
Nathan Walp <nwalp@pidgin.im>
parents: 5825
diff changeset
2330 if (!strcmp(name, "/gaim/gtk/smileys/theme"))
5771
e902bc50a793 [gaim-migrate @ 6196]
Christian Hammond <chipx86@chipx86.com>
parents: 5770
diff changeset
2331 load_smiley_theme((const char *)value, TRUE);
5770
e18c7f1947f0 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
2332 }
e18c7f1947f0 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
2333
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
2334 void
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
2335 gaim_gtk_prefs_init(void)
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
2336 {
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
2337 gaim_prefs_add_none("/gaim");
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
2338 gaim_prefs_add_none("/gaim/gtk");
5550
1938d1e59cf8 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
2339 gaim_prefs_add_none("/plugins/gtk");
1938d1e59cf8 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
2340
1938d1e59cf8 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
2341 /* XXX Move this! HACK! :( Aww... */
1938d1e59cf8 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
2342 gaim_prefs_add_none("/plugins/gtk/docklet");
5554
a197dfd0d8b3 [gaim-migrate @ 5955]
Christian Hammond <chipx86@chipx86.com>
parents: 5551
diff changeset
2343 gaim_prefs_add_bool("/plugins/gtk/docklet/queue_messages", FALSE);
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
2344
5573
633880e3f137 [gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents: 5568
diff changeset
2345 /* Away Queueing */
633880e3f137 [gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents: 5568
diff changeset
2346 gaim_prefs_add_none("/gaim/gtk/away");
633880e3f137 [gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents: 5568
diff changeset
2347 gaim_prefs_add_bool("/gaim/gtk/away/queue_messages", FALSE);
633880e3f137 [gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents: 5568
diff changeset
2348
8283
407f6ed6715d [gaim-migrate @ 9007]
Daniel Atallah <datallah@pidgin.im>
parents: 8274
diff changeset
2349 #ifndef _WIN32
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
2350 /* Browsers */
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
2351 gaim_prefs_add_none("/gaim/gtk/browsers");
8272
c1e38e0ec1d5 [gaim-migrate @ 8996]
Nathan Fredrickson <nathan@silverorange.com>
parents: 8267
diff changeset
2352 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
2353 gaim_prefs_add_string("/gaim/gtk/browsers/command", "");
5546
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
2354 gaim_prefs_add_string("/gaim/gtk/browsers/browser", "mozilla");
8283
407f6ed6715d [gaim-migrate @ 9007]
Daniel Atallah <datallah@pidgin.im>
parents: 8274
diff changeset
2355 #endif
5545
a8b1a1262402 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
2356
5550
1938d1e59cf8 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
2357 /* Idle */
1938d1e59cf8 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
2358 gaim_prefs_add_none("/gaim/gtk/idle");
1938d1e59cf8 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
2359 gaim_prefs_add_string("/gaim/gtk/idle/reporting_method", "system");
1938d1e59cf8 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
2360
5949
bb7cbf02dda9 [gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
2361 /* Plugins */
5982
f5a47c78c7bc [gaim-migrate @ 6430]
Christian Hammond <chipx86@chipx86.com>
parents: 5981
diff changeset
2362 gaim_prefs_add_none("/gaim/gtk/plugins");
5949
bb7cbf02dda9 [gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
2363 gaim_prefs_add_string_list("/gaim/gtk/plugins/loaded", NULL);
bb7cbf02dda9 [gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
2364
5539
a13dd0ba205a [gaim-migrate @ 5939]
Christian Hammond <chipx86@chipx86.com>
parents: 5535
diff changeset
2365 /* Smiley Themes */
5546
bad75481a8c6 [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
2366 gaim_prefs_add_none("/gaim/gtk/smileys");
9707
2a5f0eceb405 [gaim-migrate @ 10568]
Mark Doliner <markdoliner@pidgin.im>
parents: 9606
diff changeset
2367 gaim_prefs_add_string("/gaim/gtk/smileys/theme", "default");
5770
e18c7f1947f0 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
2368
e18c7f1947f0 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
2369 /* Smiley Callbacks */
10087
e5b80a38939d [gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10079
diff changeset
2370 gaim_prefs_connect_callback(prefs, "/gaim/gtk/smileys/theme",
5770
e18c7f1947f0 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
2371 smiley_theme_pref_cb, NULL);
5530
ba1ad464b56f [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
2372 }
8905
cedfa637389f [gaim-migrate @ 9674]
Mark Doliner <markdoliner@pidgin.im>
parents: 8900
diff changeset
2373
cedfa637389f [gaim-migrate @ 9674]
Mark Doliner <markdoliner@pidgin.im>
parents: 8900
diff changeset
2374 void gaim_gtk_prefs_update_old() {
cedfa637389f [gaim-migrate @ 9674]
Mark Doliner <markdoliner@pidgin.im>
parents: 8900
diff changeset
2375 /* Rename some old prefs */
cedfa637389f [gaim-migrate @ 9674]
Mark Doliner <markdoliner@pidgin.im>
parents: 8900
diff changeset
2376 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
2377 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
2378 gaim_prefs_rename("/core/conversations/placement",
8998
e18e340f1111 [gaim-migrate @ 9773]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8994
diff changeset
2379 "/gaim/gtk/conversations/placement");
8905
cedfa637389f [gaim-migrate @ 9674]
Mark Doliner <markdoliner@pidgin.im>
parents: 8900
diff changeset
2380
9025
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
2381 gaim_prefs_rename("/gaim/gtk/conversations/use_custom_font",
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
2382 "/gaim/gtk/conversations/send_formatting");
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
2383
9150
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
2384 gaim_prefs_rename("/gaim/gtk/conversations/im/button_type",
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
2385 "/gaim/gtk/conversations/button_type");
9c3bbd7d704c [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
2386
8905
cedfa637389f [gaim-migrate @ 9674]
Mark Doliner <markdoliner@pidgin.im>
parents: 8900
diff changeset
2387 /* Remove some no-longer-used prefs */
10133
f9d70220a53e [gaim-migrate @ 11197]
Mark Doliner <markdoliner@pidgin.im>
parents: 10129
diff changeset
2388 gaim_prefs_remove("/gaim/gtk/blist/button_style");
10168
77a77baf474e [gaim-migrate @ 11257]
Mark Doliner <markdoliner@pidgin.im>
parents: 10167
diff changeset
2389 gaim_prefs_remove("/gaim/gtk/blist/grey_idle_buddies");
10133
f9d70220a53e [gaim-migrate @ 11197]
Mark Doliner <markdoliner@pidgin.im>
parents: 10129
diff changeset
2390 gaim_prefs_remove("/gaim/gtk/blist/raise_on_events");
8945
737ea1155ec1 [gaim-migrate @ 9717]
Mark Doliner <markdoliner@pidgin.im>
parents: 8944
diff changeset
2391 gaim_prefs_remove("/gaim/gtk/blist/show_group_count");
10164
99439320394d [gaim-migrate @ 11250]
Mark Doliner <markdoliner@pidgin.im>
parents: 10163
diff changeset
2392 gaim_prefs_remove("/gaim/gtk/conversations/html_shortcuts");
8946
9dd17283a2ee [gaim-migrate @ 9718]
Mark Doliner <markdoliner@pidgin.im>
parents: 8945
diff changeset
2393 gaim_prefs_remove("/gaim/gtk/conversations/icons_on_tabs");
8905
cedfa637389f [gaim-migrate @ 9674]
Mark Doliner <markdoliner@pidgin.im>
parents: 8900
diff changeset
2394 gaim_prefs_remove("/gaim/gtk/conversations/show_urls_as_links");
cedfa637389f [gaim-migrate @ 9674]
Mark Doliner <markdoliner@pidgin.im>
parents: 8900
diff changeset
2395 gaim_prefs_remove("/gaim/gtk/conversations/show_smileys");
10164
99439320394d [gaim-migrate @ 11250]
Mark Doliner <markdoliner@pidgin.im>
parents: 10163
diff changeset
2396 gaim_prefs_remove("/gaim/gtk/conversations/smiley_shortcuts");
8941
732cc7b7347f [gaim-migrate @ 9711]
Mark Doliner <markdoliner@pidgin.im>
parents: 8930
diff changeset
2397 gaim_prefs_remove("/gaim/gtk/conversations/chat/tab_completion");
732cc7b7347f [gaim-migrate @ 9711]
Mark Doliner <markdoliner@pidgin.im>
parents: 8930
diff changeset
2398 gaim_prefs_remove("/gaim/gtk/conversations/chat/old_tab_complete");
8947
6ae7b4a840f1 [gaim-migrate @ 9719]
Mark Doliner <markdoliner@pidgin.im>
parents: 8946
diff changeset
2399 gaim_prefs_remove("/gaim/gtk/sound/signon");
6ae7b4a840f1 [gaim-migrate @ 9719]
Mark Doliner <markdoliner@pidgin.im>
parents: 8946
diff changeset
2400 gaim_prefs_remove("/gaim/gtk/sound/silent_signon");
8998
e18e340f1111 [gaim-migrate @ 9773]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 8994
diff changeset
2401 gaim_prefs_remove("/gaim/gtk/logging/individual_logs");
9025
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
2402 gaim_prefs_remove("/gaim/gtk/conversations/use_custom_bgcolor");
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
2403 gaim_prefs_remove("/gaim/gtk/conversations/use_custom_fgcolor");
e49a72896270 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
2404 gaim_prefs_remove("/gaim/gtk/conversations/use_custom_size");
9301
c05274a72788 [gaim-migrate @ 10105]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 9285
diff changeset
2405 gaim_prefs_remove("/gaim/gtk/conversations/im/hide_on_send");
8905
cedfa637389f [gaim-migrate @ 9674]
Mark Doliner <markdoliner@pidgin.im>
parents: 8900
diff changeset
2406 }

mercurial