annotate src/gtkprefs.c @ 13069:42c62476b61b

[gaim-migrate @ 15431] SF User pomp pointed out that if you open a conversation window with an AIM buddy who is offline and hit Ctrl-O, you'll end up with an empty log. An error message shows in the conversation window, but such messages are not logged. This change logs error messages as well as logging any messages with a type we don't recognize (and files a debug message, since that shouldn't happen). committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Mon, 30 Jan 2006 04:51:12 +0000
parents 1becdaf72e6d
children a0a4b44239e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6928
6ed0a1c045b4 [gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents: 6861
diff changeset
1 /**
5530
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
2 * @file gtkprefs.c GTK+ Preferences
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
3 * @ingroup gtkui
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
4 *
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
5 * gaim
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
6 *
8046
fa6395637e2c [gaim-migrate @ 8730]
Sean Egan <seanegan@gmail.com>
parents: 8015
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
fa6395637e2c [gaim-migrate @ 8730]
Sean Egan <seanegan@gmail.com>
parents: 8015
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
fa6395637e2c [gaim-migrate @ 8730]
Sean Egan <seanegan@gmail.com>
parents: 8015
diff changeset
9 * source distribution.
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
10 *
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
7e8524b5ff98 [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
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
14 * (at your option) any later version.
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
15 *
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
19 * GNU General Public License for more details.
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
20 *
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
24 *
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
25 */
9791
4a15962c344a [gaim-migrate @ 10659]
Mark Doliner <mark@kingant.net>
parents: 9769
diff changeset
26 #include "internal.h"
4a15962c344a [gaim-migrate @ 10659]
Mark Doliner <mark@kingant.net>
parents: 9769
diff changeset
27 #include "gtkgaim.h"
5872
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
28
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
29 #include "debug.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
30 #include "notify.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
31 #include "prefs.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
32 #include "proxy.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
33 #include "prpl.h"
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
34 #include "request.h"
12195
d040123d2b69 [gaim-migrate @ 14497]
Sean Egan <seanegan@gmail.com>
parents: 12188
diff changeset
35 #include "savedstatuses.h"
5872
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
36 #include "sound.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
37 #include "util.h"
8231
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
38 #include "network.h"
5872
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
39
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
40 #include "gtkblist.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
41 #include "gtkconv.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
42 #include "gtkdebug.h"
9709
4d05b6e9e9cd [gaim-migrate @ 10570]
Mark Doliner <mark@kingant.net>
parents: 9707
diff changeset
43 #include "gtkdialogs.h"
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
44 #include "gtkimhtml.h"
8833
61fdef863ffa [gaim-migrate @ 9597]
Sean Egan <seanegan@gmail.com>
parents: 8814
diff changeset
45 #include "gtkimhtmltoolbar.h"
5530
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
46 #include "gtkprefs.h"
12195
d040123d2b69 [gaim-migrate @ 14497]
Sean Egan <seanegan@gmail.com>
parents: 12188
diff changeset
47 #include "gtksavedstatuses.h"
5684
b61520e71679 [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5681
diff changeset
48 #include "gtksound.h"
11525
b47708f46a38 [gaim-migrate @ 13773]
Tim Ringenbach <marv@pidgin.im>
parents: 11442
diff changeset
49 #include "gtkthemes.h"
5872
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
50 #include "gtkutils.h"
10297
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents: 10272
diff changeset
51 #include "gtkstock.h"
5872
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5870
diff changeset
52
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
53 #define PROXYHOST 0
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
54 #define PROXYPORT 1
6005
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
55 #define PROXYUSER 2
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
56 #define PROXYPASS 3
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
57
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
58 static int sound_row_sel = 0;
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
59 static GtkWidget *prefsnotebook;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
60
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
61 static GtkWidget *sound_entry = NULL;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
62 static GtkListStore *smiley_theme_store = NULL;
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
63 static GtkWidget *prefs_proxy_frame = NULL;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
64
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
65 static GtkWidget *prefs = NULL;
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
66 static GtkWidget *debugbutton = NULL;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
67 static int notebook_page = 0;
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
68 static GtkTreeRowReference *previous_smiley_row = NULL;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
69
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
70 /*
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
71 * PROTOTYPES
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
72 */
10759
56915e1b3ba3 [gaim-migrate @ 12362]
Mark Doliner <mark@kingant.net>
parents: 10701
diff changeset
73 static int prefs_notebook_add_page(const char*, GdkPixbuf*,
56915e1b3ba3 [gaim-migrate @ 12362]
Mark Doliner <mark@kingant.net>
parents: 10701
diff changeset
74 GtkWidget*, GtkTreeIter*,
56915e1b3ba3 [gaim-migrate @ 12362]
Mark Doliner <mark@kingant.net>
parents: 10701
diff changeset
75 GtkTreeIter*, int);
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
76 static void delete_prefs(GtkWidget *, void *);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
77
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
78 static void
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
79 update_spin_value(GtkWidget *w, GtkWidget *spin)
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
80 {
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
81 const char *key = g_object_get_data(G_OBJECT(spin), "val");
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
82 int value;
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
83
7a64114641c3 [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));
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
85
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
86 gaim_prefs_set_int(key, value);
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
87 }
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
88
7976
8e5a21b1efa6 [gaim-migrate @ 8653]
Nathan Walp <nwalp@pidgin.im>
parents: 7940
diff changeset
89 GtkWidget *
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
90 gaim_gtk_prefs_labeled_spin_button(GtkWidget *box, const gchar *title,
10367
5fe89d2df440 [gaim-migrate @ 11586]
Luke Schierer <lschiere@pidgin.im>
parents: 10364
diff changeset
91 const char *key, int min, int max, GtkSizeGroup *sg)
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
92 {
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
93 GtkWidget *hbox;
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
94 GtkWidget *label;
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
95 GtkWidget *spin;
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
96 GtkObject *adjust;
5550
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
97 int val;
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
98
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
99 val = gaim_prefs_get_int(key);
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
100
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
101 hbox = gtk_hbox_new(FALSE, 5);
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
102 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5);
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
103 gtk_widget_show(hbox);
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
104
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
105 label = gtk_label_new_with_mnemonic(title);
8713
7024b595b6ae [gaim-migrate @ 9467]
Luke Schierer <lschiere@pidgin.im>
parents: 8705
diff changeset
106 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
107 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
108 gtk_widget_show(label);
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
109
5550
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
110 adjust = gtk_adjustment_new(val, min, max, 1, 1, 1);
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
111 spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0);
10367
5fe89d2df440 [gaim-migrate @ 11586]
Luke Schierer <lschiere@pidgin.im>
parents: 10364
diff changeset
112 g_object_set_data(G_OBJECT(spin), "val", (char *)key);
8467
b7f13b782f8b [gaim-migrate @ 9197]
Mark Doliner <mark@kingant.net>
parents: 8458
diff changeset
113 if (max < 10000)
b7f13b782f8b [gaim-migrate @ 9197]
Mark Doliner <mark@kingant.net>
parents: 8458
diff changeset
114 gtk_widget_set_size_request(spin, 50, -1);
b7f13b782f8b [gaim-migrate @ 9197]
Mark Doliner <mark@kingant.net>
parents: 8458
diff changeset
115 else
b7f13b782f8b [gaim-migrate @ 9197]
Mark Doliner <mark@kingant.net>
parents: 8458
diff changeset
116 gtk_widget_set_size_request(spin, 60, -1);
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
117 gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0);
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
118 g_signal_connect(G_OBJECT(adjust), "value-changed",
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
119 G_CALLBACK(update_spin_value), GTK_WIDGET(spin));
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
120 gtk_widget_show(spin);
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
121
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
122 gtk_label_set_mnemonic_widget(GTK_LABEL(label), spin);
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
123
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
124 if (sg) {
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
125 gtk_size_group_add_widget(sg, label);
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
126 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
127 }
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
128
8137
4971193f761d [gaim-migrate @ 8842]
Mark Doliner <mark@kingant.net>
parents: 8104
diff changeset
129 gaim_set_accessible_label (spin, label);
10759
56915e1b3ba3 [gaim-migrate @ 12362]
Mark Doliner <mark@kingant.net>
parents: 10701
diff changeset
130
8238
32625c0dbba6 [gaim-migrate @ 8961]
Mark Doliner <mark@kingant.net>
parents: 8231
diff changeset
131 return hbox;
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
132 }
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
133
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
134 static void
9422
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
135 entry_set(GtkEntry *entry, gpointer data) {
10367
5fe89d2df440 [gaim-migrate @ 11586]
Luke Schierer <lschiere@pidgin.im>
parents: 10364
diff changeset
136 const char *key = (const char*)data;
9422
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
137
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
138 gaim_prefs_set_string(key, gtk_entry_get_text(entry));
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
139 }
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
140
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
141 GtkWidget *
10367
5fe89d2df440 [gaim-migrate @ 11586]
Luke Schierer <lschiere@pidgin.im>
parents: 10364
diff changeset
142 gaim_gtk_prefs_labeled_entry(GtkWidget *page, const gchar *title,
5fe89d2df440 [gaim-migrate @ 11586]
Luke Schierer <lschiere@pidgin.im>
parents: 10364
diff changeset
143 const char *key, GtkSizeGroup *sg)
9422
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
144 {
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
145 GtkWidget *hbox, *label, *entry;
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
146 const gchar *value;
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
147
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
148 value = gaim_prefs_get_string(key);
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
149
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
150 hbox = gtk_hbox_new(FALSE, 5);
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
151 gtk_box_pack_start(GTK_BOX(page), hbox, FALSE, FALSE, 5);
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
152 gtk_widget_show(hbox);
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
153
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
154 label = gtk_label_new_with_mnemonic(title);
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
155 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
156 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
157 gtk_widget_show(label);
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
158
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
159 entry = gtk_entry_new();
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
160 gtk_entry_set_text(GTK_ENTRY(entry), value);
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
161 gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 0);
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
162 g_signal_connect(G_OBJECT(entry), "changed",
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
163 G_CALLBACK(entry_set), (char*)key);
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
164 gtk_widget_show(entry);
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
165
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
166 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
167
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
168 if(sg) {
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
169 gtk_size_group_add_widget(sg, label);
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
170 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
171 }
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
172
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
173 gaim_set_accessible_label(entry, label);
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
174
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
175 return hbox;
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
176 }
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
177
d4e3356e7bbc [gaim-migrate @ 10240]
Tim Ringenbach <marv@pidgin.im>
parents: 9405
diff changeset
178 static void
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
179 dropdown_set(GObject *w, const char *key)
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
180 {
5551
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
181 const char *str_value;
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
182 int int_value;
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
183 GaimPrefType type;
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
184
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
185 type = GPOINTER_TO_INT(g_object_get_data(w, "type"));
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
186
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
187 if (type == GAIM_PREF_INT) {
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
188 int_value = GPOINTER_TO_INT(g_object_get_data(w, "value"));
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
189
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
190 gaim_prefs_set_int(key, int_value);
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
191 }
5551
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
192 else if (type == GAIM_PREF_STRING) {
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
193 str_value = (const char *)g_object_get_data(w, "value");
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
194
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
195 gaim_prefs_set_string(key, str_value);
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
196 }
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
197 else if (type == GAIM_PREF_BOOLEAN) {
9151
e672ee8a12ec [gaim-migrate @ 9935]
Nathan Walp <nwalp@pidgin.im>
parents: 9150
diff changeset
198 gaim_prefs_set_bool(key,
e672ee8a12ec [gaim-migrate @ 9935]
Nathan Walp <nwalp@pidgin.im>
parents: 9150
diff changeset
199 GPOINTER_TO_INT(g_object_get_data(w, "value")));
5551
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
200 }
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
201 }
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
202
7976
8e5a21b1efa6 [gaim-migrate @ 8653]
Nathan Walp <nwalp@pidgin.im>
parents: 7940
diff changeset
203 GtkWidget *
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
204 gaim_gtk_prefs_dropdown_from_list(GtkWidget *box, const gchar *title,
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
205 GaimPrefType type, const char *key, GList *menuitems)
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
206 {
5546
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
207 GtkWidget *dropdown, *opt, *menu;
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
208 GtkWidget *label = NULL;
5546
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
209 GtkWidget *hbox;
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
210 gchar *text;
5551
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
211 const char *stored_str = NULL;
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
212 int stored_int = 0;
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
213 int int_value = 0;
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
214 const char *str_value = NULL;
5546
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
215 int o = 0;
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
216
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
217 g_return_val_if_fail(menuitems != NULL, NULL);
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
218
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
219 if (title != NULL) {
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
220 hbox = gtk_hbox_new(FALSE, 5);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
221 /*gtk_container_add (GTK_CONTAINER (box), hbox);*/
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
222 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
223 gtk_widget_show(hbox);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
224
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
225 label = gtk_label_new_with_mnemonic(title);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
226 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
227 gtk_widget_show(label);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
228 } else {
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
229 hbox = box;
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
230 }
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
231
8577
599d6ac9bbfe [gaim-migrate @ 9326]
Nathan Walp <nwalp@pidgin.im>
parents: 8573
diff changeset
232 #if 0 /* GTK_CHECK_VERSION(2,4,0) */
599d6ac9bbfe [gaim-migrate @ 9326]
Nathan Walp <nwalp@pidgin.im>
parents: 8573
diff changeset
233 if(type == GAIM_PREF_INT)
599d6ac9bbfe [gaim-migrate @ 9326]
Nathan Walp <nwalp@pidgin.im>
parents: 8573
diff changeset
234 model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT);
599d6ac9bbfe [gaim-migrate @ 9326]
Nathan Walp <nwalp@pidgin.im>
parents: 8573
diff changeset
235 else if(type == GAIM_PREF_STRING)
599d6ac9bbfe [gaim-migrate @ 9326]
Nathan Walp <nwalp@pidgin.im>
parents: 8573
diff changeset
236 model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING);
599d6ac9bbfe [gaim-migrate @ 9326]
Nathan Walp <nwalp@pidgin.im>
parents: 8573
diff changeset
237 dropdown = gtk_combo_box_new_with_model(model);
599d6ac9bbfe [gaim-migrate @ 9326]
Nathan Walp <nwalp@pidgin.im>
parents: 8573
diff changeset
238 #else
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
239 dropdown = gtk_option_menu_new();
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
240 menu = gtk_menu_new();
8577
599d6ac9bbfe [gaim-migrate @ 9326]
Nathan Walp <nwalp@pidgin.im>
parents: 8573
diff changeset
241 #endif
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
242
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
243 if (label != NULL) {
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
244 gtk_label_set_mnemonic_widget(GTK_LABEL(label), dropdown);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
245 gaim_set_accessible_label (dropdown, label);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
246 }
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
247
5546
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
248 if (type == GAIM_PREF_INT)
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
249 stored_int = gaim_prefs_get_int(key);
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
250 else if (type == GAIM_PREF_STRING)
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
251 stored_str = gaim_prefs_get_string(key);
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
252
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
253 while (menuitems != NULL && (text = (char *) menuitems->data) != NULL) {
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
254 menuitems = g_list_next(menuitems);
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
255 g_return_val_if_fail(menuitems != NULL, NULL);
5546
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
256
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
257 opt = gtk_menu_item_new_with_label(text);
5551
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
258
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
259 g_object_set_data(G_OBJECT(opt), "type", GINT_TO_POINTER(type));
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
260
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
261 if (type == GAIM_PREF_INT) {
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
262 int_value = GPOINTER_TO_INT(menuitems->data);
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
263 g_object_set_data(G_OBJECT(opt), "value",
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
264 GINT_TO_POINTER(int_value));
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
265 }
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
266 else if (type == GAIM_PREF_STRING) {
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
267 str_value = (const char *)menuitems->data;
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
268
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
269 g_object_set_data(G_OBJECT(opt), "value", (char *)str_value);
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
270 }
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
271 else if (type == GAIM_PREF_BOOLEAN) {
9151
e672ee8a12ec [gaim-migrate @ 9935]
Nathan Walp <nwalp@pidgin.im>
parents: 9150
diff changeset
272 g_object_set_data(G_OBJECT(opt), "value",
e672ee8a12ec [gaim-migrate @ 9935]
Nathan Walp <nwalp@pidgin.im>
parents: 9150
diff changeset
273 menuitems->data);
5551
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
274 }
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
275
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
276 g_signal_connect(G_OBJECT(opt), "activate",
5551
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
277 G_CALLBACK(dropdown_set), (char *)key);
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
278
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
279 gtk_widget_show(opt);
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
280 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
281
5551
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
282 if ((type == GAIM_PREF_INT && stored_int == int_value) ||
5753
96214f5de47c [gaim-migrate @ 6178]
Christian Hammond <chipx86@chipx86.com>
parents: 5716
diff changeset
283 (type == GAIM_PREF_STRING && stored_str != NULL &&
96214f5de47c [gaim-migrate @ 6178]
Christian Hammond <chipx86@chipx86.com>
parents: 5716
diff changeset
284 !strcmp(stored_str, str_value)) ||
9151
e672ee8a12ec [gaim-migrate @ 9935]
Nathan Walp <nwalp@pidgin.im>
parents: 9150
diff changeset
285 (type == GAIM_PREF_BOOLEAN &&
e672ee8a12ec [gaim-migrate @ 9935]
Nathan Walp <nwalp@pidgin.im>
parents: 9150
diff changeset
286 (gaim_prefs_get_bool(key) == GPOINTER_TO_INT(menuitems->data)))) {
5546
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
287
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
288 gtk_menu_set_active(GTK_MENU(menu), o);
5546
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
289 }
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
290
5568
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
291 menuitems = g_list_next(menuitems);
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
292
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
293 o++;
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
294 }
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
295
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
296 gtk_option_menu_set_menu(GTK_OPTION_MENU(dropdown), menu);
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
297 gtk_box_pack_start(GTK_BOX(hbox), dropdown, FALSE, FALSE, 0);
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
298 gtk_widget_show(dropdown);
5551
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
299
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
300 return label;
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
301 }
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
302
7976
8e5a21b1efa6 [gaim-migrate @ 8653]
Nathan Walp <nwalp@pidgin.im>
parents: 7940
diff changeset
303 GtkWidget *
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
304 gaim_gtk_prefs_dropdown(GtkWidget *box, const gchar *title, GaimPrefType type,
5550
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
305 const char *key, ...)
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
306 {
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
307 va_list ap;
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
308 GList *menuitems = NULL;
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
309 GtkWidget *dropdown = NULL;
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
310 char *name;
5546
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
311 int int_value;
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
312 const char *str_value;
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
313
9151
e672ee8a12ec [gaim-migrate @ 9935]
Nathan Walp <nwalp@pidgin.im>
parents: 9150
diff changeset
314 g_return_val_if_fail(type == GAIM_PREF_BOOLEAN || type == GAIM_PREF_INT ||
e672ee8a12ec [gaim-migrate @ 9935]
Nathan Walp <nwalp@pidgin.im>
parents: 9150
diff changeset
315 type == GAIM_PREF_STRING, NULL);
e672ee8a12ec [gaim-migrate @ 9935]
Nathan Walp <nwalp@pidgin.im>
parents: 9150
diff changeset
316
5551
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
317 va_start(ap, key);
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
318 while ((name = va_arg(ap, char *)) != NULL) {
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
319
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
320 menuitems = g_list_prepend(menuitems, name);
5546
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
321
9151
e672ee8a12ec [gaim-migrate @ 9935]
Nathan Walp <nwalp@pidgin.im>
parents: 9150
diff changeset
322 if (type == GAIM_PREF_INT || type == GAIM_PREF_BOOLEAN) {
5546
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
323 int_value = va_arg(ap, int);
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
324 menuitems = g_list_prepend(menuitems, GINT_TO_POINTER(int_value));
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
325 }
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
326 else {
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
327 str_value = va_arg(ap, const char *);
5551
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
328 menuitems = g_list_prepend(menuitems, (char *)str_value);
5546
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
329 }
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
330 }
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
331 va_end(ap);
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
332
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
333 g_return_val_if_fail(menuitems != NULL, NULL);
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
334
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
335 menuitems = g_list_reverse(menuitems);
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
336
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
337 dropdown = gaim_gtk_prefs_dropdown_from_list(box, title, type, key,
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
338 menuitems);
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
339
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
340 g_list_free(menuitems);
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
341
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
342 return dropdown;
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
343 }
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
344
5551
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
345 static void
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
346 delete_prefs(GtkWidget *asdf, void *gdsa)
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
347 {
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
348 /* Close any "select sound" request dialogs */
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
349 gaim_request_close_with_handle(prefs);
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
350
10087
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
351 /* Unregister callbacks. */
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
352 gaim_prefs_disconnect_by_handle(prefs);
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
353
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
354 prefs = NULL;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
355 sound_entry = NULL;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
356 debugbutton = NULL;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
357 notebook_page = 0;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
358 smiley_theme_store = NULL;
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
359 if (previous_smiley_row)
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
360 gtk_tree_row_reference_free(previous_smiley_row);
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
361 previous_smiley_row = NULL;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
362
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
363 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
364
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
365 static void smiley_sel(GtkTreeSelection *sel, GtkTreeModel *model) {
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
366 GtkTreeIter iter;
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
367 const char *themename;
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
368 char *description;
12600
e856f985a0b9 [gaim-migrate @ 14934]
Richard Laager <rlaager@wiktel.com>
parents: 12580
diff changeset
369 GValue val;
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
370 GtkTreePath *path, *oldpath;
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
371 struct smiley_theme *new_theme, *old_theme;
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
372
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
373 if (!gtk_tree_selection_get_selected(sel, &model, &iter))
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
374 return;
11550
ec2335d98b83 [gaim-migrate @ 13805]
Mark Doliner <mark@kingant.net>
parents: 11525
diff changeset
375
ec2335d98b83 [gaim-migrate @ 13805]
Mark Doliner <mark@kingant.net>
parents: 11525
diff changeset
376 old_theme = current_smiley_theme;
12600
e856f985a0b9 [gaim-migrate @ 14934]
Richard Laager <rlaager@wiktel.com>
parents: 12580
diff changeset
377 val.g_type = 0;
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
378 gtk_tree_model_get_value(model, &iter, 3, &val);
11550
ec2335d98b83 [gaim-migrate @ 13805]
Mark Doliner <mark@kingant.net>
parents: 11525
diff changeset
379 path = gtk_tree_model_get_path(model, &iter);
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
380 themename = g_value_get_string(&val);
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
381 gaim_prefs_set_string("/gaim/gtk/smileys/theme", themename);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
382 g_value_unset (&val);
11550
ec2335d98b83 [gaim-migrate @ 13805]
Mark Doliner <mark@kingant.net>
parents: 11525
diff changeset
383
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
384 /* current_smiley_theme is set in callback for the above pref change */
11550
ec2335d98b83 [gaim-migrate @ 13805]
Mark Doliner <mark@kingant.net>
parents: 11525
diff changeset
385 new_theme = current_smiley_theme;
ec2335d98b83 [gaim-migrate @ 13805]
Mark Doliner <mark@kingant.net>
parents: 11525
diff changeset
386 description = g_strdup_printf("<span size='larger' weight='bold'>%s</span> - %s\n"
ec2335d98b83 [gaim-migrate @ 13805]
Mark Doliner <mark@kingant.net>
parents: 11525
diff changeset
387 "<span size='smaller' foreground='white'>%s</span>",
ec2335d98b83 [gaim-migrate @ 13805]
Mark Doliner <mark@kingant.net>
parents: 11525
diff changeset
388 new_theme->name, new_theme->author, new_theme->desc);
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
389 gtk_list_store_set(smiley_theme_store, &iter, 1, description, -1);
11550
ec2335d98b83 [gaim-migrate @ 13805]
Mark Doliner <mark@kingant.net>
parents: 11525
diff changeset
390 g_free(description);
ec2335d98b83 [gaim-migrate @ 13805]
Mark Doliner <mark@kingant.net>
parents: 11525
diff changeset
391
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
392 if (new_theme != old_theme && previous_smiley_row) {
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
393 oldpath = gtk_tree_row_reference_get_path(previous_smiley_row);
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
394 if (gtk_tree_model_get_iter(model, &iter, oldpath)) {
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
395 description = g_strdup_printf("<span size='larger' weight='bold'>%s</span> - %s\n"
11550
ec2335d98b83 [gaim-migrate @ 13805]
Mark Doliner <mark@kingant.net>
parents: 11525
diff changeset
396 "<span size='smaller' foreground='dim grey'>%s</span>",
ec2335d98b83 [gaim-migrate @ 13805]
Mark Doliner <mark@kingant.net>
parents: 11525
diff changeset
397 old_theme->name, old_theme->author, old_theme->desc);
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
398 gtk_list_store_set(smiley_theme_store, &iter, 1,
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
399 description, -1);
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
400 g_free(description);
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
401 }
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
402 gtk_tree_path_free(oldpath);
11550
ec2335d98b83 [gaim-migrate @ 13805]
Mark Doliner <mark@kingant.net>
parents: 11525
diff changeset
403 }
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
404 if (previous_smiley_row)
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
405 gtk_tree_row_reference_free(previous_smiley_row);
11550
ec2335d98b83 [gaim-migrate @ 13805]
Mark Doliner <mark@kingant.net>
parents: 11525
diff changeset
406 previous_smiley_row = gtk_tree_row_reference_new(model, path);
ec2335d98b83 [gaim-migrate @ 13805]
Mark Doliner <mark@kingant.net>
parents: 11525
diff changeset
407 gtk_tree_path_free(path);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
408 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
409
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
410 static GtkTreeRowReference *theme_refresh_theme_list()
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
411 {
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
412 GdkPixbuf *pixbuf;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
413 GSList *themes;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
414 GtkTreeIter iter;
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
415 GtkTreeRowReference *row_ref = NULL;
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
416
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
417 if (previous_smiley_row)
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
418 gtk_tree_row_reference_free(previous_smiley_row);
11550
ec2335d98b83 [gaim-migrate @ 13805]
Mark Doliner <mark@kingant.net>
parents: 11525
diff changeset
419 previous_smiley_row = NULL;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
420
11525
b47708f46a38 [gaim-migrate @ 13773]
Tim Ringenbach <marv@pidgin.im>
parents: 11442
diff changeset
421 gaim_gtkthemes_smiley_theme_probe();
b47708f46a38 [gaim-migrate @ 13773]
Tim Ringenbach <marv@pidgin.im>
parents: 11442
diff changeset
422
b47708f46a38 [gaim-migrate @ 13773]
Tim Ringenbach <marv@pidgin.im>
parents: 11442
diff changeset
423 if (!(themes = smiley_themes))
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
424 return NULL;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
425
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
426 gtk_list_store_clear(smiley_theme_store);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
427
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
428 while (themes) {
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
429 struct smiley_theme *theme = themes->data;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
430 char *description = g_strdup_printf("<span size='larger' weight='bold'>%s</span> - %s\n"
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
431 "<span size='smaller' foreground='dim grey'>%s</span>",
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
432 theme->name, theme->author, theme->desc);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
433 gtk_list_store_append (smiley_theme_store, &iter);
8494
8a1421dcef60 [gaim-migrate @ 9229]
Mark Doliner <mark@kingant.net>
parents: 8467
diff changeset
434
8a1421dcef60 [gaim-migrate @ 9229]
Mark Doliner <mark@kingant.net>
parents: 8467
diff changeset
435 /*
8a1421dcef60 [gaim-migrate @ 9229]
Mark Doliner <mark@kingant.net>
parents: 8467
diff changeset
436 * LEAK - Gentoo memprof thinks pixbuf is leaking here... but it
8a1421dcef60 [gaim-migrate @ 9229]
Mark Doliner <mark@kingant.net>
parents: 8467
diff changeset
437 * looks like it should be ok to me. Anyone know what's up? --Mark
8a1421dcef60 [gaim-migrate @ 9229]
Mark Doliner <mark@kingant.net>
parents: 8467
diff changeset
438 */
8963
59f1eb8c76d2 [gaim-migrate @ 9737]
Tim Ringenbach <marv@pidgin.im>
parents: 8949
diff changeset
439 pixbuf = (theme->icon ? gdk_pixbuf_new_from_file(theme->icon, NULL) : NULL);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
441 gtk_list_store_set(smiley_theme_store, &iter,
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
442 0, pixbuf,
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
443 1, description,
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
444 2, theme->path,
8928
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
445 3, theme->name,
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
446 -1);
7094
2343c3aa1dec [gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents: 7092
diff changeset
447
2343c3aa1dec [gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents: 7092
diff changeset
448 if (pixbuf != NULL)
2343c3aa1dec [gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents: 7092
diff changeset
449 g_object_unref(G_OBJECT(pixbuf));
2343c3aa1dec [gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents: 7092
diff changeset
450
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
451 g_free(description);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
452 themes = themes->next;
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
453
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
454 /* If this is the currently selected theme,
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
455 * we will need to select it. Grab the row reference. */
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
456 if (theme == current_smiley_theme) {
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
457 GtkTreePath *path = gtk_tree_model_get_path(
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
458 GTK_TREE_MODEL(smiley_theme_store), &iter);
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
459 row_ref = gtk_tree_row_reference_new(
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
460 GTK_TREE_MODEL(smiley_theme_store), path);
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
461 gtk_tree_path_free(path);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
462 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
463 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
464
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
465 return row_ref;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
466 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
467
10871
6240d7fd5b2c [gaim-migrate @ 12558]
Mark Doliner <mark@kingant.net>
parents: 10859
diff changeset
468 static void theme_install_theme(char *path, char *extn) {
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
469 #ifndef _WIN32
12134
9f34340f2445 [gaim-migrate @ 14434]
Richard Laager <rlaager@wiktel.com>
parents: 12123
diff changeset
470 gchar *command;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
471 #endif
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
472 gchar *destdir;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
473 gchar *tail;
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
474 GtkTreeRowReference *theme_rowref;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
475
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
476 /* Just to be safe */
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
477 g_strchomp(path);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
478
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
479 /* I dont know what you are, get out of here */
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
480 if (extn != NULL)
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
481 tail = extn;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
482 else if ((tail = strrchr(path, '.')) == NULL)
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
483 return;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
484
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
485 destdir = g_strconcat(gaim_user_dir(), G_DIR_SEPARATOR_S "smileys", NULL);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
486
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
487 /* We'll check this just to make sure. This also lets us do something different on
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
488 * other platforms, if need be */
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
489 if (!g_ascii_strcasecmp(tail, ".gz") || !g_ascii_strcasecmp(tail, ".tgz")) {
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
490 #ifndef _WIN32
12134
9f34340f2445 [gaim-migrate @ 14434]
Richard Laager <rlaager@wiktel.com>
parents: 12123
diff changeset
491 gchar *path_escaped = g_shell_quote(path);
9f34340f2445 [gaim-migrate @ 14434]
Richard Laager <rlaager@wiktel.com>
parents: 12123
diff changeset
492 gchar *destdir_escaped = g_shell_quote(destdir);
9f34340f2445 [gaim-migrate @ 14434]
Richard Laager <rlaager@wiktel.com>
parents: 12123
diff changeset
493 command = g_strdup_printf("tar > /dev/null xzf %s -C %s", path_escaped, destdir_escaped);
9f34340f2445 [gaim-migrate @ 14434]
Richard Laager <rlaager@wiktel.com>
parents: 12123
diff changeset
494 g_free(path_escaped);
9f34340f2445 [gaim-migrate @ 14434]
Richard Laager <rlaager@wiktel.com>
parents: 12123
diff changeset
495 g_free(destdir_escaped);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
496 #else
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
497 if(!wgaim_gz_untar(path, destdir)) {
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
498 g_free(destdir);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
499 return;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
500 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
501 #endif
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
502 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
503 else {
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
504 g_free(destdir);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
505 return;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
506 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
507
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
508 #ifndef _WIN32
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
509 /* Fire! */
12134
9f34340f2445 [gaim-migrate @ 14434]
Richard Laager <rlaager@wiktel.com>
parents: 12123
diff changeset
510 if (system(command))
9f34340f2445 [gaim-migrate @ 14434]
Richard Laager <rlaager@wiktel.com>
parents: 12123
diff changeset
511 {
9f34340f2445 [gaim-migrate @ 14434]
Richard Laager <rlaager@wiktel.com>
parents: 12123
diff changeset
512 gaim_notify_error(NULL, NULL, _("Smiley theme failed to unpack."), NULL);
9f34340f2445 [gaim-migrate @ 14434]
Richard Laager <rlaager@wiktel.com>
parents: 12123
diff changeset
513 }
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
514
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
515 g_free(command);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
516 #endif
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
517 g_free(destdir);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
518
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
519 theme_rowref = theme_refresh_theme_list();
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
520 if (theme_rowref != NULL)
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
521 gtk_tree_row_reference_free(theme_rowref);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
522 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
523
7094
2343c3aa1dec [gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents: 7092
diff changeset
524 static void
2343c3aa1dec [gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents: 7092
diff changeset
525 theme_got_url(void *data, const char *themedata, size_t len)
2343c3aa1dec [gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents: 7092
diff changeset
526 {
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
527 FILE *f;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
528 gchar *path;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
529
10203
7ff9b8b22e7d [gaim-migrate @ 11324]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 10182
diff changeset
530 f = gaim_mkstemp(&path, TRUE);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
531 fwrite(themedata, len, 1, f);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
532 fclose(f);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
533
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
534 theme_install_theme(path, data);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
535
10589
0f7452b1f777 [gaim-migrate @ 11994]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 10492
diff changeset
536 g_unlink(path);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
537 g_free(path);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
538 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
539
11137
096020ae09a9 [gaim-migrate @ 13201]
Mark Doliner <mark@kingant.net>
parents: 11082
diff changeset
540 static void theme_dnd_recv(GtkWidget *widget, GdkDragContext *dc, guint x, guint y, GtkSelectionData *sd,
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
541 guint info, guint t, gpointer data) {
11137
096020ae09a9 [gaim-migrate @ 13201]
Mark Doliner <mark@kingant.net>
parents: 11082
diff changeset
542 gchar *name = (gchar *)sd->data;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
543
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
544 if ((sd->length >= 0) && (sd->format == 8)) {
11137
096020ae09a9 [gaim-migrate @ 13201]
Mark Doliner <mark@kingant.net>
parents: 11082
diff changeset
545 /* Well, it looks like the drag event was cool.
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
546 * Let's do something with it */
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
547
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
548 if (!g_ascii_strncasecmp(name, "file://", 7)) {
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
549 GError *converr = NULL;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
550 gchar *tmp;
11137
096020ae09a9 [gaim-migrate @ 13201]
Mark Doliner <mark@kingant.net>
parents: 11082
diff changeset
551 /* It looks like we're dealing with a local file. Let's
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
552 * just untar it in the right place */
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
553 if(!(tmp = g_filename_from_uri(name, NULL, &converr))) {
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
554 gaim_debug(GAIM_DEBUG_ERROR, "theme dnd", "%s\n",
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
555 (converr ? converr->message :
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
556 "g_filename_from_uri error"));
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
557 return;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
558 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
559 theme_install_theme(tmp, NULL);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
560 g_free(tmp);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
561 } else if (!g_ascii_strncasecmp(name, "http://", 7)) {
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
562 /* Oo, a web drag and drop. This is where things
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
563 * will start to get interesting */
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
564 gchar *tail;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
565
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
566 if ((tail = strrchr(name, '.')) == NULL)
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
567 return;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
568
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
569 /* We'll check this just to make sure. This also lets us do something different on
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
570 * other platforms, if need be */
7094
2343c3aa1dec [gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents: 7092
diff changeset
571 gaim_url_fetch(name, TRUE, NULL, FALSE, theme_got_url, ".tgz");
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
572 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
573
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
574 gtk_drag_finish(dc, TRUE, FALSE, t);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
575 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
576
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
577 gtk_drag_finish(dc, FALSE, FALSE, t);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
578 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
579
8928
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
580 /* Does same as normal sort, except "none" is sorted first */
12412
a88ca6da0b38 [gaim-migrate @ 14719]
Richard Laager <rlaager@wiktel.com>
parents: 12281
diff changeset
581 static gint gaim_sort_smileys (GtkTreeModel *model,
8928
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
582 GtkTreeIter *a,
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
583 GtkTreeIter *b,
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
584 gpointer userdata)
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
585 {
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
586 gint ret = 0;
9949
ced29c7b396c [gaim-migrate @ 10845]
Luke Schierer <lschiere@pidgin.im>
parents: 9944
diff changeset
587 gchar *name1 = NULL, *name2 = NULL;
8928
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
588
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
589 gtk_tree_model_get(model, a, 3, &name1, -1);
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
590 gtk_tree_model_get(model, b, 3, &name2, -1);
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
591
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
592 if (name1 == NULL || name2 == NULL) {
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
593 if (!(name1 == NULL && name2 == NULL))
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
594 ret = (name1 == NULL) ? -1: 1;
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
595 } else if (!g_ascii_strcasecmp(name1, "none")) {
10167
cf45c2a6a7cf [gaim-migrate @ 11254]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10164
diff changeset
596 if (!g_utf8_collate(name1, name2))
cf45c2a6a7cf [gaim-migrate @ 11254]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10164
diff changeset
597 ret = 0;
cf45c2a6a7cf [gaim-migrate @ 11254]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10164
diff changeset
598 else
cf45c2a6a7cf [gaim-migrate @ 11254]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10164
diff changeset
599 /* Sort name1 first */
cf45c2a6a7cf [gaim-migrate @ 11254]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10164
diff changeset
600 ret = -1;
8928
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
601 } else if (!g_ascii_strcasecmp(name2, "none")) {
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
602 /* Sort name2 first */
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
603 ret = 1;
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
604 } else {
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
605 /* Neither string is "none", default to normal sort */
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
606 ret = g_utf8_collate(name1,name2);
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
607 }
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
608
9521
9b2f1444811f [gaim-migrate @ 10348]
Mark Doliner <mark@kingant.net>
parents: 9508
diff changeset
609 g_free(name1);
9b2f1444811f [gaim-migrate @ 10348]
Mark Doliner <mark@kingant.net>
parents: 9508
diff changeset
610 g_free(name2);
9b2f1444811f [gaim-migrate @ 10348]
Mark Doliner <mark@kingant.net>
parents: 9508
diff changeset
611
8928
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
612 return ret;
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
613 }
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
614
10850
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
615 static GtkWidget *
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
616 theme_page()
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
617 {
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
618 GtkWidget *ret;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
619 GtkWidget *sw;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
620 GtkWidget *view;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
621 GtkCellRenderer *rend;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
622 GtkTreeViewColumn *col;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
623 GtkTreeSelection *sel;
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
624 GtkTreeRowReference *rowref;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
625 GtkWidget *label;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
626 GtkTargetEntry te[3] = {{"text/plain", 0, 0},{"text/uri-list", 0, 1},{"STRING", 0, 2}};
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
627
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
628 ret = gtk_vbox_new(FALSE, GAIM_HIG_BOX_SPACE);
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
629 gtk_container_set_border_width (GTK_CONTAINER (ret), GAIM_HIG_BORDER);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
630
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
631 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."));
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
632
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
633 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
634 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
635 gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
636
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
637 gtk_box_pack_start(GTK_BOX(ret), label, FALSE, TRUE, 0);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
638 gtk_widget_show(label);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
639
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
640 sw = gtk_scrolled_window_new(NULL,NULL);
7939
451d2946423e [gaim-migrate @ 8610]
Mark Doliner <mark@kingant.net>
parents: 7932
diff changeset
641 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
7931
2a781d4178ba [gaim-migrate @ 8602]
Mark Doliner <mark@kingant.net>
parents: 7929
diff changeset
642 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
643
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
644 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0);
8928
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
645 smiley_theme_store = gtk_list_store_new (4, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
646
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
647 rowref = theme_refresh_theme_list();
8075
41e973dbca03 [gaim-migrate @ 8774]
Mark Doliner <mark@kingant.net>
parents: 8063
diff changeset
648
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
649 view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(smiley_theme_store));
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
650
11525
b47708f46a38 [gaim-migrate @ 13773]
Tim Ringenbach <marv@pidgin.im>
parents: 11442
diff changeset
651 gtk_drag_dest_set(view, GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_HIGHLIGHT | GTK_DEST_DEFAULT_DROP, te,
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
652 sizeof(te) / sizeof(GtkTargetEntry) , GDK_ACTION_COPY | GDK_ACTION_MOVE);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
653
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
654 g_signal_connect(G_OBJECT(view), "drag_data_received", G_CALLBACK(theme_dnd_recv), smiley_theme_store);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
655
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
656 rend = gtk_cell_renderer_pixbuf_new();
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
657 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (view));
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
658
8928
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
659 /* Custom sort so "none" theme is at top of list */
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
660 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(smiley_theme_store),
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
661 3, gaim_sort_smileys, NULL, NULL);
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
662
8075
41e973dbca03 [gaim-migrate @ 8774]
Mark Doliner <mark@kingant.net>
parents: 8063
diff changeset
663 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(smiley_theme_store),
8928
755d7f8907c6 [gaim-migrate @ 9698]
Luke Schierer <lschiere@pidgin.im>
parents: 8927
diff changeset
664 3, GTK_SORT_ASCENDING);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
665
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
666 col = gtk_tree_view_column_new_with_attributes (_("Icon"),
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
667 rend,
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
668 "pixbuf", 0,
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
669 NULL);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
670 gtk_tree_view_append_column (GTK_TREE_VIEW(view), col);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
671
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
672 rend = gtk_cell_renderer_text_new();
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
673 col = gtk_tree_view_column_new_with_attributes (_("Description"),
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
674 rend,
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
675 "markup", 1,
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
676 NULL);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
677 gtk_tree_view_append_column (GTK_TREE_VIEW(view), col);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
678 g_object_unref(G_OBJECT(smiley_theme_store));
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
679 gtk_container_add(GTK_CONTAINER(sw), view);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
680
8075
41e973dbca03 [gaim-migrate @ 8774]
Mark Doliner <mark@kingant.net>
parents: 8063
diff changeset
681 g_signal_connect(G_OBJECT(sel), "changed", G_CALLBACK(smiley_sel), NULL);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
682
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
683 if (rowref) {
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
684 GtkTreePath *path = gtk_tree_row_reference_get_path(rowref);
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
685 gtk_tree_row_reference_free(rowref);
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
686 gtk_tree_selection_select_path(sel, path);
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
687 gtk_tree_path_free(path);
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
688 }
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
689
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
690 gtk_widget_show_all(ret);
8137
4971193f761d [gaim-migrate @ 8842]
Mark Doliner <mark@kingant.net>
parents: 8104
diff changeset
691
4971193f761d [gaim-migrate @ 8842]
Mark Doliner <mark@kingant.net>
parents: 8104
diff changeset
692 gaim_set_accessible_label (view, label);
4971193f761d [gaim-migrate @ 8842]
Mark Doliner <mark@kingant.net>
parents: 8104
diff changeset
693
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
694 return ret;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
695 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
696
9025
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
697 static void
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
698 formatting_toggle_cb(GtkIMHtml *imhtml, GtkIMHtmlButtons buttons, void *toolbar)
5530
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
699 {
9025
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
700 gboolean bold, italic, uline;
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
701
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
702 gtk_imhtml_get_current_format(GTK_IMHTML(imhtml),
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
703 &bold, &italic, &uline);
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
704
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
705 if (buttons & GTK_IMHTML_BOLD)
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
706 gaim_prefs_set_bool("/gaim/gtk/conversations/send_bold", bold);
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
707 if (buttons & GTK_IMHTML_ITALIC)
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
708 gaim_prefs_set_bool("/gaim/gtk/conversations/send_italic", italic);
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
709 if (buttons & GTK_IMHTML_UNDERLINE)
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
710 gaim_prefs_set_bool("/gaim/gtk/conversations/send_underline", uline);
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
711
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
712 if (buttons & GTK_IMHTML_GROW || buttons & GTK_IMHTML_SHRINK)
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
713 gaim_prefs_set_int("/gaim/gtk/conversations/font_size",
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
714 gtk_imhtml_get_current_fontsize(GTK_IMHTML(imhtml)));
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
715 if (buttons & GTK_IMHTML_FACE) {
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
716 char *face = gtk_imhtml_get_current_fontface(GTK_IMHTML(imhtml));
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
717 if (!face)
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
718 face = g_strdup("");
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
719
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
720 gaim_prefs_set_string("/gaim/gtk/conversations/font_face", face);
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
721 g_free(face);
5530
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
722 }
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
723
9025
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
724 if (buttons & GTK_IMHTML_FORECOLOR) {
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
725 char *color = gtk_imhtml_get_current_forecolor(GTK_IMHTML(imhtml));
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
726 if (!color)
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
727 color = g_strdup("");
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
728
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
729 gaim_prefs_set_string("/gaim/gtk/conversations/fgcolor", color);
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
730 g_free(color);
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
731 }
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
732
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
733 if (buttons & GTK_IMHTML_BACKCOLOR) {
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
734 char *color;
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
735 GObject *object;
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
736
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
737 color = gtk_imhtml_get_current_backcolor(GTK_IMHTML(imhtml));
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
738 if (!color)
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
739 color = g_strdup("");
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
740
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
741 /* Block the signal to prevent a loop. */
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
742 object = g_object_ref(G_OBJECT(imhtml));
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
743 g_signal_handlers_block_matched(object, G_SIGNAL_MATCH_DATA, 0, 0, NULL,
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
744 NULL, toolbar);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
745 /* Clear the backcolor. */
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
746 gtk_imhtml_toggle_backcolor(GTK_IMHTML(imhtml), "");
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
747 /* Unblock the signal. */
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
748 g_signal_handlers_unblock_matched(object, G_SIGNAL_MATCH_DATA, 0, 0, NULL,
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
749 NULL, toolbar);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
750 g_object_unref(object);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
751
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
752 /* This will fire a toggle signal and get saved below. */
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
753 gtk_imhtml_toggle_background(GTK_IMHTML(imhtml), color);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
754
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
755 g_free(color);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
756 }
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
757
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
758 if (buttons & GTK_IMHTML_BACKGROUND) {
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
759 char *color = gtk_imhtml_get_current_background(GTK_IMHTML(imhtml));
9025
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
760 if (!color)
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
761 color = g_strdup("");
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
762
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
763 gaim_prefs_set_string("/gaim/gtk/conversations/bgcolor", color);
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
764 g_free(color);
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
765 }
5530
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
766 }
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
767
11275
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
768 static void
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
769 formatting_clear_cb(GtkIMHtml *imhtml, void *data)
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
770 {
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
771 gaim_prefs_set_bool("/gaim/gtk/conversations/send_bold", FALSE);
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
772 gaim_prefs_set_bool("/gaim/gtk/conversations/send_italic", FALSE);
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
773 gaim_prefs_set_bool("/gaim/gtk/conversations/send_underline", FALSE);
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
774
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
775 gaim_prefs_set_int("/gaim/gtk/conversations/font_size", 3);
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
776
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
777 gaim_prefs_set_string("/gaim/gtk/conversations/font_face", "");
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
778 gaim_prefs_set_string("/gaim/gtk/conversations/fgcolor", "");
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
779 gaim_prefs_set_string("/gaim/gtk/conversations/bgcolor", "");
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
780 }
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
781
8979
e2ad3e04d248 [gaim-migrate @ 9753]
Luke Schierer <lschiere@pidgin.im>
parents: 8966
diff changeset
782 static void
12816
ff267281e882 [gaim-migrate @ 15164]
Mark Doliner <mark@kingant.net>
parents: 12815
diff changeset
783 conversation_usetabs_cb(const char *name, GaimPrefType type,
ff267281e882 [gaim-migrate @ 15164]
Mark Doliner <mark@kingant.net>
parents: 12815
diff changeset
784 gconstpointer value, gpointer data)
8979
e2ad3e04d248 [gaim-migrate @ 9753]
Luke Schierer <lschiere@pidgin.im>
parents: 8966
diff changeset
785 {
10112
1a91e814e9d8 [gaim-migrate @ 11145]
Nathan Walp <nwalp@pidgin.im>
parents: 10108
diff changeset
786 gboolean usetabs = GPOINTER_TO_INT(value);
9155
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
787
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
788 if (usetabs)
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
789 gtk_widget_set_sensitive(GTK_WIDGET(data), TRUE);
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
790 else
8979
e2ad3e04d248 [gaim-migrate @ 9753]
Luke Schierer <lschiere@pidgin.im>
parents: 8966
diff changeset
791 gtk_widget_set_sensitive(GTK_WIDGET(data), FALSE);
e2ad3e04d248 [gaim-migrate @ 9753]
Luke Schierer <lschiere@pidgin.im>
parents: 8966
diff changeset
792 }
e2ad3e04d248 [gaim-migrate @ 9753]
Luke Schierer <lschiere@pidgin.im>
parents: 8966
diff changeset
793
10850
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
794 static GtkWidget *
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
795 conv_page()
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
796 {
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
797 GtkWidget *ret;
11271
b33eccbc3a10 [gaim-migrate @ 13454]
Richard Laager <rlaager@wiktel.com>
parents: 11269
diff changeset
798 GtkWidget *vbox;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
799 GtkWidget *label;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
800 GList *names = NULL;
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
801 GtkWidget *frame;
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
802 GtkWidget *imhtml;
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
803 GtkWidget *toolbar;
11271
b33eccbc3a10 [gaim-migrate @ 13454]
Richard Laager <rlaager@wiktel.com>
parents: 11269
diff changeset
804 GtkWidget *hbox;
b33eccbc3a10 [gaim-migrate @ 13454]
Richard Laager <rlaager@wiktel.com>
parents: 11269
diff changeset
805 GtkWidget *vbox2;
11922
19b46e4e43a0 [gaim-migrate @ 14213]
Mark Doliner <mark@kingant.net>
parents: 11888
diff changeset
806 GtkWidget *iconpref1;
19b46e4e43a0 [gaim-migrate @ 14213]
Mark Doliner <mark@kingant.net>
parents: 11888
diff changeset
807 GtkWidget *iconpref2;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
808
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
809 ret = gtk_vbox_new(FALSE, GAIM_HIG_BOX_SPACE);
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
810 gtk_container_set_border_width(GTK_CONTAINER(ret), GAIM_HIG_BORDER);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
811
5530
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
812 vbox = gaim_gtk_make_frame(ret, _("Conversations"));
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
813
12116
e75ef7aa913e [gaim-migrate @ 14416]
Luke Schierer <lschiere@pidgin.im>
parents: 12067
diff changeset
814 gaim_gtk_prefs_dropdown(vbox, _("_Hide new IM conversations"),
e75ef7aa913e [gaim-migrate @ 14416]
Luke Schierer <lschiere@pidgin.im>
parents: 12067
diff changeset
815 GAIM_PREF_STRING, "/gaim/gtk/conversations/im/hide_new",
e75ef7aa913e [gaim-migrate @ 14416]
Luke Schierer <lschiere@pidgin.im>
parents: 12067
diff changeset
816 _("Never"), "never",
e75ef7aa913e [gaim-migrate @ 14416]
Luke Schierer <lschiere@pidgin.im>
parents: 12067
diff changeset
817 _("When away"), "away",
e75ef7aa913e [gaim-migrate @ 14416]
Luke Schierer <lschiere@pidgin.im>
parents: 12067
diff changeset
818 _("Always"), "always",
e75ef7aa913e [gaim-migrate @ 14416]
Luke Schierer <lschiere@pidgin.im>
parents: 12067
diff changeset
819 NULL);
e75ef7aa913e [gaim-migrate @ 14416]
Luke Schierer <lschiere@pidgin.im>
parents: 12067
diff changeset
820
9832
54e0322c81fb [gaim-migrate @ 10703]
Tim Ringenbach <marv@pidgin.im>
parents: 9827
diff changeset
821 gaim_gtk_prefs_checkbox(_("Send unknown \"_slash\" commands as messages"),
54e0322c81fb [gaim-migrate @ 10703]
Tim Ringenbach <marv@pidgin.im>
parents: 9827
diff changeset
822 "/gaim/gtk/conversations/passthrough_unknown_commands", vbox);
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
823 gaim_gtk_prefs_checkbox(_("Show _formatting on incoming messages"),
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
824 "/gaim/gtk/conversations/show_incoming_formatting", vbox);
11922
19b46e4e43a0 [gaim-migrate @ 14213]
Mark Doliner <mark@kingant.net>
parents: 11888
diff changeset
825
19b46e4e43a0 [gaim-migrate @ 14213]
Mark Doliner <mark@kingant.net>
parents: 11888
diff changeset
826 iconpref1 = gaim_gtk_prefs_checkbox(_("Show buddy _icons"),
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
827 "/gaim/gtk/conversations/im/show_buddy_icons", vbox);
11922
19b46e4e43a0 [gaim-migrate @ 14213]
Mark Doliner <mark@kingant.net>
parents: 11888
diff changeset
828 iconpref2 = gaim_gtk_prefs_checkbox(_("Enable buddy ic_on animation"),
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
829 "/gaim/gtk/conversations/im/animate_buddy_icons", vbox);
11922
19b46e4e43a0 [gaim-migrate @ 14213]
Mark Doliner <mark@kingant.net>
parents: 11888
diff changeset
830 if (!gaim_prefs_get_bool("/gaim/gtk/conversations/im/show_buddy_icons"))
19b46e4e43a0 [gaim-migrate @ 14213]
Mark Doliner <mark@kingant.net>
parents: 11888
diff changeset
831 gtk_widget_set_sensitive(iconpref2, FALSE);
19b46e4e43a0 [gaim-migrate @ 14213]
Mark Doliner <mark@kingant.net>
parents: 11888
diff changeset
832 g_signal_connect(G_OBJECT(iconpref1), "clicked",
19b46e4e43a0 [gaim-migrate @ 14213]
Mark Doliner <mark@kingant.net>
parents: 11888
diff changeset
833 G_CALLBACK(gaim_gtk_toggle_sensitive), iconpref2);
19b46e4e43a0 [gaim-migrate @ 14213]
Mark Doliner <mark@kingant.net>
parents: 11888
diff changeset
834
9155
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
835 gaim_gtk_prefs_checkbox(_("_Notify buddies that you are typing to them"),
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
836 "/core/conversations/im/send_typing", vbox);
12067
e859c1663a27 [gaim-migrate @ 14362]
Richard Laager <rlaager@wiktel.com>
parents: 12061
diff changeset
837 #ifdef USE_GTKSPELL
12240
1c0fd404e07e [gaim-migrate @ 14542]
Mark Doliner <mark@kingant.net>
parents: 12195
diff changeset
838 gaim_gtk_prefs_checkbox(_("Highlight _misspelled words"),
12067
e859c1663a27 [gaim-migrate @ 14362]
Richard Laager <rlaager@wiktel.com>
parents: 12061
diff changeset
839 "/gaim/gtk/conversations/spellcheck", vbox);
e859c1663a27 [gaim-migrate @ 14362]
Richard Laager <rlaager@wiktel.com>
parents: 12061
diff changeset
840 #endif
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
841
12553
9d7fb0b21d9f [gaim-migrate @ 14871]
Nathan Walp <nwalp@pidgin.im>
parents: 12472
diff changeset
842 gaim_gtk_prefs_checkbox(_("Use smooth-scrolling"), "/gaim/gtk/conversations/use_smooth_scrolling", vbox);
9d7fb0b21d9f [gaim-migrate @ 14871]
Nathan Walp <nwalp@pidgin.im>
parents: 12472
diff changeset
843
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
844 frame = gaim_gtk_create_imhtml(TRUE, &imhtml, &toolbar);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
845 gtk_widget_set_name(imhtml, "gaim_gtkprefs_font_imhtml");
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
846 gtk_imhtml_set_whole_buffer_formatting_only(GTK_IMHTML(imhtml), TRUE);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
847 gtk_imhtml_set_format_functions(GTK_IMHTML(imhtml),
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
848 GTK_IMHTML_BOLD |
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
849 GTK_IMHTML_ITALIC |
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
850 GTK_IMHTML_UNDERLINE |
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
851 GTK_IMHTML_GROW |
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
852 GTK_IMHTML_SHRINK |
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
853 GTK_IMHTML_FACE |
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
854 GTK_IMHTML_FORECOLOR |
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
855 GTK_IMHTML_BACKCOLOR |
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
856 GTK_IMHTML_BACKGROUND);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
857
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
858 gtk_imhtml_append_text(GTK_IMHTML(imhtml), _("This is how your outgoing message text will appear when you use protocols that support formatting. :)"), 0);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
859
11271
b33eccbc3a10 [gaim-migrate @ 13454]
Richard Laager <rlaager@wiktel.com>
parents: 11269
diff changeset
860 gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0);
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
861
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
862 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_bold"))
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
863 gtk_imhtml_toggle_bold(GTK_IMHTML(imhtml));
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
864 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_italic"))
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
865 gtk_imhtml_toggle_italic(GTK_IMHTML(imhtml));
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
866 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_underline"))
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
867 gtk_imhtml_toggle_underline(GTK_IMHTML(imhtml));
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
868
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
869 gtk_imhtml_font_set_size(GTK_IMHTML(imhtml), gaim_prefs_get_int("/gaim/gtk/conversations/font_size"));
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
870 gtk_imhtml_toggle_forecolor(GTK_IMHTML(imhtml), gaim_prefs_get_string("/gaim/gtk/conversations/fgcolor"));
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
871 gtk_imhtml_toggle_background(GTK_IMHTML(imhtml), gaim_prefs_get_string("/gaim/gtk/conversations/bgcolor"));
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
872 gtk_imhtml_toggle_fontface(GTK_IMHTML(imhtml), gaim_prefs_get_string("/gaim/gtk/conversations/font_face"));
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
873
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
874 g_signal_connect_after(G_OBJECT(imhtml), "format_function_toggle",
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
875 G_CALLBACK(formatting_toggle_cb), toolbar);
11275
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
876 g_signal_connect_after(G_OBJECT(imhtml), "format_function_clear",
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
877 G_CALLBACK(formatting_clear_cb), NULL);
9155
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
878
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
879 /* All the tab options! */
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
880 vbox = gaim_gtk_make_frame(ret, _("Tab Options"));
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
881
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
882 gaim_gtk_prefs_checkbox(_("Show IMs and chats in _tabbed windows"),
5547
90a67ea697f7 [gaim-migrate @ 5948]
Christian Hammond <chipx86@chipx86.com>
parents: 5546
diff changeset
883 "/gaim/gtk/conversations/tabs", vbox);
9155
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
884
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
885 /*
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
886 * Connect a signal to the above preference. When conversations are not
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
887 * shown in a tabbed window then all tabbing options should be disabled.
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
888 */
10972
d5ce9d01f540 [gaim-migrate @ 12797]
Mark Doliner <mark@kingant.net>
parents: 10930
diff changeset
889 vbox2 = gtk_vbox_new(FALSE, 9);
9155
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
890 gtk_box_pack_start(GTK_BOX(vbox), vbox2, FALSE, FALSE, 0);
10087
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
891 gaim_prefs_connect_callback(prefs, "/gaim/gtk/conversations/tabs",
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
892 conversation_usetabs_cb, vbox2);
9155
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
893 if (!gaim_prefs_get_bool("/gaim/gtk/conversations/tabs"))
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
894 gtk_widget_set_sensitive(vbox2, FALSE);
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
895
9891
67dbf65e76cf [gaim-migrate @ 10779]
Mark Doliner <mark@kingant.net>
parents: 9832
diff changeset
896 gaim_gtk_prefs_checkbox(_("Show close b_utton on tabs"),
9155
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
897 "/gaim/gtk/conversations/close_on_tabs", vbox2);
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
898
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
899 hbox = gtk_hbox_new(FALSE, 9);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
900 gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, FALSE, 0);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
901
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
902 label = gaim_gtk_prefs_dropdown(hbox, _("_Placement:"), GAIM_PREF_INT,
8988
d6fea11c62d7 [gaim-migrate @ 9763]
Luke Schierer <lschiere@pidgin.im>
parents: 8979
diff changeset
903 "/gaim/gtk/conversations/tab_side",
d6fea11c62d7 [gaim-migrate @ 9763]
Luke Schierer <lschiere@pidgin.im>
parents: 8979
diff changeset
904 _("Top"), GTK_POS_TOP,
d6fea11c62d7 [gaim-migrate @ 9763]
Luke Schierer <lschiere@pidgin.im>
parents: 8979
diff changeset
905 _("Bottom"), GTK_POS_BOTTOM,
d6fea11c62d7 [gaim-migrate @ 9763]
Luke Schierer <lschiere@pidgin.im>
parents: 8979
diff changeset
906 _("Left"), GTK_POS_LEFT,
d6fea11c62d7 [gaim-migrate @ 9763]
Luke Schierer <lschiere@pidgin.im>
parents: 8979
diff changeset
907 _("Right"), GTK_POS_RIGHT,
11619
de413ae71cba [gaim-migrate @ 13893]
Tim Ringenbach <marv@pidgin.im>
parents: 11581
diff changeset
908 #if GTK_CHECK_VERSION(2,6,0)
de413ae71cba [gaim-migrate @ 13893]
Tim Ringenbach <marv@pidgin.im>
parents: 11581
diff changeset
909 _("Left Vertical"), GTK_POS_LEFT|8,
de413ae71cba [gaim-migrate @ 13893]
Tim Ringenbach <marv@pidgin.im>
parents: 11581
diff changeset
910 _("Right Vertical"), GTK_POS_RIGHT|8,
de413ae71cba [gaim-migrate @ 13893]
Tim Ringenbach <marv@pidgin.im>
parents: 11581
diff changeset
911 #endif
8988
d6fea11c62d7 [gaim-migrate @ 9763]
Luke Schierer <lschiere@pidgin.im>
parents: 8979
diff changeset
912 NULL);
d6fea11c62d7 [gaim-migrate @ 9763]
Luke Schierer <lschiere@pidgin.im>
parents: 8979
diff changeset
913
11581
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11557
diff changeset
914 names = gaim_gtkconv_placement_get_options();
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
915 label = gaim_gtk_prefs_dropdown_from_list(hbox, _("N_ew conversations:"),
9155
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
916 GAIM_PREF_STRING, "/gaim/gtk/conversations/placement", names);
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
917 g_list_free(names);
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
918
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
919 gtk_widget_show_all(ret);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
920
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
921 return ret;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
922 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
923
8231
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
924 static void network_ip_changed(GtkEntry *entry, gpointer data)
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
925 {
8834
beb7be215db3 [gaim-migrate @ 9598]
Mark Doliner <mark@kingant.net>
parents: 8833
diff changeset
926 gaim_network_set_public_ip(gtk_entry_get_text(entry));
8231
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
927 }
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
928
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
929 static void
12816
ff267281e882 [gaim-migrate @ 15164]
Mark Doliner <mark@kingant.net>
parents: 12815
diff changeset
930 proxy_changed_cb(const char *name, GaimPrefType type,
ff267281e882 [gaim-migrate @ 15164]
Mark Doliner <mark@kingant.net>
parents: 12815
diff changeset
931 gconstpointer value, gpointer data)
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
932 {
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
933 GtkWidget *frame = data;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
934 const char *proxy = value;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
935
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
936 if (strcmp(proxy, "none") && strcmp(proxy, "envvar"))
11746
8d5ea84440ca [gaim-migrate @ 14037]
Sean Egan <seanegan@gmail.com>
parents: 11740
diff changeset
937 gtk_widget_show_all(frame);
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
938 else
11740
7e0ad3b6882a [gaim-migrate @ 14031]
Sean Egan <seanegan@gmail.com>
parents: 11709
diff changeset
939 gtk_widget_hide(frame);
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
940 }
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
941
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
942 static void proxy_print_option(GtkEntry *entry, int entrynum)
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
943 {
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
944 if (entrynum == PROXYHOST)
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
945 gaim_prefs_set_string("/core/proxy/host", gtk_entry_get_text(entry));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
946 else if (entrynum == PROXYPORT)
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
947 gaim_prefs_set_int("/core/proxy/port", atoi(gtk_entry_get_text(entry)));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
948 else if (entrynum == PROXYUSER)
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
949 gaim_prefs_set_string("/core/proxy/username", gtk_entry_get_text(entry));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
950 else if (entrynum == PROXYPASS)
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
951 gaim_prefs_set_string("/core/proxy/password", gtk_entry_get_text(entry));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
952 }
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
953
10850
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
954 static GtkWidget *
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
955 network_page()
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
956 {
8231
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
957 GtkWidget *ret;
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
958 GtkWidget *vbox, *hbox, *entry;
11424
e1ab173ef3b5 [gaim-migrate @ 13661]
Thomas Butter <tbutter>
parents: 11380
diff changeset
959 GtkWidget *table, *label, *auto_ip_checkbox, *ports_checkbox, *spin_button, *stun_server_entry;
8231
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
960 GtkSizeGroup *sg;
11888
7d2d926704aa [gaim-migrate @ 14179]
Stu Tomlinson <stu@nosnilmot.com>
parents: 11878
diff changeset
961 GaimProxyInfo *proxy_info = NULL;
8231
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
962
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
963 ret = gtk_vbox_new(FALSE, GAIM_HIG_BOX_SPACE);
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
964 gtk_container_set_border_width (GTK_CONTAINER (ret), GAIM_HIG_BORDER);
8231
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
965
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
966 vbox = gaim_gtk_make_frame (ret, _("IP Address"));
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
967
12152
cda86ce5b026 [gaim-migrate @ 14453]
Richard Laager <rlaager@wiktel.com>
parents: 12134
diff changeset
968 stun_server_entry = gaim_gtk_prefs_labeled_entry(vbox,_("ST_UN server:"), "/core/network/stun_server", NULL);
11442
73f7cfa46f1b [gaim-migrate @ 13681]
Richard Laager <rlaager@wiktel.com>
parents: 11424
diff changeset
969
12152
cda86ce5b026 [gaim-migrate @ 14453]
Richard Laager <rlaager@wiktel.com>
parents: 12134
diff changeset
970 auto_ip_checkbox = gaim_gtk_prefs_checkbox(_("_Autodetect IP address"),
8231
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
971 "/core/network/auto_ip", vbox);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
972
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
973 table = gtk_table_new(2, 1, FALSE);
11442
73f7cfa46f1b [gaim-migrate @ 13681]
Richard Laager <rlaager@wiktel.com>
parents: 11424
diff changeset
974 gtk_container_set_border_width(GTK_CONTAINER(table), 0);
8231
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
975 gtk_table_set_col_spacings(GTK_TABLE(table), 5);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
976 gtk_table_set_row_spacings(GTK_TABLE(table), 10);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
977 gtk_container_add(GTK_CONTAINER(vbox), table);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
978
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
979 label = gtk_label_new_with_mnemonic(_("Public _IP:"));
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
980 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
981 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_FILL, 0, 0, 0);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
982
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
983 entry = gtk_entry_new();
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
984 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
985 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 0, 1, GTK_FILL, 0, 0, 0);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
986 g_signal_connect(G_OBJECT(entry), "changed",
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
987 G_CALLBACK(network_ip_changed), NULL);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
988
8834
beb7be215db3 [gaim-migrate @ 9598]
Mark Doliner <mark@kingant.net>
parents: 8833
diff changeset
989 if (gaim_network_get_public_ip() != NULL)
8231
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
990 gtk_entry_set_text(GTK_ENTRY(entry),
8834
beb7be215db3 [gaim-migrate @ 9598]
Mark Doliner <mark@kingant.net>
parents: 8833
diff changeset
991 gaim_network_get_public_ip());
8231
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
992
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
993 gaim_set_accessible_label (entry, label);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
994
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
995
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
996 if (gaim_prefs_get_bool("/core/network/auto_ip")) {
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
997 gtk_widget_set_sensitive(GTK_WIDGET(table), FALSE);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
998 }
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
999
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1000 g_signal_connect(G_OBJECT(auto_ip_checkbox), "clicked",
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1001 G_CALLBACK(gaim_gtk_toggle_sensitive), table);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1002
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1003 vbox = gaim_gtk_make_frame (ret, _("Ports"));
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1004 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1005
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1006 ports_checkbox = gaim_gtk_prefs_checkbox(_("_Manually specify range of ports to listen on"),
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1007 "/core/network/ports_range_use", vbox);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1008
12152
cda86ce5b026 [gaim-migrate @ 14453]
Richard Laager <rlaager@wiktel.com>
parents: 12134
diff changeset
1009 spin_button = gaim_gtk_prefs_labeled_spin_button(vbox, _("_Start port:"),
8231
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1010 "/core/network/ports_range_start", 0, 65535, sg);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1011 if (!gaim_prefs_get_bool("/core/network/ports_range_use"))
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1012 gtk_widget_set_sensitive(GTK_WIDGET(spin_button), FALSE);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1013 g_signal_connect(G_OBJECT(ports_checkbox), "clicked",
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1014 G_CALLBACK(gaim_gtk_toggle_sensitive), spin_button);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1015
12152
cda86ce5b026 [gaim-migrate @ 14453]
Richard Laager <rlaager@wiktel.com>
parents: 12134
diff changeset
1016 spin_button = gaim_gtk_prefs_labeled_spin_button(vbox, _("_End port:"),
8231
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1017 "/core/network/ports_range_end", 0, 65535, sg);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1018 if (!gaim_prefs_get_bool("/core/network/ports_range_use"))
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1019 gtk_widget_set_sensitive(GTK_WIDGET(spin_button), FALSE);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1020 g_signal_connect(G_OBJECT(ports_checkbox), "clicked",
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1021 G_CALLBACK(gaim_gtk_toggle_sensitive), spin_button);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1022
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1023 if (!gaim_running_gnome()) {
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1024 vbox = gaim_gtk_make_frame(ret, _("Proxy Server"));
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1025 prefs_proxy_frame = gtk_vbox_new(FALSE, 0);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1026 gaim_gtk_prefs_dropdown(vbox, _("Proxy _type:"), GAIM_PREF_STRING,
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1027 "/core/proxy/type",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1028 _("No proxy"), "none",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1029 "SOCKS 4", "socks4",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1030 "SOCKS 5", "socks5",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1031 "HTTP", "http",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1032 _("Use Environmental Settings"), "envvar",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1033 NULL);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1034 gtk_box_pack_start(GTK_BOX(vbox), prefs_proxy_frame, 0, 0, 0);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1035 proxy_info = gaim_global_proxy_get_info();
5681
46d7ad0dfa26 [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1036
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1037 gaim_prefs_connect_callback(prefs, "/core/proxy/type",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1038 proxy_changed_cb, prefs_proxy_frame);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1039
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1040 table = gtk_table_new(4, 2, FALSE);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1041 gtk_container_set_border_width(GTK_CONTAINER(table), 0);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1042 gtk_table_set_col_spacings(GTK_TABLE(table), 5);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1043 gtk_table_set_row_spacings(GTK_TABLE(table), 10);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1044 gtk_container_add(GTK_CONTAINER(prefs_proxy_frame), table);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1045
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1046
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1047 label = gtk_label_new_with_mnemonic(_("_Host:"));
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1048 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1049 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_FILL, 0, 0, 0);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1050
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1051 entry = gtk_entry_new();
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1052 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1053 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 0, 1, GTK_FILL, 0, 0, 0);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1054 g_signal_connect(G_OBJECT(entry), "changed",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1055 G_CALLBACK(proxy_print_option), (void *)PROXYHOST);
5681
46d7ad0dfa26 [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1056
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1057 if (proxy_info != NULL && gaim_proxy_info_get_host(proxy_info))
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1058 gtk_entry_set_text(GTK_ENTRY(entry),
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1059 gaim_proxy_info_get_host(proxy_info));
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1060
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1061 hbox = gtk_hbox_new(TRUE, 5);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1062 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1063 gaim_set_accessible_label (entry, label);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1064
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1065 label = gtk_label_new_with_mnemonic(_("_Port:"));
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1066 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1067 gtk_table_attach(GTK_TABLE(table), label, 2, 3, 0, 1, GTK_FILL, 0, 0, 0);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1068
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1069 entry = gtk_entry_new();
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1070 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1071 gtk_table_attach(GTK_TABLE(table), entry, 3, 4, 0, 1, GTK_FILL, 0, 0, 0);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1072 g_signal_connect(G_OBJECT(entry), "changed",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1073 G_CALLBACK(proxy_print_option), (void *)PROXYPORT);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1074
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1075 if (proxy_info != NULL && gaim_proxy_info_get_port(proxy_info) != 0) {
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1076 char buf[128];
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1077 g_snprintf(buf, sizeof(buf), "%d",
5681
46d7ad0dfa26 [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1078 gaim_proxy_info_get_port(proxy_info));
46d7ad0dfa26 [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1079
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1080 gtk_entry_set_text(GTK_ENTRY(entry), buf);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1081 }
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1082 gaim_set_accessible_label (entry, label);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1083
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1084 label = gtk_label_new_with_mnemonic(_("_User:"));
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1085 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1086 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, GTK_FILL, 0, 0, 0);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1087
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1088 entry = gtk_entry_new();
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1089 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1090 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 1, 2, GTK_FILL, 0, 0, 0);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1091 g_signal_connect(G_OBJECT(entry), "changed",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1092 G_CALLBACK(proxy_print_option), (void *)PROXYUSER);
5681
46d7ad0dfa26 [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1093
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1094 if (proxy_info != NULL && gaim_proxy_info_get_username(proxy_info) != NULL)
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1095 gtk_entry_set_text(GTK_ENTRY(entry),
5681
46d7ad0dfa26 [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1096 gaim_proxy_info_get_username(proxy_info));
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1097
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1098 hbox = gtk_hbox_new(TRUE, 5);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1099 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1100 gaim_set_accessible_label (entry, label);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1101
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1102 label = gtk_label_new_with_mnemonic(_("Pa_ssword:"));
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1103 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1104 gtk_table_attach(GTK_TABLE(table), label, 2, 3, 1, 2, GTK_FILL, 0, 0, 0);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1105
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1106 entry = gtk_entry_new();
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1107 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1108 gtk_table_attach(GTK_TABLE(table), entry, 3, 4, 1, 2, GTK_FILL , 0, 0, 0);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1109 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
11986
bfbb1798535e [gaim-migrate @ 14279]
Mark Doliner <mark@kingant.net>
parents: 11985
diff changeset
1110 gtk_entry_set_invisible_char(GTK_ENTRY(entry), GAIM_INVISIBLE_CHAR);
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1111 g_signal_connect(G_OBJECT(entry), "changed",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1112 G_CALLBACK(proxy_print_option), (void *)PROXYPASS);
5681
46d7ad0dfa26 [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1113
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1114 if (proxy_info != NULL && gaim_proxy_info_get_password(proxy_info) != NULL)
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1115 gtk_entry_set_text(GTK_ENTRY(entry),
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1116 gaim_proxy_info_get_password(proxy_info));
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1117 gaim_set_accessible_label (entry, label);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1118 }
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1119
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1120 gtk_widget_show_all(ret);
11740
7e0ad3b6882a [gaim-migrate @ 14031]
Sean Egan <seanegan@gmail.com>
parents: 11709
diff changeset
1121 if (proxy_info == NULL ||
7e0ad3b6882a [gaim-migrate @ 14031]
Sean Egan <seanegan@gmail.com>
parents: 11709
diff changeset
1122 gaim_proxy_info_get_type(proxy_info) == GAIM_PROXY_NONE ||
7e0ad3b6882a [gaim-migrate @ 14031]
Sean Egan <seanegan@gmail.com>
parents: 11709
diff changeset
1123 gaim_proxy_info_get_type(proxy_info) == GAIM_PROXY_USE_ENVVAR)
7e0ad3b6882a [gaim-migrate @ 14031]
Sean Egan <seanegan@gmail.com>
parents: 11709
diff changeset
1124 gtk_widget_hide(table);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1125 return ret;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1126 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1127
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1128 #ifndef _WIN32
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1129 static gboolean manual_browser_set(GtkWidget *entry, GdkEventFocus *event, gpointer data) {
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1130 const char *program = gtk_entry_get_text(GTK_ENTRY(entry));
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1131
5560
b7319c094153 [gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents: 5554
diff changeset
1132 gaim_prefs_set_string("/gaim/gtk/browsers/command", program);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1133
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1134 /* carry on normally */
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1135 return FALSE;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1136 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1137
5633
97a079bc8caa [gaim-migrate @ 6040]
Nathan Walp <nwalp@pidgin.im>
parents: 5631
diff changeset
1138 static GList *get_available_browsers()
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1139 {
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1140 struct browser {
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1141 char *name;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1142 char *command;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1143 };
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1144
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1145 static struct browser possible_browsers[] = {
9405
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9307
diff changeset
1146 {N_("Epiphany"), "epiphany"},
8267
62af52b1614a [gaim-migrate @ 8990]
Mark Doliner <mark@kingant.net>
parents: 8238
diff changeset
1147 {N_("Firebird"), "mozilla-firebird"},
8356
8f2667524c06 [gaim-migrate @ 9080]
Nathan Walp <nwalp@pidgin.im>
parents: 8340
diff changeset
1148 {N_("Firefox"), "firefox"},
9405
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9307
diff changeset
1149 {N_("Galeon"), "galeon"},
11816
60fcaea41fc0 [gaim-migrate @ 14107]
Richard Laager <rlaager@wiktel.com>
parents: 11811
diff changeset
1150 {N_("GNOME Default"), "gnome-open"},
9405
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9307
diff changeset
1151 {N_("Konqueror"), "kfmclient"},
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9307
diff changeset
1152 {N_("Mozilla"), "mozilla"},
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9307
diff changeset
1153 {N_("Netscape"), "netscape"},
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9307
diff changeset
1154 {N_("Opera"), "opera"}
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1155 };
9405
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9307
diff changeset
1156 static const int num_possible_browsers = 9;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1157
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1158 GList *browsers = NULL;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1159 int i = 0;
5819
7bdf66ab4fdd [gaim-migrate @ 6249]
Luke Schierer <lschiere@pidgin.im>
parents: 5771
diff changeset
1160 char *browser_setting = (char *)gaim_prefs_get_string("/gaim/gtk/browsers/browser");
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1161
5568
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1162 browsers = g_list_prepend(browsers, "custom");
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1163 browsers = g_list_prepend(browsers, _("Manual"));
5568
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1164
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1165 for (i = 0; i < num_possible_browsers; i++) {
7108
6faeeecab0dc [gaim-migrate @ 7673]
Christian Hammond <chipx86@chipx86.com>
parents: 7095
diff changeset
1166 if (gaim_program_is_valid(possible_browsers[i].command)) {
5633
97a079bc8caa [gaim-migrate @ 6040]
Nathan Walp <nwalp@pidgin.im>
parents: 5631
diff changeset
1167 browsers = g_list_prepend(browsers,
5551
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
1168 possible_browsers[i].command);
5568
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1169 browsers = g_list_prepend(browsers, _(possible_browsers[i].name));
5825
729e688fd2e7 [gaim-migrate @ 6255]
Sean Egan <seanegan@gmail.com>
parents: 5821
diff changeset
1170 if(browser_setting && !strcmp(possible_browsers[i].command, browser_setting))
5819
7bdf66ab4fdd [gaim-migrate @ 6249]
Luke Schierer <lschiere@pidgin.im>
parents: 5771
diff changeset
1171 browser_setting = NULL;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1172 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1173 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1174
5819
7bdf66ab4fdd [gaim-migrate @ 6249]
Luke Schierer <lschiere@pidgin.im>
parents: 5771
diff changeset
1175 if(browser_setting)
7bdf66ab4fdd [gaim-migrate @ 6249]
Luke Schierer <lschiere@pidgin.im>
parents: 5771
diff changeset
1176 gaim_prefs_set_string("/gaim/gtk/browsers/browser", "custom");
7bdf66ab4fdd [gaim-migrate @ 6249]
Luke Schierer <lschiere@pidgin.im>
parents: 5771
diff changeset
1177
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1178 return browsers;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1179 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1180
5568
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1181 static void
12816
ff267281e882 [gaim-migrate @ 15164]
Mark Doliner <mark@kingant.net>
parents: 12815
diff changeset
1182 browser_changed1_cb(const char *name, GaimPrefType type,
ff267281e882 [gaim-migrate @ 15164]
Mark Doliner <mark@kingant.net>
parents: 12815
diff changeset
1183 gconstpointer value, gpointer data)
8274
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1184 {
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1185 GtkWidget *hbox = data;
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1186 const char *browser = value;
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1187
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1188 gtk_widget_set_sensitive(hbox, strcmp(browser, "custom"));
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1189 }
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1190
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1191 static void
12816
ff267281e882 [gaim-migrate @ 15164]
Mark Doliner <mark@kingant.net>
parents: 12815
diff changeset
1192 browser_changed2_cb(const char *name, GaimPrefType type,
ff267281e882 [gaim-migrate @ 15164]
Mark Doliner <mark@kingant.net>
parents: 12815
diff changeset
1193 gconstpointer value, gpointer data)
5568
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1194 {
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1195 GtkWidget *hbox = data;
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1196 const char *browser = value;
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1197
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1198 gtk_widget_set_sensitive(hbox, !strcmp(browser, "custom"));
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1199 }
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1200
10850
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1201 static GtkWidget *
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1202 browser_page()
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1203 {
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1204 GtkWidget *ret;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1205 GtkWidget *vbox;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1206 GtkWidget *hbox;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1207 GtkWidget *label;
6007
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1208 GtkWidget *entry;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1209 GtkSizeGroup *sg;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1210 GList *browsers = NULL;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1211
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1212 ret = gtk_vbox_new(FALSE, GAIM_HIG_CAT_SPACE);
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1213 gtk_container_set_border_width (GTK_CONTAINER (ret), GAIM_HIG_BORDER);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1214
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1215 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
5530
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1216 vbox = gaim_gtk_make_frame (ret, _("Browser Selection"));
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1217
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1218 browsers = get_available_browsers();
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1219 if (browsers != NULL) {
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1220 label = gaim_gtk_prefs_dropdown_from_list(vbox,_("_Browser:"), GAIM_PREF_STRING,
5550
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1221 "/gaim/gtk/browsers/browser",
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1222 browsers);
11638
3a05b53a589e [gaim-migrate @ 13914]
Stu Tomlinson <stu@nosnilmot.com>
parents: 11619
diff changeset
1223 g_list_free(browsers);
10973
65c56b8490c5 [gaim-migrate @ 12798]
Mark Doliner <mark@kingant.net>
parents: 10972
diff changeset
1224 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1225 gtk_size_group_add_widget(sg, label);
8274
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1226
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1227 hbox = gtk_hbox_new(FALSE, 0);
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1228 label = gaim_gtk_prefs_dropdown(hbox, _("_Open link in:"), GAIM_PREF_INT,
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1229 "/gaim/gtk/browsers/place",
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1230 _("Browser default"), GAIM_BROWSER_DEFAULT,
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1231 _("Existing window"), GAIM_BROWSER_CURRENT,
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1232 _("New window"), GAIM_BROWSER_NEW_WINDOW,
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1233 _("New tab"), GAIM_BROWSER_NEW_TAB,
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1234 NULL);
10973
65c56b8490c5 [gaim-migrate @ 12798]
Mark Doliner <mark@kingant.net>
parents: 10972
diff changeset
1235 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
8274
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1236 gtk_size_group_add_widget(sg, label);
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1237 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1238
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1239 if (!strcmp(gaim_prefs_get_string("/gaim/gtk/browsers/browser"), "custom"))
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1240 gtk_widget_set_sensitive(hbox, FALSE);
10087
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
1241 gaim_prefs_connect_callback(prefs, "/gaim/gtk/browsers/browser",
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
1242 browser_changed1_cb, hbox);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1243 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1244
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1245 hbox = gtk_hbox_new(FALSE, 5);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1246 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
6031
855026933d50 [gaim-migrate @ 6481]
Mark Doliner <mark@kingant.net>
parents: 6016
diff changeset
1247 label = gtk_label_new_with_mnemonic(_("_Manual:\n(%s for URL)"));
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1248 gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1249 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1250 gtk_size_group_add_widget(sg, label);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1251
6007
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1252 entry = gtk_entry_new();
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1253 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
5560
b7319c094153 [gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents: 5554
diff changeset
1254
b7319c094153 [gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents: 5554
diff changeset
1255 if (strcmp(gaim_prefs_get_string("/gaim/gtk/browsers/browser"), "custom"))
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1256 gtk_widget_set_sensitive(hbox, FALSE);
10087
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
1257 gaim_prefs_connect_callback(prefs, "/gaim/gtk/browsers/browser",
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
1258 browser_changed2_cb, hbox);
5560
b7319c094153 [gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents: 5554
diff changeset
1259
6007
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1260 gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, FALSE, 0);
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1261
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1262 gtk_entry_set_text(GTK_ENTRY(entry),
5560
b7319c094153 [gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents: 5554
diff changeset
1263 gaim_prefs_get_string("/gaim/gtk/browsers/command"));
6007
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1264 g_signal_connect(G_OBJECT(entry), "focus-out-event",
5560
b7319c094153 [gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents: 5554
diff changeset
1265 G_CALLBACK(manual_browser_set), NULL);
8188
cd9ea20cd8ed [gaim-migrate @ 8909]
Christian Hammond <chipx86@chipx86.com>
parents: 8170
diff changeset
1266 gaim_set_accessible_label (entry, label);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1267
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1268 gtk_widget_show_all(ret);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1269 return ret;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1270 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1271 #endif /*_WIN32*/
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1272
10850
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1273 static GtkWidget *
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1274 logging_page()
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1275 {
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1276 GtkWidget *ret;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1277 GtkWidget *vbox;
7431
643cbc9a6035 [gaim-migrate @ 8036]
Sean Egan <seanegan@gmail.com>
parents: 7326
diff changeset
1278 GList *names;
8573
7dcd6f26e4a7 [gaim-migrate @ 9321]
Luke Schierer <lschiere@pidgin.im>
parents: 8494
diff changeset
1279
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1280 ret = gtk_vbox_new(FALSE, GAIM_HIG_CAT_SPACE);
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1281 gtk_container_set_border_width (GTK_CONTAINER (ret), GAIM_HIG_BORDER);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1282
11698
a647f92e1d57 [gaim-migrate @ 13989]
Mark Doliner <mark@kingant.net>
parents: 11697
diff changeset
1283 vbox = gaim_gtk_make_frame (ret, _("Logging"));
7431
643cbc9a6035 [gaim-migrate @ 8036]
Sean Egan <seanegan@gmail.com>
parents: 7326
diff changeset
1284 names = gaim_log_logger_get_options();
643cbc9a6035 [gaim-migrate @ 8036]
Sean Egan <seanegan@gmail.com>
parents: 7326
diff changeset
1285
12152
cda86ce5b026 [gaim-migrate @ 14453]
Richard Laager <rlaager@wiktel.com>
parents: 12134
diff changeset
1286 gaim_gtk_prefs_dropdown_from_list(vbox, _("Log _format:"), GAIM_PREF_STRING,
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1287 "/core/logging/format", names);
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1288
11638
3a05b53a589e [gaim-migrate @ 13914]
Stu Tomlinson <stu@nosnilmot.com>
parents: 11619
diff changeset
1289 g_list_free(names);
3a05b53a589e [gaim-migrate @ 13914]
Stu Tomlinson <stu@nosnilmot.com>
parents: 11619
diff changeset
1290
11698
a647f92e1d57 [gaim-migrate @ 13989]
Mark Doliner <mark@kingant.net>
parents: 11697
diff changeset
1291 gaim_gtk_prefs_checkbox(_("Log all _instant messages"),
7562
b859cfb5f31a [gaim-migrate @ 8176]
Christian Hammond <chipx86@chipx86.com>
parents: 7561
diff changeset
1292 "/core/logging/log_ims", vbox);
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1293 gaim_gtk_prefs_checkbox(_("Log all c_hats"),
7562
b859cfb5f31a [gaim-migrate @ 8176]
Christian Hammond <chipx86@chipx86.com>
parents: 7561
diff changeset
1294 "/core/logging/log_chats", vbox);
11699
95cc6e1e9388 [gaim-migrate @ 13990]
Mark Doliner <mark@kingant.net>
parents: 11698
diff changeset
1295 gaim_gtk_prefs_checkbox(_("Log all _status changes to system log"),
11698
a647f92e1d57 [gaim-migrate @ 13989]
Mark Doliner <mark@kingant.net>
parents: 11697
diff changeset
1296 "/core/logging/log_system", vbox);
8573
7dcd6f26e4a7 [gaim-migrate @ 9321]
Luke Schierer <lschiere@pidgin.im>
parents: 8494
diff changeset
1297
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1298 gtk_widget_show_all(ret);
11698
a647f92e1d57 [gaim-migrate @ 13989]
Mark Doliner <mark@kingant.net>
parents: 11697
diff changeset
1299
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1300 return ret;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1301 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1302
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1303 #ifndef _WIN32
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1304 static gint sound_cmd_yeah(GtkEntry *entry, gpointer d)
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1305 {
5684
b61520e71679 [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5681
diff changeset
1306 gaim_prefs_set_string("/gaim/gtk/sound/command",
6007
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1307 gtk_entry_get_text(GTK_ENTRY(entry)));
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1308 return TRUE;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1309 }
6005
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1310
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1311 static void
12816
ff267281e882 [gaim-migrate @ 15164]
Mark Doliner <mark@kingant.net>
parents: 12815
diff changeset
1312 sound_changed1_cb(const char *name, GaimPrefType type,
ff267281e882 [gaim-migrate @ 15164]
Mark Doliner <mark@kingant.net>
parents: 12815
diff changeset
1313 gconstpointer value, gpointer data)
6005
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1314 {
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1315 GtkWidget *hbox = data;
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1316 const char *method = value;
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1317
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1318 gtk_widget_set_sensitive(hbox, !strcmp(method, "custom"));
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1319 }
10074
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1320
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1321 static void
12816
ff267281e882 [gaim-migrate @ 15164]
Mark Doliner <mark@kingant.net>
parents: 12815
diff changeset
1322 sound_changed2_cb(const char *name, GaimPrefType type,
ff267281e882 [gaim-migrate @ 15164]
Mark Doliner <mark@kingant.net>
parents: 12815
diff changeset
1323 gconstpointer value, gpointer data)
10074
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1324 {
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1325 GtkWidget *vbox = data;
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1326 const char *method = value;
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1327
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1328 gtk_widget_set_sensitive(vbox, strcmp(method, "none"));
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1329 }
12815
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1330
12845
8ac4025810ab [gaim-migrate @ 15193]
Mark Doliner <mark@kingant.net>
parents: 12816
diff changeset
1331 #ifdef USE_AO
12815
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1332 static void
12816
ff267281e882 [gaim-migrate @ 15164]
Mark Doliner <mark@kingant.net>
parents: 12815
diff changeset
1333 sound_changed3_cb(const char *name, GaimPrefType type,
ff267281e882 [gaim-migrate @ 15164]
Mark Doliner <mark@kingant.net>
parents: 12815
diff changeset
1334 gconstpointer value, gpointer data)
12815
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1335 {
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1336 GtkWidget *hbox = data;
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1337 const char *method = value;
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1338
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1339 gtk_widget_set_sensitive(hbox,
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1340 !strcmp(method, "automatic") ||
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1341 !strcmp(method, "arts") ||
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1342 !strcmp(method, "esd") ||
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1343 !strcmp(method, "nas"));
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1344 }
12845
8ac4025810ab [gaim-migrate @ 15193]
Mark Doliner <mark@kingant.net>
parents: 12816
diff changeset
1345 #endif /* USE_AO */
8ac4025810ab [gaim-migrate @ 15193]
Mark Doliner <mark@kingant.net>
parents: 12816
diff changeset
1346 #endif /* !_WIN32 */
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1347
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1348
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1349 static void
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1350 event_toggled(GtkCellRendererToggle *cell, gchar *pth, gpointer data)
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1351 {
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1352 GtkTreeModel *model = (GtkTreeModel *)data;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1353 GtkTreeIter iter;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1354 GtkTreePath *path = gtk_tree_path_new_from_string(pth);
10930
bfb3ac69cdd0 [gaim-migrate @ 12709]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10871
diff changeset
1355 char *pref;
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1356
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1357 gtk_tree_model_get_iter (model, &iter, path);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1358 gtk_tree_model_get (model, &iter,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1359 2, &pref,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1360 -1);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1361
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1362 gaim_prefs_set_bool(pref, !gtk_cell_renderer_toggle_get_active(cell));
10930
bfb3ac69cdd0 [gaim-migrate @ 12709]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10871
diff changeset
1363 g_free(pref);
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1364
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1365 gtk_list_store_set(GTK_LIST_STORE (model), &iter,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1366 0, !gtk_cell_renderer_toggle_get_active(cell),
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1367 -1);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1368
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1369 gtk_tree_path_free(path);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1370 }
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1371
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1372 static void
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1373 test_sound(GtkWidget *button, gpointer i_am_NULL)
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1374 {
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1375 char *pref;
11642
58bc500cf226 [gaim-migrate @ 13919]
Mark Doliner <mark@kingant.net>
parents: 11638
diff changeset
1376 gboolean temp_value;
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1377
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1378 pref = g_strdup_printf("/gaim/gtk/sound/enabled/%s",
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1379 gaim_gtk_sound_get_event_option(sound_row_sel));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1380
11642
58bc500cf226 [gaim-migrate @ 13919]
Mark Doliner <mark@kingant.net>
parents: 11638
diff changeset
1381 temp_value = gaim_prefs_get_bool(pref);
58bc500cf226 [gaim-migrate @ 13919]
Mark Doliner <mark@kingant.net>
parents: 11638
diff changeset
1382
58bc500cf226 [gaim-migrate @ 13919]
Mark Doliner <mark@kingant.net>
parents: 11638
diff changeset
1383 if (!temp_value) gaim_prefs_set_bool(pref, TRUE);
58bc500cf226 [gaim-migrate @ 13919]
Mark Doliner <mark@kingant.net>
parents: 11638
diff changeset
1384
58bc500cf226 [gaim-migrate @ 13919]
Mark Doliner <mark@kingant.net>
parents: 11638
diff changeset
1385 gaim_sound_play_event(sound_row_sel, NULL);
58bc500cf226 [gaim-migrate @ 13919]
Mark Doliner <mark@kingant.net>
parents: 11638
diff changeset
1386
58bc500cf226 [gaim-migrate @ 13919]
Mark Doliner <mark@kingant.net>
parents: 11638
diff changeset
1387 if (!temp_value) gaim_prefs_set_bool(pref, FALSE);
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1388
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1389 g_free(pref);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1390 }
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1391
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1392 /*
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1393 * Resets a sound file back to default.
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1394 */
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1395 static void
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1396 reset_sound(GtkWidget *button, gpointer i_am_also_NULL)
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1397 {
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1398 gchar *pref;
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1399
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1400 pref = g_strdup_printf("/gaim/gtk/sound/file/%s",
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1401 gaim_gtk_sound_get_event_option(sound_row_sel));
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1402 gaim_prefs_set_string(pref, "");
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1403 g_free(pref);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1404
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1405 gtk_entry_set_text(GTK_ENTRY(sound_entry), "(default)");
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1406 }
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1407
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1408 static void
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1409 sound_chosen_cb(void *user_data, const char *filename)
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1410 {
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1411 gchar *pref;
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1412 int sound;
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1413
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1414 sound = GPOINTER_TO_INT(user_data);
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1415
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1416 /* Set it -- and forget it */
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1417 pref = g_strdup_printf("/gaim/gtk/sound/file/%s",
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1418 gaim_gtk_sound_get_event_option(sound));
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1419 gaim_prefs_set_string(pref, filename);
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1420 g_free(pref);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1421
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1422 /*
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1423 * If the sound we just changed is still the currently selected
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1424 * sound, then update the box showing the file name.
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1425 */
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1426 if (sound == sound_row_sel)
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1427 gtk_entry_set_text(GTK_ENTRY(sound_entry), filename);
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1428 }
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1429
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1430 static void select_sound(GtkWidget *button, gpointer being_NULL_is_fun)
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1431 {
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1432 gchar *pref;
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1433 const char *filename;
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1434
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1435 pref = g_strdup_printf("/gaim/gtk/sound/file/%s",
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1436 gaim_gtk_sound_get_event_option(sound_row_sel));
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1437 filename = gaim_prefs_get_string(pref);
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1438 g_free(pref);
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1439
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1440 if (*filename == '\0')
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1441 filename = NULL;
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1442
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1443 gaim_request_file(prefs, _("Sound Selection"), filename, FALSE,
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1444 G_CALLBACK(sound_chosen_cb), NULL, GINT_TO_POINTER(sound_row_sel));
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1445 }
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1446
12815
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1447 #ifdef USE_AO
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1448 static gchar* prefs_sound_volume_format(GtkScale *scale, gdouble val)
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1449 {
13046
1becdaf72e6d [gaim-migrate @ 15405]
Richard Laager <rlaager@wiktel.com>
parents: 12900
diff changeset
1450 if(val < 15) {
1becdaf72e6d [gaim-migrate @ 15405]
Richard Laager <rlaager@wiktel.com>
parents: 12900
diff changeset
1451 return g_strdup_printf(_("Quietest"));
1becdaf72e6d [gaim-migrate @ 15405]
Richard Laager <rlaager@wiktel.com>
parents: 12900
diff changeset
1452 } else if(val < 30) {
1becdaf72e6d [gaim-migrate @ 15405]
Richard Laager <rlaager@wiktel.com>
parents: 12900
diff changeset
1453 return g_strdup_printf(_("Quieter"));
1becdaf72e6d [gaim-migrate @ 15405]
Richard Laager <rlaager@wiktel.com>
parents: 12900
diff changeset
1454 } else if(val < 45) {
1becdaf72e6d [gaim-migrate @ 15405]
Richard Laager <rlaager@wiktel.com>
parents: 12900
diff changeset
1455 return g_strdup_printf(_("Quiet"));
1becdaf72e6d [gaim-migrate @ 15405]
Richard Laager <rlaager@wiktel.com>
parents: 12900
diff changeset
1456 } else if(val < 55) {
1becdaf72e6d [gaim-migrate @ 15405]
Richard Laager <rlaager@wiktel.com>
parents: 12900
diff changeset
1457 return g_strdup_printf(_("Normal"));
1becdaf72e6d [gaim-migrate @ 15405]
Richard Laager <rlaager@wiktel.com>
parents: 12900
diff changeset
1458 } else if(val < 70) {
1becdaf72e6d [gaim-migrate @ 15405]
Richard Laager <rlaager@wiktel.com>
parents: 12900
diff changeset
1459 return g_strdup_printf(_("Loud"));
1becdaf72e6d [gaim-migrate @ 15405]
Richard Laager <rlaager@wiktel.com>
parents: 12900
diff changeset
1460 } else if(val < 85) {
1becdaf72e6d [gaim-migrate @ 15405]
Richard Laager <rlaager@wiktel.com>
parents: 12900
diff changeset
1461 return g_strdup_printf(_("Louder"));
12815
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1462 } else {
13046
1becdaf72e6d [gaim-migrate @ 15405]
Richard Laager <rlaager@wiktel.com>
parents: 12900
diff changeset
1463 return g_strdup_printf(_("Loudest"));
12815
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1464 }
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1465 }
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1466
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1467 static void prefs_sound_volume_changed(GtkRange *range)
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1468 {
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1469 int val = (int)gtk_range_get_value(GTK_RANGE(range));
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1470 gaim_prefs_set_int("/gaim/gtk/sound/volume", val);
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1471 }
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1472 #endif
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1473
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1474 static void prefs_sound_sel(GtkTreeSelection *sel, GtkTreeModel *model) {
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1475 GtkTreeIter iter;
12600
e856f985a0b9 [gaim-migrate @ 14934]
Richard Laager <rlaager@wiktel.com>
parents: 12580
diff changeset
1476 GValue val;
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1477 const char *file;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1478 char *pref;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1479
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1480 if (! gtk_tree_selection_get_selected (sel, &model, &iter))
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1481 return;
12600
e856f985a0b9 [gaim-migrate @ 14934]
Richard Laager <rlaager@wiktel.com>
parents: 12580
diff changeset
1482
e856f985a0b9 [gaim-migrate @ 14934]
Richard Laager <rlaager@wiktel.com>
parents: 12580
diff changeset
1483 val.g_type = 0;
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1484 gtk_tree_model_get_value (model, &iter, 3, &val);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1485 sound_row_sel = g_value_get_uint(&val);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1486
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1487 pref = g_strdup_printf("/gaim/gtk/sound/file/%s",
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1488 gaim_gtk_sound_get_event_option(sound_row_sel));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1489 file = gaim_prefs_get_string(pref);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1490 g_free(pref);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1491 if (sound_entry)
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1492 gtk_entry_set_text(GTK_ENTRY(sound_entry), (file && *file != '\0') ? file : "(default)");
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1493 g_value_unset (&val);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1494 }
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1495
10850
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1496 static GtkWidget *
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1497 sound_page()
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1498 {
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1499 GtkWidget *ret;
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1500 GtkWidget *vbox, *sw, *button;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1501 GtkSizeGroup *sg;
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1502 GtkTreeIter iter;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1503 GtkWidget *event_view;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1504 GtkListStore *event_store;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1505 GtkCellRenderer *rend;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1506 GtkTreeViewColumn *col;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1507 GtkTreeSelection *sel;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1508 GtkTreePath *path;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1509 GtkWidget *hbox;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1510 int j;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1511 const char *file;
11082
e25575a59f01 [gaim-migrate @ 13099]
Mark Doliner <mark@kingant.net>
parents: 11052
diff changeset
1512 char *pref;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1513 #ifndef _WIN32
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1514 GtkWidget *dd;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1515 GtkWidget *label;
6007
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1516 GtkWidget *entry;
5684
b61520e71679 [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5681
diff changeset
1517 const char *cmd;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1518 #endif
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1519
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1520 ret = gtk_vbox_new(FALSE, GAIM_HIG_CAT_SPACE);
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1521 gtk_container_set_border_width (GTK_CONTAINER (ret), GAIM_HIG_BORDER);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1522
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1523 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1524
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1525 #ifndef _WIN32
6033
22923270493f [gaim-migrate @ 6483]
Mark Doliner <mark@kingant.net>
parents: 6031
diff changeset
1526 vbox = gaim_gtk_make_frame (ret, _("Sound Method"));
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1527 dd = gaim_gtk_prefs_dropdown(vbox, _("_Method:"), GAIM_PREF_STRING,
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1528 "/gaim/gtk/sound/method",
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1529 _("Console beep"), "beep",
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1530 #ifdef USE_AO
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1531 _("Automatic"), "automatic",
11082
e25575a59f01 [gaim-migrate @ 13099]
Mark Doliner <mark@kingant.net>
parents: 11052
diff changeset
1532 "Arts", "arts",
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1533 "ESD", "esd",
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1534 "NAS", "nas",
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1535 #endif
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1536 _("Command"), "custom",
10074
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1537 _("No sounds"), "none",
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1538 NULL);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1539 gtk_size_group_add_widget(sg, dd);
10973
65c56b8490c5 [gaim-migrate @ 12798]
Mark Doliner <mark@kingant.net>
parents: 10972
diff changeset
1540 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0.5);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1541
12815
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1542 hbox = gtk_hbox_new(FALSE, GAIM_HIG_BOX_SPACE);
11442
73f7cfa46f1b [gaim-migrate @ 13681]
Richard Laager <rlaager@wiktel.com>
parents: 11424
diff changeset
1543 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1544
6031
855026933d50 [gaim-migrate @ 6481]
Mark Doliner <mark@kingant.net>
parents: 6016
diff changeset
1545 label = gtk_label_new_with_mnemonic(_("Sound c_ommand:\n(%s for filename)"));
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1546 gtk_size_group_add_widget(sg, label);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1547 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
11442
73f7cfa46f1b [gaim-migrate @ 13681]
Richard Laager <rlaager@wiktel.com>
parents: 11424
diff changeset
1548 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1549
6007
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1550 entry = gtk_entry_new();
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1551 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1552
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1553 gtk_editable_set_editable(GTK_EDITABLE(entry), TRUE);
5684
b61520e71679 [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5681
diff changeset
1554 cmd = gaim_prefs_get_string("/gaim/gtk/sound/command");
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1555 if(cmd)
6007
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1556 gtk_entry_set_text(GTK_ENTRY(entry), cmd);
11442
73f7cfa46f1b [gaim-migrate @ 13681]
Richard Laager <rlaager@wiktel.com>
parents: 11424
diff changeset
1557
73f7cfa46f1b [gaim-migrate @ 13681]
Richard Laager <rlaager@wiktel.com>
parents: 11424
diff changeset
1558 gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 0);
6007
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1559 g_signal_connect(G_OBJECT(entry), "changed",
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1560 G_CALLBACK(sound_cmd_yeah), NULL);
6005
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1561
12815
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1562 gaim_prefs_connect_callback(prefs, "/gaim/gtk/sound/method",
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1563 sound_changed1_cb, hbox);
6005
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1564 gtk_widget_set_sensitive(hbox,
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1565 !strcmp(gaim_prefs_get_string("/gaim/gtk/sound/method"),
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1566 "custom"));
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1567
8141
5efe3d9cd552 [gaim-migrate @ 8849]
Luke Schierer <lschiere@pidgin.im>
parents: 8137
diff changeset
1568 gaim_set_accessible_label (entry, label);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1569 #endif /* _WIN32 */
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1570
10074
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1571 vbox = gaim_gtk_make_frame (ret, _("Sound Options"));
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1572 gaim_gtk_prefs_checkbox(_("Sounds when conversation has _focus"),
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1573 "/gaim/gtk/sound/conv_focus", vbox);
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1574 gaim_gtk_prefs_checkbox(_("_Sounds while away"),
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1575 "/core/sound/while_away", vbox);
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1576
12815
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1577 #ifdef USE_AO
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1578 hbox = gtk_hbox_new(FALSE, GAIM_HIG_BOX_SPACE);
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1579 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1580
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1581 label = gtk_label_new_with_mnemonic(_("Volume:"));
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1582 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1583 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1584
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1585 sw = gtk_hscale_new_with_range(0.0, 100.0, 5.0);
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1586 gtk_range_set_increments(GTK_RANGE(sw), 5.0, 25.0);
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1587 gtk_range_set_value(GTK_RANGE(sw), gaim_prefs_get_int("/gaim/gtk/sound/volume"));
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1588 g_signal_connect (G_OBJECT (sw), "format-value",
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1589 G_CALLBACK (prefs_sound_volume_format),
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1590 NULL);
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1591 g_signal_connect (G_OBJECT (sw), "value-changed",
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1592 G_CALLBACK (prefs_sound_volume_changed),
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1593 NULL);
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1594 gtk_box_pack_start(GTK_BOX(hbox), sw, TRUE, TRUE, 0);
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1595
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1596 gaim_prefs_connect_callback(prefs, "/gaim/gtk/sound/method",
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1597 sound_changed3_cb, hbox);
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1598 sound_changed3_cb("/gaim/gtk/sound/method", GAIM_PREF_STRING,
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1599 gaim_prefs_get_string("/gaim/gtk/sound/method"), hbox);
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1600 #endif
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1601
10075
4670b7fd1a89 [gaim-migrate @ 11055]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10074
diff changeset
1602 #ifndef _WIN32
10074
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1603 gtk_widget_set_sensitive(vbox,
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1604 strcmp(gaim_prefs_get_string("/gaim/gtk/sound/method"), "none"));
10087
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
1605 gaim_prefs_connect_callback(prefs, "/gaim/gtk/sound/method",
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
1606 sound_changed2_cb, vbox);
10075
4670b7fd1a89 [gaim-migrate @ 11055]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10074
diff changeset
1607 #endif
10074
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1608
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1609 vbox = gaim_gtk_make_frame(ret, _("Sound Events"));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1610
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1611 /* The following is an ugly hack to make the frame expand so the
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1612 * sound events list is big enough to be usable */
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1613 gtk_box_set_child_packing(GTK_BOX(vbox->parent), vbox, TRUE, TRUE, 0,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1614 GTK_PACK_START);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1615 gtk_box_set_child_packing(GTK_BOX(vbox->parent->parent), vbox->parent, TRUE,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1616 TRUE, 0, GTK_PACK_START);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1617 gtk_box_set_child_packing(GTK_BOX(vbox->parent->parent->parent),
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1618 vbox->parent->parent, TRUE, TRUE, 0, GTK_PACK_START);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1619
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1620 sw = gtk_scrolled_window_new(NULL,NULL);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1621 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1622 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1623
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1624 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1625 event_store = gtk_list_store_new (4, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1626
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1627 for (j=0; j < GAIM_NUM_SOUNDS; j++) {
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1628 char *pref = g_strdup_printf("/gaim/gtk/sound/enabled/%s",
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1629 gaim_gtk_sound_get_event_option(j));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1630 const char *label = gaim_gtk_sound_get_event_label(j);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1631
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1632 if (label == NULL) {
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1633 g_free(pref);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1634 continue;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1635 }
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1636
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1637 gtk_list_store_append (event_store, &iter);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1638 gtk_list_store_set(event_store, &iter,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1639 0, gaim_prefs_get_bool(pref),
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1640 1, _(label),
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1641 2, pref,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1642 3, j,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1643 -1);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1644 g_free(pref);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1645 }
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1646
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1647 event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(event_store));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1648
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1649 rend = gtk_cell_renderer_toggle_new();
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1650 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1651 g_signal_connect (G_OBJECT (sel), "changed",
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1652 G_CALLBACK (prefs_sound_sel),
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1653 NULL);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1654 g_signal_connect (G_OBJECT(rend), "toggled",
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1655 G_CALLBACK(event_toggled), event_store);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1656 path = gtk_tree_path_new_first();
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1657 gtk_tree_selection_select_path(sel, path);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1658 gtk_tree_path_free(path);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1659
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1660 col = gtk_tree_view_column_new_with_attributes (_("Play"),
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1661 rend,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1662 "active", 0,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1663 NULL);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1664 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1665
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1666 rend = gtk_cell_renderer_text_new();
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1667 col = gtk_tree_view_column_new_with_attributes (_("Event"),
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1668 rend,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1669 "text", 1,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1670 NULL);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1671 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1672 g_object_unref(G_OBJECT(event_store));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1673 gtk_container_add(GTK_CONTAINER(sw), event_view);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1674
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1675 hbox = gtk_hbox_new(FALSE, GAIM_HIG_BOX_SPACE);
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1676 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1677 sound_entry = gtk_entry_new();
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1678 pref = g_strdup_printf("/gaim/gtk/sound/file/%s",
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1679 gaim_gtk_sound_get_event_option(0));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1680 file = gaim_prefs_get_string(pref);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1681 g_free(pref);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1682 gtk_entry_set_text(GTK_ENTRY(sound_entry), (file && *file != '\0') ? file : "(default)");
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1683 gtk_editable_set_editable(GTK_EDITABLE(sound_entry), FALSE);
12815
a8bffa7fb6ac [gaim-migrate @ 15163]
Richard Laager <rlaager@wiktel.com>
parents: 12812
diff changeset
1684 gtk_box_pack_start(GTK_BOX(hbox), sound_entry, FALSE, FALSE, GAIM_HIG_BOX_SPACE);
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1685
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1686 button = gtk_button_new_with_label(_("Test"));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1687 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(test_sound), NULL);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1688 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1689
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1690 button = gtk_button_new_with_label(_("Reset"));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1691 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(reset_sound), NULL);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1692 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1693
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1694 button = gtk_button_new_with_label(_("Choose..."));
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1695 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(select_sound), NULL);
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1696 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1697 gtk_widget_show_all(ret);
9118
2063f8de8f93 [gaim-migrate @ 9895]
Nathan Walp <nwalp@pidgin.im>
parents: 9112
diff changeset
1698
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1699 return ret;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1700 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1701
12195
d040123d2b69 [gaim-migrate @ 14497]
Sean Egan <seanegan@gmail.com>
parents: 12188
diff changeset
1702
10182
4085b2cda8f1 [gaim-migrate @ 11297]
Mark Doliner <mark@kingant.net>
parents: 10181
diff changeset
1703 static void
12195
d040123d2b69 [gaim-migrate @ 14497]
Sean Egan <seanegan@gmail.com>
parents: 12188
diff changeset
1704 set_idle_away(GaimSavedStatus *status)
10182
4085b2cda8f1 [gaim-migrate @ 11297]
Mark Doliner <mark@kingant.net>
parents: 10181
diff changeset
1705 {
12195
d040123d2b69 [gaim-migrate @ 14497]
Sean Egan <seanegan@gmail.com>
parents: 12188
diff changeset
1706 gaim_prefs_set_int("/core/savedstatus/idleaway", gaim_savedstatus_get_creation_time(status));
10182
4085b2cda8f1 [gaim-migrate @ 11297]
Mark Doliner <mark@kingant.net>
parents: 10181
diff changeset
1707 }
4085b2cda8f1 [gaim-migrate @ 11297]
Mark Doliner <mark@kingant.net>
parents: 10181
diff changeset
1708
12857
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1709 static void
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1710 set_startupstatus(GaimSavedStatus *status)
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1711 {
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1712 gaim_prefs_set_int("/core/savedstatus/startup", gaim_savedstatus_get_creation_time(status));
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1713 }
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1714
10850
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1715 static GtkWidget *
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1716 away_page()
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1717 {
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1718 GtkWidget *ret;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1719 GtkWidget *vbox;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1720 GtkWidget *hbox;
12575
9b0187ba0ec0 [gaim-migrate @ 14897]
Mark Doliner <mark@kingant.net>
parents: 12573
diff changeset
1721 GtkWidget *dd;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1722 GtkWidget *label;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1723 GtkWidget *button;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1724 GtkWidget *select;
12195
d040123d2b69 [gaim-migrate @ 14497]
Sean Egan <seanegan@gmail.com>
parents: 12188
diff changeset
1725 GtkWidget *menu;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1726 GtkSizeGroup *sg;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1727
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1728 ret = gtk_vbox_new(FALSE, GAIM_HIG_CAT_SPACE);
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1729 gtk_container_set_border_width (GTK_CONTAINER (ret), GAIM_HIG_BORDER);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1730
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1731 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1732
12573
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1733 /* Idle stuff */
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1734 vbox = gaim_gtk_make_frame(ret, _("Idle"));
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1735
12812
7e6de7079eeb [gaim-migrate @ 15160]
Richard Laager <rlaager@wiktel.com>
parents: 12763
diff changeset
1736 dd = gaim_gtk_prefs_dropdown(vbox, _("_Report idle time:"),
12573
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1737 GAIM_PREF_STRING, "/core/away/idle_reporting",
12812
7e6de7079eeb [gaim-migrate @ 15160]
Richard Laager <rlaager@wiktel.com>
parents: 12763
diff changeset
1738 _("Never"), "none",
7e6de7079eeb [gaim-migrate @ 15160]
Richard Laager <rlaager@wiktel.com>
parents: 12763
diff changeset
1739 _("From last sent message"), "gaim",
12573
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1740 #ifdef USE_SCREENSAVER
12812
7e6de7079eeb [gaim-migrate @ 15160]
Richard Laager <rlaager@wiktel.com>
parents: 12763
diff changeset
1741 _("Based on keyboard or mouse use"), "system",
12573
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1742 #endif
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1743 NULL);
12575
9b0187ba0ec0 [gaim-migrate @ 14897]
Mark Doliner <mark@kingant.net>
parents: 12573
diff changeset
1744 gtk_size_group_add_widget(sg, dd);
9b0187ba0ec0 [gaim-migrate @ 14897]
Mark Doliner <mark@kingant.net>
parents: 12573
diff changeset
1745 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0.5);
12573
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1746
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1747 /* Away stuff */
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1748 vbox = gaim_gtk_make_frame(ret, _("Away"));
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1749
12575
9b0187ba0ec0 [gaim-migrate @ 14897]
Mark Doliner <mark@kingant.net>
parents: 12573
diff changeset
1750 dd = gaim_gtk_prefs_dropdown(vbox, _("_Auto-reply:"),
9596
7b3212aa698c [gaim-migrate @ 10439]
Mark Doliner <mark@kingant.net>
parents: 9521
diff changeset
1751 GAIM_PREF_STRING, "/core/away/auto_reply",
7b3212aa698c [gaim-migrate @ 10439]
Mark Doliner <mark@kingant.net>
parents: 9521
diff changeset
1752 _("Never"), "never",
9736
bd61fb6021ad [gaim-migrate @ 10597]
Sean Egan <seanegan@gmail.com>
parents: 9730
diff changeset
1753 _("When away"), "away",
10859
310c5e6120fb [gaim-migrate @ 12542]
Mark Doliner <mark@kingant.net>
parents: 10850
diff changeset
1754 _("When both away and idle"), "awayidle",
9596
7b3212aa698c [gaim-migrate @ 10439]
Mark Doliner <mark@kingant.net>
parents: 9521
diff changeset
1755 NULL);
12575
9b0187ba0ec0 [gaim-migrate @ 14897]
Mark Doliner <mark@kingant.net>
parents: 12573
diff changeset
1756 gtk_size_group_add_widget(sg, dd);
9b0187ba0ec0 [gaim-migrate @ 14897]
Mark Doliner <mark@kingant.net>
parents: 12573
diff changeset
1757 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0.5);
6142
9a1c1b1764ac [gaim-migrate @ 6616]
Nathan Walp <nwalp@pidgin.im>
parents: 6141
diff changeset
1758
12573
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1759 /* Auto-away stuff */
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1760 vbox = gaim_gtk_make_frame(ret, _("Auto-away"));
11287
fb6e85c55fb8 [gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11275
diff changeset
1761
11811
924c6ba240e6 [gaim-migrate @ 14102]
Mark Doliner <mark@kingant.net>
parents: 11796
diff changeset
1762 button = gaim_gtk_prefs_checkbox(_("Change status when _idle"),
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1763 "/core/away/away_when_idle", vbox);
8238
32625c0dbba6 [gaim-migrate @ 8961]
Mark Doliner <mark@kingant.net>
parents: 8231
diff changeset
1764
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1765 select = gaim_gtk_prefs_labeled_spin_button(vbox,
11811
924c6ba240e6 [gaim-migrate @ 14102]
Mark Doliner <mark@kingant.net>
parents: 11796
diff changeset
1766 _("_Minutes before changing status:"), "/core/away/mins_before_away",
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1767 1, 24 * 60, sg);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1768 g_signal_connect(G_OBJECT(button), "clicked",
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1769 G_CALLBACK(gaim_gtk_toggle_sensitive), select);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1770
8238
32625c0dbba6 [gaim-migrate @ 8961]
Mark Doliner <mark@kingant.net>
parents: 8231
diff changeset
1771 hbox = gtk_hbox_new(FALSE, 0);
32625c0dbba6 [gaim-migrate @ 8961]
Mark Doliner <mark@kingant.net>
parents: 8231
diff changeset
1772 gtk_container_add(GTK_CONTAINER(vbox), hbox);
32625c0dbba6 [gaim-migrate @ 8961]
Mark Doliner <mark@kingant.net>
parents: 8231
diff changeset
1773
11811
924c6ba240e6 [gaim-migrate @ 14102]
Mark Doliner <mark@kingant.net>
parents: 11796
diff changeset
1774 label = gtk_label_new_with_mnemonic(_("Change _status to:"));
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1775 gtk_size_group_add_widget(sg, label);
10973
65c56b8490c5 [gaim-migrate @ 12798]
Mark Doliner <mark@kingant.net>
parents: 10972
diff changeset
1776 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
8238
32625c0dbba6 [gaim-migrate @ 8961]
Mark Doliner <mark@kingant.net>
parents: 8231
diff changeset
1777 g_signal_connect(G_OBJECT(button), "clicked",
32625c0dbba6 [gaim-migrate @ 8961]
Mark Doliner <mark@kingant.net>
parents: 8231
diff changeset
1778 G_CALLBACK(gaim_gtk_toggle_sensitive), label);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1779 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
12656
60cce1861e59 [gaim-migrate @ 14999]
Mark Doliner <mark@kingant.net>
parents: 12616
diff changeset
1780
60cce1861e59 [gaim-migrate @ 14999]
Mark Doliner <mark@kingant.net>
parents: 12616
diff changeset
1781 /* TODO: Show something useful if we don't have any saved statuses. */
12195
d040123d2b69 [gaim-migrate @ 14497]
Sean Egan <seanegan@gmail.com>
parents: 12188
diff changeset
1782 menu = gaim_gtk_status_menu(gaim_savedstatus_get_idleaway(), G_CALLBACK(set_idle_away));
d040123d2b69 [gaim-migrate @ 14497]
Sean Egan <seanegan@gmail.com>
parents: 12188
diff changeset
1783 gtk_box_pack_start(GTK_BOX(hbox), menu, FALSE, FALSE, 0);
d040123d2b69 [gaim-migrate @ 14497]
Sean Egan <seanegan@gmail.com>
parents: 12188
diff changeset
1784 g_signal_connect(G_OBJECT(button), "clicked",
d040123d2b69 [gaim-migrate @ 14497]
Sean Egan <seanegan@gmail.com>
parents: 12188
diff changeset
1785 G_CALLBACK(gaim_gtk_toggle_sensitive), menu);
12575
9b0187ba0ec0 [gaim-migrate @ 14897]
Mark Doliner <mark@kingant.net>
parents: 12573
diff changeset
1786 gtk_label_set_mnemonic_widget(GTK_LABEL(label), menu);
8238
32625c0dbba6 [gaim-migrate @ 8961]
Mark Doliner <mark@kingant.net>
parents: 8231
diff changeset
1787
5550
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1788 if (!gaim_prefs_get_bool("/core/away/away_when_idle")) {
12195
d040123d2b69 [gaim-migrate @ 14497]
Sean Egan <seanegan@gmail.com>
parents: 12188
diff changeset
1789 gtk_widget_set_sensitive(GTK_WIDGET(menu), FALSE);
5550
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1790 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE);
8238
32625c0dbba6 [gaim-migrate @ 8961]
Mark Doliner <mark@kingant.net>
parents: 8231
diff changeset
1791 gtk_widget_set_sensitive(GTK_WIDGET(label), FALSE);
5550
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1792 }
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1793
12857
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1794 /* Signon status stuff */
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1795 vbox = gaim_gtk_make_frame(ret, _("Status at startup"));
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1796
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1797 button = gaim_gtk_prefs_checkbox(_("Use status from last _exit at startup"),
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1798 "/core/savedstatus/startup_current_status", vbox);
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1799
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1800 hbox = gtk_hbox_new(FALSE, 0);
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1801 gtk_container_add(GTK_CONTAINER(vbox), hbox);
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1802
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1803 label = gtk_label_new_with_mnemonic(_("Status to a_pply at startup:"));
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1804 gtk_size_group_add_widget(sg, label);
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1805 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1806 g_signal_connect(G_OBJECT(button), "clicked",
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1807 G_CALLBACK(gaim_gtk_toggle_sensitive), label);
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1808 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1809
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1810 /* TODO: Show something useful if we don't have any saved statuses. */
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1811 menu = gaim_gtk_status_menu(gaim_savedstatus_get_startup(), G_CALLBACK(set_startupstatus));
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1812 gtk_box_pack_start(GTK_BOX(hbox), menu, FALSE, FALSE, 0);
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1813 g_signal_connect(G_OBJECT(button), "clicked",
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1814 G_CALLBACK(gaim_gtk_toggle_sensitive), menu);
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1815 gtk_label_set_mnemonic_widget(GTK_LABEL(label), menu);
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1816
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1817 if (gaim_prefs_get_bool("/core/savedstatus/startup_current_status")) {
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1818 gtk_widget_set_sensitive(GTK_WIDGET(menu), FALSE);
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1819 gtk_widget_set_sensitive(GTK_WIDGET(label), FALSE);
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1820 }
e5f780a6137b [gaim-migrate @ 15208]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 12845
diff changeset
1821
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1822 gtk_widget_show_all(ret);
5550
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1823
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1824 return ret;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1825 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1826
10759
56915e1b3ba3 [gaim-migrate @ 12362]
Mark Doliner <mark@kingant.net>
parents: 10701
diff changeset
1827 int prefs_notebook_add_page(const char *text,
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1828 GdkPixbuf *pixbuf,
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1829 GtkWidget *page,
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1830 GtkTreeIter *iter,
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1831 GtkTreeIter *parent,
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1832 int ind) {
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1833 GdkPixbuf *icon = NULL;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1834
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1835 if (pixbuf)
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1836 icon = gdk_pixbuf_scale_simple (pixbuf, 18, 18, GDK_INTERP_BILINEAR);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1837
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1838 if (pixbuf)
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1839 g_object_unref(pixbuf);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1840 if (icon)
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1841 g_object_unref(icon);
10759
56915e1b3ba3 [gaim-migrate @ 12362]
Mark Doliner <mark@kingant.net>
parents: 10701
diff changeset
1842
11380
eb49e64d02fd [gaim-migrate @ 13607]
Mark Doliner <mark@kingant.net>
parents: 11287
diff changeset
1843 #if GTK_CHECK_VERSION(2,4,0)
10759
56915e1b3ba3 [gaim-migrate @ 12362]
Mark Doliner <mark@kingant.net>
parents: 10701
diff changeset
1844 return gtk_notebook_append_page(GTK_NOTEBOOK(prefsnotebook), page, gtk_label_new(text));
11380
eb49e64d02fd [gaim-migrate @ 13607]
Mark Doliner <mark@kingant.net>
parents: 11287
diff changeset
1845 #else
eb49e64d02fd [gaim-migrate @ 13607]
Mark Doliner <mark@kingant.net>
parents: 11287
diff changeset
1846 gtk_notebook_append_page(GTK_NOTEBOOK(prefsnotebook), page, gtk_label_new(text));
eb49e64d02fd [gaim-migrate @ 13607]
Mark Doliner <mark@kingant.net>
parents: 11287
diff changeset
1847 return gtk_notebook_page_num(GTK_NOTEBOOK(prefsnotebook), page);
eb49e64d02fd [gaim-migrate @ 13607]
Mark Doliner <mark@kingant.net>
parents: 11287
diff changeset
1848 #endif
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1849 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1850
10871
6240d7fd5b2c [gaim-migrate @ 12558]
Mark Doliner <mark@kingant.net>
parents: 10859
diff changeset
1851 static void prefs_notebook_init() {
9267
3e8619644a8a [gaim-migrate @ 10066]
Tim Ringenbach <marv@pidgin.im>
parents: 9251
diff changeset
1852 GtkTreeIter p, c, c2;
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1853 prefs_notebook_add_page(_("Conversations"), NULL, conv_page(), &c, &p, notebook_page++);
9267
3e8619644a8a [gaim-migrate @ 10066]
Tim Ringenbach <marv@pidgin.im>
parents: 9251
diff changeset
1854 prefs_notebook_add_page(_("Smiley Themes"), NULL, theme_page(), &c2, &c, notebook_page++);
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1855 prefs_notebook_add_page(_("Sounds"), NULL, sound_page(), &c, &p, notebook_page++);
8238
32625c0dbba6 [gaim-migrate @ 8961]
Mark Doliner <mark@kingant.net>
parents: 8231
diff changeset
1856 prefs_notebook_add_page(_("Network"), NULL, network_page(), &p, NULL, notebook_page++);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1857 #ifndef _WIN32
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1858 /* We use the registered default browser in windows */
10060
7570908c558f [gaim-migrate @ 11030]
Tim Ringenbach <marv@pidgin.im>
parents: 9993
diff changeset
1859 /* if the user is running gnome 2.x, hide the browsers tab */
10061
83eb12b1f1a1 [gaim-migrate @ 11033]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10060
diff changeset
1860 if (gaim_running_gnome() == FALSE) {
10060
7570908c558f [gaim-migrate @ 11030]
Tim Ringenbach <marv@pidgin.im>
parents: 9993
diff changeset
1861 prefs_notebook_add_page(_("Browser"), NULL, browser_page(), &p, NULL, notebook_page++);
7570908c558f [gaim-migrate @ 11030]
Tim Ringenbach <marv@pidgin.im>
parents: 9993
diff changeset
1862 }
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1863 #endif
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1864 prefs_notebook_add_page(_("Logging"), NULL, logging_page(), &p, NULL, notebook_page++);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1865 prefs_notebook_add_page(_("Away / Idle"), NULL, away_page(), &p, NULL, notebook_page++);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1866 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1867
5530
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1868 void gaim_gtk_prefs_show(void)
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1869 {
10078
436fe70b4d50 [gaim-migrate @ 11060]
Sean Egan <seanegan@gmail.com>
parents: 10075
diff changeset
1870 GtkWidget *vbox;
8292
90ed519c6645 [gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents: 8283
diff changeset
1871 GtkWidget *bbox;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1872 GtkWidget *notebook;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1873 GtkWidget *button;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1874
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1875 if (prefs) {
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1876 gtk_window_present(GTK_WINDOW(prefs));
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1877 return;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1878 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1879
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1880 /* copy the preferences to tmp values...
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1881 * I liked "take affect immediately" Oh well :-( */
6016
1e4a574bb46d [gaim-migrate @ 6466]
Mark Doliner <mark@kingant.net>
parents: 6007
diff changeset
1882 /* (that should have been "effect," right?) */
1e4a574bb46d [gaim-migrate @ 6466]
Mark Doliner <mark@kingant.net>
parents: 6007
diff changeset
1883
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1884 /* Back to instant-apply! I win! BU-HAHAHA! */
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1885
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1886 /* Create the window */
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1887 prefs = gtk_window_new(GTK_WINDOW_TOPLEVEL);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1888 gtk_window_set_role(GTK_WINDOW(prefs), "preferences");
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1889 gtk_window_set_title(GTK_WINDOW(prefs), _("Preferences"));
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1890 gtk_window_set_resizable (GTK_WINDOW(prefs), FALSE);
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1891 gtk_container_set_border_width(GTK_CONTAINER(prefs), GAIM_HIG_BORDER);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1892 g_signal_connect(G_OBJECT(prefs), "destroy",
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1893 G_CALLBACK(delete_prefs), NULL);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1894
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1895 vbox = gtk_vbox_new(FALSE, GAIM_HIG_BORDER);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1896 gtk_container_add(GTK_CONTAINER(prefs), vbox);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1897 gtk_widget_show(vbox);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1898
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1899 /* The notebook */
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1900 prefsnotebook = notebook = gtk_notebook_new ();
10078
436fe70b4d50 [gaim-migrate @ 11060]
Sean Egan <seanegan@gmail.com>
parents: 10075
diff changeset
1901 gtk_box_pack_start (GTK_BOX (vbox), notebook, FALSE, FALSE, 0);
11740
7e0ad3b6882a [gaim-migrate @ 14031]
Sean Egan <seanegan@gmail.com>
parents: 11709
diff changeset
1902 gtk_widget_show(prefsnotebook);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1903
8713
7024b595b6ae [gaim-migrate @ 9467]
Luke Schierer <lschiere@pidgin.im>
parents: 8705
diff changeset
1904 /* The buttons to press! */
8292
90ed519c6645 [gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents: 8283
diff changeset
1905 bbox = gtk_hbutton_box_new();
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1906 gtk_box_set_spacing(GTK_BOX(bbox), GAIM_HIG_BOX_SPACE);
8292
90ed519c6645 [gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents: 8283
diff changeset
1907 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
90ed519c6645 [gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents: 8283
diff changeset
1908 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
90ed519c6645 [gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents: 8283
diff changeset
1909 gtk_widget_show (bbox);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1910
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1911 button = gtk_button_new_from_stock (GTK_STOCK_CLOSE);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1912 g_signal_connect_swapped(G_OBJECT(button), "clicked",
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1913 G_CALLBACK(gtk_widget_destroy), prefs);
8292
90ed519c6645 [gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents: 8283
diff changeset
1914 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1915 gtk_widget_show(button);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1916
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1917 prefs_notebook_init();
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1918
5568
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1919 /* Show everything. */
11740
7e0ad3b6882a [gaim-migrate @ 14031]
Sean Egan <seanegan@gmail.com>
parents: 11709
diff changeset
1920 gtk_widget_show(prefs);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1921 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1922
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1923 static void
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1924 set_bool_pref(GtkWidget *w, const char *key)
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1925 {
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1926 gaim_prefs_set_bool(key,
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1927 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)));
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1928 }
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1929
7976
8e5a21b1efa6 [gaim-migrate @ 8653]
Nathan Walp <nwalp@pidgin.im>
parents: 7940
diff changeset
1930 GtkWidget *
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1931 gaim_gtk_prefs_checkbox(const char *text, const char *key, GtkWidget *page)
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1932 {
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1933 GtkWidget *button;
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1934
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1935 button = gtk_check_button_new_with_mnemonic(text);
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1936 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1937 gaim_prefs_get_bool(key));
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1938
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1939 gtk_box_pack_start(GTK_BOX(page), button, FALSE, FALSE, 0);
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1940
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1941 g_signal_connect(G_OBJECT(button), "clicked",
5551
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
1942 G_CALLBACK(set_bool_pref), (char *)key);
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1943
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1944 gtk_widget_show(button);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1945
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1946 return button;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1947 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1948
5770
a86051df9122 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
1949 static void
12816
ff267281e882 [gaim-migrate @ 15164]
Mark Doliner <mark@kingant.net>
parents: 12815
diff changeset
1950 smiley_theme_pref_cb(const char *name, GaimPrefType type,
ff267281e882 [gaim-migrate @ 15164]
Mark Doliner <mark@kingant.net>
parents: 12815
diff changeset
1951 gconstpointer value, gpointer data)
5770
a86051df9122 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
1952 {
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1953 const char *themename = value;
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1954 GSList *themes;
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1955
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1956 for (themes = smiley_themes; themes; themes = themes->next) {
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1957 struct smiley_theme *smile = themes->data;
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1958 if (smile->name && strcmp(themename, smile->name) == 0) {
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1959 gaim_gtkthemes_load_smiley_theme(smile->path, TRUE);
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1960 break;
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1961 }
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1962 }
5770
a86051df9122 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
1963 }
a86051df9122 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
1964
5530
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1965 void
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1966 gaim_gtk_prefs_init(void)
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1967 {
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1968 gaim_prefs_add_none("/gaim");
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1969 gaim_prefs_add_none("/gaim/gtk");
5550
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1970 gaim_prefs_add_none("/plugins/gtk");
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1971
8283
35f69749b226 [gaim-migrate @ 9007]
Luke Schierer <lschiere@pidgin.im>
parents: 8274
diff changeset
1972 #ifndef _WIN32
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1973 /* Browsers */
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1974 gaim_prefs_add_none("/gaim/gtk/browsers");
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
1975 gaim_prefs_add_int("/gaim/gtk/browsers/place", GAIM_BROWSER_DEFAULT);
5560
b7319c094153 [gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents: 5554
diff changeset
1976 gaim_prefs_add_string("/gaim/gtk/browsers/command", "");
5546
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
1977 gaim_prefs_add_string("/gaim/gtk/browsers/browser", "mozilla");
8283
35f69749b226 [gaim-migrate @ 9007]
Luke Schierer <lschiere@pidgin.im>
parents: 8274
diff changeset
1978 #endif
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1979
5949
90d0849abd3c [gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1980 /* Plugins */
5982
35d3c1ac5ece [gaim-migrate @ 6430]
Christian Hammond <chipx86@chipx86.com>
parents: 5981
diff changeset
1981 gaim_prefs_add_none("/gaim/gtk/plugins");
5949
90d0849abd3c [gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1982 gaim_prefs_add_string_list("/gaim/gtk/plugins/loaded", NULL);
90d0849abd3c [gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1983
10605
56d4460bb6bd [gaim-migrate @ 12037]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10589
diff changeset
1984 /* File locations */
56d4460bb6bd [gaim-migrate @ 12037]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10589
diff changeset
1985 gaim_prefs_add_none("/gaim/gtk/filelocations");
56d4460bb6bd [gaim-migrate @ 12037]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10589
diff changeset
1986 gaim_prefs_add_string("/gaim/gtk/filelocations/last_save_folder", "");
56d4460bb6bd [gaim-migrate @ 12037]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10589
diff changeset
1987 gaim_prefs_add_string("/gaim/gtk/filelocations/last_open_folder", "");
56d4460bb6bd [gaim-migrate @ 12037]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10589
diff changeset
1988 gaim_prefs_add_string("/gaim/gtk/filelocations/last_icon_folder", "");
56d4460bb6bd [gaim-migrate @ 12037]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10589
diff changeset
1989
5539
de09863bd4b5 [gaim-migrate @ 5939]
Christian Hammond <chipx86@chipx86.com>
parents: 5535
diff changeset
1990 /* Smiley Themes */
5546
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
1991 gaim_prefs_add_none("/gaim/gtk/smileys");
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1992 gaim_prefs_add_string("/gaim/gtk/smileys/theme", "Default");
5770
a86051df9122 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
1993
a86051df9122 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
1994 /* Smiley Callbacks */
10087
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
1995 gaim_prefs_connect_callback(prefs, "/gaim/gtk/smileys/theme",
5770
a86051df9122 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
1996 smiley_theme_pref_cb, NULL);
5530
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1997 }
8905
438e8d857554 [gaim-migrate @ 9674]
Mark Doliner <mark@kingant.net>
parents: 8900
diff changeset
1998
438e8d857554 [gaim-migrate @ 9674]
Mark Doliner <mark@kingant.net>
parents: 8900
diff changeset
1999 void gaim_gtk_prefs_update_old() {
438e8d857554 [gaim-migrate @ 9674]
Mark Doliner <mark@kingant.net>
parents: 8900
diff changeset
2000 /* Rename some old prefs */
438e8d857554 [gaim-migrate @ 9674]
Mark Doliner <mark@kingant.net>
parents: 8900
diff changeset
2001 gaim_prefs_rename("/gaim/gtk/logging/log_ims", "/core/logging/log_ims");
438e8d857554 [gaim-migrate @ 9674]
Mark Doliner <mark@kingant.net>
parents: 8900
diff changeset
2002 gaim_prefs_rename("/gaim/gtk/logging/log_chats", "/core/logging/log_chats");
438e8d857554 [gaim-migrate @ 9674]
Mark Doliner <mark@kingant.net>
parents: 8900
diff changeset
2003 gaim_prefs_rename("/core/conversations/placement",
8998
3738d1eac0ad [gaim-migrate @ 9773]
Luke Schierer <lschiere@pidgin.im>
parents: 8994
diff changeset
2004 "/gaim/gtk/conversations/placement");
8905
438e8d857554 [gaim-migrate @ 9674]
Mark Doliner <mark@kingant.net>
parents: 8900
diff changeset
2005
10307
2ac21bf20e04 [gaim-migrate @ 11497]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
2006 gaim_prefs_rename("/gaim/gtk/debug/timestamps", "/core/debug/timestamps");
10701
e4d893b12624 [gaim-migrate @ 12283]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10676
diff changeset
2007 gaim_prefs_rename("/gaim/gtk/conversations/im/raise_on_events", "/plugins/gtk/X11/notify/method_raise");
10307
2ac21bf20e04 [gaim-migrate @ 11497]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
2008
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
2009 gaim_prefs_rename_boolean_toggle("/gaim/gtk/conversations/ignore_colors",
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
2010 "/gaim/gtk/conversations/show_incoming_formatting");
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
2011
12573
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
2012 /* this string pref moved into the core, try to be friendly */
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
2013 gaim_prefs_rename("/gaim/gtk/idle/reporting_method", "/core/away/idle_reporting");
12154
24bde295d755 [gaim-migrate @ 14455]
Stu Tomlinson <stu@nosnilmot.com>
parents: 12152
diff changeset
2014
8905
438e8d857554 [gaim-migrate @ 9674]
Mark Doliner <mark@kingant.net>
parents: 8900
diff changeset
2015 /* Remove some no-longer-used prefs */
10398
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
2016 gaim_prefs_remove("/gaim/gtk/blist/auto_expand_contacts");
10133
e144efd6a5be [gaim-migrate @ 11197]
Mark Doliner <mark@kingant.net>
parents: 10129
diff changeset
2017 gaim_prefs_remove("/gaim/gtk/blist/button_style");
10168
e6372844a4b8 [gaim-migrate @ 11257]
Mark Doliner <mark@kingant.net>
parents: 10167
diff changeset
2018 gaim_prefs_remove("/gaim/gtk/blist/grey_idle_buddies");
10133
e144efd6a5be [gaim-migrate @ 11197]
Mark Doliner <mark@kingant.net>
parents: 10129
diff changeset
2019 gaim_prefs_remove("/gaim/gtk/blist/raise_on_events");
8945
6d7b403b11bb [gaim-migrate @ 9717]
Mark Doliner <mark@kingant.net>
parents: 8944
diff changeset
2020 gaim_prefs_remove("/gaim/gtk/blist/show_group_count");
10353
fc7168f9ecb0 [gaim-migrate @ 11570]
Mark Doliner <mark@kingant.net>
parents: 10351
diff changeset
2021 gaim_prefs_remove("/gaim/gtk/blist/show_warning_level");
10358
524674a4f6bb [gaim-migrate @ 11576]
Mark Doliner <mark@kingant.net>
parents: 10356
diff changeset
2022 gaim_prefs_remove("/gaim/gtk/conversations/button_type");
10398
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
2023 gaim_prefs_remove("/gaim/gtk/conversations/ctrl_enter_sends");
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
2024 gaim_prefs_remove("/gaim/gtk/conversations/enter_sends");
11697
186d2d293ef4 [gaim-migrate @ 13988]
Mark Doliner <mark@kingant.net>
parents: 11642
diff changeset
2025 gaim_prefs_remove("/gaim/gtk/conversations/escape_closes");
10164
3f71f7282dbf [gaim-migrate @ 11250]
Mark Doliner <mark@kingant.net>
parents: 10163
diff changeset
2026 gaim_prefs_remove("/gaim/gtk/conversations/html_shortcuts");
8946
80944edf8d80 [gaim-migrate @ 9718]
Mark Doliner <mark@kingant.net>
parents: 8945
diff changeset
2027 gaim_prefs_remove("/gaim/gtk/conversations/icons_on_tabs");
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
2028 gaim_prefs_remove("/gaim/gtk/conversations/send_formatting");
10398
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
2029 gaim_prefs_remove("/gaim/gtk/conversations/show_smileys");
8905
438e8d857554 [gaim-migrate @ 9674]
Mark Doliner <mark@kingant.net>
parents: 8900
diff changeset
2030 gaim_prefs_remove("/gaim/gtk/conversations/show_urls_as_links");
10164
3f71f7282dbf [gaim-migrate @ 11250]
Mark Doliner <mark@kingant.net>
parents: 10163
diff changeset
2031 gaim_prefs_remove("/gaim/gtk/conversations/smiley_shortcuts");
9025
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
2032 gaim_prefs_remove("/gaim/gtk/conversations/use_custom_bgcolor");
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
2033 gaim_prefs_remove("/gaim/gtk/conversations/use_custom_fgcolor");
11269
1cbe76d30e81 [gaim-migrate @ 13451]
Richard Laager <rlaager@wiktel.com>
parents: 11267
diff changeset
2034 gaim_prefs_remove("/gaim/gtk/conversations/use_custom_font");
9025
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
2035 gaim_prefs_remove("/gaim/gtk/conversations/use_custom_size");
10398
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
2036 gaim_prefs_remove("/gaim/gtk/conversations/chat/old_tab_complete");
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
2037 gaim_prefs_remove("/gaim/gtk/conversations/chat/tab_completion");
9301
3d5519a84d02 [gaim-migrate @ 10105]
Mark Doliner <mark@kingant.net>
parents: 9285
diff changeset
2038 gaim_prefs_remove("/gaim/gtk/conversations/im/hide_on_send");
10398
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
2039 gaim_prefs_remove("/gaim/gtk/conversations/chat/color_nicks");
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
2040 gaim_prefs_remove("/gaim/gtk/conversations/chat/raise_on_events");
10492
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10489
diff changeset
2041 gaim_prefs_remove("/gaim/gtk/conversations/ignore_fonts");
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10489
diff changeset
2042 gaim_prefs_remove("/gaim/gtk/conversations/ignore_font_sizes");
12272
3ef381cdc47e [gaim-migrate @ 14574]
Mark Doliner <mark@kingant.net>
parents: 12240
diff changeset
2043 gaim_prefs_remove("/gaim/gtk/idle");
10398
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
2044 gaim_prefs_remove("/gaim/gtk/logging/individual_logs");
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
2045 gaim_prefs_remove("/gaim/gtk/sound/signon");
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
2046 gaim_prefs_remove("/gaim/gtk/sound/silent_signon");
12616
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
2047
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
2048 /* Convert old queuing prefs to hide_new 3-way pref. */
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
2049 if (gaim_prefs_exists("/plugins/gtk/docklet/queue_messages") &&
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
2050 gaim_prefs_get_bool("/plugins/gtk/docklet/queue_messages"))
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
2051 {
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
2052 gaim_prefs_set_string("/gaim/gtk/conversations/im/hide_new", "always");
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
2053 }
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
2054 else if (gaim_prefs_exists("/gaim/gtk/away/queue_messages") &&
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
2055 gaim_prefs_get_bool("/gaim/gtk/away/queue_messages"))
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
2056 {
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
2057 gaim_prefs_set_string("/gaim/gtk/conversations/im/hide_new", "away");
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
2058 }
12116
e75ef7aa913e [gaim-migrate @ 14416]
Luke Schierer <lschiere@pidgin.im>
parents: 12067
diff changeset
2059 gaim_prefs_remove("/gaim/gtk/away/queue_messages");
12281
970fec1d7062 [gaim-migrate @ 14585]
Mark Doliner <mark@kingant.net>
parents: 12272
diff changeset
2060 gaim_prefs_remove("/gaim/gtk/away");
12116
e75ef7aa913e [gaim-migrate @ 14416]
Luke Schierer <lschiere@pidgin.im>
parents: 12067
diff changeset
2061 gaim_prefs_remove("/plugins/gtk/docklet/queue_messages");
8905
438e8d857554 [gaim-migrate @ 9674]
Mark Doliner <mark@kingant.net>
parents: 8900
diff changeset
2062 }