pidgin/gtkrequest.c

Mon, 16 Dec 2019 20:20:20 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Mon, 16 Dec 2019 20:20:20 -0600
branch
release-2.x.y
changeset 40239
0a7484792f62
parent 39011
a2b3cc337c5e
child 40394
3c8f61de927c
permissions
-rw-r--r--

Update the ChangeLog and COPYRIGHT for the GNUTLS SNI patch.

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"
39010
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
39 #ifdef USE_VV
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
40 #include "media-gst.h"
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
41 #endif
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
42
8294
cffb4d4660f0 [gaim-migrate @ 9018]
Christian Hammond <chipx86@chipx86.com>
parents: 8289
diff changeset
43 #include <gdk/gdkkeysyms.h>
cffb4d4660f0 [gaim-migrate @ 9018]
Christian Hammond <chipx86@chipx86.com>
parents: 8289
diff changeset
44
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
45 static GtkWidget * create_account_field(PurpleRequestField *field);
8294
cffb4d4660f0 [gaim-migrate @ 9018]
Christian Hammond <chipx86@chipx86.com>
parents: 8289
diff changeset
46
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
47 typedef struct
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
48 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
49 PurpleRequestType type;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
50
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
51 void *user_data;
11177
534ca3ae0bfc [gaim-migrate @ 13285]
Richard Laager <rlaager@pidgin.im>
parents: 11071
diff changeset
52 GtkWidget *dialog;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
53
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
54 GtkWidget *ok_button;
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
55
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
56 size_t cb_count;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
57 GCallback *cbs;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
58
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
59 union
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
60 {
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
61 struct
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
62 {
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
63 GtkWidget *entry;
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
64
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
65 gboolean multiline;
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
66 gchar *hint;
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
67
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
68 } input;
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
69
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
70 struct
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
71 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
72 PurpleRequestFields *fields;
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
73
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
74 } multifield;
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
75
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
76 struct
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
77 {
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
78 gboolean savedialog;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
79 gchar *name;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
80
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
81 } file;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
82
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
83 } u;
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
84
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
85 } PidginRequestData;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
86
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
87 static void
28793
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
88 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
89 {
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
90 GtkWidget *image;
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
91 GdkPixbuf *pixbuf;
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
92 GtkTooltips *tips;
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
93
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
94 if (!account)
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
95 return;
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
96
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
97 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
98 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
99 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
100
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
101 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
102 gtk_tooltips_set_tip(tips, image, purple_account_get_username(account), NULL);
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
103
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
104 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
105 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
106 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
107 } 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
108 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
109 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
110 }
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
111 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
112 }
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 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
115 generic_response_start(PidginRequestData *data)
12234
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
116 {
13435
4c22eed6e0a6 [gaim-migrate @ 15809]
Richard Laager <rlaager@pidgin.im>
parents: 13373
diff changeset
117 g_return_if_fail(data != NULL);
4c22eed6e0a6 [gaim-migrate @ 15809]
Richard Laager <rlaager@pidgin.im>
parents: 13373
diff changeset
118
12234
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
119 /* Tell the user we're doing something. */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
120 pidgin_set_cursor(GTK_WIDGET(data->dialog), GDK_WATCH);
12234
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
121 }
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
122
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
123 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
124 input_response_cb(GtkDialog *dialog, gint id, PidginRequestData *data)
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
125 {
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
126 const char *value;
7174
2f3cab1045d6 [gaim-migrate @ 7742]
Nathan Walp <nwalp@pidgin.im>
parents: 7172
diff changeset
127 char *multiline_value = NULL;
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
128
12234
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
129 generic_response_start(data);
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
130
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
131 if (data->u.input.multiline) {
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
132 GtkTextIter start_iter, end_iter;
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
133 GtkTextBuffer *buffer =
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
134 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
135
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
136 gtk_text_buffer_get_start_iter(buffer, &start_iter);
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
137 gtk_text_buffer_get_end_iter(buffer, &end_iter);
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
138
38266
7c1706b2bd11 Remove found redundant NULL checks
qarkai <qarkai@gmail.com>
parents: 38260
diff changeset
139 if (purple_strequal(data->u.input.hint, "html"))
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
140 multiline_value = gtk_imhtml_get_markup(GTK_IMHTML(data->u.input.entry));
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
141 else
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
142 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
143 FALSE);
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
144
7172
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7142
diff changeset
145 value = multiline_value;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
146 }
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
147 else
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
148 value = gtk_entry_get_text(GTK_ENTRY(data->u.input.entry));
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
149
36256
a437550a9308 Remove -Wno-sign-compare and backport fixes from default.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 35986
diff changeset
150 if (id >= 0 && (gsize)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
151 ((PurpleRequestInputCb)data->cbs[id])(data->user_data, value);
6110
8c703c3453c7 [gaim-migrate @ 6572]
Mark Doliner <markdoliner@pidgin.im>
parents: 6109
diff changeset
152 else if (data->cbs[1] != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
153 ((PurpleRequestInputCb)data->cbs[1])(data->user_data, value);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
154
7172
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7142
diff changeset
155 if (data->u.input.multiline)
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7142
diff changeset
156 g_free(multiline_value);
cf6ed52de3c7 [gaim-migrate @ 7740]
Mark Doliner <markdoliner@pidgin.im>
parents: 7142
diff changeset
157
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
158 purple_request_close(PURPLE_REQUEST_INPUT, data);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
159 }
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
160
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
161 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
162 action_response_cb(GtkDialog *dialog, gint id, PidginRequestData *data)
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
163 {
12234
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
164 generic_response_start(data);
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
165
36256
a437550a9308 Remove -Wno-sign-compare and backport fixes from default.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 35986
diff changeset
166 if (id >= 0 && (gsize)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
167 ((PurpleRequestActionCb)data->cbs[id])(data->user_data, id);
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
168
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
169 purple_request_close(PURPLE_REQUEST_INPUT, data);
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
170 }
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
171
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
172
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
173 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
174 choice_response_cb(GtkDialog *dialog, gint id, PidginRequestData *data)
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
175 {
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
176 GtkWidget *radio = g_object_get_data(G_OBJECT(dialog), "radio");
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
177 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
178
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
179 generic_response_start(data);
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
180
36256
a437550a9308 Remove -Wno-sign-compare and backport fixes from default.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 35986
diff changeset
181 if (id >= 0 && (gsize)id < data->cb_count && data->cbs[id] != NULL)
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
182 while (group) {
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
183 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
184 ((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
185 break;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
186 }
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
187 group = group->next;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
188 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
189 purple_request_close(PURPLE_REQUEST_INPUT, data);
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
190 }
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
191
5835
2d496d6d967d [gaim-migrate @ 6266]
Christian Hammond <chipx86@chipx86.com>
parents: 5834
diff changeset
192 static gboolean
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
193 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
194 PurpleRequestField *field)
5832
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
195 {
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
196 const char *value;
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
197
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
198 if (purple_request_field_string_is_multiline(field))
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
199 {
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
200 GtkTextBuffer *buffer;
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
201 GtkTextIter start_iter, end_iter;
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
202
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
203 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(entry));
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
204
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
205 gtk_text_buffer_get_start_iter(buffer, &start_iter);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
206 gtk_text_buffer_get_end_iter(buffer, &end_iter);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
207
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
208 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
209 }
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
210 else
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
211 value = gtk_entry_get_text(GTK_ENTRY(entry));
5834
c7945c10cff3 [gaim-migrate @ 6265]
Christian Hammond <chipx86@chipx86.com>
parents: 5832
diff changeset
212
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
213 purple_request_field_string_set_value(field,
5834
c7945c10cff3 [gaim-migrate @ 6265]
Christian Hammond <chipx86@chipx86.com>
parents: 5832
diff changeset
214 (*value == '\0' ? NULL : value));
5835
2d496d6d967d [gaim-migrate @ 6266]
Christian Hammond <chipx86@chipx86.com>
parents: 5834
diff changeset
215
2d496d6d967d [gaim-migrate @ 6266]
Christian Hammond <chipx86@chipx86.com>
parents: 5834
diff changeset
216 return FALSE;
5832
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
217 }
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
218
5835
2d496d6d967d [gaim-migrate @ 6266]
Christian Hammond <chipx86@chipx86.com>
parents: 5834
diff changeset
219 static gboolean
5846
d2c9503ad8a8 [gaim-migrate @ 6277]
Christian Hammond <chipx86@chipx86.com>
parents: 5845
diff changeset
220 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
221 PurpleRequestField *field)
5832
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
222 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
223 purple_request_field_int_set_value(field,
5832
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
224 atoi(gtk_entry_get_text(entry)));
5835
2d496d6d967d [gaim-migrate @ 6266]
Christian Hammond <chipx86@chipx86.com>
parents: 5834
diff changeset
225
2d496d6d967d [gaim-migrate @ 6266]
Christian Hammond <chipx86@chipx86.com>
parents: 5834
diff changeset
226 return FALSE;
5832
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
227 }
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
228
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
229 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
230 field_bool_cb(GtkToggleButton *button, PurpleRequestField *field)
5832
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
231 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
232 purple_request_field_bool_set_value(field,
5832
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
233 gtk_toggle_button_get_active(button));
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
234 }
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
235
29741
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
236 static void
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
237 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
238 {
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
239 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
240 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
241 }
5832
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
242
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
243 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
244 field_choice_option_cb(GtkRadioButton *button, PurpleRequestField *field)
5832
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
245 {
f81c9ce730fa [gaim-migrate @ 6263]
Christian Hammond <chipx86@chipx86.com>
parents: 5817
diff changeset
246 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
247 purple_request_field_choice_set_value(field,
10943
729674da8959 [gaim-migrate @ 12735]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10871
diff changeset
248 (g_slist_length(gtk_radio_button_get_group(button)) -
729674da8959 [gaim-migrate @ 12735]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10871
diff changeset
249 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
250 }
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 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
253 field_account_cb(GObject *w, PurpleAccount *account, PurpleRequestField *field)
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
254 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
255 purple_request_field_account_set_value(field, account);
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
256 }
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
257
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
258 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
259 multifield_ok_cb(GtkWidget *button, PidginRequestData *data)
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
260 {
12234
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
261 generic_response_start(data);
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
262
8521
0f0e26a59d47 [gaim-migrate @ 9260]
Gary Kramlich <grim@pidgin.im>
parents: 8332
diff changeset
263 if (!GTK_WIDGET_HAS_FOCUS(button))
0f0e26a59d47 [gaim-migrate @ 9260]
Gary Kramlich <grim@pidgin.im>
parents: 8332
diff changeset
264 gtk_widget_grab_focus(button);
0f0e26a59d47 [gaim-migrate @ 9260]
Gary Kramlich <grim@pidgin.im>
parents: 8332
diff changeset
265
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
266 if (data->cbs[0] != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
267 ((PurpleRequestFieldsCb)data->cbs[0])(data->user_data,
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
268 data->u.multifield.fields);
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
269
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
270 purple_request_close(PURPLE_REQUEST_FIELDS, data);
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
271 }
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
272
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
273 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
274 multifield_cancel_cb(GtkWidget *button, PidginRequestData *data)
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
275 {
12234
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
276 generic_response_start(data);
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
277
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
278 if (data->cbs[1] != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
279 ((PurpleRequestFieldsCb)data->cbs[1])(data->user_data,
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
280 data->u.multifield.fields);
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
281
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
282 purple_request_close(PURPLE_REQUEST_FIELDS, data);
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
283 }
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
284
22032
8136dd5eeda3 Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22013
diff changeset
285 static gboolean
8323
d962d280c523 [gaim-migrate @ 9047]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
286 destroy_multifield_cb(GtkWidget *dialog, GdkEvent *event,
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
287 PidginRequestData *data)
8323
d962d280c523 [gaim-migrate @ 9047]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
288 {
d962d280c523 [gaim-migrate @ 9047]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
289 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
290 return FALSE;
8323
d962d280c523 [gaim-migrate @ 9047]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
291 }
d962d280c523 [gaim-migrate @ 9047]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
292
d962d280c523 [gaim-migrate @ 9047]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
293
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
294 #define STOCK_ITEMIZE(r, l) \
38258
9a6551eba09c Replace !strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 36256
diff changeset
295 if (purple_strequal((r), text)) \
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
296 return (l);
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
297
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
298 static const char *
5794
ebdbb7dc6658 [gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents: 5510
diff changeset
299 text_to_stock(const char *text)
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
300 {
6334
47a748d6fb0f [gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents: 6326
diff changeset
301 STOCK_ITEMIZE(_("Yes"), GTK_STOCK_YES);
47a748d6fb0f [gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents: 6326
diff changeset
302 STOCK_ITEMIZE(_("No"), GTK_STOCK_NO);
47a748d6fb0f [gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents: 6326
diff changeset
303 STOCK_ITEMIZE(_("OK"), GTK_STOCK_OK);
47a748d6fb0f [gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents: 6326
diff changeset
304 STOCK_ITEMIZE(_("Cancel"), GTK_STOCK_CANCEL);
47a748d6fb0f [gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents: 6326
diff changeset
305 STOCK_ITEMIZE(_("Apply"), GTK_STOCK_APPLY);
47a748d6fb0f [gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents: 6326
diff changeset
306 STOCK_ITEMIZE(_("Close"), GTK_STOCK_CLOSE);
47a748d6fb0f [gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents: 6326
diff changeset
307 STOCK_ITEMIZE(_("Delete"), GTK_STOCK_DELETE);
47a748d6fb0f [gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents: 6326
diff changeset
308 STOCK_ITEMIZE(_("Add"), GTK_STOCK_ADD);
47a748d6fb0f [gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents: 6326
diff changeset
309 STOCK_ITEMIZE(_("Remove"), GTK_STOCK_REMOVE);
47a748d6fb0f [gaim-migrate @ 6833]
Christian Hammond <chipx86@chipx86.com>
parents: 6326
diff changeset
310 STOCK_ITEMIZE(_("Save"), GTK_STOCK_SAVE);
15570
81e9b7d13875 stock to pidgin
Sean Egan <seanegan@pidgin.im>
parents: 15568
diff changeset
311 STOCK_ITEMIZE(_("Alias"), PIDGIN_STOCK_ALIAS);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
312
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
313 return text;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
314 }
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
315
6363
6e0fa4b64fe6 [gaim-migrate @ 6868]
Christian Hammond <chipx86@chipx86.com>
parents: 6338
diff changeset
316 static void *
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
317 pidgin_request_input(const char *title, const char *primary,
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
318 const char *secondary, const char *default_value,
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
319 gboolean multiline, gboolean masked, gchar *hint,
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
320 const char *ok_text, GCallback ok_cb,
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
321 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
322 PurpleAccount *account, const char *who, PurpleConversation *conv,
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
323 void *user_data)
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
324 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
325 PidginRequestData *data;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
326 GtkWidget *dialog;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
327 GtkWidget *vbox;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
328 GtkWidget *hbox;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
329 GtkWidget *label;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
330 GtkWidget *entry;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
331 GtkWidget *img;
8782
eb3f9bf7d69c [gaim-migrate @ 9544]
Ignacio J. Elia
parents: 8697
diff changeset
332 GtkWidget *toolbar;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
333 char *label_text;
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
334 char *primary_esc, *secondary_esc;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
335
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
336 data = g_new0(PidginRequestData, 1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
337 data->type = PURPLE_REQUEST_INPUT;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
338 data->user_data = user_data;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
339
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
340 data->cb_count = 2;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
341 data->cbs = g_new0(GCallback, 2);
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 data->cbs[0] = ok_cb;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
344 data->cbs[1] = cancel_cb;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
345
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
346 /* Create the dialog. */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
347 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
348 NULL, 0,
5794
ebdbb7dc6658 [gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents: 5510
diff changeset
349 text_to_stock(cancel_text), 1,
ebdbb7dc6658 [gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents: 5510
diff changeset
350 text_to_stock(ok_text), 0,
5485
a0e3152b4bbb [gaim-migrate @ 5881]
Sean Egan <seanegan@pidgin.im>
parents: 5480
diff changeset
351 NULL);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
352 data->dialog = dialog;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
353
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
354 g_signal_connect(G_OBJECT(dialog), "response",
5794
ebdbb7dc6658 [gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents: 5510
diff changeset
355 G_CALLBACK(input_response_cb), data);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
356
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
357 /* Setup the dialog */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
358 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
359 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
360 if (!multiline)
07c2c5edec11 Make multiline pidgin_request_input() windows resizable, and make
Mark Doliner <markdoliner@pidgin.im>
parents: 16873
diff changeset
361 gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
362 gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);
5510
15d2eca03c1d [gaim-migrate @ 5909]
Christian Hammond <chipx86@chipx86.com>
parents: 5498
diff changeset
363 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
364 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
365
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
366 /* Setup the main horizontal box */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
367 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
368 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox);
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
369
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
370 /* Dialog icon. */
15497
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
371 img = gtk_image_new_from_stock(PIDGIN_STOCK_DIALOG_QUESTION,
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
372 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_HUGE));
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
373 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
374 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
375
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
376 /* Vertical box */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
377 vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
378
17646
07c2c5edec11 Make multiline pidgin_request_input() windows resizable, and make
Mark Doliner <markdoliner@pidgin.im>
parents: 16873
diff changeset
379 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 0);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
380
28793
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
381 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
382
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
383 /* Descriptive label */
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
384 primary_esc = (primary != NULL) ? g_markup_escape_text(primary, -1) : NULL;
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
385 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
386 label_text = g_strdup_printf((primary ? "<span weight=\"bold\" size=\"larger\">"
d771eecc9717 [gaim-migrate @ 8497]
Nathan Fredrickson <nathan@silverorange.com>
parents: 7678
diff changeset
387 "%s</span>%s%s" : "%s%s%s"),
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
388 (primary ? primary_esc : ""),
7843
d771eecc9717 [gaim-migrate @ 8497]
Nathan Fredrickson <nathan@silverorange.com>
parents: 7678
diff changeset
389 ((primary && secondary) ? "\n\n" : ""),
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
390 (secondary ? secondary_esc : ""));
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
391 g_free(primary_esc);
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
392 g_free(secondary_esc);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
393
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
394 label = gtk_label_new(NULL);
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 gtk_label_set_markup(GTK_LABEL(label), label_text);
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
397 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
398 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
399 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
400
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
401 g_free(label_text);
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
402
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
403 /* Entry field. */
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
404 data->u.input.multiline = multiline;
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 13536
diff changeset
405 data->u.input.hint = g_strdup(hint);
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
406
19789
5d323c4bd855 And don't show everything here either.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19585
diff changeset
407 gtk_widget_show_all(hbox);
5d323c4bd855 And don't show everything here either.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19585
diff changeset
408
38266
7c1706b2bd11 Remove found redundant NULL checks
qarkai <qarkai@gmail.com>
parents: 38260
diff changeset
409 if (purple_strequal(data->u.input.hint, "html")) {
10146
cd4abe598b61 [gaim-migrate @ 11222]
Mark Doliner <markdoliner@pidgin.im>
parents: 10116
diff changeset
410 GtkWidget *frame;
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
411
10181
2425c3773266 [gaim-migrate @ 11296]
Mark Doliner <markdoliner@pidgin.im>
parents: 10164
diff changeset
412 /* imhtml */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
413 frame = pidgin_create_imhtml(TRUE, &entry, &toolbar, NULL);
10181
2425c3773266 [gaim-migrate @ 11296]
Mark Doliner <markdoliner@pidgin.im>
parents: 10164
diff changeset
414 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
415 gtk_widget_set_name(entry, "pidgin_request_imhtml");
10181
2425c3773266 [gaim-migrate @ 11296]
Mark Doliner <markdoliner@pidgin.im>
parents: 10164
diff changeset
416 if (default_value != NULL)
2425c3773266 [gaim-migrate @ 11296]
Mark Doliner <markdoliner@pidgin.im>
parents: 10164
diff changeset
417 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
418 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
cd4abe598b61 [gaim-migrate @ 11222]
Mark Doliner <markdoliner@pidgin.im>
parents: 10116
diff changeset
419 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
420
0be61f1b3dd1 Add a GtkIMHtml function that causes the widget to actually insert a
Mark Doliner <markdoliner@pidgin.im>
parents: 25874
diff changeset
421 gtk_imhtml_set_return_inserts_newline(GTK_IMHTML(entry));
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
422 }
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
423 else {
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
424 if (multiline) {
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
425 /* GtkTextView */
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
426 entry = gtk_text_view_new();
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
427 gtk_text_view_set_editable(GTK_TEXT_VIEW(entry), TRUE);
5510
15d2eca03c1d [gaim-migrate @ 5909]
Christian Hammond <chipx86@chipx86.com>
parents: 5498
diff changeset
428
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
429 if (default_value != NULL) {
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
430 GtkTextBuffer *buffer;
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
431
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
432 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(entry));
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
433 gtk_text_buffer_set_text(buffer, default_value, -1);
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
434 }
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
435
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
436 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(entry), GTK_WRAP_WORD_CHAR);
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
437
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15931
diff changeset
438 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
439 pidgin_setup_gtkspell(GTK_TEXT_VIEW(entry));
6035
b245be9cbe3b [gaim-migrate @ 6485]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
440
38258
9a6551eba09c Replace !strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 36256
diff changeset
441 gtk_box_pack_start(GTK_BOX(vbox),
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
442 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
443 TRUE, TRUE, 0);
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
444 }
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
445 else {
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
446 entry = gtk_entry_new();
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
447
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
448 gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
449
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
450 gtk_box_pack_start(GTK_BOX(vbox), entry, FALSE, FALSE, 0);
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
451
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
452 if (default_value != NULL)
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
453 gtk_entry_set_text(GTK_ENTRY(entry), default_value);
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
454
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
455 if (masked)
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11780
diff changeset
456 {
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
457 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
458 #if !GTK_CHECK_VERSION(2,16,0)
15390
d429e03fc755 [gaim-migrate @ 18119]
Mark Doliner <markdoliner@pidgin.im>
parents: 15383
diff changeset
459 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
460 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
461 #endif /* Less than GTK+ 2.16 */
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11780
diff changeset
462 }
8697
c5e51aef2026 [gaim-migrate @ 9450]
Jon Oberheide
parents: 8524
diff changeset
463 }
19789
5d323c4bd855 And don't show everything here either.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19585
diff changeset
464 gtk_widget_show_all(vbox);
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
465 }
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
466
15568
cd19bb5a51b8 gtkutils changes
Sean Egan <seanegan@pidgin.im>
parents: 15562
diff changeset
467 pidgin_set_accessible_label (entry, label);
5490
1ecf84cb6fc4 [gaim-migrate @ 5886]
Christian Hammond <chipx86@chipx86.com>
parents: 5485
diff changeset
468 data->u.input.entry = entry;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
469
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
470 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
471
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
472 /* Show everything. */
19789
5d323c4bd855 And don't show everything here either.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19585
diff changeset
473 gtk_widget_show(dialog);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
474
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
475 return data;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
476 }
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
477
6363
6e0fa4b64fe6 [gaim-migrate @ 6868]
Christian Hammond <chipx86@chipx86.com>
parents: 6338
diff changeset
478 static void *
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
479 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
480 const char *secondary, int default_value,
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
481 const char *ok_text, GCallback ok_cb,
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
482 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
483 PurpleAccount *account, const char *who, PurpleConversation *conv,
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
484 void *user_data, va_list args)
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
485 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
486 PidginRequestData *data;
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
487 GtkWidget *dialog;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
488 GtkWidget *vbox, *vbox2;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
489 GtkWidget *hbox;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
490 GtkWidget *label;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
491 GtkWidget *img;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
492 GtkWidget *radio = NULL;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
493 char *label_text;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
494 char *radio_text;
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
495 char *primary_esc, *secondary_esc;
10233
7b542749ccb6 [gaim-migrate @ 11368]
Mark Doliner <markdoliner@pidgin.im>
parents: 10229
diff changeset
496
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
497 data = g_new0(PidginRequestData, 1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
498 data->type = PURPLE_REQUEST_ACTION;
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
499 data->user_data = user_data;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
500
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
501 data->cb_count = 2;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
502 data->cbs = g_new0(GCallback, 2);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
503 data->cbs[0] = cancel_cb;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
504 data->cbs[1] = ok_cb;
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
505
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
506 /* Create the dialog. */
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
507 data->dialog = dialog = gtk_dialog_new();
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
508
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
509 if (title != NULL)
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
510 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
511 #ifdef _WIN32
1ebd9e4ae3f0 Prevent request dialog titles being "pidgin.exe".
Daniel Atallah <datallah@pidgin.im>
parents: 16490
diff changeset
512 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
513 #endif
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
514
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
515 gtk_dialog_add_button(GTK_DIALOG(dialog),
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
516 text_to_stock(cancel_text), 0);
10233
7b542749ccb6 [gaim-migrate @ 11368]
Mark Doliner <markdoliner@pidgin.im>
parents: 10229
diff changeset
517
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
518 gtk_dialog_add_button(GTK_DIALOG(dialog),
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
519 text_to_stock(ok_text), 1);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
520
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
521 g_signal_connect(G_OBJECT(dialog), "response",
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
522 G_CALLBACK(choice_response_cb), data);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
523
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
524 /* Setup the dialog */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
525 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
526 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
527 gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
528 gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
529 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
530
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
531 /* Setup the main horizontal box */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
532 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
533 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
534
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
535 /* Dialog icon. */
15497
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
536 img = gtk_image_new_from_stock(PIDGIN_STOCK_DIALOG_QUESTION,
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
537 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
538 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
539 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
540
28793
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
541 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
542
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
543 /* Vertical box */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
544 vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER);
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
545 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
546
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
547 /* Descriptive label */
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
548 primary_esc = (primary != NULL) ? g_markup_escape_text(primary, -1) : NULL;
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
549 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
550 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
551 "%s</span>%s%s" : "%s%s%s"),
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
552 (primary ? primary_esc : ""),
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
553 ((primary && secondary) ? "\n\n" : ""),
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
554 (secondary ? secondary_esc : ""));
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
555 g_free(primary_esc);
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
556 g_free(secondary_esc);
10233
7b542749ccb6 [gaim-migrate @ 11368]
Mark Doliner <markdoliner@pidgin.im>
parents: 10229
diff changeset
557
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
558 label = gtk_label_new(NULL);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
559
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
560 gtk_label_set_markup(GTK_LABEL(label), label_text);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
561 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
562 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
563 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
564
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
565 g_free(label_text);
10233
7b542749ccb6 [gaim-migrate @ 11368]
Mark Doliner <markdoliner@pidgin.im>
parents: 10229
diff changeset
566
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
567 vbox2 = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
568 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
569 while ((radio_text = va_arg(args, char*))) {
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
570 int resp = va_arg(args, int);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
571 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
572 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
573 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
574 if (resp == default_value)
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
575 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio), TRUE);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
576 }
10233
7b542749ccb6 [gaim-migrate @ 11368]
Mark Doliner <markdoliner@pidgin.im>
parents: 10229
diff changeset
577
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
578 g_object_set_data(G_OBJECT(dialog), "radio", radio);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
579
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
580 /* 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
581 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
582
10229
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
583 gtk_widget_show_all(dialog);
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
584
39ffee70c286 [gaim-migrate @ 11364]
Alceste Scalas <alceste.scalas@gmx.net>
parents: 10225
diff changeset
585 return data;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
586 }
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
587
6363
6e0fa4b64fe6 [gaim-migrate @ 6868]
Christian Hammond <chipx86@chipx86.com>
parents: 6338
diff changeset
588 static void *
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
589 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
590 const char *secondary, int default_action,
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30166
diff changeset
591 PurpleAccount *account, const char *who,
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
592 PurpleConversation *conv, gconstpointer icon_data,
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
593 gsize icon_size,
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
594 void *user_data, size_t action_count, va_list actions)
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
595 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
596 PidginRequestData *data;
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
597 GtkWidget *dialog;
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
598 GtkWidget *vbox;
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
599 GtkWidget *hbox;
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
600 GtkWidget *label;
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
601 GtkWidget *img = NULL;
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
602 void **buttons;
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
603 char *label_text;
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
604 char *primary_esc, *secondary_esc;
36256
a437550a9308 Remove -Wno-sign-compare and backport fixes from default.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 35986
diff changeset
605 gsize i;
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
606
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
607 data = g_new0(PidginRequestData, 1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
608 data->type = PURPLE_REQUEST_ACTION;
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
609 data->user_data = user_data;
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
610
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
611 data->cb_count = action_count;
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
612 data->cbs = g_new0(GCallback, action_count);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
613
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
614 /* Reverse the buttons */
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
615 buttons = g_new0(void *, action_count * 2);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
616
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
617 for (i = 0; i < action_count * 2; i += 2) {
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
618 buttons[(action_count * 2) - i - 2] = va_arg(actions, char *);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
619 buttons[(action_count * 2) - i - 1] = va_arg(actions, GCallback);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
620 }
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
621
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
622 /* Create the dialog. */
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
623 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
624
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
625 gtk_window_set_deletable(GTK_WINDOW(data->dialog), FALSE);
6371
e92b66ee5518 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents: 6363
diff changeset
626
6109
44e5eb92b617 [gaim-migrate @ 6571]
Mark Doliner <markdoliner@pidgin.im>
parents: 6035
diff changeset
627 if (title != NULL)
44e5eb92b617 [gaim-migrate @ 6571]
Mark Doliner <markdoliner@pidgin.im>
parents: 6035
diff changeset
628 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
629 #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
630 else
16686
1ebd9e4ae3f0 Prevent request dialog titles being "pidgin.exe".
Daniel Atallah <datallah@pidgin.im>
parents: 16490
diff changeset
631 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
632 #endif
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
633
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
634 for (i = 0; i < action_count; i++) {
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
635 gtk_dialog_add_button(GTK_DIALOG(dialog),
5794
ebdbb7dc6658 [gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents: 5510
diff changeset
636 text_to_stock(buttons[2 * i]), i);
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
637
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
638 data->cbs[i] = buttons[2 * i + 1];
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
639 }
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
640
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
641 g_free(buttons);
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 g_signal_connect(G_OBJECT(dialog), "response",
5794
ebdbb7dc6658 [gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents: 5510
diff changeset
644 G_CALLBACK(action_response_cb), data);
5496
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 /* Setup the dialog */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
647 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
648 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
649 gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
650 gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
651 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
652
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
653 /* Setup the main horizontal box */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
654 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
655 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
656
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
657 /* Dialog icon. */
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
658 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
659 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
660 if (pixbuf) {
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
661 /* 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
662 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
663 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
664 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
665 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
666 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
667 GdkPixbuf *scaled =
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
668 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
669 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
670
31889
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
671 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
672 "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
673 if (scaled) {
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
674 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
675 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
676 }
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
677 }
31889
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
678 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
679 g_object_unref(pixbuf);
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
680 } else {
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
681 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
682 }
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
683 }
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30166
diff changeset
684
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
685 if (!img) {
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
686 img = gtk_image_new_from_stock(PIDGIN_STOCK_DIALOG_QUESTION,
15497
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
687 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
688 }
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
689 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
690 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
691
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
692 /* Vertical box */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
693 vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER);
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
694 gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
695
28793
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
696 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
697
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
698 /* Descriptive label */
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
699 primary_esc = (primary != NULL) ? g_markup_escape_text(primary, -1) : NULL;
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
700 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
701 label_text = g_strdup_printf((primary ? "<span weight=\"bold\" size=\"larger\">"
d771eecc9717 [gaim-migrate @ 8497]
Nathan Fredrickson <nathan@silverorange.com>
parents: 7678
diff changeset
702 "%s</span>%s%s" : "%s%s%s"),
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
703 (primary ? primary_esc : ""),
7843
d771eecc9717 [gaim-migrate @ 8497]
Nathan Fredrickson <nathan@silverorange.com>
parents: 7678
diff changeset
704 ((primary && secondary) ? "\n\n" : ""),
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
705 (secondary ? secondary_esc : ""));
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
706 g_free(primary_esc);
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
707 g_free(secondary_esc);
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
708
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
709 label = gtk_label_new(NULL);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
710
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
711 gtk_label_set_markup(GTK_LABEL(label), label_text);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
712 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
713 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
15065
88e8707318de [gaim-migrate @ 17783]
Richard Laager <rlaager@pidgin.im>
parents: 15022
diff changeset
714 gtk_label_set_selectable(GTK_LABEL(label), TRUE);
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
715 gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
716
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
717 g_free(label_text);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
718
9948
2642975ffb85 [gaim-migrate @ 10844]
Dave West <kat@users.sourceforge.net>
parents: 9791
diff changeset
719
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
720 if (default_action == PURPLE_DEFAULT_ACTION_NONE) {
10418
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
721 GTK_WIDGET_SET_FLAGS(img, GTK_CAN_DEFAULT);
7b632343a29c [gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents: 10297
diff changeset
722 GTK_WIDGET_SET_FLAGS(img, GTK_CAN_FOCUS);
9948
2642975ffb85 [gaim-migrate @ 10844]
Dave West <kat@users.sourceforge.net>
parents: 9791
diff changeset
723 gtk_widget_grab_focus(img);
2642975ffb85 [gaim-migrate @ 10844]
Dave West <kat@users.sourceforge.net>
parents: 9791
diff changeset
724 gtk_widget_grab_default(img);
12286
08d994091c36 [gaim-migrate @ 14590]
Etan Reisner <deryni@pidgin.im>
parents: 12234
diff changeset
725 } else
22263
c9a202d78b6e * Clarify the documentation for purple_request_action's 'default_ation'
Mark Doliner <markdoliner@pidgin.im>
parents: 22214
diff changeset
726 /*
c9a202d78b6e * Clarify the documentation for purple_request_action's 'default_ation'
Mark Doliner <markdoliner@pidgin.im>
parents: 22214
diff changeset
727 * 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
728 * 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
729 */
c9a202d78b6e * Clarify the documentation for purple_request_action's 'default_ation'
Mark Doliner <markdoliner@pidgin.im>
parents: 22214
diff changeset
730 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
731
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
732 /* 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
733 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
734
5496
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
735 gtk_widget_show_all(dialog);
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
736
ed995be89052 [gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents: 5490
diff changeset
737 return data;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
738 }
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
739
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
740 static void *
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
741 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
742 const char *secondary, int default_action,
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
743 PurpleAccount *account, const char *who, PurpleConversation *conv,
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
744 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
745 {
30137
5ef8d377b643 gtkrequest: Fix pidgin_request_action
Paul Aurich <darkrain42@pidgin.im>
parents: 29775
diff changeset
746 return pidgin_request_action_with_icon(title, primary, secondary,
5ef8d377b643 gtkrequest: Fix pidgin_request_action
Paul Aurich <darkrain42@pidgin.im>
parents: 29775
diff changeset
747 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
748 actions);
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
749 }
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
750
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
751 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
752 req_entry_field_changed_cb(GtkWidget *entry, PurpleRequestField *field)
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
753 {
24984
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
754 PurpleRequestFieldGroup *group;
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
755 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
756
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
757 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
758 {
29225
f95f3c1be6dd Free allocated string from text-buffer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 29224
diff changeset
759 char *text;
29224
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
760 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
761
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
762 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
763 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
764
29224
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
765 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
766 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
767 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
768 }
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
769 else
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
770 {
29225
f95f3c1be6dd Free allocated string from text-buffer.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 29224
diff changeset
771 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
772 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
773 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
774 }
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
775
24984
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
776 group = purple_request_field_get_group(field);
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
777 req_data = (PidginRequestData *)group->fields_list->ui_data;
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
778
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
779 gtk_widget_set_sensitive(req_data->ok_button,
24984
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
780 purple_request_fields_all_required_filled(group->fields_list));
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
781 }
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
782
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
783 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
784 setup_entry_field(GtkWidget *entry, PurpleRequestField *field)
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
785 {
8294
cffb4d4660f0 [gaim-migrate @ 9018]
Christian Hammond <chipx86@chipx86.com>
parents: 8289
diff changeset
786 const char *type_hint;
cffb4d4660f0 [gaim-migrate @ 9018]
Christian Hammond <chipx86@chipx86.com>
parents: 8289
diff changeset
787
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
788 gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
789
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
790 if (purple_request_field_is_required(field))
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
791 {
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
792 g_signal_connect(G_OBJECT(entry), "changed",
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
793 G_CALLBACK(req_entry_field_changed_cb), field);
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
794 }
8294
cffb4d4660f0 [gaim-migrate @ 9018]
Christian Hammond <chipx86@chipx86.com>
parents: 8289
diff changeset
795
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
796 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
797 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
798 if (purple_str_has_prefix(type_hint, "screenname"))
8294
cffb4d4660f0 [gaim-migrate @ 9018]
Christian Hammond <chipx86@chipx86.com>
parents: 8289
diff changeset
799 {
13361
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
800 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
801 PurpleRequestFieldGroup *group = purple_request_field_get_group(field);
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
802 GList *fields = group->fields;
27660
f9d3ec6e177e Plug a leak of an account dropdown selection dialog or two.
Paul Aurich <darkrain42@pidgin.im>
parents: 25900
diff changeset
803
f9d3ec6e177e Plug a leak of an account dropdown selection dialog or two.
Paul Aurich <darkrain42@pidgin.im>
parents: 25900
diff changeset
804 /* 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
805 * been initialized already) for username auto-completion. */
13361
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
806 while (fields)
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
807 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
808 PurpleRequestField *fld = fields->data;
13361
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
809 fields = fields->next;
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
810
27660
f9d3ec6e177e Plug a leak of an account dropdown selection dialog or two.
Paul Aurich <darkrain42@pidgin.im>
parents: 25900
diff changeset
811 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
812 purple_request_field_is_visible(fld))
13361
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
813 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
814 const char *type_hint = purple_request_field_get_type_hint(fld);
38260
dcada91c0912 Remove redundant NULL checks
qarkai <qarkai@gmail.com>
parents: 38259
diff changeset
815 if (purple_strequal(type_hint, "account"))
13361
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
816 {
24984
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
817 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
818 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
819 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
820 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
821 }
13361
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
822 break;
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
823 }
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
824 }
bb2f64cf6721 [gaim-migrate @ 15733]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13356
diff changeset
825 }
38258
9a6551eba09c Replace !strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 36256
diff changeset
826 pidgin_setup_screenname_autocomplete_with_filter(entry, optmenu, pidgin_screenname_autocomplete_default_filter, GINT_TO_POINTER(purple_strequal(type_hint, "screenname-all")));
8294
cffb4d4660f0 [gaim-migrate @ 9018]
Christian Hammond <chipx86@chipx86.com>
parents: 8289
diff changeset
827 }
cffb4d4660f0 [gaim-migrate @ 9018]
Christian Hammond <chipx86@chipx86.com>
parents: 8289
diff changeset
828 }
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
829 }
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
830
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
831 static GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
832 create_string_field(PurpleRequestField *field)
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
833 {
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
834 const char *value;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
835 GtkWidget *widget;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
836
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
837 value = purple_request_field_string_get_default_value(field);
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
838
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
839 if (purple_request_field_string_is_multiline(field))
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
840 {
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
841 GtkWidget *textview;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
842
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
843 textview = gtk_text_view_new();
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
844 gtk_text_view_set_editable(GTK_TEXT_VIEW(textview),
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
845 TRUE);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
846 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(textview),
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
847 GTK_WRAP_WORD_CHAR);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
848
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15931
diff changeset
849 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
850 pidgin_setup_gtkspell(GTK_TEXT_VIEW(textview));
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
851
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
852 gtk_widget_show(textview);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
853
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
854 if (value != NULL)
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
855 {
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
856 GtkTextBuffer *buffer;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
857
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
858 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
859
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
860 gtk_text_buffer_set_text(buffer, value, -1);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
861 }
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
862
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
863 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
864 purple_request_field_string_is_editable(field));
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
865
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
866 g_signal_connect(G_OBJECT(textview), "focus-out-event",
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
867 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
868
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
869 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
870 {
9e9c1124b310 gtkrequest: Handle a multiline text field being set as required properly.
Paul Aurich <darkrain42@pidgin.im>
parents: 28793
diff changeset
871 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
872 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
873 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
874 }
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
875
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
876 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
877 }
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
878 else
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
879 {
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
880 widget = gtk_entry_new();
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
881
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
882 setup_entry_field(widget, field);
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
883
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
884 if (value != NULL)
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
885 gtk_entry_set_text(GTK_ENTRY(widget), value);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
886
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
887 if (purple_request_field_string_is_masked(field))
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11780
diff changeset
888 {
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11780
diff changeset
889 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
890 #if !GTK_CHECK_VERSION(2,16,0)
15390
d429e03fc755 [gaim-migrate @ 18119]
Mark Doliner <markdoliner@pidgin.im>
parents: 15383
diff changeset
891 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
892 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
893 #endif /* Less than GTK+ 2.16 */
11986
21d2ab6421a7 [gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents: 11780
diff changeset
894 }
7900
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_editable_set_editable(GTK_EDITABLE(widget),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
897 purple_request_field_string_is_editable(field));
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
898
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
899 g_signal_connect(G_OBJECT(widget), "focus-out-event",
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
900 G_CALLBACK(field_string_focus_out_cb), field);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
901 }
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
902
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
903 return widget;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
904 }
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 static GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
907 create_int_field(PurpleRequestField *field)
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
908 {
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
909 int value;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
910 GtkWidget *widget;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
911
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
912 widget = gtk_entry_new();
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
913
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
914 setup_entry_field(widget, field);
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
915
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
916 value = purple_request_field_int_get_default_value(field);
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 if (value != 0)
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 char buf[32];
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
921
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
922 g_snprintf(buf, sizeof(buf), "%d", value);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
923
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
924 gtk_entry_set_text(GTK_ENTRY(widget), buf);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
925 }
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
926
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
927 g_signal_connect(G_OBJECT(widget), "focus-out-event",
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
928 G_CALLBACK(field_int_focus_out_cb), field);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
929
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
930 return widget;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
931 }
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
932
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
933 static GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
934 create_bool_field(PurpleRequestField *field)
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
935 {
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
936 GtkWidget *widget;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
937
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
938 widget = gtk_check_button_new_with_label(
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
939 purple_request_field_get_label(field));
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
940
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
941 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
942 purple_request_field_bool_get_default_value(field));
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
943
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
944 g_signal_connect(G_OBJECT(widget), "toggled",
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
945 G_CALLBACK(field_bool_cb), field);
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_choice_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 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
954 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
955 int num_labels = g_list_length(labels);
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
956 GList *l;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
957
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
958 if (num_labels > 5)
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
959 {
29741
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
960 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
961
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
962 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
963 {
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
964 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
965 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
966 }
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
967
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
968 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
969 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
970
3fbd100877f9 Pull in GtkComboBox changes from GTK+3 branch.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29686
diff changeset
971 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
972 G_CALLBACK(field_choice_menu_cb), field);
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
973 }
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
974 else
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
975 {
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
976 GtkWidget *box;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
977 GtkWidget *first_radio = NULL;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
978 GtkWidget *radio;
10943
729674da8959 [gaim-migrate @ 12735]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10871
diff changeset
979 gint i;
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
980
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
981 if (num_labels == 2)
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
982 box = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
983 else
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
984 box = gtk_vbox_new(FALSE, 0);
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 = box;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
987
10943
729674da8959 [gaim-migrate @ 12735]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10871
diff changeset
988 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
989 {
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
990 const char *text = l->data;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
991
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
992 radio = gtk_radio_button_new_with_label_from_widget(
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
993 GTK_RADIO_BUTTON(first_radio), text);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
994
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
995 if (first_radio == NULL)
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
996 first_radio = radio;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
997
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
998 if (i == purple_request_field_choice_get_default_value(field))
10943
729674da8959 [gaim-migrate @ 12735]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10871
diff changeset
999 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio), TRUE);
729674da8959 [gaim-migrate @ 12735]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10871
diff changeset
1000
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1001 gtk_box_pack_start(GTK_BOX(box), radio, TRUE, TRUE, 0);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1002 gtk_widget_show(radio);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1003
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1004 g_signal_connect(G_OBJECT(radio), "toggled",
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1005 G_CALLBACK(field_choice_option_cb), field);
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1006 }
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1007 }
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1008
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1009 return widget;
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1010 }
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1011
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1012 static GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1013 create_image_field(PurpleRequestField *field)
11357
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1014 {
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1015 GtkWidget *widget;
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1016 GdkPixbuf *buf, *scale;
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1017
31889
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31322
diff changeset
1018 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
1019 (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
1020 purple_request_field_image_get_size(field));
11357
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1021
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1022 scale = gdk_pixbuf_scale_simple(buf,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1023 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
1024 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
1025 GDK_INTERP_BILINEAR);
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1026 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
1027 g_object_unref(G_OBJECT(buf));
11357
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1028 g_object_unref(G_OBJECT(scale));
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1029
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1030 return widget;
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1031 }
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1032
d96a9c46f200 [gaim-migrate @ 13579]
Bartosz Oler <bartosz@pidgin.im>
parents: 11243
diff changeset
1033 static GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1034 create_account_field(PurpleRequestField *field)
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1035 {
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1036 GtkWidget *widget;
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1037
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1038 widget = pidgin_account_option_menu_new(
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1039 purple_request_field_account_get_default_value(field),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1040 purple_request_field_account_get_show_all(field),
8289
234429bac6b5 [gaim-migrate @ 9013]
Christian Hammond <chipx86@chipx86.com>
parents: 8286
diff changeset
1041 G_CALLBACK(field_account_cb),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1042 purple_request_field_account_get_filter(field),
8289
234429bac6b5 [gaim-migrate @ 9013]
Christian Hammond <chipx86@chipx86.com>
parents: 8286
diff changeset
1043 field);
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1044
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1045 return widget;
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1046 }
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1047
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1048 static void
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1049 select_field_list_item(GtkTreeModel *model, GtkTreePath *path,
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1050 GtkTreeIter *iter, gpointer data)
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1051 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1052 PurpleRequestField *field = (PurpleRequestField *)data;
13356
7a73221c8b6f [gaim-migrate @ 15728]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13283
diff changeset
1053 char *text;
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1054
7909
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1055 gtk_tree_model_get(model, iter, 1, &text, -1);
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1056
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1057 purple_request_field_list_add_selected(field, text);
13356
7a73221c8b6f [gaim-migrate @ 15728]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13283
diff changeset
1058 g_free(text);
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1059 }
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1060
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1061 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1062 list_field_select_changed_cb(GtkTreeSelection *sel, PurpleRequestField *field)
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1063 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1064 purple_request_field_list_clear_selected(field);
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1065
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1066 gtk_tree_selection_selected_foreach(sel, select_field_list_item, field);
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1067 }
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1068
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1069 static GtkWidget *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1070 create_list_field(PurpleRequestField *field)
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1071 {
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1072 GtkWidget *treeview;
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1073 GtkListStore *store;
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1074 GtkCellRenderer *renderer;
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1075 GtkTreeSelection *sel;
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1076 GtkTreeViewColumn *column;
7909
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1077 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
1078 GList *l;
24892
2cbfa7f1b756 Revert the unnecessary addition of the pixbuf boolean to PurpleRequestField.list
Richard Laager <rlaager@pidgin.im>
parents: 24625
diff changeset
1079 GList *icons = NULL;
2cbfa7f1b756 Revert the unnecessary addition of the pixbuf boolean to PurpleRequestField.list
Richard Laager <rlaager@pidgin.im>
parents: 24625
diff changeset
1080
2cbfa7f1b756 Revert the unnecessary addition of the pixbuf boolean to PurpleRequestField.list
Richard Laager <rlaager@pidgin.im>
parents: 24625
diff changeset
1081 icons = purple_request_field_list_get_icons(field);
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1082
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1083
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1084 /* 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
1085 if (icons)
24625
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1086 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
1087 else
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1088 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
1089
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1090 /* Create the tree view */
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1091 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
1092 g_object_unref(G_OBJECT(store));
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1093 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE);
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1094
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1095 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1096
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1097 if (purple_request_field_list_get_multi_select(field))
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1098 gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE);
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1099
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1100 column = gtk_tree_view_column_new();
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1101 gtk_tree_view_insert_column(GTK_TREE_VIEW(treeview), column, -1);
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1102
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1103 renderer = gtk_cell_renderer_text_new();
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1104 gtk_tree_view_column_pack_start(column, renderer, TRUE);
7909
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1105 gtk_tree_view_column_add_attribute(column, renderer, "text", 1);
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1106
24892
2cbfa7f1b756 Revert the unnecessary addition of the pixbuf boolean to PurpleRequestField.list
Richard Laager <rlaager@pidgin.im>
parents: 24625
diff changeset
1107 if (icons)
24625
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1108 {
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1109 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
1110 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
1111 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
1112
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1113 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
1114 }
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1115
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1116 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
1117 {
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1118 const char *text = (const char *)l->data;
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1119
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1120 gtk_list_store_append(store, &iter);
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1121
24892
2cbfa7f1b756 Revert the unnecessary addition of the pixbuf boolean to PurpleRequestField.list
Richard Laager <rlaager@pidgin.im>
parents: 24625
diff changeset
1122 if (icons)
24625
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1123 {
24892
2cbfa7f1b756 Revert the unnecessary addition of the pixbuf boolean to PurpleRequestField.list
Richard Laager <rlaager@pidgin.im>
parents: 24625
diff changeset
1124 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
1125 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
1126
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
1127 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
1128 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
1129
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1130 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
1131 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
1132 1, text,
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1133 2, pixbuf,
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1134 -1);
24892
2cbfa7f1b756 Revert the unnecessary addition of the pixbuf boolean to PurpleRequestField.list
Richard Laager <rlaager@pidgin.im>
parents: 24625
diff changeset
1135 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
1136 }
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1137 else
4082cd694acb This patch comes from the combined work of contributors minstrel, NightFox,
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22962
diff changeset
1138 gtk_list_store_set(store, &iter,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1139 0, purple_request_field_list_get_data(field, text),
7909
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1140 1, text,
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1141 -1);
7964
10d58eb8a16a [gaim-migrate @ 8641]
Christian Hammond <chipx86@chipx86.com>
parents: 7951
diff changeset
1142
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1143 if (purple_request_field_list_is_selected(field, text))
7964
10d58eb8a16a [gaim-migrate @ 8641]
Christian Hammond <chipx86@chipx86.com>
parents: 7951
diff changeset
1144 gtk_tree_selection_select_iter(sel, &iter);
7909
f2b88b6b97a7 [gaim-migrate @ 8569]
Christian Hammond <chipx86@chipx86.com>
parents: 7905
diff changeset
1145 }
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1146
19052
5f49fa1c6f08 Fix a bug with multi-field selections in Pidgin's implementation of
Mark Doliner <markdoliner@pidgin.im>
parents: 18966
diff changeset
1147 /*
5f49fa1c6f08 Fix a bug with multi-field selections in Pidgin's implementation of
Mark Doliner <markdoliner@pidgin.im>
parents: 18966
diff changeset
1148 * 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
1149 * 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
1150 * 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
1151 * 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
1152 * 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
1153 * 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
1154 */
5f49fa1c6f08 Fix a bug with multi-field selections in Pidgin's implementation of
Mark Doliner <markdoliner@pidgin.im>
parents: 18966
diff changeset
1155 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
1156 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
1157
7903
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1158 gtk_widget_show(treeview);
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1159
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
1160 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
1161 }
03fc5f87c49c [gaim-migrate @ 8563]
Christian Hammond <chipx86@chipx86.com>
parents: 7900
diff changeset
1162
6363
6e0fa4b64fe6 [gaim-migrate @ 6868]
Christian Hammond <chipx86@chipx86.com>
parents: 6338
diff changeset
1163 static void *
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1164 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
1165 const char *secondary, PurpleRequestFields *fields,
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1166 const char *ok_text, GCallback ok_cb,
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1167 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
1168 PurpleAccount *account, const char *who, PurpleConversation *conv,
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
1169 void *user_data)
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1170 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1171 PidginRequestData *data;
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1172 GtkWidget *win;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1173 GtkWidget *vbox;
8524
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1174 GtkWidget *vbox2;
6326
62b5476c87f9 [gaim-migrate @ 6825]
Christian Hammond <chipx86@chipx86.com>
parents: 6325
diff changeset
1175 GtkWidget *hbox;
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1176 GtkWidget *frame;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1177 GtkWidget *label;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1178 GtkWidget *table;
5815
cdd5b8d9caca [gaim-migrate @ 6245]
Christian Hammond <chipx86@chipx86.com>
parents: 5813
diff changeset
1179 GtkWidget *button;
6326
62b5476c87f9 [gaim-migrate @ 6825]
Christian Hammond <chipx86@chipx86.com>
parents: 6325
diff changeset
1180 GtkWidget *img;
5813
ba2693e8db07 [gaim-migrate @ 6243]
Christian Hammond <chipx86@chipx86.com>
parents: 5811
diff changeset
1181 GtkSizeGroup *sg;
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1182 GList *gl, *fl;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1183 PurpleRequestFieldGroup *group;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1184 PurpleRequestField *field;
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1185 char *label_text;
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
1186 char *primary_esc, *secondary_esc;
8524
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1187 int total_fields = 0;
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1188
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1189 data = g_new0(PidginRequestData, 1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1190 data->type = PURPLE_REQUEST_FIELDS;
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1191 data->user_data = user_data;
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
1192 data->u.multifield.fields = fields;
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1193
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1194 fields->ui_data = data;
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1195
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1196 data->cb_count = 2;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1197 data->cbs = g_new0(GCallback, 2);
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1198
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1199 data->cbs[0] = ok_cb;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1200 data->cbs[1] = cancel_cb;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1201
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
1202
16686
1ebd9e4ae3f0 Prevent request dialog titles being "pidgin.exe".
Daniel Atallah <datallah@pidgin.im>
parents: 16490
diff changeset
1203 #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
1204 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
1205 #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
1206 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
1207 #endif /* _WIN32 */
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1208
8323
d962d280c523 [gaim-migrate @ 9047]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
1209 g_signal_connect(G_OBJECT(win), "delete_event",
d962d280c523 [gaim-migrate @ 9047]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
1210 G_CALLBACK(destroy_multifield_cb), data);
d962d280c523 [gaim-migrate @ 9047]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
1211
6326
62b5476c87f9 [gaim-migrate @ 6825]
Christian Hammond <chipx86@chipx86.com>
parents: 6325
diff changeset
1212 /* Setup the main horizontal box */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
1213 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
1214 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
1215 gtk_widget_show(hbox);
62b5476c87f9 [gaim-migrate @ 6825]
Christian Hammond <chipx86@chipx86.com>
parents: 6325
diff changeset
1216
62b5476c87f9 [gaim-migrate @ 6825]
Christian Hammond <chipx86@chipx86.com>
parents: 6325
diff changeset
1217 /* Dialog icon. */
15497
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1218 img = gtk_image_new_from_stock(PIDGIN_STOCK_DIALOG_QUESTION,
92f02f4bd5ee Dialog icon changes
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1219 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_HUGE));
6326
62b5476c87f9 [gaim-migrate @ 6825]
Christian Hammond <chipx86@chipx86.com>
parents: 6325
diff changeset
1220 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
62b5476c87f9 [gaim-migrate @ 6825]
Christian Hammond <chipx86@chipx86.com>
parents: 6325
diff changeset
1221 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
62b5476c87f9 [gaim-migrate @ 6825]
Christian Hammond <chipx86@chipx86.com>
parents: 6325
diff changeset
1222 gtk_widget_show(img);
62b5476c87f9 [gaim-migrate @ 6825]
Christian Hammond <chipx86@chipx86.com>
parents: 6325
diff changeset
1223
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
1224 /* 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
1225 button = pidgin_dialog_add_button(GTK_DIALOG(win), text_to_stock(cancel_text), G_CALLBACK(multifield_cancel_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
1226 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
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
1227
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
1228 /* 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
1229 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
1230 data->ok_button = 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
1231 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
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
1232 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
1233
28793
31a37be33d28 Show a little prpl icon in request dialogs, when possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 27660
diff changeset
1234 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
1235
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1236 /* Setup the vbox */
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
1237 vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER);
19369
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1238 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
1239 gtk_widget_show(vbox);
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1240
5813
ba2693e8db07 [gaim-migrate @ 6243]
Christian Hammond <chipx86@chipx86.com>
parents: 5811
diff changeset
1241 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
ba2693e8db07 [gaim-migrate @ 6243]
Christian Hammond <chipx86@chipx86.com>
parents: 5811
diff changeset
1242
8524
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1243 if(primary) {
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
1244 primary_esc = g_markup_escape_text(primary, -1);
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1245 label_text = g_strdup_printf(
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
1246 "<span weight=\"bold\" size=\"larger\">%s</span>", primary_esc);
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
1247 g_free(primary_esc);
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1248 label = gtk_label_new(NULL);
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1249
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1250 gtk_label_set_markup(GTK_LABEL(label), label_text);
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1251 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1252 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
15383
80d48e553879 [gaim-migrate @ 18112]
Nathan Walp <nwalp@pidgin.im>
parents: 15382
diff changeset
1253 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
1254 gtk_widget_show(label);
8524
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1255 g_free(label_text);
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1256 }
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1257
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1258 for (gl = purple_request_fields_get_groups(fields); gl != NULL;
8524
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1259 gl = gl->next)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1260 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
1261
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1262 if(total_fields > 9) {
19369
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1263 GtkWidget *hbox_for_spacing, *vbox_for_spacing;
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1264
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1265 hbox_for_spacing = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
38258
9a6551eba09c Replace !strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 36256
diff changeset
1266 gtk_box_pack_start(GTK_BOX(vbox),
9a6551eba09c Replace !strcmp() with purple_strequal()
qarkai <qarkai@gmail.com>
parents: 36256
diff changeset
1267 pidgin_make_scrollable(hbox_for_spacing, GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC, GTK_SHADOW_NONE, -1, 200),
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
1268 TRUE, TRUE, 0);
19369
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1269 gtk_widget_show(hbox_for_spacing);
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1270
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1271 vbox_for_spacing = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER);
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1272 gtk_box_pack_start(GTK_BOX(hbox_for_spacing),
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1273 vbox_for_spacing, TRUE, TRUE, PIDGIN_HIG_BOX_SPACE);
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1274 gtk_widget_show(vbox_for_spacing);
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1275
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
1276 vbox2 = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER);
19369
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1277 gtk_box_pack_start(GTK_BOX(vbox_for_spacing),
e2ad831e0f1a Two changes here
Mark Doliner <markdoliner@pidgin.im>
parents: 19052
diff changeset
1278 vbox2, TRUE, TRUE, PIDGIN_HIG_BOX_SPACE);
8524
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1279 gtk_widget_show(vbox2);
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1280 } else {
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1281 vbox2 = vbox;
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1282 }
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1283
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1284 if (secondary) {
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
1285 secondary_esc = g_markup_escape_text(secondary, -1);
8524
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1286 label = gtk_label_new(NULL);
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1287
10774
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
1288 gtk_label_set_markup(GTK_LABEL(label), secondary_esc);
f4238d6312ff [gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10673
diff changeset
1289 g_free(secondary_esc);
8524
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1290 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1291 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1292 gtk_box_pack_start(GTK_BOX(vbox2), label, TRUE, TRUE, 0);
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1293 gtk_widget_show(label);
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1294 }
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1295
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1296 for (gl = purple_request_fields_get_groups(fields);
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1297 gl != NULL;
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1298 gl = gl->next)
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1299 {
5816
44bbfb7f8904 [gaim-migrate @ 6246]
Christian Hammond <chipx86@chipx86.com>
parents: 5815
diff changeset
1300 GList *field_list;
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1301 size_t field_count = 0;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1302 size_t cols = 1;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1303 size_t rows;
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1304 #if 0
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1305 size_t col_num;
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1306 #endif
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1307 size_t row_num = 0;
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1308
5816
44bbfb7f8904 [gaim-migrate @ 6246]
Christian Hammond <chipx86@chipx86.com>
parents: 5815
diff changeset
1309 group = gl->data;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1310 field_list = purple_request_field_group_get_fields(group);
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1311
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1312 if (purple_request_field_group_get_title(group) != NULL)
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1313 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1314 frame = pidgin_make_frame(vbox2,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1315 purple_request_field_group_get_title(group));
6324
dddc1f8fe8e0 [gaim-migrate @ 6823]
Christian Hammond <chipx86@chipx86.com>
parents: 6110
diff changeset
1316 }
6325
35357b64dbb2 [gaim-migrate @ 6824]
Christian Hammond <chipx86@chipx86.com>
parents: 6324
diff changeset
1317 else
8524
4ae9175a3999 [gaim-migrate @ 9263]
Nathan Walp <nwalp@pidgin.im>
parents: 8521
diff changeset
1318 frame = vbox2;
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1319
5816
44bbfb7f8904 [gaim-migrate @ 6246]
Christian Hammond <chipx86@chipx86.com>
parents: 5815
diff changeset
1320 field_count = g_list_length(field_list);
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1321 #if 0
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1322 if (field_count > 9)
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1323 {
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1324 rows = field_count / 2;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1325 cols++;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1326 }
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1327 else
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1328 #endif
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1329 rows = field_count;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1330
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1331 #if 0
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1332 col_num = 0;
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1333 #endif
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1334
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1335 for (fl = field_list; fl != NULL; fl = fl->next)
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1336 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1337 PurpleRequestFieldType type;
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1338
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1339 field = (PurpleRequestField *)fl->data;
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1340
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1341 type = purple_request_field_get_type(field);
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1342
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1343 if (type == PURPLE_REQUEST_FIELD_LABEL)
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1344 {
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1345 #if 0
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1346 if (col_num > 0)
7921
cd7f211c784c [gaim-migrate @ 8589]
Nathan Walp <nwalp@pidgin.im>
parents: 7909
diff changeset
1347 rows++;
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1348 #endif
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1349
7921
cd7f211c784c [gaim-migrate @ 8589]
Nathan Walp <nwalp@pidgin.im>
parents: 7909
diff changeset
1350 rows++;
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1351 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1352 else if ((type == PURPLE_REQUEST_FIELD_LIST) ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1353 (type == PURPLE_REQUEST_FIELD_STRING &&
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1354 purple_request_field_string_is_multiline(field)))
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1355 {
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1356 #if 0
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1357 if (col_num > 0)
7921
cd7f211c784c [gaim-migrate @ 8589]
Nathan Walp <nwalp@pidgin.im>
parents: 7909
diff changeset
1358 rows++;
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1359 #endif
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1360
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1361 rows += 2;
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1362 }
7921
cd7f211c784c [gaim-migrate @ 8589]
Nathan Walp <nwalp@pidgin.im>
parents: 7909
diff changeset
1363
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1364 #if 0
7921
cd7f211c784c [gaim-migrate @ 8589]
Nathan Walp <nwalp@pidgin.im>
parents: 7909
diff changeset
1365 col_num++;
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1366
8323
d962d280c523 [gaim-migrate @ 9047]
Christian Hammond <chipx86@chipx86.com>
parents: 8302
diff changeset
1367 if (col_num >= cols)
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1368 col_num = 0;
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1369 #endif
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1370 }
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1371
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1372 table = gtk_table_new(rows, 2 * cols, FALSE);
15882
1dbd5756b7bf More Gaim to Pidgin stuff
Sean Egan <seanegan@pidgin.im>
parents: 15577
diff changeset
1373 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
1374 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
1375
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1376 gtk_container_add(GTK_CONTAINER(frame), table);
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1377 gtk_widget_show(table);
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1378
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1379 for (row_num = 0, fl = field_list;
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1380 row_num < rows && fl != NULL;
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1381 row_num++)
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1382 {
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1383 #if 0
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1384 for (col_num = 0;
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1385 col_num < cols && fl != NULL;
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1386 col_num++, fl = fl->next)
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1387 #else
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1388 gboolean dummy_counter = TRUE;
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1389 /* it's the same as loop above */
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1390 for (; dummy_counter && fl != NULL; dummy_counter = FALSE, fl = fl->next)
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1391 #endif
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1392 {
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1393 #if 0
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1394 size_t col_offset = col_num * 2;
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1395 #else
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1396 size_t col_offset = 0;
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1397 #endif
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1398 PurpleRequestFieldType type;
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1399 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
1400 const char *field_label;
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1401
12666
a02b23981ccb [gaim-migrate @ 15009]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12600
diff changeset
1402 label = NULL;
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1403 field = fl->data;
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1404
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1405 if (!purple_request_field_is_visible(field)) {
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1406 #if 0
7922
160207a9feee [gaim-migrate @ 8591]
Nathan Walp <nwalp@pidgin.im>
parents: 7921
diff changeset
1407 col_num--;
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1408 #endif
7904
266d6d5c68ac [gaim-migrate @ 8564]
Christian Hammond <chipx86@chipx86.com>
parents: 7903
diff changeset
1409 continue;
7922
160207a9feee [gaim-migrate @ 8591]
Nathan Walp <nwalp@pidgin.im>
parents: 7921
diff changeset
1410 }
7904
266d6d5c68ac [gaim-migrate @ 8564]
Christian Hammond <chipx86@chipx86.com>
parents: 7903
diff changeset
1411
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1412 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
1413 field_label = purple_request_field_get_label(field);
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1414
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
1415 if (type != PURPLE_REQUEST_FIELD_BOOLEAN && field_label)
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1416 {
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
1417 char *text = NULL;
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1418
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
1419 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
1420 text = g_strdup_printf("%s:", field_label);
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1421
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1422 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
1423 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
1424 g_free(text);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1425
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1426 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1427
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1428 gtk_size_group_add_widget(sg, label);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1429
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1430 if (type == PURPLE_REQUEST_FIELD_LABEL ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1431 type == PURPLE_REQUEST_FIELD_LIST ||
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1432 (type == PURPLE_REQUEST_FIELD_STRING &&
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1433 purple_request_field_string_is_multiline(field)))
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1434 {
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1435 #if 0
7921
cd7f211c784c [gaim-migrate @ 8589]
Nathan Walp <nwalp@pidgin.im>
parents: 7909
diff changeset
1436 if(col_num > 0)
cd7f211c784c [gaim-migrate @ 8589]
Nathan Walp <nwalp@pidgin.im>
parents: 7909
diff changeset
1437 row_num++;
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1438 #endif
7921
cd7f211c784c [gaim-migrate @ 8589]
Nathan Walp <nwalp@pidgin.im>
parents: 7909
diff changeset
1439
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1440 gtk_table_attach_defaults(GTK_TABLE(table), label,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1441 0, 2 * cols,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1442 row_num, row_num + 1);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1443
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1444 row_num++;
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1445 #if 0
7921
cd7f211c784c [gaim-migrate @ 8589]
Nathan Walp <nwalp@pidgin.im>
parents: 7909
diff changeset
1446 col_num=cols;
35967
cde50837937d Ifdef some dead code, fixing coverity bugs
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31889
diff changeset
1447 #endif
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1448 }
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1449 else
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1450 {
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1451 gtk_table_attach_defaults(GTK_TABLE(table), label,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1452 col_offset, col_offset + 1,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1453 row_num, row_num + 1);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1454 }
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1455
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1456 gtk_widget_show(label);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1457 }
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1458
24984
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1459 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
1460 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
1461 {
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1462 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
1463 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
1464 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
1465 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
1466 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
1467 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
1468 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
1469 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
1470 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
1471 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
1472 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
1473 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
1474 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
1475 widget = create_account_field(field);
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1476 else
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1477 continue;
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1478 }
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1479
12666
a02b23981ccb [gaim-migrate @ 15009]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12600
diff changeset
1480 if (label)
a02b23981ccb [gaim-migrate @ 15009]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12600
diff changeset
1481 gtk_label_set_mnemonic_widget(GTK_LABEL(label), widget);
a02b23981ccb [gaim-migrate @ 15009]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 12600
diff changeset
1482
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1483 if (type == PURPLE_REQUEST_FIELD_STRING &&
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1484 purple_request_field_string_is_multiline(field))
7900
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 gtk_table_attach(GTK_TABLE(table), widget,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1487 0, 2 * cols,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1488 row_num, row_num + 1,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1489 GTK_FILL | GTK_EXPAND,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1490 GTK_FILL | GTK_EXPAND,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1491 5, 0);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1492 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1493 else if (type == PURPLE_REQUEST_FIELD_LIST)
10627
ebbfa9f428e6 [gaim-migrate @ 12102]
Christopher O'Brien <siege@pidgin.im>
parents: 10605
diff changeset
1494 {
ebbfa9f428e6 [gaim-migrate @ 12102]
Christopher O'Brien <siege@pidgin.im>
parents: 10605
diff changeset
1495 gtk_table_attach(GTK_TABLE(table), widget,
ebbfa9f428e6 [gaim-migrate @ 12102]
Christopher O'Brien <siege@pidgin.im>
parents: 10605
diff changeset
1496 0, 2 * cols,
ebbfa9f428e6 [gaim-migrate @ 12102]
Christopher O'Brien <siege@pidgin.im>
parents: 10605
diff changeset
1497 row_num, row_num + 1,
ebbfa9f428e6 [gaim-migrate @ 12102]
Christopher O'Brien <siege@pidgin.im>
parents: 10605
diff changeset
1498 GTK_FILL | GTK_EXPAND,
ebbfa9f428e6 [gaim-migrate @ 12102]
Christopher O'Brien <siege@pidgin.im>
parents: 10605
diff changeset
1499 GTK_FILL | GTK_EXPAND,
ebbfa9f428e6 [gaim-migrate @ 12102]
Christopher O'Brien <siege@pidgin.im>
parents: 10605
diff changeset
1500 5, 0);
ebbfa9f428e6 [gaim-migrate @ 12102]
Christopher O'Brien <siege@pidgin.im>
parents: 10605
diff changeset
1501 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1502 else if (type == PURPLE_REQUEST_FIELD_BOOLEAN)
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1503 {
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1504 gtk_table_attach(GTK_TABLE(table), widget,
10627
ebbfa9f428e6 [gaim-migrate @ 12102]
Christopher O'Brien <siege@pidgin.im>
parents: 10605
diff changeset
1505 col_offset, col_offset + 1,
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1506 row_num, row_num + 1,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1507 GTK_FILL | GTK_EXPAND,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1508 GTK_FILL | GTK_EXPAND,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1509 5, 0);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1510 }
7900
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1511 else
468bd591cabe [gaim-migrate @ 8560]
Christian Hammond <chipx86@chipx86.com>
parents: 7844
diff changeset
1512 {
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1513 gtk_table_attach(GTK_TABLE(table), widget,
10627
ebbfa9f428e6 [gaim-migrate @ 12102]
Christopher O'Brien <siege@pidgin.im>
parents: 10605
diff changeset
1514 1, 2 * cols,
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1515 row_num, row_num + 1,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1516 GTK_FILL | GTK_EXPAND,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1517 GTK_FILL | GTK_EXPAND,
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1518 5, 0);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1519 }
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1520
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1521 gtk_widget_show(widget);
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1522
24984
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 22962
diff changeset
1523 purple_request_field_set_ui_data(field, widget);
6337
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1524 }
3399ae066dc1 [gaim-migrate @ 6836]
Christian Hammond <chipx86@chipx86.com>
parents: 6335
diff changeset
1525 }
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1526 }
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1527
5813
ba2693e8db07 [gaim-migrate @ 6243]
Christian Hammond <chipx86@chipx86.com>
parents: 5811
diff changeset
1528 g_object_unref(sg);
ba2693e8db07 [gaim-migrate @ 6243]
Christian Hammond <chipx86@chipx86.com>
parents: 5811
diff changeset
1529
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1530 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
1531 gtk_widget_set_sensitive(data->ok_button, FALSE);
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
1532
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
1533 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
1534
5811
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1535 gtk_widget_show(win);
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1536
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1537 return data;
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1538 }
f9b61b4eda57 [gaim-migrate @ 6241]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
1539
6363
6e0fa4b64fe6 [gaim-migrate @ 6868]
Christian Hammond <chipx86@chipx86.com>
parents: 6338
diff changeset
1540 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1541 file_yes_no_cb(PidginRequestData *data, gint id)
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1542 {
10605
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1543 /* Only call the callback if yes was selected, otherwise the request
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1544 * (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
1545 * things go BOOM */
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1546 if (id == 1) {
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1547 if (data->cbs[1] != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1548 ((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
1549 purple_request_close(data->type, data);
13373
c92b0e801f01 [gaim-migrate @ 15745]
Richard Laager <rlaager@pidgin.im>
parents: 13362
diff changeset
1550 } else {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1551 pidgin_clear_cursor(GTK_WIDGET(data->dialog));
10605
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1552 }
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1553 }
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1554
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1555 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1556 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
1557 {
10536
c2e0b596b4ad [gaim-migrate @ 11888]
Lee Roach <phroggster@gmail.com>
parents: 10418
diff changeset
1558 gchar *current_folder;
c2e0b596b4ad [gaim-migrate @ 11888]
Lee Roach <phroggster@gmail.com>
parents: 10418
diff changeset
1559
12234
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
1560 generic_response_start(data);
50156a40fc85 [gaim-migrate @ 14536]
Richard Laager <rlaager@pidgin.im>
parents: 12067
diff changeset
1561
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1562 if (response != GTK_RESPONSE_ACCEPT) {
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1563 if (data->cbs[0] != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1564 ((PurpleRequestFileCb)data->cbs[0])(data->user_data, NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1565 purple_request_close(data->type, data);
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1566 return;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1567 }
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1568
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1569 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
1570 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
1571 if (current_folder != NULL) {
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1572 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
1573 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
1574 } 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
1575 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
1576 }
10605
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1577 g_free(current_folder);
10536
c2e0b596b4ad [gaim-migrate @ 11888]
Lee Roach <phroggster@gmail.com>
parents: 10418
diff changeset
1578 }
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1579 if ((data->u.file.savedialog == TRUE) &&
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1580 (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
1581 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
1582 _("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
1583 NULL, NULL, NULL,
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
1584 data, 2,
13535
aa70e0ac6469 [gaim-migrate @ 15911]
Richard Laager <rlaager@pidgin.im>
parents: 13475
diff changeset
1585 _("Overwrite"), G_CALLBACK(file_yes_no_cb),
aa70e0ac6469 [gaim-migrate @ 15911]
Richard Laager <rlaager@pidgin.im>
parents: 13475
diff changeset
1586 _("Choose New Name"), G_CALLBACK(file_yes_no_cb));
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1587 } else
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1588 file_yes_no_cb(data, 1);
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1589 }
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1590
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1591 static void *
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1592 pidgin_request_file(const char *title, const char *filename,
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1593 gboolean savedialog,
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1594 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
1595 PurpleAccount *account, const char *who, PurpleConversation *conv,
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
1596 void *user_data)
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1597 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1598 PidginRequestData *data;
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1599 GtkWidget *filesel;
10605
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1600 const gchar *current_folder;
10673
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1601 gboolean folder_set = FALSE;
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1602
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1603 data = g_new0(PidginRequestData, 1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1604 data->type = PURPLE_REQUEST_FILE;
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1605 data->user_data = user_data;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1606 data->cb_count = 2;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1607 data->cbs = g_new0(GCallback, 2);
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1608 data->cbs[0] = cancel_cb;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1609 data->cbs[1] = ok_cb;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1610 data->u.file.savedialog = savedialog;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1611
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1612 filesel = gtk_file_chooser_dialog_new(
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1613 title ? title : (savedialog ? _("Save File...")
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1614 : _("Open File...")),
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1615 NULL,
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1616 savedialog ? GTK_FILE_CHOOSER_ACTION_SAVE
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1617 : GTK_FILE_CHOOSER_ACTION_OPEN,
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1618 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1619 savedialog ? GTK_STOCK_SAVE
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1620 : GTK_STOCK_OPEN,
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1621 GTK_RESPONSE_ACCEPT,
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1622 NULL);
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1623 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
1624
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1625 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
1626 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
1627 } 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
1628 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
1629 }
10673
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1630
15297
eb8632ad88d0 [gaim-migrate @ 18025]
Mark Doliner <markdoliner@pidgin.im>
parents: 15065
diff changeset
1631 if ((filename != NULL) && (*filename != '\0')) {
15022
4489e51a8d8b [gaim-migrate @ 17739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14922
diff changeset
1632 if (savedialog)
4489e51a8d8b [gaim-migrate @ 17739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14922
diff changeset
1633 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
1634 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
1635 gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(filesel), filename);
4489e51a8d8b [gaim-migrate @ 17739]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14922
diff changeset
1636 }
16716
48db3a3d7044 disapproval of revision '8939617e03f8745cbe2ed5a7d82d97f2d4801c30'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16715
diff changeset
1637 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
1638 (current_folder != NULL) && (*current_folder != '\0')) {
10673
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1639 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
1640 }
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1641
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1642 #ifdef _WIN32
16873
f36f8e4a9cb4 Additional fix for another crash similar to #412.
Daniel Atallah <datallah@pidgin.im>
parents: 16849
diff changeset
1643 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
1644 char *my_documents = wpurple_get_special_folder(CSIDL_PERSONAL);
10605
ad11c1f21415 [gaim-migrate @ 12037]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10536
diff changeset
1645
10673
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1646 if (my_documents != NULL) {
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1647 gtk_file_chooser_set_current_folder(
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1648 GTK_FILE_CHOOSER(filesel), my_documents);
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1649
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1650 g_free(my_documents);
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1651 }
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1652 }
35986
5dc98ddc6a9a Backport more warning fixes for Pidgin and Finch from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35967
diff changeset
1653 #else
5dc98ddc6a9a Backport more warning fixes for Pidgin and Finch from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35967
diff changeset
1654 (void)folder_set;
5dc98ddc6a9a Backport more warning fixes for Pidgin and Finch from default
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35967
diff changeset
1655 #endif
10673
3177232170c7 [gaim-migrate @ 12213]
Richard Laager <rlaager@pidgin.im>
parents: 10668
diff changeset
1656
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1657 g_signal_connect(G_OBJECT(GTK_FILE_CHOOSER(filesel)), "response",
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1658 G_CALLBACK(file_ok_check_if_exists_cb), data);
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1659
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
1660 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
1661
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1662 data->dialog = filesel;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1663 gtk_widget_show(filesel);
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1664
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1665 return (void *)data;
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1666 }
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
1667
13283
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1668 static void *
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1669 pidgin_request_folder(const char *title, const char *dirname,
13283
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1670 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
1671 PurpleAccount *account, const char *who, PurpleConversation *conv,
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
1672 void *user_data)
13283
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1673 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1674 PidginRequestData *data;
13283
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1675 GtkWidget *dirsel;
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 13536
diff changeset
1676
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
1677 data = g_new0(PidginRequestData, 1);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
1678 data->type = PURPLE_REQUEST_FOLDER;
13283
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1679 data->user_data = user_data;
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1680 data->cb_count = 2;
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1681 data->cbs = g_new0(GCallback, 2);
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1682 data->cbs[0] = cancel_cb;
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1683 data->cbs[1] = ok_cb;
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1684 data->u.file.savedialog = FALSE;
16686
1ebd9e4ae3f0 Prevent request dialog titles being "pidgin.exe".
Daniel Atallah <datallah@pidgin.im>
parents: 16490
diff changeset
1685
13283
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1686 dirsel = gtk_file_chooser_dialog_new(
13536
345d4ac042f7 [gaim-migrate @ 15912]
Richard Laager <rlaager@pidgin.im>
parents: 13535
diff changeset
1687 title ? title : _("Select Folder..."),
13283
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1688 NULL,
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1689 GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1690 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1691 GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1692 NULL);
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1693 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
1694
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1695 if ((dirname != NULL) && (*dirname != '\0'))
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1696 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
1697
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1698 g_signal_connect(G_OBJECT(GTK_FILE_CHOOSER(dirsel)), "response",
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1699 G_CALLBACK(file_ok_check_if_exists_cb), data);
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1700
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1701 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
1702 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
1703
13283
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1704 gtk_widget_show(dirsel);
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1705
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1706 return (void *)data;
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1707 }
89a0621d5d6a [gaim-migrate @ 15648]
Dennis Nezic <dennisn@dennisn.dyndns.org>
parents: 13281
diff changeset
1708
39010
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1709 #ifdef USE_VV
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1710 static GstElement *create_screensrc_cb(PurpleMedia *media, const gchar *session_id,
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1711 const gchar *participant);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1712
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1713 #ifdef HAVE_X11
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1714 static gboolean
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1715 grab_event (GtkWidget *child, GdkEvent *event, PidginRequestData *data)
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1716 {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1717 GdkScreen *screen = gdk_screen_get_default();
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1718 GObject *info;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1719 GdkWindow *gdkroot = gdk_get_default_root_window();
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1720 Window xroot = GDK_WINDOW_XID(gdkroot), xwindow, parent, *children;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1721 unsigned int nchildren, xmask;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1722 Display *xdisplay = GDK_SCREEN_XDISPLAY(screen);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1723 int rootx, rooty, winx, winy;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1724
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1725 if (event->type != GDK_BUTTON_PRESS)
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1726 return FALSE;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1727
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1728 XQueryPointer(xdisplay, xroot, &xroot, &xwindow, &rootx, &rooty, &winx, &winy, &xmask);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1729
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1730 gdk_pointer_ungrab(GDK_CURRENT_TIME);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1731
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1732 /* Find WM window (direct child of root) */
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1733 while (1) {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1734 if (!XQueryTree(xdisplay, xwindow, &xroot, &parent, &children, &nchildren))
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1735 break;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1736
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1737 if (nchildren)
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1738 XFree(children);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1739
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1740 if (xroot == parent)
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1741 break;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1742
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1743 xwindow = parent;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1744 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1745
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1746 generic_response_start(data);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1747
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1748 if (data->cbs[0] != NULL) {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1749 info = g_object_new(PURPLE_TYPE_MEDIA_ELEMENT_INFO,
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1750 "id", "screenshare-window",
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1751 "name", "Screen share single window",
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1752 "type", PURPLE_MEDIA_ELEMENT_VIDEO | PURPLE_MEDIA_ELEMENT_SRC |
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1753 PURPLE_MEDIA_ELEMENT_ONE_SRC,
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1754 "create-cb", create_screensrc_cb, NULL);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1755 g_object_set_data(info, "window-id", GUINT_TO_POINTER(xwindow));
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1756 ((PurpleRequestScreenshareCb)data->cbs[0])(data->user_data, info);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1757 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1758
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1759 purple_request_close(PURPLE_REQUEST_SCREENSHARE, data);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1760
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1761 return FALSE;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1762 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1763
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1764 static void
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1765 screenshare_window_cb(GtkWidget *button, PidginRequestData *data)
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1766 {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1767 GdkCursor *cursor;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1768 GdkWindow *gdkwin = gtk_widget_get_window(GTK_WIDGET(data->dialog));
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1769
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1770 if (!GTK_WIDGET_HAS_FOCUS(button))
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1771 gtk_widget_grab_focus(button);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1772
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1773 gtk_widget_add_events(GTK_WIDGET(data->dialog),
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1774 GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1775 g_signal_connect(data->dialog, "event", G_CALLBACK(grab_event), data);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1776
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1777 cursor = gdk_cursor_new(GDK_CROSSHAIR);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1778 gdk_pointer_grab(gdkwin, FALSE,
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1779 GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK,
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1780 NULL, cursor, GDK_CURRENT_TIME);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1781 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1782
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1783 static GstElement *create_screensrc_cb(PurpleMedia *media, const gchar *session_id,
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1784 const gchar *participant)
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1785 {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1786 GObject *info;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1787 GstElement *ret;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1788
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1789 ret = gst_element_factory_make("ximagesrc", NULL);
39011
a2b3cc337c5e screenshare: check for failure to create src elements
David Woodhouse <dwmw2@infradead.org>
parents: 39010
diff changeset
1790 if (ret == NULL)
a2b3cc337c5e screenshare: check for failure to create src elements
David Woodhouse <dwmw2@infradead.org>
parents: 39010
diff changeset
1791 return NULL;
a2b3cc337c5e screenshare: check for failure to create src elements
David Woodhouse <dwmw2@infradead.org>
parents: 39010
diff changeset
1792
39010
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1793 g_object_set(ret, "use-damage", 0, NULL);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1794
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1795 info = g_object_get_data(G_OBJECT(media), "src-element");
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1796 if (info) {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1797 Window xid = GPOINTER_TO_UINT(g_object_get_data(info, "window-id"));
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1798 int monitor_no = GPOINTER_TO_INT(g_object_get_data(info, "monitor-no"));
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1799 if (xid) {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1800 g_object_set(ret, "xid", xid, NULL);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1801 } else if (monitor_no >= 0) {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1802 GdkScreen *screen = gdk_screen_get_default();
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1803 GdkRectangle geom;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1804
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1805 gdk_screen_get_monitor_geometry(screen, monitor_no, &geom);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1806 g_object_set(ret, "startx", geom.x, "starty", geom.y,
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1807 "endx", geom.x + geom.width - 1,
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1808 "endy", geom.y + geom.height - 1, NULL);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1809 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1810 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1811
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1812 return ret;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1813 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1814 #elif defined (_WIN32)
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1815 static GstElement *create_screensrc_cb(PPurpleMedia *media, const gchar *session_id,
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1816 const gchar *participant)
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1817 {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1818 GObject *info;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1819 GstElement *ret;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1820
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1821 ret = gst_element_factory_make("gdiscreencapsrc", NULL);
39011
a2b3cc337c5e screenshare: check for failure to create src elements
David Woodhouse <dwmw2@infradead.org>
parents: 39010
diff changeset
1822 if (ret == NULL)
a2b3cc337c5e screenshare: check for failure to create src elements
David Woodhouse <dwmw2@infradead.org>
parents: 39010
diff changeset
1823 return NULL;
a2b3cc337c5e screenshare: check for failure to create src elements
David Woodhouse <dwmw2@infradead.org>
parents: 39010
diff changeset
1824
39010
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1825 g_object_set(ret, "cursor", TRUE);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1826
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1827 info = g_object_get_data(G_OBJECT(media), "src-element");
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1828 if (info) {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1829 int monitor_no = GPOINTER_TO_INT(g_object_get_data(info, "monitor-no"));
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1830 if (monitor_no >= 0)
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1831 g_object_set(ret, "monitor", monitor_no);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1832 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1833
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1834 return ret;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1835 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1836 #else
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1837 /* We don't actually need to break the build just because we can't do
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1838 * screencap, but gtkmedia.c is going to break the USE_VV build if it
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1839 * isn't WIN32 or X11 anyway, so we might as well. */
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1840 #error "Unsupported windowing system"
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1841 #endif
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1842
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1843 static void
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1844 screenshare_monitor_cb(GtkWidget *button, PidginRequestData *data)
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1845 {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1846 GtkWidget *radio;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1847 GObject *info;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1848 int monitor_no = -1;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1849
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1850 generic_response_start(data);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1851
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1852 if (!GTK_WIDGET_HAS_FOCUS(button))
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1853 gtk_widget_grab_focus(button);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1854
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1855 radio = g_object_get_data(G_OBJECT(data->dialog), "radio");
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1856 if (radio) {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1857 GSList *group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio));
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1858
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1859 while (group) {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1860 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(group->data))) {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1861 monitor_no = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(group->data),
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1862 "monitor-no"));
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1863 break;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1864 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1865 group = group->next;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1866 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1867 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1868 if (data->cbs[0] != NULL) {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1869 info = g_object_new(PURPLE_TYPE_MEDIA_ELEMENT_INFO,
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1870 "id", "screenshare-monitor",
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1871 "name", "Screen share monitor",
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1872 "type", PURPLE_MEDIA_ELEMENT_VIDEO | PURPLE_MEDIA_ELEMENT_SRC |
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1873 PURPLE_MEDIA_ELEMENT_ONE_SRC,
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1874 "create-cb", create_screensrc_cb, NULL);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1875 g_object_set_data(info, "monitor-no", GINT_TO_POINTER(monitor_no));
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1876 ((PurpleRequestScreenshareCb)data->cbs[0])(data->user_data, info);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1877 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1878
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1879 purple_request_close(PURPLE_REQUEST_SCREENSHARE, data);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1880 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1881
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1882 static GstElement *create_videotest_cb(PurpleMedia *media, const gchar *session_id,
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1883 const gchar *participant)
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1884 {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1885 return gst_element_factory_make("videotestsrc", NULL);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1886 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1887
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1888 static void
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1889 screenshare_videotest_cb(GtkWidget *button, PidginRequestData *data)
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1890 {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1891 GObject *info;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1892
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1893 generic_response_start(data);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1894
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1895 if (!GTK_WIDGET_HAS_FOCUS(button))
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1896 gtk_widget_grab_focus(button);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1897
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1898 if (data->cbs[0] != NULL) {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1899 info = g_object_new(PURPLE_TYPE_MEDIA_ELEMENT_INFO,
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1900 "id", "screenshare-videotestsrc",
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1901 "name", "Screen share test source",
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1902 "type", PURPLE_MEDIA_ELEMENT_VIDEO | PURPLE_MEDIA_ELEMENT_SRC |
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1903 PURPLE_MEDIA_ELEMENT_ONE_SRC,
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1904 "create-cb", create_videotest_cb, NULL);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1905 ((PurpleRequestScreenshareCb)data->cbs[0])(data->user_data, info);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1906 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1907
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1908 purple_request_close(PURPLE_REQUEST_SCREENSHARE, data);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1909 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1910
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1911 static void
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1912 screenshare_cancel_cb(GtkWidget *button, PidginRequestData *data)
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1913 {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1914 generic_response_start(data);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1915
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1916 if (data->cbs[0] != NULL)
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1917 ((PurpleRequestScreenshareCb)data->cbs[0])(data->user_data, NULL);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1918
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1919 purple_request_close(PURPLE_REQUEST_SCREENSHARE, data);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1920 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1921
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1922 static gboolean
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1923 destroy_screenshare_cb(GtkWidget *dialog, GdkEvent *event,
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1924 PidginRequestData *data)
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1925 {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1926 screenshare_cancel_cb(NULL, data);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1927 return FALSE;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1928 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1929
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1930 static void *pidgin_request_screenshare_media(const char *title, const char *primary,
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1931 const char *secondary, PurpleAccount *account,
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1932 GCallback cb, void *user_data)
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1933 {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1934 PidginRequestData *data;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1935 GtkWidget *dialog;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1936 GtkWidget *vbox;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1937 GtkWidget *hbox;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1938 GtkWidget *label;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1939 GtkWidget *button;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1940 GtkWidget *radio = NULL;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1941 GdkScreen *screen;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1942 char *label_text;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1943 char *primary_esc, *secondary_esc;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1944
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1945 data = g_new0(PidginRequestData, 1);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1946 data->type = PURPLE_REQUEST_SCREENSHARE;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1947 data->user_data = user_data;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1948
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1949 data->cb_count = 1;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1950 data->cbs = g_new0(GCallback, 1);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1951 data->cbs[0] = cb;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1952
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1953 /* Create the dialog. */
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1954 data->dialog = dialog = gtk_dialog_new();
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1955
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1956 if (title != NULL)
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1957 gtk_window_set_title(GTK_WINDOW(dialog), title);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1958 #ifdef _WIN32
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1959 else
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1960 gtk_window_set_title(GTK_WINDOW(dialog), PIDGIN_ALERT_TITLE);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1961 #endif
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1962
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1963 button = pidgin_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_CANCEL,
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1964 G_CALLBACK(screenshare_cancel_cb), data);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1965 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1966
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1967 if (g_getenv("PIDGIN_SHARE_VIDEOTEST") != NULL) {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1968 button = pidgin_dialog_add_button(GTK_DIALOG(dialog), _("Test image"),
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1969 G_CALLBACK(screenshare_videotest_cb), data);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1970 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1971 gtk_window_set_default(GTK_WINDOW(dialog), button);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1972 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1973
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1974 #ifdef HAVE_X11
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1975 button = pidgin_dialog_add_button(GTK_DIALOG(dialog), _("Select window"),
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1976 G_CALLBACK(screenshare_window_cb), data);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1977 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1978 gtk_window_set_default(GTK_WINDOW(dialog), button);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1979 #endif
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1980
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1981 button = pidgin_dialog_add_button(GTK_DIALOG(dialog), _("Use monitor"),
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1982 G_CALLBACK(screenshare_monitor_cb), data);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1983 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1984 gtk_window_set_default(GTK_WINDOW(dialog), button);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1985
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1986 g_signal_connect(G_OBJECT(dialog), "delete_event",
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1987 G_CALLBACK(destroy_screenshare_cb), data);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1988
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1989 /* Setup the dialog */
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1990 gtk_container_set_border_width(GTK_CONTAINER(dialog), PIDGIN_HIG_BORDER/2);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1991 gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), PIDGIN_HIG_BORDER/2);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1992 gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1993 gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1994 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), PIDGIN_HIG_BORDER);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1995
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1996 /* Setup the main horizontal box */
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1997 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1998 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
1999
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2000
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2001 /* Vertical box */
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2002 vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2003 gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2004
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2005 pidgin_widget_decorate_account(hbox, account);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2006
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2007 /* Descriptive label */
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2008 primary_esc = (primary != NULL) ? g_markup_escape_text(primary, -1) : NULL;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2009 secondary_esc = (secondary != NULL) ? g_markup_escape_text(secondary, -1) : NULL;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2010 label_text = g_strdup_printf((primary ? "<span weight=\"bold\" size=\"larger\">"
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2011 "%s</span>%s%s" : "%s%s%s"),
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2012 (primary ? primary_esc : ""),
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2013 ((primary && secondary) ? "\n\n" : ""),
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2014 (secondary ? secondary_esc : ""));
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2015 g_free(primary_esc);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2016 g_free(secondary_esc);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2017
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2018 label = gtk_label_new(NULL);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2019
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2020 gtk_label_set_markup(GTK_LABEL(label), label_text);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2021 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2022 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2023 gtk_label_set_selectable(GTK_LABEL(label), TRUE);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2024 gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2025
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2026 g_free(label_text);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2027
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2028 screen = gdk_screen_get_default();
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2029 if (screen) {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2030 int nr_monitors = gdk_screen_get_n_monitors(screen);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2031 int primary = gdk_screen_get_primary_monitor(screen);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2032 int i;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2033
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2034 for (i = 0; i < nr_monitors; i++) {
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2035 GdkRectangle geom;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2036 gchar *name;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2037 gchar *label;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2038
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2039 name = gdk_screen_get_monitor_plug_name(screen, i);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2040 gdk_screen_get_monitor_geometry(screen, i, &geom);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2041
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2042 label = g_strdup_printf(_("%s (%d✕%d @ %d,%d)"),
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2043 name ? name : _("Unknown output"),
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2044 geom.width, geom.height,
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2045 geom.x, geom.y);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2046 radio = gtk_radio_button_new_with_label_from_widget((GtkRadioButton *)radio, label);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2047 g_object_set_data(G_OBJECT(radio), "monitor-no", GINT_TO_POINTER(i));
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2048 gtk_box_pack_start(GTK_BOX(vbox), radio, FALSE, FALSE, 0);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2049 if (i == primary)
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2050 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio), TRUE);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2051
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2052 g_free(label);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2053 g_free(name);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2054 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2055 g_object_set_data(G_OBJECT(dialog), "radio", radio);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2056 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2057
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2058 /* Show everything. */
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2059 pidgin_auto_parent_window(dialog);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2060
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2061 gtk_widget_show_all(dialog);
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2062
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2063 return data;
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2064
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2065 }
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2066 #endif /* USE_VV */
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2067
9502
d43f69354213 [gaim-migrate @ 10329]
Mark Doliner <markdoliner@pidgin.im>
parents: 9005
diff changeset
2068 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2069 pidgin_close_request(PurpleRequestType type, void *ui_handle)
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2070 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
2071 PidginRequestData *data = (PidginRequestData *)ui_handle;
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2072
14097
0c340861ab79 [gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents: 13536
diff changeset
2073 g_free(data->cbs);
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2074
8286
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
2075 gtk_widget_destroy(data->dialog);
7a4c038d1ecd [gaim-migrate @ 9010]
Christian Hammond <chipx86@chipx86.com>
parents: 8137
diff changeset
2076
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2077 if (type == PURPLE_REQUEST_FIELDS)
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2078 purple_request_fields_destroy(data->u.multifield.fields);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2079 else if (type == PURPLE_REQUEST_FILE)
9513
ec57f8faed31 [gaim-migrate @ 10340]
Mark Doliner <markdoliner@pidgin.im>
parents: 9506
diff changeset
2080 g_free(data->u.file.name);
5817
d085bb1af93c [gaim-migrate @ 6247]
Christian Hammond <chipx86@chipx86.com>
parents: 5816
diff changeset
2081
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2082 g_free(data);
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2083 }
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2084
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2085 static PurpleRequestUiOps ops =
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2086 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
2087 pidgin_request_input,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
2088 pidgin_request_choice,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
2089 pidgin_request_action,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
2090 pidgin_request_fields,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
2091 pidgin_request_file,
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
2092 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
2093 pidgin_request_folder,
27427
00f91afbd4d9 Show thumbnail in ft request dialog
Marcus Lundblad <malu@pidgin.im>
parents: 25900
diff changeset
2094 pidgin_request_action_with_icon,
39010
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2095 #ifdef USE_VV
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2096 pidgin_request_screenshare_media,
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2097 #else
16752
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16718
diff changeset
2098 NULL,
39010
fbce915a7024 Outbound screenshare window/monitor selection
David Woodhouse <dwmw2@infradead.org>
parents: 38266
diff changeset
2099 #endif
16752
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16718
diff changeset
2100 NULL,
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16718
diff changeset
2101 NULL
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2102 };
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2103
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
2104 PurpleRequestUiOps *
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15497
diff changeset
2105 pidgin_request_get_ui_ops(void)
5480
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2106 {
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2107 return &ops;
bd0befec6d55 [gaim-migrate @ 5876]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2108 }

mercurial