pidgin/gtkrequest.c

Tue, 26 Jun 2012 22:38:37 +0200

author
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
date
Tue, 26 Jun 2012 22:38:37 +0200
branch
soc.2012.gg
changeset 33298
519acf37d16e
parent 32945
e9d886909697
child 33056
32bace83b11e
child 33132
24afd2b22579
permissions
-rw-r--r--

Gadu-Gadu: fix receiving of inline images after 3.x changes; code refactoring here as well

5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 /**
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2 * @file gtkrequest.c GTK+ Request API
16254
eeb2bba4dc94 Rename the Doxygen group from gtkui to pidgin.
Richard Laager <rlaager@pidgin.im>
parents: 16123
diff changeset
3 * @ingroup pidgin
20147
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 20081
diff changeset
4 */
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 20081
diff changeset
5
66f05a854eee applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents: 20081
diff changeset
6 /* pidgin
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
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
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7964
diff changeset
9 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7964
diff changeset
10 * source distribution.
7035
76bca80cd91d [gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
11 *
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 * This program is free software; you can redistribute it and/or modify
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 * it under the terms of the GNU General Public License as published by
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 * the Free Software Foundation; either version 2 of the License, or
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 * (at your option) any later version.
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 *
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 * This program is distributed in the hope that it will be useful,
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 * GNU General Public License for more details.
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 *
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22 * You should have received a copy of the GNU General Public License
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
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: 19789
diff changeset
24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
25 */
9791
f5c5bda0b96b [gaim-migrate @ 10659]
Gary Kramlich <grim@pidgin.im>
parents: 9730
diff changeset
26 #include "internal.h"
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15570
diff changeset
27 #include "pidgin.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5846
diff changeset
28
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
29 #include "debug.h"
7066
2d8321bf0491 [gaim-migrate @ 7630]
Christian Hammond <chipx86@chipx86.com>
parents: 7048
diff changeset
30 #include "prefs.h"
11780
9aee3bde84b9 [gaim-migrate @ 14071]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11458
diff changeset
31 #include "util.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5846
diff changeset
32
9709
2e73f176cc80 [gaim-migrate @ 10570]
Mark Doliner <markdoliner@pidgin.im>
parents: 9573
diff changeset
33 #include "gtkimhtml.h"
2e73f176cc80 [gaim-migrate @ 10570]
Mark Doliner <markdoliner@pidgin.im>
parents: 9573
diff changeset
34 #include "gtkimhtmltoolbar.h"
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
35 #include "gtkrequest.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5846
diff changeset
36 #include "gtkutils.h"
15883
969b74a3e27a According to etags, pidgin/ should be completely clean of references to 'gaim' as a client
Sean Egan <seanegan@pidgin.im>
parents: 15882
diff changeset
37 #include "pidginstock.h"
19301
314d14687846 Forgot to refer to gtkblist.h
Gabriel Schulhof <nix@go-nix.ca>
parents: 19300
diff changeset
38 #include "gtkblist.h"
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
39
8294
cffb4d4660f0 [gaim-migrate @ 9018]
Christian Hammond <chipx86@chipx86.com>
parents: 8289
diff changeset
40 #include <gdk/gdkkeysyms.h>
cffb4d4660f0 [gaim-migrate @ 9018]
Christian Hammond <chipx86@chipx86.com>
parents: 8289
diff changeset
41
32890
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
42 #ifdef ENABLE_GCR
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
43 #define GCR_API_SUBJECT_TO_CHANGE
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
44 #include <gcr/gcr.h>
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
45 #include <gcr/gcr-simple-certificate.h>
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
46 #endif
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
47
32914
9d3d02829373 Fix calls to GTK_WIDGET_SET_FLAGS, which oddly enough does not seem to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32913
diff changeset
48 #if !GTK_CHECK_VERSION(2,18,0)
9d3d02829373 Fix calls to GTK_WIDGET_SET_FLAGS, which oddly enough does not seem to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32913
diff changeset
49 #define gtk_widget_set_can_default(x,y) do {\
9d3d02829373 Fix calls to GTK_WIDGET_SET_FLAGS, which oddly enough does not seem to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32913
diff changeset
50 if (y) \
9d3d02829373 Fix calls to GTK_WIDGET_SET_FLAGS, which oddly enough does not seem to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32913
diff changeset
51 GTK_WIDGET_SET_FLAGS(x, GTK_CAN_DEFAULT); \
9d3d02829373 Fix calls to GTK_WIDGET_SET_FLAGS, which oddly enough does not seem to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32913
diff changeset
52 else \
9d3d02829373 Fix calls to GTK_WIDGET_SET_FLAGS, which oddly enough does not seem to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32913
diff changeset
53 GTK_WIDGET_UNSET_FLAGS(x, GTK_CAN_DEFAULT); \
9d3d02829373 Fix calls to GTK_WIDGET_SET_FLAGS, which oddly enough does not seem to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32913
diff changeset
54 } while(0)
9d3d02829373 Fix calls to GTK_WIDGET_SET_FLAGS, which oddly enough does not seem to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32913
diff changeset
55 #define gtk_widget_set_can_focus(x,y) do {\
9d3d02829373 Fix calls to GTK_WIDGET_SET_FLAGS, which oddly enough does not seem to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32913
diff changeset
56 if (y) \
9d3d02829373 Fix calls to GTK_WIDGET_SET_FLAGS, which oddly enough does not seem to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32913
diff changeset
57 GTK_WIDGET_SET_FLAGS(x, GTK_CAN_FOCUS); \
9d3d02829373 Fix calls to GTK_WIDGET_SET_FLAGS, which oddly enough does not seem to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32913
diff changeset
58 else \
9d3d02829373 Fix calls to GTK_WIDGET_SET_FLAGS, which oddly enough does not seem to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32913
diff changeset
59 GTK_WIDGET_UNSET_FLAGS(x, GTK_CAN_FOCUS); \
9d3d02829373 Fix calls to GTK_WIDGET_SET_FLAGS, which oddly enough does not seem to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32913
diff changeset
60 } while(0)
9d3d02829373 Fix calls to GTK_WIDGET_SET_FLAGS, which oddly enough does not seem to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32913
diff changeset
61 #endif
9d3d02829373 Fix calls to GTK_WIDGET_SET_FLAGS, which oddly enough does not seem to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32913
diff changeset
62
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
63 static GtkWidget * create_account_field(PurpleRequestField *field);
8294
cffb4d4660f0 [gaim-migrate @ 9018]
Christian Hammond <chipx86@chipx86.com>
parents: 8289
diff changeset
64
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
65 typedef struct
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
66 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
67 PurpleRequestType type;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
68
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
69 void *user_data;
11177
534ca3ae0bfc [gaim-migrate @ 13285]
Richard Laager <rlaager@pidgin.im>
parents: 11071
diff changeset
70 GtkWidget *dialog;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
71
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
72 GtkWidget *ok_button;
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
73
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
74 size_t cb_count;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
75 GCallback *cbs;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
76
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
77 union
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
78 {
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
79 struct
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
80 {
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
81 GtkWidget *entry;
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
82
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
83 gboolean multiline;
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
84 gchar *hint;
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
85
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
86 } input;
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
87
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
88 struct
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
89 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
90 PurpleRequestFields *fields;
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
91
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
92 } multifield;
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
93
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
94 struct
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
95 {
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
96 gboolean savedialog;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
97 gchar *name;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
98
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
99 } file;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
100
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
101 } u;
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
102
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
103 } PidginRequestData;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
104
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
105 static void
28793
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
106 pidgin_widget_decorate_account(GtkWidget *cont, PurpleAccount *account)
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
107 {
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
108 GtkWidget *image;
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
109 GdkPixbuf *pixbuf;
32369
a8517f753732 Fix some new uses of GtkTooltips for GTK+ > 2.12.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32367
diff changeset
110 #if !GTK_CHECK_VERSION(2,12,0)
28793
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
111 GtkTooltips *tips;
32369
a8517f753732 Fix some new uses of GtkTooltips for GTK+ > 2.12.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32367
diff changeset
112 #endif
28793
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
113
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
114 if (!account)
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
115 return;
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
116
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
117 pixbuf = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_SMALL);
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
118 image = gtk_image_new_from_pixbuf(pixbuf);
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
119 g_object_unref(G_OBJECT(pixbuf));
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
120
32369
a8517f753732 Fix some new uses of GtkTooltips for GTK+ > 2.12.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32367
diff changeset
121 #if GTK_CHECK_VERSION(2,12,0)
a8517f753732 Fix some new uses of GtkTooltips for GTK+ > 2.12.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32367
diff changeset
122 gtk_widget_set_tooltip_text(image, purple_account_get_username(account));
a8517f753732 Fix some new uses of GtkTooltips for GTK+ > 2.12.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32367
diff changeset
123 #else
28793
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
124 tips = gtk_tooltips_new();
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
125 gtk_tooltips_set_tip(tips, image, purple_account_get_username(account), NULL);
32369
a8517f753732 Fix some new uses of GtkTooltips for GTK+ > 2.12.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32367
diff changeset
126 #endif
28793
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
127
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
128 if (GTK_IS_DIALOG(cont)) {
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
129 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(cont)->action_area), image, FALSE, TRUE, 0);
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
130 gtk_box_reorder_child(GTK_BOX(GTK_DIALOG(cont)->action_area), image, 0);
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
131 } else if (GTK_IS_HBOX(cont)) {
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
132 gtk_misc_set_alignment(GTK_MISC(image), 0, 0);
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
133 gtk_box_pack_end(GTK_BOX(cont), image, FALSE, TRUE, 0);
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
134 }
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
135 gtk_widget_show(image);
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
136 }
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
137
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
138 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
139 generic_response_start(PidginRequestData *data)
12234
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
140 {
13435
4c22eed6e0a6 [gaim-migrate @ 15809]
Richard Laager <rlaager@pidgin.im>
parents: 13373
diff changeset
141 g_return_if_fail(data != NULL);
4c22eed6e0a6 [gaim-migrate @ 15809]
Richard Laager <rlaager@pidgin.im>
parents: 13373
diff changeset
142
12234
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
143 /* Tell the user we're doing something. */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
144 pidgin_set_cursor(GTK_WIDGET(data->dialog), GDK_WATCH);
12234
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
145 }
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
146
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
147 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
148 input_response_cb(GtkDialog *dialog, gint id, PidginRequestData *data)
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
149 {
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
150 const char *value;
7174
2f3cab1045d6 [gaim-migrate @ 7742]
Nathan Walp <nwalp@pidgin.im>
parents: 7172
diff changeset
151 char *multiline_value = NULL;
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
152
12234
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
153 generic_response_start(data);
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
154
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
155 if (data->u.input.multiline) {
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
156 GtkTextIter start_iter, end_iter;
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
157 GtkTextBuffer *buffer =
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
158 gtk_text_view_get_buffer(GTK_TEXT_VIEW(data->u.input.entry));
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
159
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
160 gtk_text_buffer_get_start_iter(buffer, &start_iter);
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
161 gtk_text_buffer_get_end_iter(buffer, &end_iter);
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
162
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
163 if ((data->u.input.hint != NULL) && (!strcmp(data->u.input.hint, "html")))
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
164 multiline_value = gtk_imhtml_get_markup(GTK_IMHTML(data->u.input.entry));
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
165 else
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
166 multiline_value = gtk_text_buffer_get_text(buffer, &start_iter, &end_iter,
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
167 FALSE);
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
168
7172
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7142
diff changeset
169 value = multiline_value;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
170 }
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
171 else
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
172 value = gtk_entry_get_text(GTK_ENTRY(data->u.input.entry));
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
173
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
174 if (id < data->cb_count && data->cbs[id] != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
175 ((PurpleRequestInputCb)data->cbs[id])(data->user_data, value);
6110
8c703c3453c7 [gaim-migrate @ 6572]
Mark Doliner <markdoliner@pidgin.im>
parents: 6109
diff changeset
176 else if (data->cbs[1] != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
177 ((PurpleRequestInputCb)data->cbs[1])(data->user_data, value);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
178
7172
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7142
diff changeset
179 if (data->u.input.multiline)
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7142
diff changeset
180 g_free(multiline_value);
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7142
diff changeset
181
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
182 purple_request_close(PURPLE_REQUEST_INPUT, data);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
183 }
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
184
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
185 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
186 action_response_cb(GtkDialog *dialog, gint id, PidginRequestData *data)
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
187 {
12234
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
188 generic_response_start(data);
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
189
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
190 if (id < data->cb_count && data->cbs[id] != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
191 ((PurpleRequestActionCb)data->cbs[id])(data->user_data, id);
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
192
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
193 purple_request_close(PURPLE_REQUEST_INPUT, data);
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
194 }
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
195
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
196
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
197 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
198 choice_response_cb(GtkDialog *dialog, gint id, PidginRequestData *data)
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
199 {
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
200 GtkWidget *radio = g_object_get_data(G_OBJECT(dialog), "radio");
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
201 GSList *group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio));
12234
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
202
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
203 generic_response_start(data);
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
204
10980
a193f3a01a34 [gaim-migrate @ 12810]
Daniel Atallah <datallah@pidgin.im>
parents: 10943
diff changeset
205 if (id < data->cb_count && data->cbs[id] != NULL)
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
206 while (group) {
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
207 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(group->data))) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
208 ((PurpleRequestChoiceCb)data->cbs[id])(data->user_data, GPOINTER_TO_INT(g_object_get_data(G_OBJECT(group->data), "choice_id")));
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
209 break;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
210 }
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
211 group = group->next;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
212 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
213 purple_request_close(PURPLE_REQUEST_INPUT, data);
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
214 }
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
215
5835
2d496d6d967d [gaim-migrate @ 6266]
Christian Hammond <chipx86@chipx86.com>
parents: 5834
diff changeset
216 static gboolean
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
217 field_string_focus_out_cb(GtkWidget *entry, GdkEventFocus *event,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
218 PurpleRequestField *field)
5832
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
219 {
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
220 const char *value;
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
221
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
222 if (purple_request_field_string_is_multiline(field))
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
223 {
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
224 GtkTextBuffer *buffer;
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
225 GtkTextIter start_iter, end_iter;
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
226
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
227 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(entry));
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
228
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
229 gtk_text_buffer_get_start_iter(buffer, &start_iter);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
230 gtk_text_buffer_get_end_iter(buffer, &end_iter);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
231
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
232 value = gtk_text_buffer_get_text(buffer, &start_iter, &end_iter, FALSE);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
233 }
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
234 else
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
235 value = gtk_entry_get_text(GTK_ENTRY(entry));
5834
c7945c10cff3 [gaim-migrate @ 6265]
Christian Hammond <chipx86@chipx86.com>
parents: 5832
diff changeset
236
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
237 purple_request_field_string_set_value(field,
5834
c7945c10cff3 [gaim-migrate @ 6265]
Christian Hammond <chipx86@chipx86.com>
parents: 5832
diff changeset
238 (*value == '\0' ? NULL : value));
5835
2d496d6d967d [gaim-migrate @ 6266]
Christian Hammond <chipx86@chipx86.com>
parents: 5834
diff changeset
239
2d496d6d967d [gaim-migrate @ 6266]
Christian Hammond <chipx86@chipx86.com>
parents: 5834
diff changeset
240 return FALSE;
5832
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
241 }
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
242
5835
2d496d6d967d [gaim-migrate @ 6266]
Christian Hammond <chipx86@chipx86.com>
parents: 5834
diff changeset
243 static gboolean
5846
d2c9503ad8a8 [gaim-migrate @ 6277]
Christian Hammond <chipx86@chipx86.com>
parents: 5845
diff changeset
244 field_int_focus_out_cb(GtkEntry *entry, GdkEventFocus *event,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
245 PurpleRequestField *field)
5832
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
246 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
247 purple_request_field_int_set_value(field,
5832
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
248 atoi(gtk_entry_get_text(entry)));
5835
2d496d6d967d [gaim-migrate @ 6266]
Christian Hammond <chipx86@chipx86.com>
parents: 5834
diff changeset
249
2d496d6d967d [gaim-migrate @ 6266]
Christian Hammond <chipx86@chipx86.com>
parents: 5834
diff changeset
250 return FALSE;
5832
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
251 }
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
252
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
253 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
254 field_bool_cb(GtkToggleButton *button, PurpleRequestField *field)
5832
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
255 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
256 purple_request_field_bool_set_value(field,
5832
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
257 gtk_toggle_button_get_active(button));
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
258 }
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
259
29741
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
260 static void
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
261 field_choice_menu_cb(GtkComboBox *menu, PurpleRequestField *field)
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
262 {
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
263 purple_request_field_choice_set_value(field,
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
264 gtk_combo_box_get_active(menu));
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
265 }
5832
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
266
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
267 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
268 field_choice_option_cb(GtkRadioButton *button, PurpleRequestField *field)
5832
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
269 {
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
270 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
271 purple_request_field_choice_set_value(field,
10943
729674da8959 [gaim-migrate @ 12735]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10871
diff changeset
272 (g_slist_length(gtk_radio_button_get_group(button)) -
729674da8959 [gaim-migrate @ 12735]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10871
diff changeset
273 g_slist_index(gtk_radio_button_get_group(button), button)) - 1);
5832
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
274 }
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
275
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
276 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
277 field_account_cb(GObject *w, PurpleAccount *account, PurpleRequestField *field)
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
278 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
279 purple_request_field_account_set_value(field, account);
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
280 }
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
281
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
282 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
283 multifield_ok_cb(GtkWidget *button, PidginRequestData *data)
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
284 {
12234
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
285 generic_response_start(data);
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
286
32913
af2c726febce Fix all deprecated GTK_WIDGET_* macros.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32912
diff changeset
287 #if GTK_CHECK_VERSION(2,18,0)
af2c726febce Fix all deprecated GTK_WIDGET_* macros.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32912
diff changeset
288 if (!gtk_widget_has_focus(button))
af2c726febce Fix all deprecated GTK_WIDGET_* macros.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32912
diff changeset
289 #else
8521
0f0e26a59d47 [gaim-migrate @ 9260]
Gary Kramlich <grim@pidgin.im>
parents: 8332
diff changeset
290 if (!GTK_WIDGET_HAS_FOCUS(button))
32913
af2c726febce Fix all deprecated GTK_WIDGET_* macros.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32912
diff changeset
291 #endif
8521
0f0e26a59d47 [gaim-migrate @ 9260]
Gary Kramlich <grim@pidgin.im>
parents: 8332
diff changeset
292 gtk_widget_grab_focus(button);
0f0e26a59d47 [gaim-migrate @ 9260]
Gary Kramlich <grim@pidgin.im>
parents: 8332
diff changeset
293
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
294 if (data->cbs[0] != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
295 ((PurpleRequestFieldsCb)data->cbs[0])(data->user_data,
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
296 data->u.multifield.fields);
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
297
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
298 purple_request_close(PURPLE_REQUEST_FIELDS, data);
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
299 }
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
300
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
301 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
302 multifield_cancel_cb(GtkWidget *button, PidginRequestData *data)
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
303 {
12234
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
304 generic_response_start(data);
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
305
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
306 if (data->cbs[1] != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
307 ((PurpleRequestFieldsCb)data->cbs[1])(data->user_data,
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
308 data->u.multifield.fields);
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
309
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
310 purple_request_close(PURPLE_REQUEST_FIELDS, data);
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
311 }
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
312
22032
8136dd5eeda3 Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22013
diff changeset
313 static gboolean
8323
d962d280c523 [gaim-migrate @ 9047]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
314 destroy_multifield_cb(GtkWidget *dialog, GdkEvent *event,
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
315 PidginRequestData *data)
8323
d962d280c523 [gaim-migrate @ 9047]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
316 {
d962d280c523 [gaim-migrate @ 9047]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
317 multifield_cancel_cb(NULL, data);
22032
8136dd5eeda3 Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22013
diff changeset
318 return FALSE;
8323
d962d280c523 [gaim-migrate @ 9047]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
319 }
d962d280c523 [gaim-migrate @ 9047]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
320
d962d280c523 [gaim-migrate @ 9047]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
321
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
322 #define STOCK_ITEMIZE(r, l) \
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
323 if (!strcmp((r), text)) \
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
324 return (l);
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
325
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
326 static const char *
5794
ebdbb7dc6658 [gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents: 5510
diff changeset
327 text_to_stock(const char *text)
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
328 {
6334
47a748d6fb0f [gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents: 6326
diff changeset
329 STOCK_ITEMIZE(_("Yes"), GTK_STOCK_YES);
47a748d6fb0f [gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents: 6326
diff changeset
330 STOCK_ITEMIZE(_("No"), GTK_STOCK_NO);
47a748d6fb0f [gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents: 6326
diff changeset
331 STOCK_ITEMIZE(_("OK"), GTK_STOCK_OK);
47a748d6fb0f [gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents: 6326
diff changeset
332 STOCK_ITEMIZE(_("Cancel"), GTK_STOCK_CANCEL);
47a748d6fb0f [gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents: 6326
diff changeset
333 STOCK_ITEMIZE(_("Apply"), GTK_STOCK_APPLY);
47a748d6fb0f [gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents: 6326
diff changeset
334 STOCK_ITEMIZE(_("Close"), GTK_STOCK_CLOSE);
47a748d6fb0f [gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents: 6326
diff changeset
335 STOCK_ITEMIZE(_("Delete"), GTK_STOCK_DELETE);
47a748d6fb0f [gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents: 6326
diff changeset
336 STOCK_ITEMIZE(_("Add"), GTK_STOCK_ADD);
47a748d6fb0f [gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents: 6326
diff changeset
337 STOCK_ITEMIZE(_("Remove"), GTK_STOCK_REMOVE);
47a748d6fb0f [gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents: 6326
diff changeset
338 STOCK_ITEMIZE(_("Save"), GTK_STOCK_SAVE);
15570
81e9b7d13875 stock to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15568
diff changeset
339 STOCK_ITEMIZE(_("Alias"), PIDGIN_STOCK_ALIAS);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
340
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
341 return text;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
342 }
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
343
6363
6e0fa4b64fe6 [gaim-migrate @ 6868]
Christian Hammond <chipx86@chipx86.com>
parents: 6338
diff changeset
344 static void *
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
345 pidgin_request_input(const char *title, const char *primary,
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
346 const char *secondary, const char *default_value,
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
347 gboolean multiline, gboolean masked, gchar *hint,
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
348 const char *ok_text, GCallback ok_cb,
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
349 const char *cancel_text, GCallback cancel_cb,
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16259
diff changeset
350 PurpleAccount *account, const char *who, PurpleConversation *conv,
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
351 void *user_data)
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
352 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
353 PidginRequestData *data;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
354 GtkWidget *dialog;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
355 GtkWidget *vbox;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
356 GtkWidget *hbox;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
357 GtkWidget *label;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
358 GtkWidget *entry;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
359 GtkWidget *img;
8782
eb3f9bf7d69c [gaim-migrate @ 9544]
Ignacio J. Elia
parents: 8697
diff changeset
360 GtkWidget *toolbar;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
361 char *label_text;
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
362 char *primary_esc, *secondary_esc;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
363
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
364 data = g_new0(PidginRequestData, 1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
365 data->type = PURPLE_REQUEST_INPUT;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
366 data->user_data = user_data;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
367
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
368 data->cb_count = 2;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
369 data->cbs = g_new0(GCallback, 2);
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
370
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
371 data->cbs[0] = ok_cb;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
372 data->cbs[1] = cancel_cb;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
373
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
374 /* Create the dialog. */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
375 dialog = gtk_dialog_new_with_buttons(title ? title : PIDGIN_ALERT_TITLE,
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
376 NULL, 0,
5794
ebdbb7dc6658 [gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents: 5510
diff changeset
377 text_to_stock(cancel_text), 1,
ebdbb7dc6658 [gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents: 5510
diff changeset
378 text_to_stock(ok_text), 0,
5485
a0e3152b4bbb [gaim-migrate @ 5881]
Sean Egan <seanegan@pidgin.im>
parents: 5480
diff changeset
379 NULL);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
380 data->dialog = dialog;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
381
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
382 g_signal_connect(G_OBJECT(dialog), "response",
5794
ebdbb7dc6658 [gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents: 5510
diff changeset
383 G_CALLBACK(input_response_cb), data);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
384
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
385 /* Setup the dialog */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
386 gtk_container_set_border_width(GTK_CONTAINER(dialog), PIDGIN_HIG_BORDER/2);
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
387 gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), PIDGIN_HIG_BORDER/2);
17646
07c2c5edec11 Make multiline pidgin_request_input() windows resizable, and make
Mark Doliner <markdoliner@pidgin.im>
parents: 16873
diff changeset
388 if (!multiline)
07c2c5edec11 Make multiline pidgin_request_input() windows resizable, and make
Mark Doliner <markdoliner@pidgin.im>
parents: 16873
diff changeset
389 gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
32912
6f4a4f8ad117 The function gtk_dialog_set_has_separator was removed in GTK+ 2.22.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32900
diff changeset
390 #if !GTK_CHECK_VERSION(2,22,0)
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
391 gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);
32912
6f4a4f8ad117 The function gtk_dialog_set_has_separator was removed in GTK+ 2.22.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32900
diff changeset
392 #endif
5510
15d2eca03c1d [gaim-migrate @ 5909]
Christian Hammond <chipx86@chipx86.com>
parents: 5498
diff changeset
393 gtk_dialog_set_default_response(GTK_DIALOG(dialog), 0);
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
394 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), PIDGIN_HIG_BORDER);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
395
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
396 /* Setup the main horizontal box */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
397 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
398 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox);
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
399
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
400 /* Dialog icon. */
15497
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
401 img = gtk_image_new_from_stock(PIDGIN_STOCK_DIALOG_QUESTION,
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
402 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_HUGE));
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
403 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
404 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
405
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
406 /* Vertical box */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
407 vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
408
17646
07c2c5edec11 Make multiline pidgin_request_input() windows resizable, and make
Mark Doliner <markdoliner@pidgin.im>
parents: 16873
diff changeset
409 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 0);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
410
28793
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
411 pidgin_widget_decorate_account(hbox, account);
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
412
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
413 /* Descriptive label */
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
414 primary_esc = (primary != NULL) ? g_markup_escape_text(primary, -1) : NULL;
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
415 secondary_esc = (secondary != NULL) ? g_markup_escape_text(secondary, -1) : NULL;
7843
d771eecc9717 [gaim-migrate @ 8497]
Nathan Fredrickson <nathan@silverorange.com>
parents: 7678
diff changeset
416 label_text = g_strdup_printf((primary ? "<span weight=\"bold\" size=\"larger\">"
d771eecc9717 [gaim-migrate @ 8497]
Nathan Fredrickson <nathan@silverorange.com>
parents: 7678
diff changeset
417 "%s</span>%s%s" : "%s%s%s"),
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
418 (primary ? primary_esc : ""),
7843
d771eecc9717 [gaim-migrate @ 8497]
Nathan Fredrickson <nathan@silverorange.com>
parents: 7678
diff changeset
419 ((primary && secondary) ? "\n\n" : ""),
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
420 (secondary ? secondary_esc : ""));
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
421 g_free(primary_esc);
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
422 g_free(secondary_esc);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
423
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
424 label = gtk_label_new(NULL);
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
425
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
426 gtk_label_set_markup(GTK_LABEL(label), label_text);
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
427 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
428 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
17646
07c2c5edec11 Make multiline pidgin_request_input() windows resizable, and make
Mark Doliner <markdoliner@pidgin.im>
parents: 16873
diff changeset
429 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
430
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
431 g_free(label_text);
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
432
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
433 /* Entry field. */
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
434 data->u.input.multiline = multiline;
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 13536
diff changeset
435 data->u.input.hint = g_strdup(hint);
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
436
19789
5d323c4bd855 And don't show everything here either.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19585
diff changeset
437 gtk_widget_show_all(hbox);
5d323c4bd855 And don't show everything here either.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19585
diff changeset
438
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
439 if ((data->u.input.hint != NULL) && (!strcmp(data->u.input.hint, "html"))) {
10146
cd4abe598b61 [gaim-migrate @ 11222]
Mark Doliner <markdoliner@pidgin.im>
parents: 10116
diff changeset
440 GtkWidget *frame;
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
441
10181
2425c3773266 [gaim-migrate @ 11296]
Mark Doliner <markdoliner@pidgin.im>
parents: 10164
diff changeset
442 /* imhtml */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
443 frame = pidgin_create_imhtml(TRUE, &entry, &toolbar, NULL);
10181
2425c3773266 [gaim-migrate @ 11296]
Mark Doliner <markdoliner@pidgin.im>
parents: 10164
diff changeset
444 gtk_widget_set_size_request(entry, 320, 130);
16259
73b7c796c8d3 I don't like the pidginfoo_bar widget names that resulted from the sed.
Richard Laager <rlaager@pidgin.im>
parents: 16254
diff changeset
445 gtk_widget_set_name(entry, "pidgin_request_imhtml");
10181
2425c3773266 [gaim-migrate @ 11296]
Mark Doliner <markdoliner@pidgin.im>
parents: 10164
diff changeset
446 if (default_value != NULL)
2425c3773266 [gaim-migrate @ 11296]
Mark Doliner <markdoliner@pidgin.im>
parents: 10164
diff changeset
447 gtk_imhtml_append_text(GTK_IMHTML(entry), default_value, GTK_IMHTML_NO_SCROLL);
10146
cd4abe598b61 [gaim-migrate @ 11222]
Mark Doliner <markdoliner@pidgin.im>
parents: 10116
diff changeset
448 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
cd4abe598b61 [gaim-migrate @ 11222]
Mark Doliner <markdoliner@pidgin.im>
parents: 10116
diff changeset
449 gtk_widget_show(frame);
25900
0be61f1b3dd1 Add a GtkIMHtml function that causes the widget to actually insert a
Mark Doliner <markdoliner@pidgin.im>
parents: 25874
diff changeset
450
0be61f1b3dd1 Add a GtkIMHtml function that causes the widget to actually insert a
Mark Doliner <markdoliner@pidgin.im>
parents: 25874
diff changeset
451 gtk_imhtml_set_return_inserts_newline(GTK_IMHTML(entry));
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
452 }
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
453 else {
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
454 if (multiline) {
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
455 /* GtkTextView */
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
456 entry = gtk_text_view_new();
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
457 gtk_text_view_set_editable(GTK_TEXT_VIEW(entry), TRUE);
5510
15d2eca03c1d [gaim-migrate @ 5909]
Christian Hammond <chipx86@chipx86.com>
parents: 5498
diff changeset
458
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
459 if (default_value != NULL) {
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
460 GtkTextBuffer *buffer;
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
461
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
462 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(entry));
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
463 gtk_text_buffer_set_text(buffer, default_value, -1);
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
464 }
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
465
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
466 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(entry), GTK_WRAP_WORD_CHAR);
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
467
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15931
diff changeset
468 if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/spellcheck"))
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
469 pidgin_setup_gtkspell(GTK_TEXT_VIEW(entry));
6035
b245be9cbe3b [gaim-migrate @ 6485]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
470
31321
1fef3832cfa2 Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
Gabriel Schulhof <nix@go-nix.ca>
parents: 31294
diff changeset
471 gtk_box_pack_start(GTK_BOX(vbox),
1fef3832cfa2 Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
Gabriel Schulhof <nix@go-nix.ca>
parents: 31294
diff changeset
472 pidgin_make_scrollable(entry, GTK_POLICY_NEVER, GTK_POLICY_ALWAYS, GTK_SHADOW_IN, 320, 130),
1fef3832cfa2 Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
Gabriel Schulhof <nix@go-nix.ca>
parents: 31294
diff changeset
473 TRUE, TRUE, 0);
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
474 }
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
475 else {
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
476 entry = gtk_entry_new();
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
477
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
478 gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
479
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
480 gtk_box_pack_start(GTK_BOX(vbox), entry, FALSE, FALSE, 0);
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
481
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
482 if (default_value != NULL)
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
483 gtk_entry_set_text(GTK_ENTRY(entry), default_value);
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
484
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
485 if (masked)
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11780
diff changeset
486 {
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
487 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
25457
477f84ff0a7e GTK+ 2.16.0 will set the invisible character to a nice bullet instead of
Mark Doliner <markdoliner@pidgin.im>
parents: 24816
diff changeset
488 #if !GTK_CHECK_VERSION(2,16,0)
15390
d429e03fc755 [gaim-migrate @ 18119]
Mark Doliner <markdoliner@pidgin.im>
parents: 15383
diff changeset
489 if (gtk_entry_get_invisible_char(GTK_ENTRY(entry)) == '*')
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
490 gtk_entry_set_invisible_char(GTK_ENTRY(entry), PIDGIN_INVISIBLE_CHAR);
25457
477f84ff0a7e GTK+ 2.16.0 will set the invisible character to a nice bullet instead of
Mark Doliner <markdoliner@pidgin.im>
parents: 24816
diff changeset
491 #endif /* Less than GTK+ 2.16 */
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11780
diff changeset
492 }
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
493 }
19789
5d323c4bd855 And don't show everything here either.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19585
diff changeset
494 gtk_widget_show_all(vbox);
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
495 }
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
496
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
497 pidgin_set_accessible_label (entry, label);
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
498 data->u.input.entry = entry;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
499
22007
386062b58867 Try to make a window transient for a suitable parent window. This currently
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22005
diff changeset
500 pidgin_auto_parent_window(dialog);
386062b58867 Try to make a window transient for a suitable parent window. This currently
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22005
diff changeset
501
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
502 /* Show everything. */
19789
5d323c4bd855 And don't show everything here either.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19585
diff changeset
503 gtk_widget_show(dialog);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
504
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
505 return data;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
506 }
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
507
6363
6e0fa4b64fe6 [gaim-migrate @ 6868]
Christian Hammond <chipx86@chipx86.com>
parents: 6338
diff changeset
508 static void *
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
509 pidgin_request_choice(const char *title, const char *primary,
19585
14b519abcc26 Fix some conversion warnings about using negative values with unsigned types. There are more, but these were easy fixes. You may think that I'm changing the API, but I'm really not - it was just wrong.
Daniel Atallah <datallah@pidgin.im>
parents: 19369
diff changeset
510 const char *secondary, int default_value,
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
511 const char *ok_text, GCallback ok_cb,
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
512 const char *cancel_text, GCallback cancel_cb,
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16259
diff changeset
513 PurpleAccount *account, const char *who, PurpleConversation *conv,
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
514 void *user_data, va_list args)
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
515 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
516 PidginRequestData *data;
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
517 GtkWidget *dialog;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
518 GtkWidget *vbox, *vbox2;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
519 GtkWidget *hbox;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
520 GtkWidget *label;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
521 GtkWidget *img;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
522 GtkWidget *radio = NULL;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
523 char *label_text;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
524 char *radio_text;
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
525 char *primary_esc, *secondary_esc;
10233
7b542749ccb6 [gaim-migrate @ 11368]
Mark Doliner <markdoliner@pidgin.im>
parents: 10229
diff changeset
526
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
527 data = g_new0(PidginRequestData, 1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
528 data->type = PURPLE_REQUEST_ACTION;
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
529 data->user_data = user_data;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
530
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
531 data->cb_count = 2;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
532 data->cbs = g_new0(GCallback, 2);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
533 data->cbs[0] = cancel_cb;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
534 data->cbs[1] = ok_cb;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
535
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
536 /* Create the dialog. */
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
537 data->dialog = dialog = gtk_dialog_new();
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
538
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
539 if (title != NULL)
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
540 gtk_window_set_title(GTK_WINDOW(dialog), title);
16686
1ebd9e4ae3f0 Prevent request dialog titles being "pidgin.exe".
Daniel Atallah <datallah@pidgin.im>
parents: 16490
diff changeset
541 #ifdef _WIN32
1ebd9e4ae3f0 Prevent request dialog titles being "pidgin.exe".
Daniel Atallah <datallah@pidgin.im>
parents: 16490
diff changeset
542 gtk_window_set_title(GTK_WINDOW(dialog), PIDGIN_ALERT_TITLE);
1ebd9e4ae3f0 Prevent request dialog titles being "pidgin.exe".
Daniel Atallah <datallah@pidgin.im>
parents: 16490
diff changeset
543 #endif
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
544
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
545 gtk_dialog_add_button(GTK_DIALOG(dialog),
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
546 text_to_stock(cancel_text), 0);
10233
7b542749ccb6 [gaim-migrate @ 11368]
Mark Doliner <markdoliner@pidgin.im>
parents: 10229
diff changeset
547
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
548 gtk_dialog_add_button(GTK_DIALOG(dialog),
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
549 text_to_stock(ok_text), 1);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
550
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
551 g_signal_connect(G_OBJECT(dialog), "response",
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
552 G_CALLBACK(choice_response_cb), data);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
553
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
554 /* Setup the dialog */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
555 gtk_container_set_border_width(GTK_CONTAINER(dialog), PIDGIN_HIG_BORDER/2);
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
556 gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), PIDGIN_HIG_BORDER/2);
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
557 gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
32912
6f4a4f8ad117 The function gtk_dialog_set_has_separator was removed in GTK+ 2.22.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32900
diff changeset
558 #if !GTK_CHECK_VERSION(2,22,0)
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
559 gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);
32912
6f4a4f8ad117 The function gtk_dialog_set_has_separator was removed in GTK+ 2.22.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32900
diff changeset
560 #endif
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
561 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), PIDGIN_HIG_BORDER);
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
562
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
563 /* Setup the main horizontal box */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
564 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
565 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
566
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
567 /* Dialog icon. */
15497
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
568 img = gtk_image_new_from_stock(PIDGIN_STOCK_DIALOG_QUESTION,
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
569 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_HUGE));
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
570 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
571 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
572
28793
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
573 pidgin_widget_decorate_account(hbox, account);
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
574
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
575 /* Vertical box */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
576 vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER);
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
577 gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0);
10233
7b542749ccb6 [gaim-migrate @ 11368]
Mark Doliner <markdoliner@pidgin.im>
parents: 10229
diff changeset
578
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
579 /* Descriptive label */
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
580 primary_esc = (primary != NULL) ? g_markup_escape_text(primary, -1) : NULL;
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
581 secondary_esc = (secondary != NULL) ? g_markup_escape_text(secondary, -1) : NULL;
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
582 label_text = g_strdup_printf((primary ? "<span weight=\"bold\" size=\"larger\">"
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
583 "%s</span>%s%s" : "%s%s%s"),
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
584 (primary ? primary_esc : ""),
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
585 ((primary && secondary) ? "\n\n" : ""),
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
586 (secondary ? secondary_esc : ""));
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
587 g_free(primary_esc);
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
588 g_free(secondary_esc);
10233
7b542749ccb6 [gaim-migrate @ 11368]
Mark Doliner <markdoliner@pidgin.im>
parents: 10229
diff changeset
589
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
590 label = gtk_label_new(NULL);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
591
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
592 gtk_label_set_markup(GTK_LABEL(label), label_text);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
593 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
594 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
595 gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
596
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
597 g_free(label_text);
10233
7b542749ccb6 [gaim-migrate @ 11368]
Mark Doliner <markdoliner@pidgin.im>
parents: 10229
diff changeset
598
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
599 vbox2 = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
600 gtk_box_pack_start(GTK_BOX(vbox), vbox2, FALSE, FALSE, 0);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
601 while ((radio_text = va_arg(args, char*))) {
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
602 int resp = va_arg(args, int);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
603 radio = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(radio), radio_text);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
604 gtk_box_pack_start(GTK_BOX(vbox2), radio, FALSE, FALSE, 0);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
605 g_object_set_data(G_OBJECT(radio), "choice_id", GINT_TO_POINTER(resp));
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
606 if (resp == default_value)
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
607 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio), TRUE);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
608 }
10233
7b542749ccb6 [gaim-migrate @ 11368]
Mark Doliner <markdoliner@pidgin.im>
parents: 10229
diff changeset
609
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
610 g_object_set_data(G_OBJECT(dialog), "radio", radio);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
611
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
612 /* Show everything. */
22007
386062b58867 Try to make a window transient for a suitable parent window. This currently
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22005
diff changeset
613 pidgin_auto_parent_window(dialog);
386062b58867 Try to make a window transient for a suitable parent window. This currently
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22005
diff changeset
614
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
615 gtk_widget_show_all(dialog);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
616
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
617 return data;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
618 }
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
619
6363
6e0fa4b64fe6 [gaim-migrate @ 6868]
Christian Hammond <chipx86@chipx86.com>
parents: 6338
diff changeset
620 static void *
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
621 pidgin_request_action_with_icon(const char *title, const char *primary,
19585
14b519abcc26 Fix some conversion warnings about using negative values with unsigned types. There are more, but these were easy fixes. You may think that I'm changing the API, but I'm really not - it was just wrong.
Daniel Atallah <datallah@pidgin.im>
parents: 19369
diff changeset
622 const char *secondary, int default_action,
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30166
diff changeset
623 PurpleAccount *account, const char *who,
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
624 PurpleConversation *conv, gconstpointer icon_data,
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
625 gsize icon_size,
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
626 void *user_data, size_t action_count, va_list actions)
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
627 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
628 PidginRequestData *data;
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
629 GtkWidget *dialog;
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
630 GtkWidget *vbox;
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
631 GtkWidget *hbox;
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
632 GtkWidget *label;
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
633 GtkWidget *img = NULL;
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
634 void **buttons;
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
635 char *label_text;
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
636 char *primary_esc, *secondary_esc;
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
637 int i;
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
638
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
639 data = g_new0(PidginRequestData, 1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
640 data->type = PURPLE_REQUEST_ACTION;
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
641 data->user_data = user_data;
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
642
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
643 data->cb_count = action_count;
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
644 data->cbs = g_new0(GCallback, action_count);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
645
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
646 /* Reverse the buttons */
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
647 buttons = g_new0(void *, action_count * 2);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
648
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
649 for (i = 0; i < action_count * 2; i += 2) {
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
650 buttons[(action_count * 2) - i - 2] = va_arg(actions, char *);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
651 buttons[(action_count * 2) - i - 1] = va_arg(actions, GCallback);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
652 }
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
653
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
654 /* Create the dialog. */
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
655 data->dialog = dialog = gtk_dialog_new();
18883
ebbd338319d4 gtk_window_set_deletable() is GTK+ >= 2.10.0. References #1947. Also fix a bug where on Windows, the default title is always applied.
Daniel Atallah <datallah@pidgin.im>
parents: 18865
diff changeset
656
18865
41e0c131611f purple_request_action doesn't call any callbacks if the user closes the
Ka-Hing Cheung <khc@pidgin.im>
parents: 18190
diff changeset
657 gtk_window_set_deletable(GTK_WINDOW(data->dialog), FALSE);
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents: 6363
diff changeset
658
6109
44e5eb92b617 [gaim-migrate @ 6571]
Mark Doliner <markdoliner@pidgin.im>
parents: 6035
diff changeset
659 if (title != NULL)
44e5eb92b617 [gaim-migrate @ 6571]
Mark Doliner <markdoliner@pidgin.im>
parents: 6035
diff changeset
660 gtk_window_set_title(GTK_WINDOW(dialog), title);
16686
1ebd9e4ae3f0 Prevent request dialog titles being "pidgin.exe".
Daniel Atallah <datallah@pidgin.im>
parents: 16490
diff changeset
661 #ifdef _WIN32
18883
ebbd338319d4 gtk_window_set_deletable() is GTK+ >= 2.10.0. References #1947. Also fix a bug where on Windows, the default title is always applied.
Daniel Atallah <datallah@pidgin.im>
parents: 18865
diff changeset
662 else
16686
1ebd9e4ae3f0 Prevent request dialog titles being "pidgin.exe".
Daniel Atallah <datallah@pidgin.im>
parents: 16490
diff changeset
663 gtk_window_set_title(GTK_WINDOW(dialog), PIDGIN_ALERT_TITLE);
1ebd9e4ae3f0 Prevent request dialog titles being "pidgin.exe".
Daniel Atallah <datallah@pidgin.im>
parents: 16490
diff changeset
664 #endif
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
665
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
666 for (i = 0; i < action_count; i++) {
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
667 gtk_dialog_add_button(GTK_DIALOG(dialog),
5794
ebdbb7dc6658 [gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents: 5510
diff changeset
668 text_to_stock(buttons[2 * i]), i);
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
669
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
670 data->cbs[i] = buttons[2 * i + 1];
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
671 }
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
672
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
673 g_free(buttons);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
674
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
675 g_signal_connect(G_OBJECT(dialog), "response",
5794
ebdbb7dc6658 [gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents: 5510
diff changeset
676 G_CALLBACK(action_response_cb), data);
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
677
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
678 /* Setup the dialog */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
679 gtk_container_set_border_width(GTK_CONTAINER(dialog), PIDGIN_HIG_BORDER/2);
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
680 gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), PIDGIN_HIG_BORDER/2);
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
681 gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
32912
6f4a4f8ad117 The function gtk_dialog_set_has_separator was removed in GTK+ 2.22.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32900
diff changeset
682 #if !GTK_CHECK_VERSION(2,22,0)
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
683 gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);
32912
6f4a4f8ad117 The function gtk_dialog_set_has_separator was removed in GTK+ 2.22.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32900
diff changeset
684 #endif
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
685 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), PIDGIN_HIG_BORDER);
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
686
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
687 /* Setup the main horizontal box */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
688 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
689 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
690
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
691 /* Dialog icon. */
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
692 if (icon_data) {
31889
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
693 GdkPixbuf *pixbuf = pidgin_pixbuf_from_data(icon_data, icon_size);
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
694 if (pixbuf) {
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
695 /* scale the image if it is too large */
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
696 int width = gdk_pixbuf_get_width(pixbuf);
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
697 int height = gdk_pixbuf_get_height(pixbuf);
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
698 if (width > 128 || height > 128) {
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
699 int scaled_width = width > height ? 128 : (128 * width) / height;
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
700 int scaled_height = height > width ? 128 : (128 * height) / width;
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
701 GdkPixbuf *scaled =
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
702 gdk_pixbuf_scale_simple(pixbuf, scaled_width, scaled_height,
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
703 GDK_INTERP_BILINEAR);
30166
2e26380774ef Scale incoming thumbnails in the request dialog if they are overly large
Marcus Lundblad <malu@pidgin.im>
parents: 30137
diff changeset
704
31889
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
705 purple_debug_info("pidgin",
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
706 "dialog icon was too large, scaled it down\n");
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
707 if (scaled) {
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
708 g_object_unref(pixbuf);
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
709 pixbuf = scaled;
30166
2e26380774ef Scale incoming thumbnails in the request dialog if they are overly large
Marcus Lundblad <malu@pidgin.im>
parents: 30137
diff changeset
710 }
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
711 }
31889
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
712 img = gtk_image_new_from_pixbuf(pixbuf);
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
713 g_object_unref(pixbuf);
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
714 } else {
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
715 purple_debug_info("pidgin", "failed to parse dialog icon\n");
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
716 }
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
717 }
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30166
diff changeset
718
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
719 if (!img) {
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
720 img = gtk_image_new_from_stock(PIDGIN_STOCK_DIALOG_QUESTION,
15497
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
721 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_HUGE));
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
722 }
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
723 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
724 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
725
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
726 /* Vertical box */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
727 vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER);
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
728 gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
729
28793
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
730 pidgin_widget_decorate_account(hbox, account);
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
731
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
732 /* Descriptive label */
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
733 primary_esc = (primary != NULL) ? g_markup_escape_text(primary, -1) : NULL;
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
734 secondary_esc = (secondary != NULL) ? g_markup_escape_text(secondary, -1) : NULL;
7843
d771eecc9717 [gaim-migrate @ 8497]
Nathan Fredrickson <nathan@silverorange.com>
parents: 7678
diff changeset
735 label_text = g_strdup_printf((primary ? "<span weight=\"bold\" size=\"larger\">"
d771eecc9717 [gaim-migrate @ 8497]
Nathan Fredrickson <nathan@silverorange.com>
parents: 7678
diff changeset
736 "%s</span>%s%s" : "%s%s%s"),
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
737 (primary ? primary_esc : ""),
7843
d771eecc9717 [gaim-migrate @ 8497]
Nathan Fredrickson <nathan@silverorange.com>
parents: 7678
diff changeset
738 ((primary && secondary) ? "\n\n" : ""),
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
739 (secondary ? secondary_esc : ""));
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
740 g_free(primary_esc);
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
741 g_free(secondary_esc);
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
742
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
743 label = gtk_label_new(NULL);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
744
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
745 gtk_label_set_markup(GTK_LABEL(label), label_text);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
746 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
747 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
15065
88e8707318de [gaim-migrate @ 17783]
Richard Laager <rlaager@pidgin.im>
parents: 15022
diff changeset
748 gtk_label_set_selectable(GTK_LABEL(label), TRUE);
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
749 gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
750
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
751 g_free(label_text);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
752
9948
2642975ffb85 [gaim-migrate @ 10844]
Dave West <kat@users.sourceforge.net>
parents: 9791
diff changeset
753
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
754 if (default_action == PURPLE_DEFAULT_ACTION_NONE) {
32914
9d3d02829373 Fix calls to GTK_WIDGET_SET_FLAGS, which oddly enough does not seem to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32913
diff changeset
755 gtk_widget_set_can_default(img, TRUE);
9d3d02829373 Fix calls to GTK_WIDGET_SET_FLAGS, which oddly enough does not seem to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32913
diff changeset
756 gtk_widget_set_can_focus(img, TRUE);
9948
2642975ffb85 [gaim-migrate @ 10844]
Dave West <kat@users.sourceforge.net>
parents: 9791
diff changeset
757 gtk_widget_grab_focus(img);
2642975ffb85 [gaim-migrate @ 10844]
Dave West <kat@users.sourceforge.net>
parents: 9791
diff changeset
758 gtk_widget_grab_default(img);
12286
08d994091c36 [gaim-migrate @ 14590]
Etan Reisner <deryni@pidgin.im>
parents: 12234
diff changeset
759 } else
22263
c9a202d78b6e * Clarify the documentation for purple_request_action's 'default_ation'
Mark Doliner <markdoliner@pidgin.im>
parents: 22214
diff changeset
760 /*
c9a202d78b6e * Clarify the documentation for purple_request_action's 'default_ation'
Mark Doliner <markdoliner@pidgin.im>
parents: 22214
diff changeset
761 * Need to invert the default_action number because the
c9a202d78b6e * Clarify the documentation for purple_request_action's 'default_ation'
Mark Doliner <markdoliner@pidgin.im>
parents: 22214
diff changeset
762 * buttons are added to the dialog in reverse order.
c9a202d78b6e * Clarify the documentation for purple_request_action's 'default_ation'
Mark Doliner <markdoliner@pidgin.im>
parents: 22214
diff changeset
763 */
c9a202d78b6e * Clarify the documentation for purple_request_action's 'default_ation'
Mark Doliner <markdoliner@pidgin.im>
parents: 22214
diff changeset
764 gtk_dialog_set_default_response(GTK_DIALOG(dialog), action_count - 1 - default_action);
5510
15d2eca03c1d [gaim-migrate @ 5909]
Christian Hammond <chipx86@chipx86.com>
parents: 5498
diff changeset
765
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
766 /* Show everything. */
22007
386062b58867 Try to make a window transient for a suitable parent window. This currently
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22005
diff changeset
767 pidgin_auto_parent_window(dialog);
386062b58867 Try to make a window transient for a suitable parent window. This currently
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22005
diff changeset
768
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
769 gtk_widget_show_all(dialog);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
770
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
771 return data;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
772 }
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
773
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
774 static void *
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
775 pidgin_request_action(const char *title, const char *primary,
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
776 const char *secondary, int default_action,
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
777 PurpleAccount *account, const char *who, PurpleConversation *conv,
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
778 void *user_data, size_t action_count, va_list actions)
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
779 {
30137
5ef8d377b643 gtkrequest: Fix pidgin_request_action
Paul Aurich <darkrain42@pidgin.im>
parents: 29775
diff changeset
780 return pidgin_request_action_with_icon(title, primary, secondary,
5ef8d377b643 gtkrequest: Fix pidgin_request_action
Paul Aurich <darkrain42@pidgin.im>
parents: 29775
diff changeset
781 default_action, account, who, conv, NULL, 0, user_data, action_count,
5ef8d377b643 gtkrequest: Fix pidgin_request_action
Paul Aurich <darkrain42@pidgin.im>
parents: 29775
diff changeset
782 actions);
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
783 }
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
784
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
785 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
786 req_entry_field_changed_cb(GtkWidget *entry, PurpleRequestField *field)
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
787 {
24984
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
788 PurpleRequestFieldGroup *group;
32274
8695d161ad46 Fix build breakage introduced by 55a194e489bb2b6b8d7c6dde6ace291d8e094356.
Andrew Victor <andrew.victor@mxit.com>
parents: 31992
diff changeset
789 PurpleRequestFields *fields;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
790 PidginRequestData *req_data;
29224
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
791
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
792 if (purple_request_field_string_is_multiline(field))
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
793 {
29225
f95f3c1be6dd Free allocated string from text-buffer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 29224
diff changeset
794 char *text;
29224
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
795 GtkTextIter start_iter, end_iter;
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
796
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
797 gtk_text_buffer_get_start_iter(GTK_TEXT_BUFFER(entry), &start_iter);
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
798 gtk_text_buffer_get_end_iter(GTK_TEXT_BUFFER(entry), &end_iter);
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
799
29224
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
800 text = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(entry), &start_iter, &end_iter, FALSE);
29225
f95f3c1be6dd Free allocated string from text-buffer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 29224
diff changeset
801 purple_request_field_string_set_value(field, (!text || !*text) ? NULL : text);
f95f3c1be6dd Free allocated string from text-buffer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 29224
diff changeset
802 g_free(text);
29224
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
803 }
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
804 else
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
805 {
29225
f95f3c1be6dd Free allocated string from text-buffer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 29224
diff changeset
806 const char *text = NULL;
29224
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
807 text = gtk_entry_get_text(GTK_ENTRY(entry));
29225
f95f3c1be6dd Free allocated string from text-buffer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 29224
diff changeset
808 purple_request_field_string_set_value(field, (*text == '\0') ? NULL : text);
29224
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
809 }
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
810
24984
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
811 group = purple_request_field_get_group(field);
32274
8695d161ad46 Fix build breakage introduced by 55a194e489bb2b6b8d7c6dde6ace291d8e094356.
Andrew Victor <andrew.victor@mxit.com>
parents: 31992
diff changeset
812 fields = purple_request_field_group_get_fields_list(group);
8695d161ad46 Fix build breakage introduced by 55a194e489bb2b6b8d7c6dde6ace291d8e094356.
Andrew Victor <andrew.victor@mxit.com>
parents: 31992
diff changeset
813 req_data = purple_request_fields_get_ui_data(fields);
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
814
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
815 gtk_widget_set_sensitive(req_data->ok_button,
32274
8695d161ad46 Fix build breakage introduced by 55a194e489bb2b6b8d7c6dde6ace291d8e094356.
Andrew Victor <andrew.victor@mxit.com>
parents: 31992
diff changeset
816 purple_request_fields_all_required_filled(fields));
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
817 }
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
818
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
819 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
820 setup_entry_field(GtkWidget *entry, PurpleRequestField *field)
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
821 {
8294
cffb4d4660f0 [gaim-migrate @ 9018]
Christian Hammond <chipx86@chipx86.com>
parents: 8289
diff changeset
822 const char *type_hint;
cffb4d4660f0 [gaim-migrate @ 9018]
Christian Hammond <chipx86@chipx86.com>
parents: 8289
diff changeset
823
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
824 gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
825
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
826 if (purple_request_field_is_required(field))
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
827 {
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
828 g_signal_connect(G_OBJECT(entry), "changed",
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
829 G_CALLBACK(req_entry_field_changed_cb), field);
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
830 }
8294
cffb4d4660f0 [gaim-migrate @ 9018]
Christian Hammond <chipx86@chipx86.com>
parents: 8289
diff changeset
831
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
832 if ((type_hint = purple_request_field_get_type_hint(field)) != NULL)
8294
cffb4d4660f0 [gaim-migrate @ 9018]
Christian Hammond <chipx86@chipx86.com>
parents: 8289
diff changeset
833 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
834 if (purple_str_has_prefix(type_hint, "screenname"))
8294
cffb4d4660f0 [gaim-migrate @ 9018]
Christian Hammond <chipx86@chipx86.com>
parents: 8289
diff changeset
835 {
13361
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
836 GtkWidget *optmenu = NULL;
24984
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
837 PurpleRequestFieldGroup *group = purple_request_field_get_group(field);
32274
8695d161ad46 Fix build breakage introduced by 55a194e489bb2b6b8d7c6dde6ace291d8e094356.
Andrew Victor <andrew.victor@mxit.com>
parents: 31992
diff changeset
838 GList *fields = purple_request_field_group_get_fields(group);
27660
f9d3ec6e177e Plug a leak of an account dropdown selection dialog or two.
Paul Aurich <darkrain42@pidgin.im>
parents: 25900
diff changeset
839
f9d3ec6e177e Plug a leak of an account dropdown selection dialog or two.
Paul Aurich <darkrain42@pidgin.im>
parents: 25900
diff changeset
840 /* Ensure the account option menu is created (if the widget hasn't
f9d3ec6e177e Plug a leak of an account dropdown selection dialog or two.
Paul Aurich <darkrain42@pidgin.im>
parents: 25900
diff changeset
841 * been initialized already) for username auto-completion. */
13361
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
842 while (fields)
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
843 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
844 PurpleRequestField *fld = fields->data;
13361
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
845 fields = fields->next;
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
846
27660
f9d3ec6e177e Plug a leak of an account dropdown selection dialog or two.
Paul Aurich <darkrain42@pidgin.im>
parents: 25900
diff changeset
847 if (purple_request_field_get_type(fld) == PURPLE_REQUEST_FIELD_ACCOUNT &&
f9d3ec6e177e Plug a leak of an account dropdown selection dialog or two.
Paul Aurich <darkrain42@pidgin.im>
parents: 25900
diff changeset
848 purple_request_field_is_visible(fld))
13361
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
849 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
850 const char *type_hint = purple_request_field_get_type_hint(fld);
13361
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
851 if (type_hint != NULL && strcmp(type_hint, "account") == 0)
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
852 {
24984
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
853 optmenu = GTK_WIDGET(purple_request_field_get_ui_data(fld));
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
854 if (optmenu == NULL) {
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
855 optmenu = GTK_WIDGET(create_account_field(fld));
27660
f9d3ec6e177e Plug a leak of an account dropdown selection dialog or two.
Paul Aurich <darkrain42@pidgin.im>
parents: 25900
diff changeset
856 purple_request_field_set_ui_data(fld, optmenu);
24984
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
857 }
13361
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
858 break;
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
859 }
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
860 }
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
861 }
18966
6a0715b72b6b Screenname auto-completion filtering by Leonardo Fernandes, Fixes #519
Sean Egan <seanegan@pidgin.im>
parents: 18883
diff changeset
862 pidgin_setup_screenname_autocomplete_with_filter(entry, optmenu, pidgin_screenname_autocomplete_default_filter, GINT_TO_POINTER(!strcmp(type_hint, "screenname-all")));
8294
cffb4d4660f0 [gaim-migrate @ 9018]
Christian Hammond <chipx86@chipx86.com>
parents: 8289
diff changeset
863 }
cffb4d4660f0 [gaim-migrate @ 9018]
Christian Hammond <chipx86@chipx86.com>
parents: 8289
diff changeset
864 }
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
865 }
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
866
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
867 static GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
868 create_string_field(PurpleRequestField *field)
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
869 {
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
870 const char *value;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
871 GtkWidget *widget;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
872
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
873 value = purple_request_field_string_get_default_value(field);
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
874
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
875 if (purple_request_field_string_is_multiline(field))
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
876 {
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
877 GtkWidget *textview;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
878
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
879 textview = gtk_text_view_new();
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
880 gtk_text_view_set_editable(GTK_TEXT_VIEW(textview),
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
881 TRUE);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
882 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(textview),
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
883 GTK_WRAP_WORD_CHAR);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
884
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15931
diff changeset
885 if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/spellcheck"))
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
886 pidgin_setup_gtkspell(GTK_TEXT_VIEW(textview));
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
887
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
888 gtk_widget_show(textview);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
889
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
890 if (value != NULL)
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
891 {
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
892 GtkTextBuffer *buffer;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
893
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
894 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
895
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
896 gtk_text_buffer_set_text(buffer, value, -1);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
897 }
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
898
31697
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
899 #if GTK_CHECK_VERSION(2,12,0)
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
900 gtk_widget_set_tooltip_text(textview, purple_request_field_get_tooltip(field));
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
901 #endif
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
902
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
903 gtk_text_view_set_editable(GTK_TEXT_VIEW(textview),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
904 purple_request_field_string_is_editable(field));
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
905
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
906 g_signal_connect(G_OBJECT(textview), "focus-out-event",
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
907 G_CALLBACK(field_string_focus_out_cb), field);
29224
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
908
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
909 if (purple_request_field_is_required(field))
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
910 {
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
911 GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
912 g_signal_connect(G_OBJECT(buffer), "changed",
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
913 G_CALLBACK(req_entry_field_changed_cb), field);
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
914 }
31321
1fef3832cfa2 Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
Gabriel Schulhof <nix@go-nix.ca>
parents: 31294
diff changeset
915
1fef3832cfa2 Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
Gabriel Schulhof <nix@go-nix.ca>
parents: 31294
diff changeset
916 widget = pidgin_make_scrollable(textview, GTK_POLICY_NEVER, GTK_POLICY_ALWAYS, GTK_SHADOW_IN, -1, 75);
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
917 }
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
918 else
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
919 {
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
920 widget = gtk_entry_new();
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
921
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
922 setup_entry_field(widget, field);
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
923
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
924 if (value != NULL)
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
925 gtk_entry_set_text(GTK_ENTRY(widget), value);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
926
31697
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
927 #if GTK_CHECK_VERSION(2,12,0)
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
928 gtk_widget_set_tooltip_text(widget, purple_request_field_get_tooltip(field));
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
929 #endif
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
930
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
931 if (purple_request_field_string_is_masked(field))
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11780
diff changeset
932 {
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11780
diff changeset
933 gtk_entry_set_visibility(GTK_ENTRY(widget), FALSE);
25457
477f84ff0a7e GTK+ 2.16.0 will set the invisible character to a nice bullet instead of
Mark Doliner <markdoliner@pidgin.im>
parents: 24816
diff changeset
934 #if !GTK_CHECK_VERSION(2,16,0)
15390
d429e03fc755 [gaim-migrate @ 18119]
Mark Doliner <markdoliner@pidgin.im>
parents: 15383
diff changeset
935 if (gtk_entry_get_invisible_char(GTK_ENTRY(widget)) == '*')
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
936 gtk_entry_set_invisible_char(GTK_ENTRY(widget), PIDGIN_INVISIBLE_CHAR);
25457
477f84ff0a7e GTK+ 2.16.0 will set the invisible character to a nice bullet instead of
Mark Doliner <markdoliner@pidgin.im>
parents: 24816
diff changeset
937 #endif /* Less than GTK+ 2.16 */
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11780
diff changeset
938 }
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
939
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
940 gtk_editable_set_editable(GTK_EDITABLE(widget),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
941 purple_request_field_string_is_editable(field));
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
942
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
943 g_signal_connect(G_OBJECT(widget), "focus-out-event",
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
944 G_CALLBACK(field_string_focus_out_cb), field);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
945 }
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
946
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
947 return widget;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
948 }
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
949
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
950 static GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
951 create_int_field(PurpleRequestField *field)
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
952 {
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
953 int value;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
954 GtkWidget *widget;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
955
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
956 widget = gtk_entry_new();
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
957
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
958 setup_entry_field(widget, field);
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
959
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
960 value = purple_request_field_int_get_default_value(field);
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
961
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
962 if (value != 0)
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
963 {
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
964 char buf[32];
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
965
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
966 g_snprintf(buf, sizeof(buf), "%d", value);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
967
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
968 gtk_entry_set_text(GTK_ENTRY(widget), buf);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
969 }
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
970
31697
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
971 #if GTK_CHECK_VERSION(2,12,0)
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
972 gtk_widget_set_tooltip_text(widget, purple_request_field_get_tooltip(field));
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
973 #endif
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
974
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
975 g_signal_connect(G_OBJECT(widget), "focus-out-event",
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
976 G_CALLBACK(field_int_focus_out_cb), field);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
977
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
978 return widget;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
979 }
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
980
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
981 static GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
982 create_bool_field(PurpleRequestField *field)
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
983 {
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
984 GtkWidget *widget;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
985
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
986 widget = gtk_check_button_new_with_label(
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
987 purple_request_field_get_label(field));
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
988
31697
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
989 #if GTK_CHECK_VERSION(2,12,0)
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
990 gtk_widget_set_tooltip_text(widget, purple_request_field_get_tooltip(field));
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
991 #endif
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
992
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
993 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
994 purple_request_field_bool_get_default_value(field));
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
995
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
996 g_signal_connect(G_OBJECT(widget), "toggled",
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
997 G_CALLBACK(field_bool_cb), field);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
998
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
999 return widget;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1000 }
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1001
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1002 static GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1003 create_choice_field(PurpleRequestField *field)
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1004 {
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1005 GtkWidget *widget;
24816
bd870d9ff0ab The other day while struct hiding, I noticed a for loop that was checking
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1006 GList *labels = purple_request_field_choice_get_labels(field);
bd870d9ff0ab The other day while struct hiding, I noticed a for loop that was checking
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1007 int num_labels = g_list_length(labels);
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1008 GList *l;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1009
24816
bd870d9ff0ab The other day while struct hiding, I noticed a for loop that was checking
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1010 if (num_labels > 5)
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1011 {
29741
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1012 widget = gtk_combo_box_new_text();
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1013
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1014 for (l = labels; l != NULL; l = l->next)
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1015 {
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1016 const char *text = l->data;
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1017 gtk_combo_box_append_text(GTK_COMBO_BOX(widget), text);
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1018 }
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1019
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1020 gtk_combo_box_set_active(GTK_COMBO_BOX(widget),
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1021 purple_request_field_choice_get_default_value(field));
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1022
31697
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
1023 #if GTK_CHECK_VERSION(2,12,0)
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
1024 gtk_widget_set_tooltip_text(widget, purple_request_field_get_tooltip(field));
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
1025 #endif
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
1026
29741
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1027 g_signal_connect(G_OBJECT(widget), "changed",
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
1028 G_CALLBACK(field_choice_menu_cb), field);
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1029 }
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1030 else
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1031 {
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1032 GtkWidget *box;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1033 GtkWidget *first_radio = NULL;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1034 GtkWidget *radio;
10943
729674da8959 [gaim-migrate @ 12735]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10871
diff changeset
1035 gint i;
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1036
24816
bd870d9ff0ab The other day while struct hiding, I noticed a for loop that was checking
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1037 if (num_labels == 2)
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
1038 box = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1039 else
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1040 box = gtk_vbox_new(FALSE, 0);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1041
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1042 widget = box;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1043
31697
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
1044 #if GTK_CHECK_VERSION(2,12,0)
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
1045 gtk_widget_set_tooltip_text(widget, purple_request_field_get_tooltip(field));
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
1046 #endif
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
1047
10943
729674da8959 [gaim-migrate @ 12735]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10871
diff changeset
1048 for (l = labels, i = 0; l != NULL; l = l->next, i++)
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1049 {
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1050 const char *text = l->data;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1051
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1052 radio = gtk_radio_button_new_with_label_from_widget(
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1053 GTK_RADIO_BUTTON(first_radio), text);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1054
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1055 if (first_radio == NULL)
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1056 first_radio = radio;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1057
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1058 if (i == purple_request_field_choice_get_default_value(field))
10943
729674da8959 [gaim-migrate @ 12735]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10871
diff changeset
1059 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio), TRUE);
729674da8959 [gaim-migrate @ 12735]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10871
diff changeset
1060
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1061 gtk_box_pack_start(GTK_BOX(box), radio, TRUE, TRUE, 0);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1062 gtk_widget_show(radio);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1063
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1064 g_signal_connect(G_OBJECT(radio), "toggled",
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1065 G_CALLBACK(field_choice_option_cb), field);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1066 }
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1067 }
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1068
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1069 return widget;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1070 }
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1071
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1072 static GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1073 create_image_field(PurpleRequestField *field)
11357
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1074 {
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1075 GtkWidget *widget;
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1076 GdkPixbuf *buf, *scale;
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1077
31889
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
1078 buf = pidgin_pixbuf_from_data(
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
1079 (const guchar *)purple_request_field_image_get_buffer(field),
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
1080 purple_request_field_image_get_size(field));
11357
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1081
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1082 scale = gdk_pixbuf_scale_simple(buf,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1083 purple_request_field_image_get_scale_x(field) * gdk_pixbuf_get_width(buf),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1084 purple_request_field_image_get_scale_y(field) * gdk_pixbuf_get_height(buf),
11357
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1085 GDK_INTERP_BILINEAR);
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1086 widget = gtk_image_new_from_pixbuf(scale);
31889
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
1087 g_object_unref(G_OBJECT(buf));
11357
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1088 g_object_unref(G_OBJECT(scale));
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1089
31697
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
1090 #if GTK_CHECK_VERSION(2,12,0)
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
1091 gtk_widget_set_tooltip_text(widget, purple_request_field_get_tooltip(field));
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
1092 #endif
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
1093
11357
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1094 return widget;
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1095 }
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1096
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1097 static GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1098 create_account_field(PurpleRequestField *field)
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1099 {
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1100 GtkWidget *widget;
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1101
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1102 widget = pidgin_account_option_menu_new(
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1103 purple_request_field_account_get_default_value(field),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1104 purple_request_field_account_get_show_all(field),
8289
234429bac6b5 [gaim-migrate @ 9013]
Christian Hammond <chipx86@chipx86.com>
parents: 8286
diff changeset
1105 G_CALLBACK(field_account_cb),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1106 purple_request_field_account_get_filter(field),
8289
234429bac6b5 [gaim-migrate @ 9013]
Christian Hammond <chipx86@chipx86.com>
parents: 8286
diff changeset
1107 field);
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1108
31697
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
1109 #if GTK_CHECK_VERSION(2,12,0)
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
1110 gtk_widget_set_tooltip_text(widget, purple_request_field_get_tooltip(field));
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
1111 #endif
b6c47ea33682 Add API: purple_request_field_set_tooltip & purple_request_field_get_tooltip
Andrew Victor <andrew.victor@mxit.com>
parents: 31322
diff changeset
1112
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1113 return widget;
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1114 }
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1115
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1116 static void
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1117 select_field_list_item(GtkTreeModel *model, GtkTreePath *path,
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1118 GtkTreeIter *iter, gpointer data)
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1119 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1120 PurpleRequestField *field = (PurpleRequestField *)data;
13356
7a73221c8b6f [gaim-migrate @ 15728]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13283
diff changeset
1121 char *text;
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1122
7909
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1123 gtk_tree_model_get(model, iter, 1, &text, -1);
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1124
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1125 purple_request_field_list_add_selected(field, text);
13356
7a73221c8b6f [gaim-migrate @ 15728]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13283
diff changeset
1126 g_free(text);
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1127 }
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1128
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1129 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1130 list_field_select_changed_cb(GtkTreeSelection *sel, PurpleRequestField *field)
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1131 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1132 purple_request_field_list_clear_selected(field);
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1133
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1134 gtk_tree_selection_selected_foreach(sel, select_field_list_item, field);
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1135 }
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1136
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1137 static GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1138 create_list_field(PurpleRequestField *field)
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1139 {
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1140 GtkWidget *treeview;
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1141 GtkListStore *store;
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1142 GtkCellRenderer *renderer;
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1143 GtkTreeSelection *sel;
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1144 GtkTreeViewColumn *column;
7909
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1145 GtkTreeIter iter;
18190
bcf28ef7e8ff Re-fix the DBus list handling code by killing const GList* / const GSList*
Richard Laager <rlaager@pidgin.im>
parents: 18130
diff changeset
1146 GList *l;
24892
2cbfa7f1b756 Revert the unnecessary addition of the pixbuf boolean to PurpleRequestField.list
Richard Laager <rlaager@pidgin.im>
parents: 24625
diff changeset
1147 GList *icons = NULL;
2cbfa7f1b756 Revert the unnecessary addition of the pixbuf boolean to PurpleRequestField.list
Richard Laager <rlaager@pidgin.im>
parents: 24625
diff changeset
1148
2cbfa7f1b756 Revert the unnecessary addition of the pixbuf boolean to PurpleRequestField.list
Richard Laager <rlaager@pidgin.im>
parents: 24625
diff changeset
1149 icons = purple_request_field_list_get_icons(field);
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1150
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1151
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1152 /* Create the list store */
24892
2cbfa7f1b756 Revert the unnecessary addition of the pixbuf boolean to PurpleRequestField.list
Richard Laager <rlaager@pidgin.im>
parents: 24625
diff changeset
1153 if (icons)
24625
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1154 store = gtk_list_store_new(3, G_TYPE_POINTER, G_TYPE_STRING, GDK_TYPE_PIXBUF);
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1155 else
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1156 store = gtk_list_store_new(2, G_TYPE_POINTER, G_TYPE_STRING);
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1157
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1158 /* Create the tree view */
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1159 treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
22214
e8a9916cb99e It turns out the tree-models need to be unref'ed.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22032
diff changeset
1160 g_object_unref(G_OBJECT(store));
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1161 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE);
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1162
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1163 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1164
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1165 if (purple_request_field_list_get_multi_select(field))
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1166 gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE);
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1167
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1168 column = gtk_tree_view_column_new();
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1169 gtk_tree_view_insert_column(GTK_TREE_VIEW(treeview), column, -1);
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1170
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1171 renderer = gtk_cell_renderer_text_new();
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1172 gtk_tree_view_column_pack_start(column, renderer, TRUE);
7909
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1173 gtk_tree_view_column_add_attribute(column, renderer, "text", 1);
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1174
24892
2cbfa7f1b756 Revert the unnecessary addition of the pixbuf boolean to PurpleRequestField.list
Richard Laager <rlaager@pidgin.im>
parents: 24625
diff changeset
1175 if (icons)
24625
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1176 {
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1177 renderer = gtk_cell_renderer_pixbuf_new();
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1178 gtk_tree_view_column_pack_start(column, renderer, TRUE);
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1179 gtk_tree_view_column_add_attribute(column, renderer, "pixbuf", 2);
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1180
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1181 gtk_widget_set_size_request(treeview, 200, 400);
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1182 }
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1183
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1184 for (l = purple_request_field_list_get_items(field); l != NULL; l = l->next)
7909
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1185 {
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1186 const char *text = (const char *)l->data;
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1187
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1188 gtk_list_store_append(store, &iter);
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1189
24892
2cbfa7f1b756 Revert the unnecessary addition of the pixbuf boolean to PurpleRequestField.list
Richard Laager <rlaager@pidgin.im>
parents: 24625
diff changeset
1190 if (icons)
24625
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1191 {
24892
2cbfa7f1b756 Revert the unnecessary addition of the pixbuf boolean to PurpleRequestField.list
Richard Laager <rlaager@pidgin.im>
parents: 24625
diff changeset
1192 const char *icon_path = (const char *)icons->data;
24898
daecfff47300 Avoid trying to build a filename and pixbuf if there's no image filename.
Richard Laager <rlaager@pidgin.im>
parents: 24892
diff changeset
1193 GdkPixbuf* pixbuf = NULL;
24625
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1194
24898
daecfff47300 Avoid trying to build a filename and pixbuf if there's no image filename.
Richard Laager <rlaager@pidgin.im>
parents: 24892
diff changeset
1195 if (icon_path)
31889
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
1196 pixbuf = pidgin_pixbuf_new_from_file(icon_path);
24625
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1197
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1198 gtk_list_store_set(store, &iter,
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1199 0, purple_request_field_list_get_data(field, text),
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1200 1, text,
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1201 2, pixbuf,
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1202 -1);
24892
2cbfa7f1b756 Revert the unnecessary addition of the pixbuf boolean to PurpleRequestField.list
Richard Laager <rlaager@pidgin.im>
parents: 24625
diff changeset
1203 icons = icons->next;
24625
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1204 }
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1205 else
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1206 gtk_list_store_set(store, &iter,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1207 0, purple_request_field_list_get_data(field, text),
7909
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1208 1, text,
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1209 -1);
7964
10d58eb8a16a [gaim-migrate @ 8641]
Christian Hammond <chipx86@chipx86.com>
parents: 7951
diff changeset
1210
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1211 if (purple_request_field_list_is_selected(field, text))
7964
10d58eb8a16a [gaim-migrate @ 8641]
Christian Hammond <chipx86@chipx86.com>
parents: 7951
diff changeset
1212 gtk_tree_selection_select_iter(sel, &iter);
7909
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1213 }
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1214
19052
5f49fa1c6f08 Fix a bug with multi-field selections in Pidgin's implementation of
Mark Doliner <markdoliner@pidgin.im>
parents: 18966
diff changeset
1215 /*
5f49fa1c6f08 Fix a bug with multi-field selections in Pidgin's implementation of
Mark Doliner <markdoliner@pidgin.im>
parents: 18966
diff changeset
1216 * We only want to catch changes made by the user, so it's important
5f49fa1c6f08 Fix a bug with multi-field selections in Pidgin's implementation of
Mark Doliner <markdoliner@pidgin.im>
parents: 18966
diff changeset
1217 * that we wait until after the list is created to connect this
5f49fa1c6f08 Fix a bug with multi-field selections in Pidgin's implementation of
Mark Doliner <markdoliner@pidgin.im>
parents: 18966
diff changeset
1218 * handler. If we connect the handler before the loop above and
5f49fa1c6f08 Fix a bug with multi-field selections in Pidgin's implementation of
Mark Doliner <markdoliner@pidgin.im>
parents: 18966
diff changeset
1219 * there are multiple items selected, then selecting the first iter
5f49fa1c6f08 Fix a bug with multi-field selections in Pidgin's implementation of
Mark Doliner <markdoliner@pidgin.im>
parents: 18966
diff changeset
1220 * in the tree causes list_field_select_changed_cb to be triggered
5f49fa1c6f08 Fix a bug with multi-field selections in Pidgin's implementation of
Mark Doliner <markdoliner@pidgin.im>
parents: 18966
diff changeset
1221 * which clears out the rest of the list of selected items.
5f49fa1c6f08 Fix a bug with multi-field selections in Pidgin's implementation of
Mark Doliner <markdoliner@pidgin.im>
parents: 18966
diff changeset
1222 */
5f49fa1c6f08 Fix a bug with multi-field selections in Pidgin's implementation of
Mark Doliner <markdoliner@pidgin.im>
parents: 18966
diff changeset
1223 g_signal_connect(G_OBJECT(sel), "changed",
5f49fa1c6f08 Fix a bug with multi-field selections in Pidgin's implementation of
Mark Doliner <markdoliner@pidgin.im>
parents: 18966
diff changeset
1224 G_CALLBACK(list_field_select_changed_cb), field);
5f49fa1c6f08 Fix a bug with multi-field selections in Pidgin's implementation of
Mark Doliner <markdoliner@pidgin.im>
parents: 18966
diff changeset
1225
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1226 gtk_widget_show(treeview);
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1227
31321
1fef3832cfa2 Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
Gabriel Schulhof <nix@go-nix.ca>
parents: 31294
diff changeset
1228 return pidgin_make_scrollable(treeview, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC, GTK_SHADOW_IN, -1, -1);
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1229 }
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1230
32887
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1231 static GtkWidget *
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1232 create_certificate_field(PurpleRequestField *field)
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1233 {
32890
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
1234 PurpleCertificate *cert;
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
1235 #ifdef ENABLE_GCR
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
1236 GcrCertificateBasicsWidget *cert_widget;
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
1237 GByteArray *der;
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
1238 GcrCertificate *gcrt;
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
1239 #else
32887
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1240 GtkWidget *cert_label;
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1241 char *str;
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1242 char *escaped;
32890
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
1243 #endif
32887
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1244
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1245 cert = purple_request_field_certificate_get_value(field);
32890
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
1246
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
1247 #ifdef ENABLE_GCR
32893
6063be322695 Fix a small typo and add a cast.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32890
diff changeset
1248 der = purple_certificate_get_der_data(cert);
32890
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
1249 g_return_val_if_fail(der, NULL);
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
1250
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
1251 gcrt = gcr_simple_certificate_new(der->data, der->len);
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
1252 g_return_val_if_fail(gcrt, NULL);
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
1253
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
1254 cert_widget = gcr_certificate_basics_widget_new(gcrt);
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
1255
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
1256 g_byte_array_free(der, TRUE);
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
1257 g_object_unref(G_OBJECT(gcrt));
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
1258
32893
6063be322695 Fix a small typo and add a cast.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32890
diff changeset
1259 return GTK_WIDGET(cert_widget);
32890
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
1260 #else
32887
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1261 str = purple_certificate_get_display_string(cert);
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1262 escaped = g_markup_escape_text(str, -1);
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1263
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1264 cert_label = gtk_label_new(NULL);
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1265 gtk_label_set_markup(GTK_LABEL(cert_label), escaped);
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1266 gtk_label_set_line_wrap(GTK_LABEL(cert_label), TRUE);
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1267 gtk_misc_set_alignment(GTK_MISC(cert_label), 0, 0);
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1268
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1269 g_free(str);
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1270 g_free(escaped);
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1271
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1272 return cert_label;
32890
35d644c6df3b Use GCR widgets for the certificate request field when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32887
diff changeset
1273 #endif
32887
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1274 }
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1275
6363
6e0fa4b64fe6 [gaim-migrate @ 6868]
Christian Hammond <chipx86@chipx86.com>
parents: 6338
diff changeset
1276 static void *
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1277 pidgin_request_fields(const char *title, const char *primary,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1278 const char *secondary, PurpleRequestFields *fields,
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1279 const char *ok_text, GCallback ok_cb,
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1280 const char *cancel_text, GCallback cancel_cb,
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16259
diff changeset
1281 PurpleAccount *account, const char *who, PurpleConversation *conv,
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
1282 void *user_data)
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1283 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1284 PidginRequestData *data;
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1285 GtkWidget *win;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1286 GtkWidget *vbox;
8524
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1287 GtkWidget *vbox2;
6326
62b5476c87f9 [gaim-migrate @ 6825]
Christian Hammond <chipx86@chipx86.com>
parents: 6325
diff changeset
1288 GtkWidget *hbox;
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1289 GtkWidget *frame;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1290 GtkWidget *label;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1291 GtkWidget *table;
5815
cdd5b8d9caca [gaim-migrate @ 6245]
Christian Hammond <chipx86@chipx86.com>
parents: 5813
diff changeset
1292 GtkWidget *button;
6326
62b5476c87f9 [gaim-migrate @ 6825]
Christian Hammond <chipx86@chipx86.com>
parents: 6325
diff changeset
1293 GtkWidget *img;
5813
ba2693e8db07 [gaim-migrate @ 6243]
Christian Hammond <chipx86@chipx86.com>
parents: 5811
diff changeset
1294 GtkSizeGroup *sg;
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1295 GList *gl, *fl;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1296 PurpleRequestFieldGroup *group;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1297 PurpleRequestField *field;
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1298 char *label_text;
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
1299 char *primary_esc, *secondary_esc;
8524
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1300 int total_fields = 0;
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1301
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1302 data = g_new0(PidginRequestData, 1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1303 data->type = PURPLE_REQUEST_FIELDS;
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1304 data->user_data = user_data;
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
1305 data->u.multifield.fields = fields;
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1306
32274
8695d161ad46 Fix build breakage introduced by 55a194e489bb2b6b8d7c6dde6ace291d8e094356.
Andrew Victor <andrew.victor@mxit.com>
parents: 31992
diff changeset
1307 purple_request_fields_set_ui_data(fields, data);
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1308
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1309 data->cb_count = 2;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1310 data->cbs = g_new0(GCallback, 2);
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1311
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1312 data->cbs[0] = ok_cb;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1313 data->cbs[1] = cancel_cb;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1314
19585
14b519abcc26 Fix some conversion warnings about using negative values with unsigned types. There are more, but these were easy fixes. You may think that I'm changing the API, but I'm really not - it was just wrong.
Daniel Atallah <datallah@pidgin.im>
parents: 19369
diff changeset
1315
16686
1ebd9e4ae3f0 Prevent request dialog titles being "pidgin.exe".
Daniel Atallah <datallah@pidgin.im>
parents: 16490
diff changeset
1316 #ifdef _WIN32
22000
5e7708f58d3d Patch from fmoo. This makes a lot of the windows closeable with Escape. There
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21648
diff changeset
1317 data->dialog = win = pidgin_create_dialog(PIDGIN_ALERT_TITLE, PIDGIN_HIG_BORDER, "multifield", TRUE) ;
17213
25a0ae0d0ff7 Added to gtkutils.c:
Gabriel Schulhof <nix@go-nix.ca>
parents: 16873
diff changeset
1318 #else /* !_WIN32 */
22000
5e7708f58d3d Patch from fmoo. This makes a lot of the windows closeable with Escape. There
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21648
diff changeset
1319 data->dialog = win = pidgin_create_dialog(title, PIDGIN_HIG_BORDER, "multifield", TRUE) ;
17213
25a0ae0d0ff7 Added to gtkutils.c:
Gabriel Schulhof <nix@go-nix.ca>
parents: 16873
diff changeset
1320 #endif /* _WIN32 */
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1321
8323
d962d280c523 [gaim-migrate @ 9047]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
1322 g_signal_connect(G_OBJECT(win), "delete_event",
d962d280c523 [gaim-migrate @ 9047]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
1323 G_CALLBACK(destroy_multifield_cb), data);
d962d280c523 [gaim-migrate @ 9047]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
1324
6326
62b5476c87f9 [gaim-migrate @ 6825]
Christian Hammond <chipx86@chipx86.com>
parents: 6325
diff changeset
1325 /* Setup the main horizontal box */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
1326 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
22000
5e7708f58d3d Patch from fmoo. This makes a lot of the windows closeable with Escape. There
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21648
diff changeset
1327 gtk_container_add(GTK_CONTAINER(pidgin_dialog_get_vbox(GTK_DIALOG(win))), hbox);
6326
62b5476c87f9 [gaim-migrate @ 6825]
Christian Hammond <chipx86@chipx86.com>
parents: 6325
diff changeset
1328 gtk_widget_show(hbox);
62b5476c87f9 [gaim-migrate @ 6825]
Christian Hammond <chipx86@chipx86.com>
parents: 6325
diff changeset
1329
62b5476c87f9 [gaim-migrate @ 6825]
Christian Hammond <chipx86@chipx86.com>
parents: 6325
diff changeset
1330 /* Dialog icon. */
15497
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1331 img = gtk_image_new_from_stock(PIDGIN_STOCK_DIALOG_QUESTION,
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1332 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_HUGE));
6326
62b5476c87f9 [gaim-migrate @ 6825]
Christian Hammond <chipx86@chipx86.com>
parents: 6325
diff changeset
1333 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
62b5476c87f9 [gaim-migrate @ 6825]
Christian Hammond <chipx86@chipx86.com>
parents: 6325
diff changeset
1334 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
62b5476c87f9 [gaim-migrate @ 6825]
Christian Hammond <chipx86@chipx86.com>
parents: 6325
diff changeset
1335 gtk_widget_show(img);
62b5476c87f9 [gaim-migrate @ 6825]
Christian Hammond <chipx86@chipx86.com>
parents: 6325
diff changeset
1336
22934
7a96ee1d84f5 A newly created widget for a request field may want to enable/disable the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22263
diff changeset
1337 /* Cancel button */
7a96ee1d84f5 A newly created widget for a request field may want to enable/disable the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22263
diff changeset
1338 button = pidgin_dialog_add_button(GTK_DIALOG(win), text_to_stock(cancel_text), G_CALLBACK(multifield_cancel_cb), data);
32914
9d3d02829373 Fix calls to GTK_WIDGET_SET_FLAGS, which oddly enough does not seem to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32913
diff changeset
1339 gtk_widget_set_can_default(button, TRUE);
22934
7a96ee1d84f5 A newly created widget for a request field may want to enable/disable the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22263
diff changeset
1340
7a96ee1d84f5 A newly created widget for a request field may want to enable/disable the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22263
diff changeset
1341 /* OK button */
7a96ee1d84f5 A newly created widget for a request field may want to enable/disable the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22263
diff changeset
1342 button = pidgin_dialog_add_button(GTK_DIALOG(win), text_to_stock(ok_text), G_CALLBACK(multifield_ok_cb), data);
7a96ee1d84f5 A newly created widget for a request field may want to enable/disable the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22263
diff changeset
1343 data->ok_button = button;
32914
9d3d02829373 Fix calls to GTK_WIDGET_SET_FLAGS, which oddly enough does not seem to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32913
diff changeset
1344 gtk_widget_set_can_default(button, TRUE);
22934
7a96ee1d84f5 A newly created widget for a request field may want to enable/disable the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22263
diff changeset
1345 gtk_window_set_default(GTK_WINDOW(win), button);
7a96ee1d84f5 A newly created widget for a request field may want to enable/disable the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22263
diff changeset
1346
28793
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
1347 pidgin_widget_decorate_account(hbox, account);
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
1348
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1349 /* Setup the vbox */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
1350 vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER);
19369
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1351 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 0);
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1352 gtk_widget_show(vbox);
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1353
5813
ba2693e8db07 [gaim-migrate @ 6243]
Christian Hammond <chipx86@chipx86.com>
parents: 5811
diff changeset
1354 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
ba2693e8db07 [gaim-migrate @ 6243]
Christian Hammond <chipx86@chipx86.com>
parents: 5811
diff changeset
1355
8524
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1356 if(primary) {
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
1357 primary_esc = g_markup_escape_text(primary, -1);
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1358 label_text = g_strdup_printf(
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
1359 "<span weight=\"bold\" size=\"larger\">%s</span>", primary_esc);
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
1360 g_free(primary_esc);
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1361 label = gtk_label_new(NULL);
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1362
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1363 gtk_label_set_markup(GTK_LABEL(label), label_text);
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1364 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1365 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
15383
80d48e553879 [gaim-migrate @ 18112]
Nathan Walp <nwalp@pidgin.im>
parents: 15382
diff changeset
1366 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
6325
35357b64dbb2 [gaim-migrate @ 6824]
Christian Hammond <chipx86@chipx86.com>
parents: 6324
diff changeset
1367 gtk_widget_show(label);
8524
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1368 g_free(label_text);
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1369 }
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1370
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1371 for (gl = purple_request_fields_get_groups(fields); gl != NULL;
8524
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1372 gl = gl->next)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1373 total_fields += g_list_length(purple_request_field_group_get_fields(gl->data));
8524
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1374
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1375 if(total_fields > 9) {
19369
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1376 GtkWidget *hbox_for_spacing, *vbox_for_spacing;
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1377
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1378 hbox_for_spacing = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
31321
1fef3832cfa2 Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
Gabriel Schulhof <nix@go-nix.ca>
parents: 31294
diff changeset
1379 gtk_box_pack_start(GTK_BOX(vbox),
1fef3832cfa2 Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
Gabriel Schulhof <nix@go-nix.ca>
parents: 31294
diff changeset
1380 pidgin_make_scrollable(hbox_for_spacing, GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC, GTK_SHADOW_NONE, -1, 200),
1fef3832cfa2 Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
Gabriel Schulhof <nix@go-nix.ca>
parents: 31294
diff changeset
1381 TRUE, TRUE, 0);
19369
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1382 gtk_widget_show(hbox_for_spacing);
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1383
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1384 vbox_for_spacing = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER);
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1385 gtk_box_pack_start(GTK_BOX(hbox_for_spacing),
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1386 vbox_for_spacing, TRUE, TRUE, PIDGIN_HIG_BOX_SPACE);
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1387 gtk_widget_show(vbox_for_spacing);
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1388
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
1389 vbox2 = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER);
19369
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1390 gtk_box_pack_start(GTK_BOX(vbox_for_spacing),
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1391 vbox2, TRUE, TRUE, PIDGIN_HIG_BOX_SPACE);
8524
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1392 gtk_widget_show(vbox2);
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1393 } else {
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1394 vbox2 = vbox;
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1395 }
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1396
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1397 if (secondary) {
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
1398 secondary_esc = g_markup_escape_text(secondary, -1);
8524
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1399 label = gtk_label_new(NULL);
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1400
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
1401 gtk_label_set_markup(GTK_LABEL(label), secondary_esc);
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
1402 g_free(secondary_esc);
8524
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1403 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1404 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1405 gtk_box_pack_start(GTK_BOX(vbox2), label, TRUE, TRUE, 0);
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1406 gtk_widget_show(label);
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1407 }
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1408
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1409 for (gl = purple_request_fields_get_groups(fields);
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1410 gl != NULL;
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1411 gl = gl->next)
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1412 {
5816
44bbfb7f8904 [gaim-migrate @ 6246]
Christian Hammond <chipx86@chipx86.com>
parents: 5815
diff changeset
1413 GList *field_list;
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1414 size_t field_count = 0;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1415 size_t cols = 1;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1416 size_t rows;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1417 size_t col_num;
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1418 size_t row_num = 0;
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1419
5816
44bbfb7f8904 [gaim-migrate @ 6246]
Christian Hammond <chipx86@chipx86.com>
parents: 5815
diff changeset
1420 group = gl->data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1421 field_list = purple_request_field_group_get_fields(group);
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1422
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1423 if (purple_request_field_group_get_title(group) != NULL)
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1424 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1425 frame = pidgin_make_frame(vbox2,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1426 purple_request_field_group_get_title(group));
6324
dddc1f8fe8e0 [gaim-migrate @ 6823]
Christian Hammond <chipx86@chipx86.com>
parents: 6110
diff changeset
1427 }
6325
35357b64dbb2 [gaim-migrate @ 6824]
Christian Hammond <chipx86@chipx86.com>
parents: 6324
diff changeset
1428 else
8524
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1429 frame = vbox2;
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1430
5816
44bbfb7f8904 [gaim-migrate @ 6246]
Christian Hammond <chipx86@chipx86.com>
parents: 5815
diff changeset
1431 field_count = g_list_length(field_list);
8524
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1432 /*
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1433 if (field_count > 9)
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1434 {
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1435 rows = field_count / 2;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1436 cols++;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1437 }
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1438 else
8524
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1439 */
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1440 rows = field_count;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1441
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1442 col_num = 0;
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1443
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1444 for (fl = field_list; fl != NULL; fl = fl->next)
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1445 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1446 PurpleRequestFieldType type;
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1447
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1448 field = (PurpleRequestField *)fl->data;
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1449
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1450 type = purple_request_field_get_type(field);
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1451
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1452 if (type == PURPLE_REQUEST_FIELD_LABEL)
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1453 {
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1454 if (col_num > 0)
7921
cd7f211c784c [gaim-migrate @ 8589]
Nathan Walp <nwalp@pidgin.im>
parents: 7909
diff changeset
1455 rows++;
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1456
7921
cd7f211c784c [gaim-migrate @ 8589]
Nathan Walp <nwalp@pidgin.im>
parents: 7909
diff changeset
1457 rows++;
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1458 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1459 else if ((type == PURPLE_REQUEST_FIELD_LIST) ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1460 (type == PURPLE_REQUEST_FIELD_STRING &&
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1461 purple_request_field_string_is_multiline(field)))
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1462 {
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1463 if (col_num > 0)
7921
cd7f211c784c [gaim-migrate @ 8589]
Nathan Walp <nwalp@pidgin.im>
parents: 7909
diff changeset
1464 rows++;
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1465
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1466 rows += 2;
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1467 }
7921
cd7f211c784c [gaim-migrate @ 8589]
Nathan Walp <nwalp@pidgin.im>
parents: 7909
diff changeset
1468
cd7f211c784c [gaim-migrate @ 8589]
Nathan Walp <nwalp@pidgin.im>
parents: 7909
diff changeset
1469 col_num++;
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1470
8323
d962d280c523 [gaim-migrate @ 9047]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
1471 if (col_num >= cols)
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1472 col_num = 0;
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1473 }
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1474
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1475 table = gtk_table_new(rows, 2 * cols, FALSE);
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
1476 gtk_table_set_row_spacings(GTK_TABLE(table), PIDGIN_HIG_BOX_SPACE);
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
1477 gtk_table_set_col_spacings(GTK_TABLE(table), PIDGIN_HIG_BOX_SPACE);
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1478
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1479 gtk_container_add(GTK_CONTAINER(frame), table);
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1480 gtk_widget_show(table);
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1481
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1482 for (row_num = 0, fl = field_list;
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1483 row_num < rows && fl != NULL;
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1484 row_num++)
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1485 {
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1486 for (col_num = 0;
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1487 col_num < cols && fl != NULL;
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1488 col_num++, fl = fl->next)
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1489 {
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1490 size_t col_offset = col_num * 2;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1491 PurpleRequestFieldType type;
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1492 GtkWidget *widget = NULL;
22962
654c6e6f68bd Do not add a ':' if there's already one at the end. Thanks to wjt for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22934
diff changeset
1493 const char *field_label;
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1494
12666
a02b23981ccb [gaim-migrate @ 15009]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12600
diff changeset
1495 label = NULL;
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1496 field = fl->data;
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1497
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1498 if (!purple_request_field_is_visible(field)) {
7922
160207a9feee [gaim-migrate @ 8591]
Nathan Walp <nwalp@pidgin.im>
parents: 7921
diff changeset
1499 col_num--;
7904
266d6d5c68ac [gaim-migrate @ 8564]
Christian Hammond <chipx86@chipx86.com>
parents: 7903
diff changeset
1500 continue;
7922
160207a9feee [gaim-migrate @ 8591]
Nathan Walp <nwalp@pidgin.im>
parents: 7921
diff changeset
1501 }
7904
266d6d5c68ac [gaim-migrate @ 8564]
Christian Hammond <chipx86@chipx86.com>
parents: 7903
diff changeset
1502
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1503 type = purple_request_field_get_type(field);
22962
654c6e6f68bd Do not add a ':' if there's already one at the end. Thanks to wjt for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22934
diff changeset
1504 field_label = purple_request_field_get_label(field);
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1505
22962
654c6e6f68bd Do not add a ':' if there's already one at the end. Thanks to wjt for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22934
diff changeset
1506 if (type != PURPLE_REQUEST_FIELD_BOOLEAN && field_label)
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1507 {
22962
654c6e6f68bd Do not add a ':' if there's already one at the end. Thanks to wjt for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22934
diff changeset
1508 char *text = NULL;
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1509
22962
654c6e6f68bd Do not add a ':' if there's already one at the end. Thanks to wjt for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22934
diff changeset
1510 if (field_label[strlen(field_label) - 1] != ':')
654c6e6f68bd Do not add a ':' if there's already one at the end. Thanks to wjt for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22934
diff changeset
1511 text = g_strdup_printf("%s:", field_label);
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1512
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1513 label = gtk_label_new(NULL);
22962
654c6e6f68bd Do not add a ':' if there's already one at the end. Thanks to wjt for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22934
diff changeset
1514 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), text ? text : field_label);
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1515 g_free(text);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1516
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1517 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1518
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1519 gtk_size_group_add_widget(sg, label);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1520
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1521 if (type == PURPLE_REQUEST_FIELD_LABEL ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1522 type == PURPLE_REQUEST_FIELD_LIST ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1523 (type == PURPLE_REQUEST_FIELD_STRING &&
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1524 purple_request_field_string_is_multiline(field)))
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1525 {
7921
cd7f211c784c [gaim-migrate @ 8589]
Nathan Walp <nwalp@pidgin.im>
parents: 7909
diff changeset
1526 if(col_num > 0)
cd7f211c784c [gaim-migrate @ 8589]
Nathan Walp <nwalp@pidgin.im>
parents: 7909
diff changeset
1527 row_num++;
cd7f211c784c [gaim-migrate @ 8589]
Nathan Walp <nwalp@pidgin.im>
parents: 7909
diff changeset
1528
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1529 gtk_table_attach_defaults(GTK_TABLE(table), label,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1530 0, 2 * cols,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1531 row_num, row_num + 1);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1532
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1533 row_num++;
7921
cd7f211c784c [gaim-migrate @ 8589]
Nathan Walp <nwalp@pidgin.im>
parents: 7909
diff changeset
1534 col_num=cols;
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1535 }
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1536 else
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1537 {
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1538 gtk_table_attach_defaults(GTK_TABLE(table), label,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1539 col_offset, col_offset + 1,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1540 row_num, row_num + 1);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1541 }
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1542
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1543 gtk_widget_show(label);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1544 }
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1545
24984
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1546 widget = GTK_WIDGET(purple_request_field_get_ui_data(field));
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1547 if (widget == NULL)
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1548 {
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1549 if (type == PURPLE_REQUEST_FIELD_STRING)
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1550 widget = create_string_field(field);
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1551 else if (type == PURPLE_REQUEST_FIELD_INTEGER)
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1552 widget = create_int_field(field);
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1553 else if (type == PURPLE_REQUEST_FIELD_BOOLEAN)
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1554 widget = create_bool_field(field);
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1555 else if (type == PURPLE_REQUEST_FIELD_CHOICE)
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1556 widget = create_choice_field(field);
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1557 else if (type == PURPLE_REQUEST_FIELD_LIST)
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1558 widget = create_list_field(field);
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1559 else if (type == PURPLE_REQUEST_FIELD_IMAGE)
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1560 widget = create_image_field(field);
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1561 else if (type == PURPLE_REQUEST_FIELD_ACCOUNT)
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1562 widget = create_account_field(field);
32887
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1563 else if (type == PURPLE_REQUEST_FIELD_CERTIFICATE)
442a78eea36e Display a certificate request field in Pidgin and Finch by just using
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32274
diff changeset
1564 widget = create_certificate_field(field);
24984
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1565 else
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1566 continue;
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1567 }
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1568
12666
a02b23981ccb [gaim-migrate @ 15009]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12600
diff changeset
1569 if (label)
a02b23981ccb [gaim-migrate @ 15009]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12600
diff changeset
1570 gtk_label_set_mnemonic_widget(GTK_LABEL(label), widget);
a02b23981ccb [gaim-migrate @ 15009]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12600
diff changeset
1571
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1572 if (type == PURPLE_REQUEST_FIELD_STRING &&
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1573 purple_request_field_string_is_multiline(field))
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1574 {
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1575 gtk_table_attach(GTK_TABLE(table), widget,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1576 0, 2 * cols,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1577 row_num, row_num + 1,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1578 GTK_FILL | GTK_EXPAND,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1579 GTK_FILL | GTK_EXPAND,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1580 5, 0);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1581 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1582 else if (type == PURPLE_REQUEST_FIELD_LIST)
10627
ebbfa9f428e6 [gaim-migrate @ 12102]
Christopher O'Brien <siege@pidgin.im>
parents: 10605
diff changeset
1583 {
ebbfa9f428e6 [gaim-migrate @ 12102]
Christopher O'Brien <siege@pidgin.im>
parents: 10605
diff changeset
1584 gtk_table_attach(GTK_TABLE(table), widget,
ebbfa9f428e6 [gaim-migrate @ 12102]
Christopher O'Brien <siege@pidgin.im>
parents: 10605
diff changeset
1585 0, 2 * cols,
ebbfa9f428e6 [gaim-migrate @ 12102]
Christopher O'Brien <siege@pidgin.im>
parents: 10605
diff changeset
1586 row_num, row_num + 1,
ebbfa9f428e6 [gaim-migrate @ 12102]
Christopher O'Brien <siege@pidgin.im>
parents: 10605
diff changeset
1587 GTK_FILL | GTK_EXPAND,
ebbfa9f428e6 [gaim-migrate @ 12102]
Christopher O'Brien <siege@pidgin.im>
parents: 10605
diff changeset
1588 GTK_FILL | GTK_EXPAND,
ebbfa9f428e6 [gaim-migrate @ 12102]
Christopher O'Brien <siege@pidgin.im>
parents: 10605
diff changeset
1589 5, 0);
ebbfa9f428e6 [gaim-migrate @ 12102]
Christopher O'Brien <siege@pidgin.im>
parents: 10605
diff changeset
1590 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1591 else if (type == PURPLE_REQUEST_FIELD_BOOLEAN)
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1592 {
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1593 gtk_table_attach(GTK_TABLE(table), widget,
10627
ebbfa9f428e6 [gaim-migrate @ 12102]
Christopher O'Brien <siege@pidgin.im>
parents: 10605
diff changeset
1594 col_offset, col_offset + 1,
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1595 row_num, row_num + 1,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1596 GTK_FILL | GTK_EXPAND,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1597 GTK_FILL | GTK_EXPAND,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1598 5, 0);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1599 }
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1600 else
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1601 {
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1602 gtk_table_attach(GTK_TABLE(table), widget,
10627
ebbfa9f428e6 [gaim-migrate @ 12102]
Christopher O'Brien <siege@pidgin.im>
parents: 10605
diff changeset
1603 1, 2 * cols,
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1604 row_num, row_num + 1,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1605 GTK_FILL | GTK_EXPAND,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1606 GTK_FILL | GTK_EXPAND,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1607 5, 0);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1608 }
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1609
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1610 gtk_widget_show(widget);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1611
24984
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1612 purple_request_field_set_ui_data(field, widget);
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1613 }
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1614 }
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1615 }
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1616
5813
ba2693e8db07 [gaim-migrate @ 6243]
Christian Hammond <chipx86@chipx86.com>
parents: 5811
diff changeset
1617 g_object_unref(sg);
ba2693e8db07 [gaim-migrate @ 6243]
Christian Hammond <chipx86@chipx86.com>
parents: 5811
diff changeset
1618
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1619 if (!purple_request_fields_all_required_filled(fields))
22934
7a96ee1d84f5 A newly created widget for a request field may want to enable/disable the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22263
diff changeset
1620 gtk_widget_set_sensitive(data->ok_button, FALSE);
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1621
22007
386062b58867 Try to make a window transient for a suitable parent window. This currently
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22005
diff changeset
1622 pidgin_auto_parent_window(win);
386062b58867 Try to make a window transient for a suitable parent window. This currently
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22005
diff changeset
1623
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1624 gtk_widget_show(win);
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1625
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1626 return data;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1627 }
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1628
6363
6e0fa4b64fe6 [gaim-migrate @ 6868]
Christian Hammond <chipx86@chipx86.com>
parents: 6338
diff changeset
1629 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1630 file_yes_no_cb(PidginRequestData *data, gint id)
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1631 {
10605
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1632 /* Only call the callback if yes was selected, otherwise the request
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1633 * (eg. file transfer) will be cancelled, then when a new filename is chosen
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1634 * things go BOOM */
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1635 if (id == 1) {
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1636 if (data->cbs[1] != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1637 ((PurpleRequestFileCb)data->cbs[1])(data->user_data, data->u.file.name);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1638 purple_request_close(data->type, data);
13373
c92b0e801f01 [gaim-migrate @ 15745]
Richard Laager <rlaager@pidgin.im>
parents: 13362
diff changeset
1639 } else {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1640 pidgin_clear_cursor(GTK_WIDGET(data->dialog));
10605
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1641 }
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1642 }
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1643
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1644 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1645 file_ok_check_if_exists_cb(GtkWidget *widget, gint response, PidginRequestData *data)
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1646 {
10536
c2e0b596b4ad [gaim-migrate @ 11888]
Lee Roach <phroggster@gmail.com>
parents: 10418
diff changeset
1647 gchar *current_folder;
c2e0b596b4ad [gaim-migrate @ 11888]
Lee Roach <phroggster@gmail.com>
parents: 10418
diff changeset
1648
12234
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
1649 generic_response_start(data);
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
1650
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1651 if (response != GTK_RESPONSE_ACCEPT) {
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1652 if (data->cbs[0] != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1653 ((PurpleRequestFileCb)data->cbs[0])(data->user_data, NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1654 purple_request_close(data->type, data);
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1655 return;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1656 }
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1657
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1658 data->u.file.name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(data->dialog));
10605
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1659 current_folder = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(data->dialog));
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1660 if (current_folder != NULL) {
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1661 if (data->u.file.savedialog) {
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15931
diff changeset
1662 purple_prefs_set_path(PIDGIN_PREFS_ROOT "/filelocations/last_save_folder", current_folder);
10605
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1663 } else {
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15931
diff changeset
1664 purple_prefs_set_path(PIDGIN_PREFS_ROOT "/filelocations/last_open_folder", current_folder);
10536
c2e0b596b4ad [gaim-migrate @ 11888]
Lee Roach <phroggster@gmail.com>
parents: 10418
diff changeset
1665 }
10605
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1666 g_free(current_folder);
10536
c2e0b596b4ad [gaim-migrate @ 11888]
Lee Roach <phroggster@gmail.com>
parents: 10418
diff changeset
1667 }
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1668 if ((data->u.file.savedialog == TRUE) &&
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1669 (g_file_test(data->u.file.name, G_FILE_TEST_EXISTS))) {
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
1670 purple_request_action(data, NULL, _("That file already exists"),
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16259
diff changeset
1671 _("Would you like to overwrite it?"), 0,
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16259
diff changeset
1672 NULL, NULL, NULL,
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
1673 data, 2,
13535
aa70e0ac6469 [gaim-migrate @ 15911]
Richard Laager <rlaager@pidgin.im>
parents: 13475
diff changeset
1674 _("Overwrite"), G_CALLBACK(file_yes_no_cb),
aa70e0ac6469 [gaim-migrate @ 15911]
Richard Laager <rlaager@pidgin.im>
parents: 13475
diff changeset
1675 _("Choose New Name"), G_CALLBACK(file_yes_no_cb));
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1676 } else
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1677 file_yes_no_cb(data, 1);
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1678 }
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1679
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1680 static void *
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1681 pidgin_request_file(const char *title, const char *filename,
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1682 gboolean savedialog,
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1683 GCallback ok_cb, GCallback cancel_cb,
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16259
diff changeset
1684 PurpleAccount *account, const char *who, PurpleConversation *conv,
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
1685 void *user_data)
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1686 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1687 PidginRequestData *data;
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1688 GtkWidget *filesel;
10605
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1689 const gchar *current_folder;
10673
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1690 gboolean folder_set = FALSE;
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1691
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1692 data = g_new0(PidginRequestData, 1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1693 data->type = PURPLE_REQUEST_FILE;
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1694 data->user_data = user_data;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1695 data->cb_count = 2;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1696 data->cbs = g_new0(GCallback, 2);
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1697 data->cbs[0] = cancel_cb;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1698 data->cbs[1] = ok_cb;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1699 data->u.file.savedialog = savedialog;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1700
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1701 filesel = gtk_file_chooser_dialog_new(
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1702 title ? title : (savedialog ? _("Save File...")
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1703 : _("Open File...")),
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1704 NULL,
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1705 savedialog ? GTK_FILE_CHOOSER_ACTION_SAVE
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1706 : GTK_FILE_CHOOSER_ACTION_OPEN,
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1707 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1708 savedialog ? GTK_STOCK_SAVE
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1709 : GTK_STOCK_OPEN,
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1710 GTK_RESPONSE_ACCEPT,
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1711 NULL);
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1712 gtk_dialog_set_default_response(GTK_DIALOG(filesel), GTK_RESPONSE_ACCEPT);
10605
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1713
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1714 if (savedialog) {
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15931
diff changeset
1715 current_folder = purple_prefs_get_path(PIDGIN_PREFS_ROOT "/filelocations/last_save_folder");
10605
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1716 } else {
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15931
diff changeset
1717 current_folder = purple_prefs_get_path(PIDGIN_PREFS_ROOT "/filelocations/last_open_folder");
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1718 }
10673
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1719
15297
eb8632ad88d0 [gaim-migrate @ 18025]
Mark Doliner <markdoliner@pidgin.im>
parents: 15065
diff changeset
1720 if ((filename != NULL) && (*filename != '\0')) {
15022
4489e51a8d8b [gaim-migrate @ 17739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14922
diff changeset
1721 if (savedialog)
4489e51a8d8b [gaim-migrate @ 17739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14922
diff changeset
1722 gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(filesel), filename);
16849
f7b4c6d3ce11 This fixes #412. Apparently gtk_file_chooser_set_filename() doesn't like it when the filename specified doesn't actually exist. This is a GTK+ bug, which I will report.
Daniel Atallah <datallah@pidgin.im>
parents: 16752
diff changeset
1723 else if (g_file_test(filename, G_FILE_TEST_EXISTS))
15022
4489e51a8d8b [gaim-migrate @ 17739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14922
diff changeset
1724 gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(filesel), filename);
4489e51a8d8b [gaim-migrate @ 17739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14922
diff changeset
1725 }
16716
48db3a3d7044 disapproval of revision '8939617e03f8745cbe2ed5a7d82d97f2d4801c30'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16715
diff changeset
1726 if ((filename == NULL || *filename == '\0' || !g_file_test(filename, G_FILE_TEST_EXISTS)) &&
48db3a3d7044 disapproval of revision '8939617e03f8745cbe2ed5a7d82d97f2d4801c30'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16715
diff changeset
1727 (current_folder != NULL) && (*current_folder != '\0')) {
10673
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1728 folder_set = gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(filesel), current_folder);
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1729 }
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1730
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1731 #ifdef _WIN32
16873
f36f8e4a9cb4 Additional fix for another crash similar to #412.
Daniel Atallah <datallah@pidgin.im>
parents: 16849
diff changeset
1732 if (!folder_set && (filename == NULL || *filename == '\0' || !g_file_test(filename, G_FILE_TEST_EXISTS))) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1733 char *my_documents = wpurple_get_special_folder(CSIDL_PERSONAL);
10605
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1734
10673
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1735 if (my_documents != NULL) {
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1736 gtk_file_chooser_set_current_folder(
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1737 GTK_FILE_CHOOSER(filesel), my_documents);
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1738
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1739 g_free(my_documents);
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1740 }
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1741 }
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1742
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1743 #endif
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1744 g_signal_connect(G_OBJECT(GTK_FILE_CHOOSER(filesel)), "response",
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1745 G_CALLBACK(file_ok_check_if_exists_cb), data);
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1746
22007
386062b58867 Try to make a window transient for a suitable parent window. This currently
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22005
diff changeset
1747 pidgin_auto_parent_window(filesel);
386062b58867 Try to make a window transient for a suitable parent window. This currently
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22005
diff changeset
1748
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1749 data->dialog = filesel;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1750 gtk_widget_show(filesel);
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1751
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1752 return (void *)data;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1753 }
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1754
13283
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1755 static void *
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1756 pidgin_request_folder(const char *title, const char *dirname,
13283
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1757 GCallback ok_cb, GCallback cancel_cb,
16490
68c22924d66b Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents: 16259
diff changeset
1758 PurpleAccount *account, const char *who, PurpleConversation *conv,
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
1759 void *user_data)
13283
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1760 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1761 PidginRequestData *data;
13283
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1762 GtkWidget *dirsel;
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 13536
diff changeset
1763
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1764 data = g_new0(PidginRequestData, 1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1765 data->type = PURPLE_REQUEST_FOLDER;
13283
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1766 data->user_data = user_data;
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1767 data->cb_count = 2;
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1768 data->cbs = g_new0(GCallback, 2);
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1769 data->cbs[0] = cancel_cb;
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1770 data->cbs[1] = ok_cb;
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1771 data->u.file.savedialog = FALSE;
16686
1ebd9e4ae3f0 Prevent request dialog titles being "pidgin.exe".
Daniel Atallah <datallah@pidgin.im>
parents: 16490
diff changeset
1772
13283
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1773 dirsel = gtk_file_chooser_dialog_new(
13536
345d4ac042f7 [gaim-migrate @ 15912]
Richard Laager <rlaager@pidgin.im>
parents: 13535
diff changeset
1774 title ? title : _("Select Folder..."),
13283
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1775 NULL,
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1776 GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1777 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1778 GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1779 NULL);
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1780 gtk_dialog_set_default_response(GTK_DIALOG(dirsel), GTK_RESPONSE_ACCEPT);
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1781
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1782 if ((dirname != NULL) && (*dirname != '\0'))
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1783 gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dirsel), dirname);
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1784
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1785 g_signal_connect(G_OBJECT(GTK_FILE_CHOOSER(dirsel)), "response",
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1786 G_CALLBACK(file_ok_check_if_exists_cb), data);
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1787
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1788 data->dialog = dirsel;
22007
386062b58867 Try to make a window transient for a suitable parent window. This currently
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22005
diff changeset
1789 pidgin_auto_parent_window(dirsel);
386062b58867 Try to make a window transient for a suitable parent window. This currently
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22005
diff changeset
1790
13283
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1791 gtk_widget_show(dirsel);
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1792
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1793 return (void *)data;
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1794 }
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1795
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1796 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1797 pidgin_close_request(PurpleRequestType type, void *ui_handle)
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1798 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1799 PidginRequestData *data = (PidginRequestData *)ui_handle;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1800
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 13536
diff changeset
1801 g_free(data->cbs);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1802
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1803 gtk_widget_destroy(data->dialog);
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1804
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1805 if (type == PURPLE_REQUEST_FIELDS)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1806 purple_request_fields_destroy(data->u.multifield.fields);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1807 else if (type == PURPLE_REQUEST_FILE)
9513
ec57f8faed31 [gaim-migrate @ 10340]
Mark Doliner <markdoliner@pidgin.im>
parents: 9506
diff changeset
1808 g_free(data->u.file.name);
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
1809
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1810 g_free(data);
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1811 }
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1812
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1813 static PurpleRequestUiOps ops =
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1814 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1815 pidgin_request_input,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1816 pidgin_request_choice,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1817 pidgin_request_action,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1818 pidgin_request_fields,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1819 pidgin_request_file,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1820 pidgin_close_request,
16752
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16718
diff changeset
1821 pidgin_request_folder,
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
1822 pidgin_request_action_with_icon,
16752
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16718
diff changeset
1823 NULL,
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16718
diff changeset
1824 NULL,
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16718
diff changeset
1825 NULL
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1826 };
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1827
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1828 PurpleRequestUiOps *
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1829 pidgin_request_get_ui_ops(void)
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1830 {
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1831 return &ops;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1832 }

mercurial