annotate src/gtkprefs.c @ 12692:4da7062a06c2

[gaim-migrate @ 15035] SF Patch #1277888 from Douglas Thrift I modified this a bit, but the end result is: This patch adds a logging preference that defaults to off. When enabled, the date is included in messages' timestamps in logs (in addition to the time). This can be useful if you leave conversations open for days (for me, that's chats). The original patch had this affect timestamps in the conversation window as well, but I didn't like that. I figured it probably wasn't necessary, and I was dreading adding another conversation pref. I welcome feedback on this issue. committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Tue, 03 Jan 2006 06:33:00 +0000
parents 60cce1861e59
children 0d73d0e177ad
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 bold = italic = uline = FALSE;
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
703 gtk_imhtml_get_current_format(GTK_IMHTML(imhtml),
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
704 &bold, &italic, &uline);
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
705
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
706 if (buttons & GTK_IMHTML_BOLD)
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
707 gaim_prefs_set_bool("/gaim/gtk/conversations/send_bold", bold);
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
708 if (buttons & GTK_IMHTML_ITALIC)
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
709 gaim_prefs_set_bool("/gaim/gtk/conversations/send_italic", italic);
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
710 if (buttons & GTK_IMHTML_UNDERLINE)
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
711 gaim_prefs_set_bool("/gaim/gtk/conversations/send_underline", uline);
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
712
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
713 if (buttons & GTK_IMHTML_GROW || buttons & GTK_IMHTML_SHRINK)
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
714 gaim_prefs_set_int("/gaim/gtk/conversations/font_size",
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
715 gtk_imhtml_get_current_fontsize(GTK_IMHTML(imhtml)));
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
716 if (buttons & GTK_IMHTML_FACE) {
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
717 char *face = gtk_imhtml_get_current_fontface(GTK_IMHTML(imhtml));
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
718 if (!face)
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
719 face = g_strdup("");
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
720
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
721 gaim_prefs_set_string("/gaim/gtk/conversations/font_face", face);
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
722 g_free(face);
5530
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
723 }
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
724
9025
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
725 if (buttons & GTK_IMHTML_FORECOLOR) {
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
726 char *color = gtk_imhtml_get_current_forecolor(GTK_IMHTML(imhtml));
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
727 if (!color)
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
728 color = g_strdup("");
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
729
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
730 gaim_prefs_set_string("/gaim/gtk/conversations/fgcolor", color);
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
731 g_free(color);
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
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
734 if (buttons & GTK_IMHTML_BACKCOLOR) {
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
735 char *color;
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
736 GObject *object;
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
737
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
738 color = gtk_imhtml_get_current_backcolor(GTK_IMHTML(imhtml));
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
739 if (!color)
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
740 color = g_strdup("");
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
741
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
742 /* Block the signal to prevent a loop. */
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
743 object = g_object_ref(G_OBJECT(imhtml));
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
744 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
745 NULL, toolbar);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
746 /* Clear the backcolor. */
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
747 gtk_imhtml_toggle_backcolor(GTK_IMHTML(imhtml), "");
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
748 /* Unblock the signal. */
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
749 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
750 NULL, toolbar);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
751 g_object_unref(object);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
752
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
753 /* This will fire a toggle signal and get saved below. */
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
754 gtk_imhtml_toggle_background(GTK_IMHTML(imhtml), color);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
755
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
756 g_free(color);
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
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
759 if (buttons & GTK_IMHTML_BACKGROUND) {
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
760 char *color = gtk_imhtml_get_current_background(GTK_IMHTML(imhtml));
9025
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
761 if (!color)
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
762 color = g_strdup("");
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
763
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
764 gaim_prefs_set_string("/gaim/gtk/conversations/bgcolor", color);
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
765 g_free(color);
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
766 }
5530
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
767 }
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
768
11275
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
769 static void
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
770 formatting_clear_cb(GtkIMHtml *imhtml, void *data)
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
771 {
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
772 gaim_prefs_set_bool("/gaim/gtk/conversations/send_bold", FALSE);
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
773 gaim_prefs_set_bool("/gaim/gtk/conversations/send_italic", FALSE);
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
774 gaim_prefs_set_bool("/gaim/gtk/conversations/send_underline", FALSE);
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
775
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
776 gaim_prefs_set_int("/gaim/gtk/conversations/font_size", 3);
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
777
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
778 gaim_prefs_set_string("/gaim/gtk/conversations/font_face", "");
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
779 gaim_prefs_set_string("/gaim/gtk/conversations/fgcolor", "");
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
780 gaim_prefs_set_string("/gaim/gtk/conversations/bgcolor", "");
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
781 }
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
782
8979
e2ad3e04d248 [gaim-migrate @ 9753]
Luke Schierer <lschiere@pidgin.im>
parents: 8966
diff changeset
783 static void
9155
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
784 conversation_usetabs_cb(const char *name, GaimPrefType type, gpointer value,
8979
e2ad3e04d248 [gaim-migrate @ 9753]
Luke Schierer <lschiere@pidgin.im>
parents: 8966
diff changeset
785 gpointer data)
e2ad3e04d248 [gaim-migrate @ 9753]
Luke Schierer <lschiere@pidgin.im>
parents: 8966
diff changeset
786 {
10112
1a91e814e9d8 [gaim-migrate @ 11145]
Nathan Walp <nwalp@pidgin.im>
parents: 10108
diff changeset
787 gboolean usetabs = GPOINTER_TO_INT(value);
9155
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
788
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
789 if (usetabs)
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
790 gtk_widget_set_sensitive(GTK_WIDGET(data), TRUE);
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
791 else
8979
e2ad3e04d248 [gaim-migrate @ 9753]
Luke Schierer <lschiere@pidgin.im>
parents: 8966
diff changeset
792 gtk_widget_set_sensitive(GTK_WIDGET(data), FALSE);
e2ad3e04d248 [gaim-migrate @ 9753]
Luke Schierer <lschiere@pidgin.im>
parents: 8966
diff changeset
793 }
e2ad3e04d248 [gaim-migrate @ 9753]
Luke Schierer <lschiere@pidgin.im>
parents: 8966
diff changeset
794
10850
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
795 static GtkWidget *
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
796 conv_page()
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
797 {
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
798 GtkWidget *ret;
11271
b33eccbc3a10 [gaim-migrate @ 13454]
Richard Laager <rlaager@wiktel.com>
parents: 11269
diff changeset
799 GtkWidget *vbox;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
800 GtkWidget *label;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
801 GList *names = NULL;
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
802 GtkWidget *frame;
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
803 GtkWidget *imhtml;
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
804 GtkWidget *toolbar;
11271
b33eccbc3a10 [gaim-migrate @ 13454]
Richard Laager <rlaager@wiktel.com>
parents: 11269
diff changeset
805 GtkWidget *hbox;
b33eccbc3a10 [gaim-migrate @ 13454]
Richard Laager <rlaager@wiktel.com>
parents: 11269
diff changeset
806 GtkWidget *vbox2;
11922
19b46e4e43a0 [gaim-migrate @ 14213]
Mark Doliner <mark@kingant.net>
parents: 11888
diff changeset
807 GtkWidget *iconpref1;
19b46e4e43a0 [gaim-migrate @ 14213]
Mark Doliner <mark@kingant.net>
parents: 11888
diff changeset
808 GtkWidget *iconpref2;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
809
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
810 ret = gtk_vbox_new(FALSE, GAIM_HIG_BOX_SPACE);
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
811 gtk_container_set_border_width(GTK_CONTAINER(ret), GAIM_HIG_BORDER);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
812
5530
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
813 vbox = gaim_gtk_make_frame(ret, _("Conversations"));
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
814
12116
e75ef7aa913e [gaim-migrate @ 14416]
Luke Schierer <lschiere@pidgin.im>
parents: 12067
diff changeset
815 gaim_gtk_prefs_dropdown(vbox, _("_Hide new IM conversations"),
e75ef7aa913e [gaim-migrate @ 14416]
Luke Schierer <lschiere@pidgin.im>
parents: 12067
diff changeset
816 GAIM_PREF_STRING, "/gaim/gtk/conversations/im/hide_new",
e75ef7aa913e [gaim-migrate @ 14416]
Luke Schierer <lschiere@pidgin.im>
parents: 12067
diff changeset
817 _("Never"), "never",
e75ef7aa913e [gaim-migrate @ 14416]
Luke Schierer <lschiere@pidgin.im>
parents: 12067
diff changeset
818 _("When away"), "away",
e75ef7aa913e [gaim-migrate @ 14416]
Luke Schierer <lschiere@pidgin.im>
parents: 12067
diff changeset
819 _("Always"), "always",
e75ef7aa913e [gaim-migrate @ 14416]
Luke Schierer <lschiere@pidgin.im>
parents: 12067
diff changeset
820 NULL);
e75ef7aa913e [gaim-migrate @ 14416]
Luke Schierer <lschiere@pidgin.im>
parents: 12067
diff changeset
821
9832
54e0322c81fb [gaim-migrate @ 10703]
Tim Ringenbach <marv@pidgin.im>
parents: 9827
diff changeset
822 gaim_gtk_prefs_checkbox(_("Send unknown \"_slash\" commands as messages"),
54e0322c81fb [gaim-migrate @ 10703]
Tim Ringenbach <marv@pidgin.im>
parents: 9827
diff changeset
823 "/gaim/gtk/conversations/passthrough_unknown_commands", vbox);
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
824 gaim_gtk_prefs_checkbox(_("Show _formatting on incoming messages"),
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
825 "/gaim/gtk/conversations/show_incoming_formatting", vbox);
11922
19b46e4e43a0 [gaim-migrate @ 14213]
Mark Doliner <mark@kingant.net>
parents: 11888
diff changeset
826
19b46e4e43a0 [gaim-migrate @ 14213]
Mark Doliner <mark@kingant.net>
parents: 11888
diff changeset
827 iconpref1 = gaim_gtk_prefs_checkbox(_("Show buddy _icons"),
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
828 "/gaim/gtk/conversations/im/show_buddy_icons", vbox);
11922
19b46e4e43a0 [gaim-migrate @ 14213]
Mark Doliner <mark@kingant.net>
parents: 11888
diff changeset
829 iconpref2 = gaim_gtk_prefs_checkbox(_("Enable buddy ic_on animation"),
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
830 "/gaim/gtk/conversations/im/animate_buddy_icons", vbox);
11922
19b46e4e43a0 [gaim-migrate @ 14213]
Mark Doliner <mark@kingant.net>
parents: 11888
diff changeset
831 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
832 gtk_widget_set_sensitive(iconpref2, FALSE);
19b46e4e43a0 [gaim-migrate @ 14213]
Mark Doliner <mark@kingant.net>
parents: 11888
diff changeset
833 g_signal_connect(G_OBJECT(iconpref1), "clicked",
19b46e4e43a0 [gaim-migrate @ 14213]
Mark Doliner <mark@kingant.net>
parents: 11888
diff changeset
834 G_CALLBACK(gaim_gtk_toggle_sensitive), iconpref2);
19b46e4e43a0 [gaim-migrate @ 14213]
Mark Doliner <mark@kingant.net>
parents: 11888
diff changeset
835
9155
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
836 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
837 "/core/conversations/im/send_typing", vbox);
12067
e859c1663a27 [gaim-migrate @ 14362]
Richard Laager <rlaager@wiktel.com>
parents: 12061
diff changeset
838 #ifdef USE_GTKSPELL
12240
1c0fd404e07e [gaim-migrate @ 14542]
Mark Doliner <mark@kingant.net>
parents: 12195
diff changeset
839 gaim_gtk_prefs_checkbox(_("Highlight _misspelled words"),
12067
e859c1663a27 [gaim-migrate @ 14362]
Richard Laager <rlaager@wiktel.com>
parents: 12061
diff changeset
840 "/gaim/gtk/conversations/spellcheck", vbox);
e859c1663a27 [gaim-migrate @ 14362]
Richard Laager <rlaager@wiktel.com>
parents: 12061
diff changeset
841 #endif
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
842
12553
9d7fb0b21d9f [gaim-migrate @ 14871]
Nathan Walp <nwalp@pidgin.im>
parents: 12472
diff changeset
843 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
844
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
845 frame = gaim_gtk_create_imhtml(TRUE, &imhtml, &toolbar);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
846 gtk_widget_set_name(imhtml, "gaim_gtkprefs_font_imhtml");
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
847 gtk_imhtml_set_whole_buffer_formatting_only(GTK_IMHTML(imhtml), TRUE);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
848 gtk_imhtml_set_format_functions(GTK_IMHTML(imhtml),
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
849 GTK_IMHTML_BOLD |
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
850 GTK_IMHTML_ITALIC |
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
851 GTK_IMHTML_UNDERLINE |
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
852 GTK_IMHTML_GROW |
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
853 GTK_IMHTML_SHRINK |
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
854 GTK_IMHTML_FACE |
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
855 GTK_IMHTML_FORECOLOR |
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
856 GTK_IMHTML_BACKCOLOR |
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
857 GTK_IMHTML_BACKGROUND);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
858
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
859 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
860
11271
b33eccbc3a10 [gaim-migrate @ 13454]
Richard Laager <rlaager@wiktel.com>
parents: 11269
diff changeset
861 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
862
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
863 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_bold"))
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
864 gtk_imhtml_toggle_bold(GTK_IMHTML(imhtml));
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
865 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_italic"))
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
866 gtk_imhtml_toggle_italic(GTK_IMHTML(imhtml));
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
867 if (gaim_prefs_get_bool("/gaim/gtk/conversations/send_underline"))
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
868 gtk_imhtml_toggle_underline(GTK_IMHTML(imhtml));
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
869
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
870 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
871 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
872 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
873 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
874
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
875 g_signal_connect_after(G_OBJECT(imhtml), "format_function_toggle",
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
876 G_CALLBACK(formatting_toggle_cb), toolbar);
11275
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
877 g_signal_connect_after(G_OBJECT(imhtml), "format_function_clear",
ffc86d9ad8b7 [gaim-migrate @ 13461]
Richard Laager <rlaager@wiktel.com>
parents: 11271
diff changeset
878 G_CALLBACK(formatting_clear_cb), NULL);
9155
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
879
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
880 /* All the tab options! */
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
881 vbox = gaim_gtk_make_frame(ret, _("Tab Options"));
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
882
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
883 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
884 "/gaim/gtk/conversations/tabs", vbox);
9155
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 /*
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
887 * Connect a signal to the above preference. When conversations are not
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
888 * 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
889 */
10972
d5ce9d01f540 [gaim-migrate @ 12797]
Mark Doliner <mark@kingant.net>
parents: 10930
diff changeset
890 vbox2 = gtk_vbox_new(FALSE, 9);
9155
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
891 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
892 gaim_prefs_connect_callback(prefs, "/gaim/gtk/conversations/tabs",
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
893 conversation_usetabs_cb, vbox2);
9155
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
894 if (!gaim_prefs_get_bool("/gaim/gtk/conversations/tabs"))
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
895 gtk_widget_set_sensitive(vbox2, FALSE);
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
896
9891
67dbf65e76cf [gaim-migrate @ 10779]
Mark Doliner <mark@kingant.net>
parents: 9832
diff changeset
897 gaim_gtk_prefs_checkbox(_("Show close b_utton on tabs"),
9155
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
898 "/gaim/gtk/conversations/close_on_tabs", vbox2);
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
899
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
900 hbox = gtk_hbox_new(FALSE, 9);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
901 gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, FALSE, 0);
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
902
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
903 label = gaim_gtk_prefs_dropdown(hbox, _("_Placement:"), GAIM_PREF_INT,
8988
d6fea11c62d7 [gaim-migrate @ 9763]
Luke Schierer <lschiere@pidgin.im>
parents: 8979
diff changeset
904 "/gaim/gtk/conversations/tab_side",
d6fea11c62d7 [gaim-migrate @ 9763]
Luke Schierer <lschiere@pidgin.im>
parents: 8979
diff changeset
905 _("Top"), GTK_POS_TOP,
d6fea11c62d7 [gaim-migrate @ 9763]
Luke Schierer <lschiere@pidgin.im>
parents: 8979
diff changeset
906 _("Bottom"), GTK_POS_BOTTOM,
d6fea11c62d7 [gaim-migrate @ 9763]
Luke Schierer <lschiere@pidgin.im>
parents: 8979
diff changeset
907 _("Left"), GTK_POS_LEFT,
d6fea11c62d7 [gaim-migrate @ 9763]
Luke Schierer <lschiere@pidgin.im>
parents: 8979
diff changeset
908 _("Right"), GTK_POS_RIGHT,
11619
de413ae71cba [gaim-migrate @ 13893]
Tim Ringenbach <marv@pidgin.im>
parents: 11581
diff changeset
909 #if GTK_CHECK_VERSION(2,6,0)
de413ae71cba [gaim-migrate @ 13893]
Tim Ringenbach <marv@pidgin.im>
parents: 11581
diff changeset
910 _("Left Vertical"), GTK_POS_LEFT|8,
de413ae71cba [gaim-migrate @ 13893]
Tim Ringenbach <marv@pidgin.im>
parents: 11581
diff changeset
911 _("Right Vertical"), GTK_POS_RIGHT|8,
de413ae71cba [gaim-migrate @ 13893]
Tim Ringenbach <marv@pidgin.im>
parents: 11581
diff changeset
912 #endif
8988
d6fea11c62d7 [gaim-migrate @ 9763]
Luke Schierer <lschiere@pidgin.im>
parents: 8979
diff changeset
913 NULL);
d6fea11c62d7 [gaim-migrate @ 9763]
Luke Schierer <lschiere@pidgin.im>
parents: 8979
diff changeset
914
11581
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 11557
diff changeset
915 names = gaim_gtkconv_placement_get_options();
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
916 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
917 GAIM_PREF_STRING, "/gaim/gtk/conversations/placement", names);
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
918 g_list_free(names);
e0c50af60837 [gaim-migrate @ 9939]
Mark Doliner <mark@kingant.net>
parents: 9151
diff changeset
919
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
920 gtk_widget_show_all(ret);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
921
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
922 return ret;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
923 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
924
8231
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
925 static void network_ip_changed(GtkEntry *entry, gpointer data)
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
926 {
8834
beb7be215db3 [gaim-migrate @ 9598]
Mark Doliner <mark@kingant.net>
parents: 8833
diff changeset
927 gaim_network_set_public_ip(gtk_entry_get_text(entry));
8231
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
928 }
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
929
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
930 static void
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
931 proxy_changed_cb(const char *name, GaimPrefType type, gpointer value,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
932 gpointer data)
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
933 {
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
934 GtkWidget *frame = data;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
935 const char *proxy = value;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
936
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
937 if (strcmp(proxy, "none") && strcmp(proxy, "envvar"))
11746
8d5ea84440ca [gaim-migrate @ 14037]
Sean Egan <seanegan@gmail.com>
parents: 11740
diff changeset
938 gtk_widget_show_all(frame);
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
939 else
11740
7e0ad3b6882a [gaim-migrate @ 14031]
Sean Egan <seanegan@gmail.com>
parents: 11709
diff changeset
940 gtk_widget_hide(frame);
9150
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
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
943 static void proxy_print_option(GtkEntry *entry, int entrynum)
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
944 {
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
945 if (entrynum == PROXYHOST)
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
946 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
947 else if (entrynum == PROXYPORT)
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
948 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
949 else if (entrynum == PROXYUSER)
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
950 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
951 else if (entrynum == PROXYPASS)
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
952 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
953 }
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
954
10850
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
955 static GtkWidget *
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
956 network_page()
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
957 {
8231
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
958 GtkWidget *ret;
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
959 GtkWidget *vbox, *hbox, *entry;
11424
e1ab173ef3b5 [gaim-migrate @ 13661]
Thomas Butter <tbutter>
parents: 11380
diff changeset
960 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
961 GtkSizeGroup *sg;
11888
7d2d926704aa [gaim-migrate @ 14179]
Stu Tomlinson <stu@nosnilmot.com>
parents: 11878
diff changeset
962 GaimProxyInfo *proxy_info = NULL;
8231
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
963
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
964 ret = gtk_vbox_new(FALSE, GAIM_HIG_BOX_SPACE);
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
965 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
966
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
967 vbox = gaim_gtk_make_frame (ret, _("IP Address"));
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
968
12152
cda86ce5b026 [gaim-migrate @ 14453]
Richard Laager <rlaager@wiktel.com>
parents: 12134
diff changeset
969 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
970
12152
cda86ce5b026 [gaim-migrate @ 14453]
Richard Laager <rlaager@wiktel.com>
parents: 12134
diff changeset
971 auto_ip_checkbox = gaim_gtk_prefs_checkbox(_("_Autodetect IP address"),
8231
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
972 "/core/network/auto_ip", vbox);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
973
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
974 table = gtk_table_new(2, 1, FALSE);
11442
73f7cfa46f1b [gaim-migrate @ 13681]
Richard Laager <rlaager@wiktel.com>
parents: 11424
diff changeset
975 gtk_container_set_border_width(GTK_CONTAINER(table), 0);
8231
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
976 gtk_table_set_col_spacings(GTK_TABLE(table), 5);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
977 gtk_table_set_row_spacings(GTK_TABLE(table), 10);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
978 gtk_container_add(GTK_CONTAINER(vbox), table);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
979
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
980 label = gtk_label_new_with_mnemonic(_("Public _IP:"));
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
981 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
982 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
983
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
984 entry = gtk_entry_new();
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
985 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
986 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
987 g_signal_connect(G_OBJECT(entry), "changed",
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
988 G_CALLBACK(network_ip_changed), NULL);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
989
8834
beb7be215db3 [gaim-migrate @ 9598]
Mark Doliner <mark@kingant.net>
parents: 8833
diff changeset
990 if (gaim_network_get_public_ip() != NULL)
8231
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
991 gtk_entry_set_text(GTK_ENTRY(entry),
8834
beb7be215db3 [gaim-migrate @ 9598]
Mark Doliner <mark@kingant.net>
parents: 8833
diff changeset
992 gaim_network_get_public_ip());
8231
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
993
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
994 gaim_set_accessible_label (entry, label);
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
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
997 if (gaim_prefs_get_bool("/core/network/auto_ip")) {
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
998 gtk_widget_set_sensitive(GTK_WIDGET(table), FALSE);
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
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1001 g_signal_connect(G_OBJECT(auto_ip_checkbox), "clicked",
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1002 G_CALLBACK(gaim_gtk_toggle_sensitive), table);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1003
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1004 vbox = gaim_gtk_make_frame (ret, _("Ports"));
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1005 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1006
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1007 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
1008 "/core/network/ports_range_use", vbox);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1009
12152
cda86ce5b026 [gaim-migrate @ 14453]
Richard Laager <rlaager@wiktel.com>
parents: 12134
diff changeset
1010 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
1011 "/core/network/ports_range_start", 0, 65535, sg);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1012 if (!gaim_prefs_get_bool("/core/network/ports_range_use"))
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1013 gtk_widget_set_sensitive(GTK_WIDGET(spin_button), FALSE);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1014 g_signal_connect(G_OBJECT(ports_checkbox), "clicked",
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1015 G_CALLBACK(gaim_gtk_toggle_sensitive), spin_button);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1016
12152
cda86ce5b026 [gaim-migrate @ 14453]
Richard Laager <rlaager@wiktel.com>
parents: 12134
diff changeset
1017 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
1018 "/core/network/ports_range_end", 0, 65535, sg);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1019 if (!gaim_prefs_get_bool("/core/network/ports_range_use"))
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1020 gtk_widget_set_sensitive(GTK_WIDGET(spin_button), FALSE);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1021 g_signal_connect(G_OBJECT(ports_checkbox), "clicked",
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1022 G_CALLBACK(gaim_gtk_toggle_sensitive), spin_button);
f50c059b6384 [gaim-migrate @ 8954]
Christian Hammond <chipx86@chipx86.com>
parents: 8188
diff changeset
1023
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1024 if (!gaim_running_gnome()) {
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1025 vbox = gaim_gtk_make_frame(ret, _("Proxy Server"));
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1026 prefs_proxy_frame = gtk_vbox_new(FALSE, 0);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1027 gaim_gtk_prefs_dropdown(vbox, _("Proxy _type:"), GAIM_PREF_STRING,
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1028 "/core/proxy/type",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1029 _("No proxy"), "none",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1030 "SOCKS 4", "socks4",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1031 "SOCKS 5", "socks5",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1032 "HTTP", "http",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1033 _("Use Environmental Settings"), "envvar",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1034 NULL);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1035 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
1036 proxy_info = gaim_global_proxy_get_info();
5681
46d7ad0dfa26 [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1037
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1038 gaim_prefs_connect_callback(prefs, "/core/proxy/type",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1039 proxy_changed_cb, prefs_proxy_frame);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1040
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1041 table = gtk_table_new(4, 2, FALSE);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1042 gtk_container_set_border_width(GTK_CONTAINER(table), 0);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1043 gtk_table_set_col_spacings(GTK_TABLE(table), 5);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1044 gtk_table_set_row_spacings(GTK_TABLE(table), 10);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1045 gtk_container_add(GTK_CONTAINER(prefs_proxy_frame), table);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1046
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1047
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1048 label = gtk_label_new_with_mnemonic(_("_Host:"));
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1049 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1050 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
1051
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1052 entry = gtk_entry_new();
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1053 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1054 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
1055 g_signal_connect(G_OBJECT(entry), "changed",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1056 G_CALLBACK(proxy_print_option), (void *)PROXYHOST);
5681
46d7ad0dfa26 [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1057
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1058 if (proxy_info != NULL && gaim_proxy_info_get_host(proxy_info))
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1059 gtk_entry_set_text(GTK_ENTRY(entry),
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1060 gaim_proxy_info_get_host(proxy_info));
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1061
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1062 hbox = gtk_hbox_new(TRUE, 5);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1063 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1064 gaim_set_accessible_label (entry, label);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1065
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1066 label = gtk_label_new_with_mnemonic(_("_Port:"));
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1067 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1068 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
1069
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1070 entry = gtk_entry_new();
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1071 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1072 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
1073 g_signal_connect(G_OBJECT(entry), "changed",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1074 G_CALLBACK(proxy_print_option), (void *)PROXYPORT);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1075
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1076 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
1077 char buf[128];
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1078 g_snprintf(buf, sizeof(buf), "%d",
5681
46d7ad0dfa26 [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1079 gaim_proxy_info_get_port(proxy_info));
46d7ad0dfa26 [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1080
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1081 gtk_entry_set_text(GTK_ENTRY(entry), buf);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1082 }
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1083 gaim_set_accessible_label (entry, label);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1084
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1085 label = gtk_label_new_with_mnemonic(_("_User:"));
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1086 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1087 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
1088
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1089 entry = gtk_entry_new();
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1090 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1091 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
1092 g_signal_connect(G_OBJECT(entry), "changed",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1093 G_CALLBACK(proxy_print_option), (void *)PROXYUSER);
5681
46d7ad0dfa26 [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1094
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1095 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
1096 gtk_entry_set_text(GTK_ENTRY(entry),
5681
46d7ad0dfa26 [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1097 gaim_proxy_info_get_username(proxy_info));
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1098
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1099 hbox = gtk_hbox_new(TRUE, 5);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1100 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1101 gaim_set_accessible_label (entry, label);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1102
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1103 label = gtk_label_new_with_mnemonic(_("Pa_ssword:"));
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1104 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1105 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
1106
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1107 entry = gtk_entry_new();
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1108 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1109 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
1110 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
11986
bfbb1798535e [gaim-migrate @ 14279]
Mark Doliner <mark@kingant.net>
parents: 11985
diff changeset
1111 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
1112 g_signal_connect(G_OBJECT(entry), "changed",
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1113 G_CALLBACK(proxy_print_option), (void *)PROXYPASS);
5681
46d7ad0dfa26 [gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
1114
11878
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1115 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
1116 gtk_entry_set_text(GTK_ENTRY(entry),
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1117 gaim_proxy_info_get_password(proxy_info));
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1118 gaim_set_accessible_label (entry, label);
f672349cfc1c [gaim-migrate @ 14169]
Sean Egan <seanegan@gmail.com>
parents: 11816
diff changeset
1119 }
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1120
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1121 gtk_widget_show_all(ret);
11740
7e0ad3b6882a [gaim-migrate @ 14031]
Sean Egan <seanegan@gmail.com>
parents: 11709
diff changeset
1122 if (proxy_info == NULL ||
7e0ad3b6882a [gaim-migrate @ 14031]
Sean Egan <seanegan@gmail.com>
parents: 11709
diff changeset
1123 gaim_proxy_info_get_type(proxy_info) == GAIM_PROXY_NONE ||
7e0ad3b6882a [gaim-migrate @ 14031]
Sean Egan <seanegan@gmail.com>
parents: 11709
diff changeset
1124 gaim_proxy_info_get_type(proxy_info) == GAIM_PROXY_USE_ENVVAR)
7e0ad3b6882a [gaim-migrate @ 14031]
Sean Egan <seanegan@gmail.com>
parents: 11709
diff changeset
1125 gtk_widget_hide(table);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1126 return ret;
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
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1129 #ifndef _WIN32
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1130 static gboolean manual_browser_set(GtkWidget *entry, GdkEventFocus *event, gpointer data) {
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1131 const char *program = gtk_entry_get_text(GTK_ENTRY(entry));
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1132
5560
b7319c094153 [gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents: 5554
diff changeset
1133 gaim_prefs_set_string("/gaim/gtk/browsers/command", program);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1134
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1135 /* carry on normally */
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1136 return FALSE;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1137 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1138
5633
97a079bc8caa [gaim-migrate @ 6040]
Nathan Walp <nwalp@pidgin.im>
parents: 5631
diff changeset
1139 static GList *get_available_browsers()
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1140 {
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1141 struct browser {
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1142 char *name;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1143 char *command;
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
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1146 static struct browser possible_browsers[] = {
9405
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9307
diff changeset
1147 {N_("Epiphany"), "epiphany"},
8267
62af52b1614a [gaim-migrate @ 8990]
Mark Doliner <mark@kingant.net>
parents: 8238
diff changeset
1148 {N_("Firebird"), "mozilla-firebird"},
8356
8f2667524c06 [gaim-migrate @ 9080]
Nathan Walp <nwalp@pidgin.im>
parents: 8340
diff changeset
1149 {N_("Firefox"), "firefox"},
9405
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9307
diff changeset
1150 {N_("Galeon"), "galeon"},
11816
60fcaea41fc0 [gaim-migrate @ 14107]
Richard Laager <rlaager@wiktel.com>
parents: 11811
diff changeset
1151 {N_("GNOME Default"), "gnome-open"},
9405
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9307
diff changeset
1152 {N_("Konqueror"), "kfmclient"},
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9307
diff changeset
1153 {N_("Mozilla"), "mozilla"},
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9307
diff changeset
1154 {N_("Netscape"), "netscape"},
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9307
diff changeset
1155 {N_("Opera"), "opera"}
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1156 };
9405
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9307
diff changeset
1157 static const int num_possible_browsers = 9;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1158
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1159 GList *browsers = NULL;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1160 int i = 0;
5819
7bdf66ab4fdd [gaim-migrate @ 6249]
Luke Schierer <lschiere@pidgin.im>
parents: 5771
diff changeset
1161 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
1162
5568
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1163 browsers = g_list_prepend(browsers, "custom");
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1164 browsers = g_list_prepend(browsers, _("Manual"));
5568
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1165
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1166 for (i = 0; i < num_possible_browsers; i++) {
7108
6faeeecab0dc [gaim-migrate @ 7673]
Christian Hammond <chipx86@chipx86.com>
parents: 7095
diff changeset
1167 if (gaim_program_is_valid(possible_browsers[i].command)) {
5633
97a079bc8caa [gaim-migrate @ 6040]
Nathan Walp <nwalp@pidgin.im>
parents: 5631
diff changeset
1168 browsers = g_list_prepend(browsers,
5551
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
1169 possible_browsers[i].command);
5568
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1170 browsers = g_list_prepend(browsers, _(possible_browsers[i].name));
5825
729e688fd2e7 [gaim-migrate @ 6255]
Sean Egan <seanegan@gmail.com>
parents: 5821
diff changeset
1171 if(browser_setting && !strcmp(possible_browsers[i].command, browser_setting))
5819
7bdf66ab4fdd [gaim-migrate @ 6249]
Luke Schierer <lschiere@pidgin.im>
parents: 5771
diff changeset
1172 browser_setting = NULL;
5440
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 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1175
5819
7bdf66ab4fdd [gaim-migrate @ 6249]
Luke Schierer <lschiere@pidgin.im>
parents: 5771
diff changeset
1176 if(browser_setting)
7bdf66ab4fdd [gaim-migrate @ 6249]
Luke Schierer <lschiere@pidgin.im>
parents: 5771
diff changeset
1177 gaim_prefs_set_string("/gaim/gtk/browsers/browser", "custom");
7bdf66ab4fdd [gaim-migrate @ 6249]
Luke Schierer <lschiere@pidgin.im>
parents: 5771
diff changeset
1178
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1179 return browsers;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1180 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1181
5568
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1182 static void
8274
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1183 browser_changed1_cb(const char *name, GaimPrefType type, gpointer value,
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1184 gpointer data)
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1185 {
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1186 GtkWidget *hbox = data;
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1187 const char *browser = value;
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1188
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1189 gtk_widget_set_sensitive(hbox, strcmp(browser, "custom"));
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
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1192 static void
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1193 browser_changed2_cb(const char *name, GaimPrefType type, gpointer value,
5568
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1194 gpointer data)
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1195 {
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1196 GtkWidget *hbox = data;
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1197 const char *browser = value;
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1198
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1199 gtk_widget_set_sensitive(hbox, !strcmp(browser, "custom"));
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1200 }
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1201
10850
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1202 static GtkWidget *
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1203 browser_page()
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1204 {
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1205 GtkWidget *ret;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1206 GtkWidget *vbox;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1207 GtkWidget *hbox;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1208 GtkWidget *label;
6007
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1209 GtkWidget *entry;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1210 GtkSizeGroup *sg;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1211 GList *browsers = NULL;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1212
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1213 ret = gtk_vbox_new(FALSE, GAIM_HIG_CAT_SPACE);
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1214 gtk_container_set_border_width (GTK_CONTAINER (ret), GAIM_HIG_BORDER);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1215
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1216 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
5530
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1217 vbox = gaim_gtk_make_frame (ret, _("Browser Selection"));
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1218
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1219 browsers = get_available_browsers();
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1220 if (browsers != NULL) {
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1221 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
1222 "/gaim/gtk/browsers/browser",
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1223 browsers);
11638
3a05b53a589e [gaim-migrate @ 13914]
Stu Tomlinson <stu@nosnilmot.com>
parents: 11619
diff changeset
1224 g_list_free(browsers);
10973
65c56b8490c5 [gaim-migrate @ 12798]
Mark Doliner <mark@kingant.net>
parents: 10972
diff changeset
1225 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1226 gtk_size_group_add_widget(sg, label);
8274
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1227
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1228 hbox = gtk_hbox_new(FALSE, 0);
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1229 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
1230 "/gaim/gtk/browsers/place",
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1231 _("Browser default"), GAIM_BROWSER_DEFAULT,
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1232 _("Existing window"), GAIM_BROWSER_CURRENT,
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1233 _("New window"), GAIM_BROWSER_NEW_WINDOW,
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1234 _("New tab"), GAIM_BROWSER_NEW_TAB,
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1235 NULL);
10973
65c56b8490c5 [gaim-migrate @ 12798]
Mark Doliner <mark@kingant.net>
parents: 10972
diff changeset
1236 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
8274
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1237 gtk_size_group_add_widget(sg, label);
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1238 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1239
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1240 if (!strcmp(gaim_prefs_get_string("/gaim/gtk/browsers/browser"), "custom"))
0d9559f3bd2e [gaim-migrate @ 8998]
Mark Doliner <mark@kingant.net>
parents: 8272
diff changeset
1241 gtk_widget_set_sensitive(hbox, FALSE);
10087
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
1242 gaim_prefs_connect_callback(prefs, "/gaim/gtk/browsers/browser",
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
1243 browser_changed1_cb, hbox);
5440
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
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1246 hbox = gtk_hbox_new(FALSE, 5);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1247 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
1248 label = gtk_label_new_with_mnemonic(_("_Manual:\n(%s for URL)"));
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1249 gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1250 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1251 gtk_size_group_add_widget(sg, label);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1252
6007
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1253 entry = gtk_entry_new();
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1254 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
5560
b7319c094153 [gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents: 5554
diff changeset
1255
b7319c094153 [gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents: 5554
diff changeset
1256 if (strcmp(gaim_prefs_get_string("/gaim/gtk/browsers/browser"), "custom"))
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1257 gtk_widget_set_sensitive(hbox, FALSE);
10087
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
1258 gaim_prefs_connect_callback(prefs, "/gaim/gtk/browsers/browser",
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
1259 browser_changed2_cb, hbox);
5560
b7319c094153 [gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents: 5554
diff changeset
1260
6007
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1261 gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, FALSE, 0);
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1262
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1263 gtk_entry_set_text(GTK_ENTRY(entry),
5560
b7319c094153 [gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents: 5554
diff changeset
1264 gaim_prefs_get_string("/gaim/gtk/browsers/command"));
6007
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1265 g_signal_connect(G_OBJECT(entry), "focus-out-event",
5560
b7319c094153 [gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents: 5554
diff changeset
1266 G_CALLBACK(manual_browser_set), NULL);
8188
cd9ea20cd8ed [gaim-migrate @ 8909]
Christian Hammond <chipx86@chipx86.com>
parents: 8170
diff changeset
1267 gaim_set_accessible_label (entry, label);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1268
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1269 gtk_widget_show_all(ret);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1270 return ret;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1271 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1272 #endif /*_WIN32*/
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1273
10850
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1274 static GtkWidget *
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1275 logging_page()
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1276 {
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1277 GtkWidget *ret;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1278 GtkWidget *vbox;
7431
643cbc9a6035 [gaim-migrate @ 8036]
Sean Egan <seanegan@gmail.com>
parents: 7326
diff changeset
1279 GList *names;
8573
7dcd6f26e4a7 [gaim-migrate @ 9321]
Luke Schierer <lschiere@pidgin.im>
parents: 8494
diff changeset
1280
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1281 ret = gtk_vbox_new(FALSE, GAIM_HIG_CAT_SPACE);
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1282 gtk_container_set_border_width (GTK_CONTAINER (ret), GAIM_HIG_BORDER);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1283
11698
a647f92e1d57 [gaim-migrate @ 13989]
Mark Doliner <mark@kingant.net>
parents: 11697
diff changeset
1284 vbox = gaim_gtk_make_frame (ret, _("Logging"));
7431
643cbc9a6035 [gaim-migrate @ 8036]
Sean Egan <seanegan@gmail.com>
parents: 7326
diff changeset
1285 names = gaim_log_logger_get_options();
643cbc9a6035 [gaim-migrate @ 8036]
Sean Egan <seanegan@gmail.com>
parents: 7326
diff changeset
1286
12152
cda86ce5b026 [gaim-migrate @ 14453]
Richard Laager <rlaager@wiktel.com>
parents: 12134
diff changeset
1287 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
1288 "/core/logging/format", names);
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1289
11638
3a05b53a589e [gaim-migrate @ 13914]
Stu Tomlinson <stu@nosnilmot.com>
parents: 11619
diff changeset
1290 g_list_free(names);
3a05b53a589e [gaim-migrate @ 13914]
Stu Tomlinson <stu@nosnilmot.com>
parents: 11619
diff changeset
1291
11698
a647f92e1d57 [gaim-migrate @ 13989]
Mark Doliner <mark@kingant.net>
parents: 11697
diff changeset
1292 gaim_gtk_prefs_checkbox(_("Log all _instant messages"),
7562
b859cfb5f31a [gaim-migrate @ 8176]
Christian Hammond <chipx86@chipx86.com>
parents: 7561
diff changeset
1293 "/core/logging/log_ims", vbox);
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1294 gaim_gtk_prefs_checkbox(_("Log all c_hats"),
7562
b859cfb5f31a [gaim-migrate @ 8176]
Christian Hammond <chipx86@chipx86.com>
parents: 7561
diff changeset
1295 "/core/logging/log_chats", vbox);
11699
95cc6e1e9388 [gaim-migrate @ 13990]
Mark Doliner <mark@kingant.net>
parents: 11698
diff changeset
1296 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
1297 "/core/logging/log_system", vbox);
8573
7dcd6f26e4a7 [gaim-migrate @ 9321]
Luke Schierer <lschiere@pidgin.im>
parents: 8494
diff changeset
1298
12692
4da7062a06c2 [gaim-migrate @ 15035]
Richard Laager <rlaager@wiktel.com>
parents: 12656
diff changeset
1299 gaim_gtk_prefs_checkbox(_("Include _date in timestamps"),
4da7062a06c2 [gaim-migrate @ 15035]
Richard Laager <rlaager@wiktel.com>
parents: 12656
diff changeset
1300 "/core/logging/include_date_timestamps", vbox);
4da7062a06c2 [gaim-migrate @ 15035]
Richard Laager <rlaager@wiktel.com>
parents: 12656
diff changeset
1301
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1302 gtk_widget_show_all(ret);
11698
a647f92e1d57 [gaim-migrate @ 13989]
Mark Doliner <mark@kingant.net>
parents: 11697
diff changeset
1303
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1304 return ret;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1305 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1306
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1307 #ifndef _WIN32
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1308 static gint sound_cmd_yeah(GtkEntry *entry, gpointer d)
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1309 {
5684
b61520e71679 [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5681
diff changeset
1310 gaim_prefs_set_string("/gaim/gtk/sound/command",
6007
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1311 gtk_entry_get_text(GTK_ENTRY(entry)));
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1312 return TRUE;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1313 }
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 static void
10074
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1316 sound_changed1_cb(const char *name, GaimPrefType type, gpointer value,
6005
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1317 gpointer data)
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1318 {
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1319 GtkWidget *hbox = data;
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1320 const char *method = value;
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1321
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1322 gtk_widget_set_sensitive(hbox, !strcmp(method, "custom"));
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1323 }
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 static void
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1326 sound_changed2_cb(const char *name, GaimPrefType type, gpointer value,
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1327 gpointer data)
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1328 {
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1329 GtkWidget *vbox = data;
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1330 const char *method = value;
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1331
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1332 gtk_widget_set_sensitive(vbox, strcmp(method, "none"));
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1333 }
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1334 #endif
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1335
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1336
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1337 static void
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1338 event_toggled(GtkCellRendererToggle *cell, gchar *pth, gpointer data)
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1339 {
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1340 GtkTreeModel *model = (GtkTreeModel *)data;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1341 GtkTreeIter iter;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1342 GtkTreePath *path = gtk_tree_path_new_from_string(pth);
10930
bfb3ac69cdd0 [gaim-migrate @ 12709]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10871
diff changeset
1343 char *pref;
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1344
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1345 gtk_tree_model_get_iter (model, &iter, path);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1346 gtk_tree_model_get (model, &iter,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1347 2, &pref,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1348 -1);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1349
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1350 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
1351 g_free(pref);
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1352
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1353 gtk_list_store_set(GTK_LIST_STORE (model), &iter,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1354 0, !gtk_cell_renderer_toggle_get_active(cell),
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1355 -1);
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_path_free(path);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1358 }
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1359
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1360 static void
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1361 test_sound(GtkWidget *button, gpointer i_am_NULL)
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1362 {
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1363 char *pref;
11642
58bc500cf226 [gaim-migrate @ 13919]
Mark Doliner <mark@kingant.net>
parents: 11638
diff changeset
1364 gboolean temp_value;
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1365
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1366 pref = g_strdup_printf("/gaim/gtk/sound/enabled/%s",
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1367 gaim_gtk_sound_get_event_option(sound_row_sel));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1368
11642
58bc500cf226 [gaim-migrate @ 13919]
Mark Doliner <mark@kingant.net>
parents: 11638
diff changeset
1369 temp_value = gaim_prefs_get_bool(pref);
58bc500cf226 [gaim-migrate @ 13919]
Mark Doliner <mark@kingant.net>
parents: 11638
diff changeset
1370
58bc500cf226 [gaim-migrate @ 13919]
Mark Doliner <mark@kingant.net>
parents: 11638
diff changeset
1371 if (!temp_value) gaim_prefs_set_bool(pref, TRUE);
58bc500cf226 [gaim-migrate @ 13919]
Mark Doliner <mark@kingant.net>
parents: 11638
diff changeset
1372
58bc500cf226 [gaim-migrate @ 13919]
Mark Doliner <mark@kingant.net>
parents: 11638
diff changeset
1373 gaim_sound_play_event(sound_row_sel, NULL);
58bc500cf226 [gaim-migrate @ 13919]
Mark Doliner <mark@kingant.net>
parents: 11638
diff changeset
1374
58bc500cf226 [gaim-migrate @ 13919]
Mark Doliner <mark@kingant.net>
parents: 11638
diff changeset
1375 if (!temp_value) gaim_prefs_set_bool(pref, FALSE);
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1376
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1377 g_free(pref);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1378 }
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1379
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1380 /*
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1381 * Resets a sound file back to default.
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1382 */
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1383 static void
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1384 reset_sound(GtkWidget *button, gpointer i_am_also_NULL)
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1385 {
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1386 gchar *pref;
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1387
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1388 pref = g_strdup_printf("/gaim/gtk/sound/file/%s",
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1389 gaim_gtk_sound_get_event_option(sound_row_sel));
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1390 gaim_prefs_set_string(pref, "");
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1391 g_free(pref);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1392
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1393 gtk_entry_set_text(GTK_ENTRY(sound_entry), "(default)");
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1394 }
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1395
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1396 static void
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1397 sound_chosen_cb(void *user_data, const char *filename)
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1398 {
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1399 gchar *pref;
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1400 int sound;
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1401
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1402 sound = GPOINTER_TO_INT(user_data);
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1403
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1404 /* Set it -- and forget it */
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1405 pref = g_strdup_printf("/gaim/gtk/sound/file/%s",
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1406 gaim_gtk_sound_get_event_option(sound));
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1407 gaim_prefs_set_string(pref, filename);
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1408 g_free(pref);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1409
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1410 /*
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1411 * If the sound we just changed is still the currently selected
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1412 * sound, then update the box showing the file name.
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 if (sound == sound_row_sel)
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1415 gtk_entry_set_text(GTK_ENTRY(sound_entry), filename);
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1416 }
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1417
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1418 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
1419 {
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1420 gchar *pref;
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1421 const char *filename;
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 pref = g_strdup_printf("/gaim/gtk/sound/file/%s",
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1424 gaim_gtk_sound_get_event_option(sound_row_sel));
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1425 filename = gaim_prefs_get_string(pref);
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1426 g_free(pref);
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1427
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1428 if (*filename == '\0')
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1429 filename = NULL;
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1430
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1431 gaim_request_file(prefs, _("Sound Selection"), filename, FALSE,
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1432 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
1433 }
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1434
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1435 static void prefs_sound_sel(GtkTreeSelection *sel, GtkTreeModel *model) {
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1436 GtkTreeIter iter;
12600
e856f985a0b9 [gaim-migrate @ 14934]
Richard Laager <rlaager@wiktel.com>
parents: 12580
diff changeset
1437 GValue val;
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1438 const char *file;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1439 char *pref;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1440
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1441 if (! gtk_tree_selection_get_selected (sel, &model, &iter))
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1442 return;
12600
e856f985a0b9 [gaim-migrate @ 14934]
Richard Laager <rlaager@wiktel.com>
parents: 12580
diff changeset
1443
e856f985a0b9 [gaim-migrate @ 14934]
Richard Laager <rlaager@wiktel.com>
parents: 12580
diff changeset
1444 val.g_type = 0;
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1445 gtk_tree_model_get_value (model, &iter, 3, &val);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1446 sound_row_sel = g_value_get_uint(&val);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1447
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1448 pref = g_strdup_printf("/gaim/gtk/sound/file/%s",
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1449 gaim_gtk_sound_get_event_option(sound_row_sel));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1450 file = gaim_prefs_get_string(pref);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1451 g_free(pref);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1452 if (sound_entry)
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1453 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
1454 g_value_unset (&val);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1455 }
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1456
10850
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1457 static GtkWidget *
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1458 sound_page()
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1459 {
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1460 GtkWidget *ret;
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1461 GtkWidget *vbox, *sw, *button;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1462 GtkSizeGroup *sg;
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1463 GtkTreeIter iter;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1464 GtkWidget *event_view;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1465 GtkListStore *event_store;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1466 GtkCellRenderer *rend;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1467 GtkTreeViewColumn *col;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1468 GtkTreeSelection *sel;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1469 GtkTreePath *path;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1470 GtkWidget *hbox;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1471 int j;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1472 const char *file;
11082
e25575a59f01 [gaim-migrate @ 13099]
Mark Doliner <mark@kingant.net>
parents: 11052
diff changeset
1473 char *pref;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1474 #ifndef _WIN32
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1475 GtkWidget *dd;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1476 GtkWidget *label;
6007
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1477 GtkWidget *entry;
5684
b61520e71679 [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5681
diff changeset
1478 const char *cmd;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1479 #endif
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1480
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1481 ret = gtk_vbox_new(FALSE, GAIM_HIG_CAT_SPACE);
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1482 gtk_container_set_border_width (GTK_CONTAINER (ret), GAIM_HIG_BORDER);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1483
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1484 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1485
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1486 #ifndef _WIN32
6033
22923270493f [gaim-migrate @ 6483]
Mark Doliner <mark@kingant.net>
parents: 6031
diff changeset
1487 vbox = gaim_gtk_make_frame (ret, _("Sound Method"));
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1488 dd = gaim_gtk_prefs_dropdown(vbox, _("_Method:"), GAIM_PREF_STRING,
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1489 "/gaim/gtk/sound/method",
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1490 _("Console beep"), "beep",
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1491 #ifdef USE_AO
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1492 _("Automatic"), "automatic",
11082
e25575a59f01 [gaim-migrate @ 13099]
Mark Doliner <mark@kingant.net>
parents: 11052
diff changeset
1493 "Arts", "arts",
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1494 "ESD", "esd",
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1495 "NAS", "nas",
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1496 #endif
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1497 _("Command"), "custom",
10074
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1498 _("No sounds"), "none",
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1499 NULL);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1500 gtk_size_group_add_widget(sg, dd);
10973
65c56b8490c5 [gaim-migrate @ 12798]
Mark Doliner <mark@kingant.net>
parents: 10972
diff changeset
1501 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0.5);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1502
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1503 hbox = gtk_hbox_new(FALSE, 5);
11442
73f7cfa46f1b [gaim-migrate @ 13681]
Richard Laager <rlaager@wiktel.com>
parents: 11424
diff changeset
1504 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1505
6031
855026933d50 [gaim-migrate @ 6481]
Mark Doliner <mark@kingant.net>
parents: 6016
diff changeset
1506 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
1507 gtk_size_group_add_widget(sg, label);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1508 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
11442
73f7cfa46f1b [gaim-migrate @ 13681]
Richard Laager <rlaager@wiktel.com>
parents: 11424
diff changeset
1509 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1510
6007
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1511 entry = gtk_entry_new();
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1512 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1513
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1514 gtk_editable_set_editable(GTK_EDITABLE(entry), TRUE);
5684
b61520e71679 [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5681
diff changeset
1515 cmd = gaim_prefs_get_string("/gaim/gtk/sound/command");
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1516 if(cmd)
6007
3750fc0325ac [gaim-migrate @ 6455]
Mark Doliner <mark@kingant.net>
parents: 6006
diff changeset
1517 gtk_entry_set_text(GTK_ENTRY(entry), cmd);
11442
73f7cfa46f1b [gaim-migrate @ 13681]
Richard Laager <rlaager@wiktel.com>
parents: 11424
diff changeset
1518
73f7cfa46f1b [gaim-migrate @ 13681]
Richard Laager <rlaager@wiktel.com>
parents: 11424
diff changeset
1519 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
1520 g_signal_connect(G_OBJECT(entry), "changed",
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1521 G_CALLBACK(sound_cmd_yeah), NULL);
6005
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1522
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1523 gtk_widget_set_sensitive(hbox,
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1524 !strcmp(gaim_prefs_get_string("/gaim/gtk/sound/method"),
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1525 "custom"));
10087
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
1526 gaim_prefs_connect_callback(prefs, "/gaim/gtk/sound/method",
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
1527 sound_changed1_cb, hbox);
6005
81869466b6a7 [gaim-migrate @ 6453]
Mark Doliner <mark@kingant.net>
parents: 6001
diff changeset
1528
8141
5efe3d9cd552 [gaim-migrate @ 8849]
Luke Schierer <lschiere@pidgin.im>
parents: 8137
diff changeset
1529 gaim_set_accessible_label (entry, label);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1530 #endif /* _WIN32 */
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1531
10074
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1532 vbox = gaim_gtk_make_frame (ret, _("Sound Options"));
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1533 gaim_gtk_prefs_checkbox(_("Sounds when conversation has _focus"),
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1534 "/gaim/gtk/sound/conv_focus", vbox);
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1535 gaim_gtk_prefs_checkbox(_("_Sounds while away"),
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1536 "/core/sound/while_away", vbox);
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1537
10075
4670b7fd1a89 [gaim-migrate @ 11055]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10074
diff changeset
1538 #ifndef _WIN32
10074
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1539 gtk_widget_set_sensitive(vbox,
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1540 strcmp(gaim_prefs_get_string("/gaim/gtk/sound/method"), "none"));
10087
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
1541 gaim_prefs_connect_callback(prefs, "/gaim/gtk/sound/method",
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
1542 sound_changed2_cb, vbox);
10075
4670b7fd1a89 [gaim-migrate @ 11055]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10074
diff changeset
1543 #endif
10074
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1544
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1545 vbox = gaim_gtk_make_frame(ret, _("Sound Events"));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1546
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1547 /* 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
1548 * sound events list is big enough to be usable */
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1549 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
1550 GTK_PACK_START);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1551 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
1552 TRUE, 0, GTK_PACK_START);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1553 gtk_box_set_child_packing(GTK_BOX(vbox->parent->parent->parent),
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1554 vbox->parent->parent, TRUE, TRUE, 0, GTK_PACK_START);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1555
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1556 sw = gtk_scrolled_window_new(NULL,NULL);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1557 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
1558 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
1559
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1560 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1561 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
1562
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1563 for (j=0; j < GAIM_NUM_SOUNDS; j++) {
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1564 char *pref = g_strdup_printf("/gaim/gtk/sound/enabled/%s",
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1565 gaim_gtk_sound_get_event_option(j));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1566 const char *label = gaim_gtk_sound_get_event_label(j);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1567
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1568 if (label == NULL) {
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1569 g_free(pref);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1570 continue;
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1571 }
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1572
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1573 gtk_list_store_append (event_store, &iter);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1574 gtk_list_store_set(event_store, &iter,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1575 0, gaim_prefs_get_bool(pref),
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1576 1, _(label),
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1577 2, pref,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1578 3, j,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1579 -1);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1580 g_free(pref);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1581 }
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1582
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1583 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
1584
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1585 rend = gtk_cell_renderer_toggle_new();
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1586 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1587 g_signal_connect (G_OBJECT (sel), "changed",
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1588 G_CALLBACK (prefs_sound_sel),
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1589 NULL);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1590 g_signal_connect (G_OBJECT(rend), "toggled",
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1591 G_CALLBACK(event_toggled), event_store);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1592 path = gtk_tree_path_new_first();
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1593 gtk_tree_selection_select_path(sel, path);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1594 gtk_tree_path_free(path);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1595
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1596 col = gtk_tree_view_column_new_with_attributes (_("Play"),
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1597 rend,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1598 "active", 0,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1599 NULL);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1600 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1601
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1602 rend = gtk_cell_renderer_text_new();
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1603 col = gtk_tree_view_column_new_with_attributes (_("Event"),
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1604 rend,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1605 "text", 1,
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1606 NULL);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1607 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1608 g_object_unref(G_OBJECT(event_store));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1609 gtk_container_add(GTK_CONTAINER(sw), event_view);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1610
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1611 hbox = gtk_hbox_new(FALSE, GAIM_HIG_BOX_SPACE);
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1612 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1613 sound_entry = gtk_entry_new();
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1614 pref = g_strdup_printf("/gaim/gtk/sound/file/%s",
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1615 gaim_gtk_sound_get_event_option(0));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1616 file = gaim_prefs_get_string(pref);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1617 g_free(pref);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1618 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
1619 gtk_editable_set_editable(GTK_EDITABLE(sound_entry), FALSE);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1620 gtk_box_pack_start(GTK_BOX(hbox), sound_entry, FALSE, FALSE, 5);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1621
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1622 button = gtk_button_new_with_label(_("Test"));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1623 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
1624 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1625
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1626 button = gtk_button_new_with_label(_("Reset"));
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1627 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
1628 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1629
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1630 button = gtk_button_new_with_label(_("Choose..."));
9508
0123d883616c [gaim-migrate @ 10335]
Mark Doliner <mark@kingant.net>
parents: 9422
diff changeset
1631 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
1632 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1633 gtk_widget_show_all(ret);
9118
2063f8de8f93 [gaim-migrate @ 9895]
Nathan Walp <nwalp@pidgin.im>
parents: 9112
diff changeset
1634
10075
4670b7fd1a89 [gaim-migrate @ 11055]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10074
diff changeset
1635 #ifndef _WIN32
10074
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1636 gtk_widget_set_sensitive(vbox,
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1637 strcmp(gaim_prefs_get_string("/gaim/gtk/sound/method"), "none"));
10087
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
1638 gaim_prefs_connect_callback(prefs, "/gaim/gtk/sound/method",
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
1639 sound_changed2_cb, vbox);
10075
4670b7fd1a89 [gaim-migrate @ 11055]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10074
diff changeset
1640 #endif
10074
2e225cd35615 [gaim-migrate @ 11054]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10061
diff changeset
1641
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1642 return ret;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1643 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1644
12195
d040123d2b69 [gaim-migrate @ 14497]
Sean Egan <seanegan@gmail.com>
parents: 12188
diff changeset
1645
10182
4085b2cda8f1 [gaim-migrate @ 11297]
Mark Doliner <mark@kingant.net>
parents: 10181
diff changeset
1646 static void
12195
d040123d2b69 [gaim-migrate @ 14497]
Sean Egan <seanegan@gmail.com>
parents: 12188
diff changeset
1647 set_idle_away(GaimSavedStatus *status)
10182
4085b2cda8f1 [gaim-migrate @ 11297]
Mark Doliner <mark@kingant.net>
parents: 10181
diff changeset
1648 {
12195
d040123d2b69 [gaim-migrate @ 14497]
Sean Egan <seanegan@gmail.com>
parents: 12188
diff changeset
1649 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
1650 }
4085b2cda8f1 [gaim-migrate @ 11297]
Mark Doliner <mark@kingant.net>
parents: 10181
diff changeset
1651
10850
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1652 static GtkWidget *
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1653 away_page()
fa06fda62868 [gaim-migrate @ 12522]
Mark Doliner <mark@kingant.net>
parents: 10759
diff changeset
1654 {
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1655 GtkWidget *ret;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1656 GtkWidget *vbox;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1657 GtkWidget *hbox;
12575
9b0187ba0ec0 [gaim-migrate @ 14897]
Mark Doliner <mark@kingant.net>
parents: 12573
diff changeset
1658 GtkWidget *dd;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1659 GtkWidget *label;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1660 GtkWidget *button;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1661 GtkWidget *select;
12195
d040123d2b69 [gaim-migrate @ 14497]
Sean Egan <seanegan@gmail.com>
parents: 12188
diff changeset
1662 GtkWidget *menu;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1663 GtkSizeGroup *sg;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1664
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1665 ret = gtk_vbox_new(FALSE, GAIM_HIG_CAT_SPACE);
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1666 gtk_container_set_border_width (GTK_CONTAINER (ret), GAIM_HIG_BORDER);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1667
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1668 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1669
12573
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1670 /* Idle stuff */
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1671 vbox = gaim_gtk_make_frame(ret, _("Idle"));
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1672
12575
9b0187ba0ec0 [gaim-migrate @ 14897]
Mark Doliner <mark@kingant.net>
parents: 12573
diff changeset
1673 dd = gaim_gtk_prefs_dropdown(vbox, _("Idle time _reporting:"),
12573
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1674 GAIM_PREF_STRING, "/core/away/idle_reporting",
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1675 _("None"), "none",
12580
05b5e6c24ea7 [gaim-migrate @ 14908]
Luke Schierer <lschiere@pidgin.im>
parents: 12575
diff changeset
1676 _("Account usage"), "gaim",
12573
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1677 #ifdef USE_SCREENSAVER
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1678 _("Mouse movement"), "system",
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1679 #endif
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1680 NULL);
12575
9b0187ba0ec0 [gaim-migrate @ 14897]
Mark Doliner <mark@kingant.net>
parents: 12573
diff changeset
1681 gtk_size_group_add_widget(sg, dd);
9b0187ba0ec0 [gaim-migrate @ 14897]
Mark Doliner <mark@kingant.net>
parents: 12573
diff changeset
1682 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0.5);
12573
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1683
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1684 /* Away stuff */
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1685 vbox = gaim_gtk_make_frame(ret, _("Away"));
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1686
12575
9b0187ba0ec0 [gaim-migrate @ 14897]
Mark Doliner <mark@kingant.net>
parents: 12573
diff changeset
1687 dd = gaim_gtk_prefs_dropdown(vbox, _("_Auto-reply:"),
9596
7b3212aa698c [gaim-migrate @ 10439]
Mark Doliner <mark@kingant.net>
parents: 9521
diff changeset
1688 GAIM_PREF_STRING, "/core/away/auto_reply",
7b3212aa698c [gaim-migrate @ 10439]
Mark Doliner <mark@kingant.net>
parents: 9521
diff changeset
1689 _("Never"), "never",
9736
bd61fb6021ad [gaim-migrate @ 10597]
Sean Egan <seanegan@gmail.com>
parents: 9730
diff changeset
1690 _("When away"), "away",
10859
310c5e6120fb [gaim-migrate @ 12542]
Mark Doliner <mark@kingant.net>
parents: 10850
diff changeset
1691 _("When both away and idle"), "awayidle",
9596
7b3212aa698c [gaim-migrate @ 10439]
Mark Doliner <mark@kingant.net>
parents: 9521
diff changeset
1692 NULL);
12575
9b0187ba0ec0 [gaim-migrate @ 14897]
Mark Doliner <mark@kingant.net>
parents: 12573
diff changeset
1693 gtk_size_group_add_widget(sg, dd);
9b0187ba0ec0 [gaim-migrate @ 14897]
Mark Doliner <mark@kingant.net>
parents: 12573
diff changeset
1694 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0.5);
6142
9a1c1b1764ac [gaim-migrate @ 6616]
Nathan Walp <nwalp@pidgin.im>
parents: 6141
diff changeset
1695
12573
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1696 /* Auto-away stuff */
12575
9b0187ba0ec0 [gaim-migrate @ 14897]
Mark Doliner <mark@kingant.net>
parents: 12573
diff changeset
1697 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
12573
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1698 vbox = gaim_gtk_make_frame(ret, _("Auto-away"));
11287
fb6e85c55fb8 [gaim-migrate @ 13484]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11275
diff changeset
1699
11811
924c6ba240e6 [gaim-migrate @ 14102]
Mark Doliner <mark@kingant.net>
parents: 11796
diff changeset
1700 button = gaim_gtk_prefs_checkbox(_("Change status when _idle"),
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1701 "/core/away/away_when_idle", vbox);
8238
32625c0dbba6 [gaim-migrate @ 8961]
Mark Doliner <mark@kingant.net>
parents: 8231
diff changeset
1702
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1703 select = gaim_gtk_prefs_labeled_spin_button(vbox,
11811
924c6ba240e6 [gaim-migrate @ 14102]
Mark Doliner <mark@kingant.net>
parents: 11796
diff changeset
1704 _("_Minutes before changing status:"), "/core/away/mins_before_away",
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1705 1, 24 * 60, sg);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1706 g_signal_connect(G_OBJECT(button), "clicked",
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1707 G_CALLBACK(gaim_gtk_toggle_sensitive), select);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1708
8238
32625c0dbba6 [gaim-migrate @ 8961]
Mark Doliner <mark@kingant.net>
parents: 8231
diff changeset
1709 hbox = gtk_hbox_new(FALSE, 0);
32625c0dbba6 [gaim-migrate @ 8961]
Mark Doliner <mark@kingant.net>
parents: 8231
diff changeset
1710 gtk_container_add(GTK_CONTAINER(vbox), hbox);
32625c0dbba6 [gaim-migrate @ 8961]
Mark Doliner <mark@kingant.net>
parents: 8231
diff changeset
1711
11811
924c6ba240e6 [gaim-migrate @ 14102]
Mark Doliner <mark@kingant.net>
parents: 11796
diff changeset
1712 label = gtk_label_new_with_mnemonic(_("Change _status to:"));
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1713 gtk_size_group_add_widget(sg, label);
10973
65c56b8490c5 [gaim-migrate @ 12798]
Mark Doliner <mark@kingant.net>
parents: 10972
diff changeset
1714 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
8238
32625c0dbba6 [gaim-migrate @ 8961]
Mark Doliner <mark@kingant.net>
parents: 8231
diff changeset
1715 g_signal_connect(G_OBJECT(button), "clicked",
32625c0dbba6 [gaim-migrate @ 8961]
Mark Doliner <mark@kingant.net>
parents: 8231
diff changeset
1716 G_CALLBACK(gaim_gtk_toggle_sensitive), label);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1717 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
1718
60cce1861e59 [gaim-migrate @ 14999]
Mark Doliner <mark@kingant.net>
parents: 12616
diff changeset
1719 /* 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
1720 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
1721 gtk_box_pack_start(GTK_BOX(hbox), menu, FALSE, FALSE, 0);
d040123d2b69 [gaim-migrate @ 14497]
Sean Egan <seanegan@gmail.com>
parents: 12188
diff changeset
1722 g_signal_connect(G_OBJECT(button), "clicked",
d040123d2b69 [gaim-migrate @ 14497]
Sean Egan <seanegan@gmail.com>
parents: 12188
diff changeset
1723 G_CALLBACK(gaim_gtk_toggle_sensitive), menu);
12575
9b0187ba0ec0 [gaim-migrate @ 14897]
Mark Doliner <mark@kingant.net>
parents: 12573
diff changeset
1724 gtk_label_set_mnemonic_widget(GTK_LABEL(label), menu);
8238
32625c0dbba6 [gaim-migrate @ 8961]
Mark Doliner <mark@kingant.net>
parents: 8231
diff changeset
1725
5550
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1726 if (!gaim_prefs_get_bool("/core/away/away_when_idle")) {
12195
d040123d2b69 [gaim-migrate @ 14497]
Sean Egan <seanegan@gmail.com>
parents: 12188
diff changeset
1727 gtk_widget_set_sensitive(GTK_WIDGET(menu), FALSE);
5550
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1728 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE);
8238
32625c0dbba6 [gaim-migrate @ 8961]
Mark Doliner <mark@kingant.net>
parents: 8231
diff changeset
1729 gtk_widget_set_sensitive(GTK_WIDGET(label), FALSE);
5550
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1730 }
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1731
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1732 gtk_widget_show_all(ret);
5550
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1733
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1734 return ret;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1735 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1736
10759
56915e1b3ba3 [gaim-migrate @ 12362]
Mark Doliner <mark@kingant.net>
parents: 10701
diff changeset
1737 int prefs_notebook_add_page(const char *text,
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1738 GdkPixbuf *pixbuf,
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1739 GtkWidget *page,
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1740 GtkTreeIter *iter,
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1741 GtkTreeIter *parent,
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1742 int ind) {
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1743 GdkPixbuf *icon = NULL;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1744
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1745 if (pixbuf)
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1746 icon = gdk_pixbuf_scale_simple (pixbuf, 18, 18, GDK_INTERP_BILINEAR);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1747
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1748 if (pixbuf)
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1749 g_object_unref(pixbuf);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1750 if (icon)
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1751 g_object_unref(icon);
10759
56915e1b3ba3 [gaim-migrate @ 12362]
Mark Doliner <mark@kingant.net>
parents: 10701
diff changeset
1752
11380
eb49e64d02fd [gaim-migrate @ 13607]
Mark Doliner <mark@kingant.net>
parents: 11287
diff changeset
1753 #if GTK_CHECK_VERSION(2,4,0)
10759
56915e1b3ba3 [gaim-migrate @ 12362]
Mark Doliner <mark@kingant.net>
parents: 10701
diff changeset
1754 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
1755 #else
eb49e64d02fd [gaim-migrate @ 13607]
Mark Doliner <mark@kingant.net>
parents: 11287
diff changeset
1756 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
1757 return gtk_notebook_page_num(GTK_NOTEBOOK(prefsnotebook), page);
eb49e64d02fd [gaim-migrate @ 13607]
Mark Doliner <mark@kingant.net>
parents: 11287
diff changeset
1758 #endif
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1759 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1760
10871
6240d7fd5b2c [gaim-migrate @ 12558]
Mark Doliner <mark@kingant.net>
parents: 10859
diff changeset
1761 static void prefs_notebook_init() {
9267
3e8619644a8a [gaim-migrate @ 10066]
Tim Ringenbach <marv@pidgin.im>
parents: 9251
diff changeset
1762 GtkTreeIter p, c, c2;
9150
05532ad61ed5 [gaim-migrate @ 9934]
Luke Schierer <lschiere@pidgin.im>
parents: 9130
diff changeset
1763 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
1764 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
1765 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
1766 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
1767 #ifndef _WIN32
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1768 /* We use the registered default browser in windows */
10060
7570908c558f [gaim-migrate @ 11030]
Tim Ringenbach <marv@pidgin.im>
parents: 9993
diff changeset
1769 /* 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
1770 if (gaim_running_gnome() == FALSE) {
10060
7570908c558f [gaim-migrate @ 11030]
Tim Ringenbach <marv@pidgin.im>
parents: 9993
diff changeset
1771 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
1772 }
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1773 #endif
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1774 prefs_notebook_add_page(_("Logging"), NULL, logging_page(), &p, NULL, notebook_page++);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1775 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
1776 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1777
5530
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1778 void gaim_gtk_prefs_show(void)
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1779 {
10078
436fe70b4d50 [gaim-migrate @ 11060]
Sean Egan <seanegan@gmail.com>
parents: 10075
diff changeset
1780 GtkWidget *vbox;
8292
90ed519c6645 [gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents: 8283
diff changeset
1781 GtkWidget *bbox;
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1782 GtkWidget *notebook;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1783 GtkWidget *button;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1784
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1785 if (prefs) {
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1786 gtk_window_present(GTK_WINDOW(prefs));
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1787 return;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1788 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1789
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1790 /* copy the preferences to tmp values...
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1791 * I liked "take affect immediately" Oh well :-( */
6016
1e4a574bb46d [gaim-migrate @ 6466]
Mark Doliner <mark@kingant.net>
parents: 6007
diff changeset
1792 /* (that should have been "effect," right?) */
1e4a574bb46d [gaim-migrate @ 6466]
Mark Doliner <mark@kingant.net>
parents: 6007
diff changeset
1793
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1794 /* Back to instant-apply! I win! BU-HAHAHA! */
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1795
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1796 /* Create the window */
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1797 prefs = gtk_window_new(GTK_WINDOW_TOPLEVEL);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1798 gtk_window_set_role(GTK_WINDOW(prefs), "preferences");
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1799 gtk_window_set_title(GTK_WINDOW(prefs), _("Preferences"));
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1800 gtk_window_set_resizable (GTK_WINDOW(prefs), FALSE);
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1801 gtk_container_set_border_width(GTK_CONTAINER(prefs), GAIM_HIG_BORDER);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1802 g_signal_connect(G_OBJECT(prefs), "destroy",
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1803 G_CALLBACK(delete_prefs), NULL);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1804
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1805 vbox = gtk_vbox_new(FALSE, GAIM_HIG_BORDER);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1806 gtk_container_add(GTK_CONTAINER(prefs), vbox);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1807 gtk_widget_show(vbox);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1808
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1809 /* The notebook */
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1810 prefsnotebook = notebook = gtk_notebook_new ();
10078
436fe70b4d50 [gaim-migrate @ 11060]
Sean Egan <seanegan@gmail.com>
parents: 10075
diff changeset
1811 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
1812 gtk_widget_show(prefsnotebook);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1813
8713
7024b595b6ae [gaim-migrate @ 9467]
Luke Schierer <lschiere@pidgin.im>
parents: 8705
diff changeset
1814 /* The buttons to press! */
8292
90ed519c6645 [gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents: 8283
diff changeset
1815 bbox = gtk_hbutton_box_new();
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11137
diff changeset
1816 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
1817 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
1818 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
90ed519c6645 [gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents: 8283
diff changeset
1819 gtk_widget_show (bbox);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1820
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1821 button = gtk_button_new_from_stock (GTK_STOCK_CLOSE);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1822 g_signal_connect_swapped(G_OBJECT(button), "clicked",
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1823 G_CALLBACK(gtk_widget_destroy), prefs);
8292
90ed519c6645 [gaim-migrate @ 9016]
Christian Hammond <chipx86@chipx86.com>
parents: 8283
diff changeset
1824 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1825 gtk_widget_show(button);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1826
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1827 prefs_notebook_init();
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1828
5568
fb4f7bd7525c [gaim-migrate @ 5970]
Christian Hammond <chipx86@chipx86.com>
parents: 5567
diff changeset
1829 /* Show everything. */
11740
7e0ad3b6882a [gaim-migrate @ 14031]
Sean Egan <seanegan@gmail.com>
parents: 11709
diff changeset
1830 gtk_widget_show(prefs);
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1831 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1832
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1833 static void
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1834 set_bool_pref(GtkWidget *w, const char *key)
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1835 {
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1836 gaim_prefs_set_bool(key,
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1837 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)));
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1838 }
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1839
7976
8e5a21b1efa6 [gaim-migrate @ 8653]
Nathan Walp <nwalp@pidgin.im>
parents: 7940
diff changeset
1840 GtkWidget *
7987
fc6b362f9c26 [gaim-migrate @ 8664]
Nathan Walp <nwalp@pidgin.im>
parents: 7976
diff changeset
1841 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
1842 {
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1843 GtkWidget *button;
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1844
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1845 button = gtk_check_button_new_with_mnemonic(text);
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1846 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1847 gaim_prefs_get_bool(key));
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1848
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1849 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
1850
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1851 g_signal_connect(G_OBJECT(button), "clicked",
5551
51699de873af [gaim-migrate @ 5952]
Christian Hammond <chipx86@chipx86.com>
parents: 5550
diff changeset
1852 G_CALLBACK(set_bool_pref), (char *)key);
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1853
5440
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1854 gtk_widget_show(button);
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1855
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1856 return button;
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1857 }
7e8524b5ff98 [gaim-migrate @ 5822]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1858
5770
a86051df9122 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
1859 static void
a86051df9122 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
1860 smiley_theme_pref_cb(const char *name, GaimPrefType type, gpointer value,
a86051df9122 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
1861 gpointer data)
a86051df9122 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
1862 {
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1863 const char *themename = value;
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1864 GSList *themes;
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1865
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1866 for (themes = smiley_themes; themes; themes = themes->next) {
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1867 struct smiley_theme *smile = themes->data;
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1868 if (smile->name && strcmp(themename, smile->name) == 0) {
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1869 gaim_gtkthemes_load_smiley_theme(smile->path, TRUE);
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1870 break;
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1871 }
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1872 }
5770
a86051df9122 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
1873 }
a86051df9122 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
1874
5530
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1875 void
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1876 gaim_gtk_prefs_init(void)
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1877 {
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1878 gaim_prefs_add_none("/gaim");
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1879 gaim_prefs_add_none("/gaim/gtk");
5550
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1880 gaim_prefs_add_none("/plugins/gtk");
b18c2a37cc96 [gaim-migrate @ 5951]
Christian Hammond <chipx86@chipx86.com>
parents: 5547
diff changeset
1881
8283
35f69749b226 [gaim-migrate @ 9007]
Luke Schierer <lschiere@pidgin.im>
parents: 8274
diff changeset
1882 #ifndef _WIN32
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1883 /* Browsers */
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1884 gaim_prefs_add_none("/gaim/gtk/browsers");
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
1885 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
1886 gaim_prefs_add_string("/gaim/gtk/browsers/command", "");
5546
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
1887 gaim_prefs_add_string("/gaim/gtk/browsers/browser", "mozilla");
8283
35f69749b226 [gaim-migrate @ 9007]
Luke Schierer <lschiere@pidgin.im>
parents: 8274
diff changeset
1888 #endif
5545
7a64114641c3 [gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents: 5539
diff changeset
1889
5949
90d0849abd3c [gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1890 /* Plugins */
5982
35d3c1ac5ece [gaim-migrate @ 6430]
Christian Hammond <chipx86@chipx86.com>
parents: 5981
diff changeset
1891 gaim_prefs_add_none("/gaim/gtk/plugins");
5949
90d0849abd3c [gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1892 gaim_prefs_add_string_list("/gaim/gtk/plugins/loaded", NULL);
90d0849abd3c [gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
1893
10605
56d4460bb6bd [gaim-migrate @ 12037]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10589
diff changeset
1894 /* File locations */
56d4460bb6bd [gaim-migrate @ 12037]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10589
diff changeset
1895 gaim_prefs_add_none("/gaim/gtk/filelocations");
56d4460bb6bd [gaim-migrate @ 12037]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10589
diff changeset
1896 gaim_prefs_add_string("/gaim/gtk/filelocations/last_save_folder", "");
56d4460bb6bd [gaim-migrate @ 12037]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10589
diff changeset
1897 gaim_prefs_add_string("/gaim/gtk/filelocations/last_open_folder", "");
56d4460bb6bd [gaim-migrate @ 12037]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10589
diff changeset
1898 gaim_prefs_add_string("/gaim/gtk/filelocations/last_icon_folder", "");
56d4460bb6bd [gaim-migrate @ 12037]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10589
diff changeset
1899
5539
de09863bd4b5 [gaim-migrate @ 5939]
Christian Hammond <chipx86@chipx86.com>
parents: 5535
diff changeset
1900 /* Smiley Themes */
5546
22cf337e8b8f [gaim-migrate @ 5947]
Christian Hammond <chipx86@chipx86.com>
parents: 5545
diff changeset
1901 gaim_prefs_add_none("/gaim/gtk/smileys");
11557
1e7c0773380f [gaim-migrate @ 13819]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 11550
diff changeset
1902 gaim_prefs_add_string("/gaim/gtk/smileys/theme", "Default");
5770
a86051df9122 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
1903
a86051df9122 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
1904 /* Smiley Callbacks */
10087
9fdbfe832fac [gaim-migrate @ 11098]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10079
diff changeset
1905 gaim_prefs_connect_callback(prefs, "/gaim/gtk/smileys/theme",
5770
a86051df9122 [gaim-migrate @ 6195]
Christian Hammond <chipx86@chipx86.com>
parents: 5753
diff changeset
1906 smiley_theme_pref_cb, NULL);
5530
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5440
diff changeset
1907 }
8905
438e8d857554 [gaim-migrate @ 9674]
Mark Doliner <mark@kingant.net>
parents: 8900
diff changeset
1908
438e8d857554 [gaim-migrate @ 9674]
Mark Doliner <mark@kingant.net>
parents: 8900
diff changeset
1909 void gaim_gtk_prefs_update_old() {
438e8d857554 [gaim-migrate @ 9674]
Mark Doliner <mark@kingant.net>
parents: 8900
diff changeset
1910 /* Rename some old prefs */
438e8d857554 [gaim-migrate @ 9674]
Mark Doliner <mark@kingant.net>
parents: 8900
diff changeset
1911 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
1912 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
1913 gaim_prefs_rename("/core/conversations/placement",
8998
3738d1eac0ad [gaim-migrate @ 9773]
Luke Schierer <lschiere@pidgin.im>
parents: 8994
diff changeset
1914 "/gaim/gtk/conversations/placement");
8905
438e8d857554 [gaim-migrate @ 9674]
Mark Doliner <mark@kingant.net>
parents: 8900
diff changeset
1915
10307
2ac21bf20e04 [gaim-migrate @ 11497]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
1916 gaim_prefs_rename("/gaim/gtk/debug/timestamps", "/core/debug/timestamps");
10701
e4d893b12624 [gaim-migrate @ 12283]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10676
diff changeset
1917 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
1918
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
1919 gaim_prefs_rename_boolean_toggle("/gaim/gtk/conversations/ignore_colors",
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
1920 "/gaim/gtk/conversations/show_incoming_formatting");
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
1921
12573
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1922 /* this string pref moved into the core, try to be friendly */
200f22ca4890 [gaim-migrate @ 14895]
Mark Doliner <mark@kingant.net>
parents: 12553
diff changeset
1923 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
1924
8905
438e8d857554 [gaim-migrate @ 9674]
Mark Doliner <mark@kingant.net>
parents: 8900
diff changeset
1925 /* Remove some no-longer-used prefs */
10398
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
1926 gaim_prefs_remove("/gaim/gtk/blist/auto_expand_contacts");
10133
e144efd6a5be [gaim-migrate @ 11197]
Mark Doliner <mark@kingant.net>
parents: 10129
diff changeset
1927 gaim_prefs_remove("/gaim/gtk/blist/button_style");
10168
e6372844a4b8 [gaim-migrate @ 11257]
Mark Doliner <mark@kingant.net>
parents: 10167
diff changeset
1928 gaim_prefs_remove("/gaim/gtk/blist/grey_idle_buddies");
10133
e144efd6a5be [gaim-migrate @ 11197]
Mark Doliner <mark@kingant.net>
parents: 10129
diff changeset
1929 gaim_prefs_remove("/gaim/gtk/blist/raise_on_events");
8945
6d7b403b11bb [gaim-migrate @ 9717]
Mark Doliner <mark@kingant.net>
parents: 8944
diff changeset
1930 gaim_prefs_remove("/gaim/gtk/blist/show_group_count");
10353
fc7168f9ecb0 [gaim-migrate @ 11570]
Mark Doliner <mark@kingant.net>
parents: 10351
diff changeset
1931 gaim_prefs_remove("/gaim/gtk/blist/show_warning_level");
10358
524674a4f6bb [gaim-migrate @ 11576]
Mark Doliner <mark@kingant.net>
parents: 10356
diff changeset
1932 gaim_prefs_remove("/gaim/gtk/conversations/button_type");
10398
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
1933 gaim_prefs_remove("/gaim/gtk/conversations/ctrl_enter_sends");
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
1934 gaim_prefs_remove("/gaim/gtk/conversations/enter_sends");
11697
186d2d293ef4 [gaim-migrate @ 13988]
Mark Doliner <mark@kingant.net>
parents: 11642
diff changeset
1935 gaim_prefs_remove("/gaim/gtk/conversations/escape_closes");
10164
3f71f7282dbf [gaim-migrate @ 11250]
Mark Doliner <mark@kingant.net>
parents: 10163
diff changeset
1936 gaim_prefs_remove("/gaim/gtk/conversations/html_shortcuts");
8946
80944edf8d80 [gaim-migrate @ 9718]
Mark Doliner <mark@kingant.net>
parents: 8945
diff changeset
1937 gaim_prefs_remove("/gaim/gtk/conversations/icons_on_tabs");
11267
477e5cca8287 [gaim-migrate @ 13449]
Richard Laager <rlaager@wiktel.com>
parents: 11256
diff changeset
1938 gaim_prefs_remove("/gaim/gtk/conversations/send_formatting");
10398
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
1939 gaim_prefs_remove("/gaim/gtk/conversations/show_smileys");
8905
438e8d857554 [gaim-migrate @ 9674]
Mark Doliner <mark@kingant.net>
parents: 8900
diff changeset
1940 gaim_prefs_remove("/gaim/gtk/conversations/show_urls_as_links");
10164
3f71f7282dbf [gaim-migrate @ 11250]
Mark Doliner <mark@kingant.net>
parents: 10163
diff changeset
1941 gaim_prefs_remove("/gaim/gtk/conversations/smiley_shortcuts");
9025
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
1942 gaim_prefs_remove("/gaim/gtk/conversations/use_custom_bgcolor");
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
1943 gaim_prefs_remove("/gaim/gtk/conversations/use_custom_fgcolor");
11269
1cbe76d30e81 [gaim-migrate @ 13451]
Richard Laager <rlaager@wiktel.com>
parents: 11267
diff changeset
1944 gaim_prefs_remove("/gaim/gtk/conversations/use_custom_font");
9025
b24967757d46 [gaim-migrate @ 9801]
Luke Schierer <lschiere@pidgin.im>
parents: 8998
diff changeset
1945 gaim_prefs_remove("/gaim/gtk/conversations/use_custom_size");
10398
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
1946 gaim_prefs_remove("/gaim/gtk/conversations/chat/old_tab_complete");
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
1947 gaim_prefs_remove("/gaim/gtk/conversations/chat/tab_completion");
9301
3d5519a84d02 [gaim-migrate @ 10105]
Mark Doliner <mark@kingant.net>
parents: 9285
diff changeset
1948 gaim_prefs_remove("/gaim/gtk/conversations/im/hide_on_send");
10398
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
1949 gaim_prefs_remove("/gaim/gtk/conversations/chat/color_nicks");
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
1950 gaim_prefs_remove("/gaim/gtk/conversations/chat/raise_on_events");
10492
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10489
diff changeset
1951 gaim_prefs_remove("/gaim/gtk/conversations/ignore_fonts");
45ad1d15fab3 [gaim-migrate @ 11782]
Sean Egan <seanegan@gmail.com>
parents: 10489
diff changeset
1952 gaim_prefs_remove("/gaim/gtk/conversations/ignore_font_sizes");
12272
3ef381cdc47e [gaim-migrate @ 14574]
Mark Doliner <mark@kingant.net>
parents: 12240
diff changeset
1953 gaim_prefs_remove("/gaim/gtk/idle");
10398
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
1954 gaim_prefs_remove("/gaim/gtk/logging/individual_logs");
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
1955 gaim_prefs_remove("/gaim/gtk/sound/signon");
de59c0e7f87e [gaim-migrate @ 11628]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10389
diff changeset
1956 gaim_prefs_remove("/gaim/gtk/sound/silent_signon");
12616
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
1957
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
1958 /* Convert old queuing prefs to hide_new 3-way pref. */
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
1959 if (gaim_prefs_exists("/plugins/gtk/docklet/queue_messages") &&
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
1960 gaim_prefs_get_bool("/plugins/gtk/docklet/queue_messages"))
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
1961 {
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
1962 gaim_prefs_set_string("/gaim/gtk/conversations/im/hide_new", "always");
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
1963 }
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
1964 else if (gaim_prefs_exists("/gaim/gtk/away/queue_messages") &&
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
1965 gaim_prefs_get_bool("/gaim/gtk/away/queue_messages"))
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
1966 {
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
1967 gaim_prefs_set_string("/gaim/gtk/conversations/im/hide_new", "away");
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
1968 }
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
1969 else
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
1970 {
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
1971 gaim_prefs_set_string("/gaim/gtk/conversations/im/hide_new", "never");
eee2042ad4f4 [gaim-migrate @ 14952]
Richard Laager <rlaager@wiktel.com>
parents: 12613
diff changeset
1972 }
12116
e75ef7aa913e [gaim-migrate @ 14416]
Luke Schierer <lschiere@pidgin.im>
parents: 12067
diff changeset
1973 gaim_prefs_remove("/gaim/gtk/away/queue_messages");
12281
970fec1d7062 [gaim-migrate @ 14585]
Mark Doliner <mark@kingant.net>
parents: 12272
diff changeset
1974 gaim_prefs_remove("/gaim/gtk/away");
12116
e75ef7aa913e [gaim-migrate @ 14416]
Luke Schierer <lschiere@pidgin.im>
parents: 12067
diff changeset
1975 gaim_prefs_remove("/plugins/gtk/docklet/queue_messages");
8905
438e8d857554 [gaim-migrate @ 9674]
Mark Doliner <mark@kingant.net>
parents: 8900
diff changeset
1976 }