pidgin/gtkpluginpref.c

Fri, 09 Nov 2007 08:48:40 +0000

author
John Bailey <rekkanoryo@rekkanoryo.org>
date
Fri, 09 Nov 2007 08:48:40 +0000
branch
release-2.2.3
changeset 20289
5c844288fbec
parent 20147
66f05a854eee
child 22139
f0f4a10114ea
permissions
-rw-r--r--

applied changes from 32f31e981f0618a4167aa98bcc22c2dab13d1550
through a9f75de97d6cdf8fe8bf091b95def6c648aac82f

applied changes from a9f75de97d6cdf8fe8bf091b95def6c648aac82f
through 7c9f2e0cc4967a3eaade95d32f164349b6d1aa03

applied changes from a9f75de97d6cdf8fe8bf091b95def6c648aac82f
through fc4350a15fdd1f51b4496568afaa83355e18b714

applied changes from fc4350a15fdd1f51b4496568afaa83355e18b714
through 18ccd2ba2c1c9b7fa3dfedf72b48b3bd01c3a7c4

applied changes from a9f75de97d6cdf8fe8bf091b95def6c648aac82f
through 20236f54c97e87512b7eb716559a4bd86b73f833

applied changes from 868a040ee69c6e45b9132e7254a3f523e55385b2
through 0e154355bb3e8bdaeb793b142075b60671b37a48

applied changes from 329395b9793793f35bcf231033c1eb942513ab01
through 9d8120be512c235d76a8f6fee60cae024da8772e

8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
1 /**
10297
b36800725b7a [gaim-migrate @ 11480]
Evan Schoenberg <evands@pidgin.im>
parents: 9841
diff changeset
2 * @file gtkpluginpref.c GTK+ Plugin preferences
16254
eeb2bba4dc94 Rename the Doxygen group from gtkui to pidgin.
Richard Laager <rlaager@pidgin.im>
parents: 15931
diff changeset
3 * @ingroup pidgin
20147
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
4 */
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
5
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 19859
diff changeset
6 /* pidgin
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
7 *
15931
716b5fac1895 Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
8 * Pidgin is the legal property of its developers, whose names are too numerous
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
9 * to list here. Please refer to the COPYRIGHT file distributed with this
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
10 * source distribution.
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
11 *
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
12 * This program is free software; you can redistribute it and/or modify
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
13 * it under the terms of the GNU General Public License as published by
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
14 * the Free Software Foundation; either version 2 of the License, or
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
15 * (at your option) any later version.
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
16 *
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
17 * This program is distributed in the hope that it will be useful,
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
20 * GNU General Public License for more details.
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
21 *
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
22 * You should have received a copy of the GNU General Public License
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
23 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16254
diff changeset
24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
25 */
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
26 #ifdef HAVE_CONFIG_H
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
27 # include <config.h>
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
28 #endif
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
29
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
30 #include "debug.h"
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
31 #include "internal.h"
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
32 #include "pluginpref.h"
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
33 #include "prefs.h"
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
34
12712
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
35 #include "gtkimhtml.h"
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
36 #include "gtkpluginpref.h"
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
37 #include "gtkprefs.h"
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
38 #include "gtkutils.h"
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
39
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
40 static gboolean
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
41 entry_cb(GtkWidget *entry, gpointer data) {
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
42 char *pref = data;
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
43
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
44 purple_prefs_set_string(pref, gtk_entry_get_text(GTK_ENTRY(entry)));
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
45
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
46 return FALSE;
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
47 }
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
48
12712
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
49
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
50 static void
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
51 imhtml_cb(GtkTextBuffer *buffer, gpointer data)
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
52 {
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
53 char *pref;
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
54 char *text;
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
55 GtkIMHtml *imhtml = data;
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
56
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
57 pref = g_object_get_data(G_OBJECT(imhtml), "pref-key");
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
58 g_return_if_fail(pref);
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
59
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
60 text = gtk_imhtml_get_markup(imhtml);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
61 purple_prefs_set_string(pref, text);
12712
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
62 g_free(text);
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
63 }
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
64
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
65 static void
12794
e4f178fc08b5 [gaim-migrate @ 15141]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12712
diff changeset
66 imhtml_format_cb(GtkIMHtml *imhtml, GtkIMHtmlButtons buttons, gpointer data)
e4f178fc08b5 [gaim-migrate @ 15141]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12712
diff changeset
67 {
e4f178fc08b5 [gaim-migrate @ 15141]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12712
diff changeset
68 imhtml_cb(gtk_text_view_get_buffer(GTK_TEXT_VIEW(imhtml)), data);
e4f178fc08b5 [gaim-migrate @ 15141]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12712
diff changeset
69 }
e4f178fc08b5 [gaim-migrate @ 15141]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12712
diff changeset
70
e4f178fc08b5 [gaim-migrate @ 15141]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12712
diff changeset
71 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
72 make_string_pref(GtkWidget *parent, PurplePluginPref *pref, GtkSizeGroup *sg) {
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
73 GtkWidget *box, *gtk_label, *entry;
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
74 const gchar *pref_name;
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
75 const gchar *pref_label;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
76 PurpleStringFormatType format;
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
77
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
78 pref_name = purple_plugin_pref_get_name(pref);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
79 pref_label = purple_plugin_pref_get_label(pref);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
80 format = purple_plugin_pref_get_format_type(pref);
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
81
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
82 switch(purple_plugin_pref_get_type(pref)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
83 case PURPLE_PLUGIN_PREF_CHOICE:
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
84 gtk_label = pidgin_prefs_dropdown_from_list(parent, pref_label,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
85 PURPLE_PREF_STRING, pref_name,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
86 purple_plugin_pref_get_choices(pref));
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
87 gtk_misc_set_alignment(GTK_MISC(gtk_label), 0, 0.5);
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
88
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
89 if(sg)
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
90 gtk_size_group_add_widget(sg, gtk_label);
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
91
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
92 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
93 case PURPLE_PLUGIN_PREF_NONE:
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
94 default:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
95 if (format == PURPLE_STRING_FORMAT_TYPE_NONE)
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
96 box = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
97 else
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
98 box = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
99
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
100 gtk_widget_show(box);
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
101 gtk_box_pack_start(GTK_BOX(parent), box, FALSE, FALSE, 0);
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
102
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
103 gtk_label = gtk_label_new_with_mnemonic(pref_label);
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
104 gtk_misc_set_alignment(GTK_MISC(gtk_label), 0, 0.5);
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
105 gtk_widget_show(gtk_label);
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
106 gtk_box_pack_start(GTK_BOX(box), gtk_label, FALSE, FALSE, 0);
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
107
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
108 if(sg)
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
109 gtk_size_group_add_widget(sg, gtk_label);
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
110
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
111 if (format == PURPLE_STRING_FORMAT_TYPE_NONE)
12712
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
112 {
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
113 entry = gtk_entry_new();
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
114 gtk_entry_set_text(GTK_ENTRY(entry), purple_prefs_get_string(pref_name));
12712
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
115 gtk_entry_set_max_length(GTK_ENTRY(entry),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
116 purple_plugin_pref_get_max_length(pref));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
117 if (purple_plugin_pref_get_masked(pref))
12712
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
118 {
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
119 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
15390
d429e03fc755 [gaim-migrate @ 18119]
Mark Doliner <markdoliner@pidgin.im>
parents: 14937
diff changeset
120 if (gtk_entry_get_invisible_char(GTK_ENTRY(entry)) == '*')
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
121 gtk_entry_set_invisible_char(GTK_ENTRY(entry), PIDGIN_INVISIBLE_CHAR);
12712
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
122 }
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
123 g_signal_connect(G_OBJECT(entry), "changed",
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
124 G_CALLBACK(entry_cb),
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
125 (gpointer)pref_name);
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
126 gtk_label_set_mnemonic_widget(GTK_LABEL(gtk_label), entry);
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
127 gtk_widget_show(entry);
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
128 gtk_box_pack_start(GTK_BOX(box), entry, FALSE, FALSE, 0);
12712
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
129 }
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
130 else
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11243
diff changeset
131 {
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
132 GtkWidget *hbox;
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
133 GtkWidget *spacer;
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
134 GtkWidget *imhtml;
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
135 GtkWidget *toolbar;
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
136 GtkWidget *frame;
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
137
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
138 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
139 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0);
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
140 gtk_widget_show(hbox);
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
141
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
142 spacer = gtk_label_new(" ");
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
143 gtk_box_pack_start(GTK_BOX(hbox), spacer, FALSE, FALSE, 0);
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
144 gtk_widget_show(spacer);
12712
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
145
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
146 frame = pidgin_create_imhtml(TRUE, &imhtml, &toolbar, NULL);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
147 if (!(format & PURPLE_STRING_FORMAT_TYPE_HTML))
12712
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
148 gtk_widget_destroy(toolbar);
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
149
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
150 gtk_imhtml_append_text(GTK_IMHTML(imhtml), purple_prefs_get_string(pref_name),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
151 (format & PURPLE_STRING_FORMAT_TYPE_MULTILINE) ? 0 : GTK_IMHTML_NO_NEWLINE);
12712
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
152 gtk_label_set_mnemonic_widget(GTK_LABEL(gtk_label), imhtml);
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
153 gtk_widget_show_all(frame);
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
154 g_object_set_data(G_OBJECT(imhtml), "pref-key", (gpointer)pref_name);
12712
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
155 g_signal_connect(G_OBJECT(gtk_text_view_get_buffer(GTK_TEXT_VIEW(imhtml))),
21ea46d3dee9 [gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 11986
diff changeset
156 "changed", G_CALLBACK(imhtml_cb), imhtml);
12794
e4f178fc08b5 [gaim-migrate @ 15141]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12712
diff changeset
157 g_signal_connect(G_OBJECT(imhtml),
e4f178fc08b5 [gaim-migrate @ 15141]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12712
diff changeset
158 "format_function_toggle", G_CALLBACK(imhtml_format_cb), imhtml);
14937
d09c897e41f5 [gaim-migrate @ 17644]
Benjamin Moody
parents: 14253
diff changeset
159 gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0);
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11243
diff changeset
160 }
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
161
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
162 break;
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
163 }
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
164 }
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
165
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
166 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
167 make_int_pref(GtkWidget *parent, PurplePluginPref *pref, GtkSizeGroup *sg) {
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
168 GtkWidget *gtk_label;
13107
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
169 const gchar *pref_name;
704041197f4d [gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents: 12794
diff changeset
170 const gchar *pref_label;
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
171 gint max, min;
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
172
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
173 pref_name = purple_plugin_pref_get_name(pref);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
174 pref_label = purple_plugin_pref_get_label(pref);
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
175
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
176 switch(purple_plugin_pref_get_type(pref)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
177 case PURPLE_PLUGIN_PREF_CHOICE:
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
178 gtk_label = pidgin_prefs_dropdown_from_list(parent, pref_label,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
179 PURPLE_PREF_INT, pref_name, purple_plugin_pref_get_choices(pref));
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
180 gtk_misc_set_alignment(GTK_MISC(gtk_label), 0, 0.5);
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
181
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
182 if(sg)
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
183 gtk_size_group_add_widget(sg, gtk_label);
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
184
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
185 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
186 case PURPLE_PLUGIN_PREF_NONE:
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
187 default:
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
188 purple_plugin_pref_get_bounds(pref, &min, &max);
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
189 pidgin_prefs_labeled_spin_button(parent, pref_label,
9529
377b70382202 [gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents: 8713
diff changeset
190 pref_name, min, max, sg);
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
191 break;
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
192 }
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
193 }
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
194
9529
377b70382202 [gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents: 8713
diff changeset
195
377b70382202 [gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents: 8713
diff changeset
196 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
197 make_info_pref(GtkWidget *parent, PurplePluginPref *pref) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
198 GtkWidget *gtk_label = gtk_label_new(purple_plugin_pref_get_label(pref));
9529
377b70382202 [gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents: 8713
diff changeset
199 gtk_misc_set_alignment(GTK_MISC(gtk_label), 0, 0);
377b70382202 [gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents: 8713
diff changeset
200 gtk_label_set_line_wrap(GTK_LABEL(gtk_label), TRUE);
377b70382202 [gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents: 8713
diff changeset
201 gtk_box_pack_start(GTK_BOX(parent), gtk_label, FALSE, FALSE, 0);
377b70382202 [gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents: 8713
diff changeset
202 gtk_widget_show(gtk_label);
377b70382202 [gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents: 8713
diff changeset
203 }
377b70382202 [gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents: 8713
diff changeset
204
377b70382202 [gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents: 8713
diff changeset
205
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
206 GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
207 pidgin_plugin_pref_create_frame(PurplePluginPrefFrame *frame) {
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
208 GtkWidget *ret, *parent;
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
209 GtkSizeGroup *sg;
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
210 GList *pp;
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
211
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
212 g_return_val_if_fail(frame, NULL);
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
213
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
214 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
215
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
216 parent = ret = gtk_vbox_new(FALSE, 16);
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
217 gtk_container_set_border_width(GTK_CONTAINER(ret), PIDGIN_HIG_BORDER);
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
218 gtk_widget_show(ret);
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
219
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
220 for(pp = purple_plugin_pref_frame_get_prefs(frame);
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
221 pp != NULL;
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
222 pp = pp->next)
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
223 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
224 PurplePluginPref *pref = (PurplePluginPref *)pp->data;
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
225
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
226 const char *name = purple_plugin_pref_get_name(pref);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
227 const char *label = purple_plugin_pref_get_label(pref);
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
228
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
229 if(name == NULL) {
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
230 if(label == NULL)
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
231 continue;
9529
377b70382202 [gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents: 8713
diff changeset
232
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
233 if(purple_plugin_pref_get_type(pref) == PURPLE_PLUGIN_PREF_INFO) {
9529
377b70382202 [gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents: 8713
diff changeset
234 make_info_pref(parent, pref);
377b70382202 [gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents: 8713
diff changeset
235 } else {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
236 parent = pidgin_make_frame(ret, label);
9529
377b70382202 [gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents: 8713
diff changeset
237 gtk_widget_show(parent);
377b70382202 [gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents: 8713
diff changeset
238 }
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
239
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
240 continue;
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
241 }
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
242
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
243 switch(purple_prefs_get_type(name)) {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
244 case PURPLE_PREF_BOOLEAN:
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
245 pidgin_prefs_checkbox(label, name, parent);
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
246 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
247 case PURPLE_PREF_INT:
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
248 make_int_pref(parent, pref, sg);
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
249 break;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
250 case PURPLE_PREF_STRING:
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
251 make_string_pref(parent, pref, sg);
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
252 break;
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
253 default:
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
254 break;
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
255 }
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
256 }
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
257
20289
5c844288fbec applied changes from 32f31e981f0618a4167aa98bcc22c2dab13d1550
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 20147
diff changeset
258 g_object_unref(sg);
5c844288fbec applied changes from 32f31e981f0618a4167aa98bcc22c2dab13d1550
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 20147
diff changeset
259
8713
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
260 return ret;
8a7baa8f8460 [gaim-migrate @ 9467]
Gary Kramlich <grim@pidgin.im>
parents:
diff changeset
261 }

mercurial