finch/gntrequest.c

Mon, 06 Mar 2023 21:23:17 -0600

author
Elliott Sales de Andrade <quantum.analyst@gmail.com>
date
Mon, 06 Mar 2023 21:23:17 -0600
changeset 42125
fe51d95f3c12
parent 42123
78bae9d1b69b
child 42127
18acb99a0fa6
permissions
-rw-r--r--

Replace PurpleRequestField UI data with GObject data

Testing Done:
Compiled and opened Request Fields from Demo protocol.

Reviewed at https://reviews.imfreedom.org/r/2321/

39887
9c8f874c74a0 Clean up all of the license headers
Gary Kramlich <grim@reaperworld.com>
parents: 39881
diff changeset
1 /*
9c8f874c74a0 Clean up all of the license headers
Gary Kramlich <grim@reaperworld.com>
parents: 39881
diff changeset
2 * finch
14620
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14413
diff changeset
3 *
15931
716b5fac1895 Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@pidgin.im>
parents: 15908
diff changeset
4 * Finch is the legal property of its developers, whose names are too numerous
14620
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14413
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14413
diff changeset
6 * source distribution.
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14413
diff changeset
7 *
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14413
diff changeset
8 * This program is free software; you can redistribute it and/or modify
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14413
diff changeset
9 * it under the terms of the GNU General Public License as published by
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14413
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14413
diff changeset
11 * (at your option) any later version.
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14413
diff changeset
12 *
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14413
diff changeset
13 * This program is distributed in the hope that it will be useful,
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14413
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14413
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14413
diff changeset
16 * GNU General Public License for more details.
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14413
diff changeset
17 *
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14413
diff changeset
18 * You should have received a copy of the GNU General Public License
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14413
diff changeset
19 * 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: 19691
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
14620
90d599495d65 [gaim-migrate @ 17281]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14413
diff changeset
21 */
39887
9c8f874c74a0 Clean up all of the license headers
Gary Kramlich <grim@reaperworld.com>
parents: 39881
diff changeset
22
40439
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40350
diff changeset
23 #include <glib/gi18n-lib.h>
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40350
diff changeset
24
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40350
diff changeset
25 #include <purple.h>
29049
ea3c1e7d47f4 *** Plucked rev ea18c8ce78c0229a5b968aab268f38e9bcae0aee (8e1d807c1aadfb510e14f047d2cf00e0c06be465):
Daniel Atallah <datallah@pidgin.im>
parents: 27829
diff changeset
26
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
27 #include <gnt.h>
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
28
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
29 #include "gntrequest.h"
40350
72271baf92bc Split PurpleKeyValuePair out to it's own file and try to do some cleanup in the files that need to include it.
Gary Kramlich <grim@reaperworld.com>
parents: 40329
diff changeset
30
15715
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
31 typedef struct
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
32 {
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
33 void *user_data;
15990
8f3cecb0bf47 use file select dialog
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15987
diff changeset
34 GntWidget *dialog;
15715
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
35 GCallback *cbs;
18561
e48a272d383c Remember the open/save file locations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18402
diff changeset
36 gboolean save;
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
37 } FinchFileRequest;
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
38
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
39 static GntWidget *
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
40 setup_request_window(const char *title, const char *primary,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
41 const char *secondary, PurpleRequestType type)
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
42 {
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
43 GntWidget *window;
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
44
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
45 window = gnt_vbox_new(FALSE);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
46 gnt_box_set_toplevel(GNT_BOX(window), TRUE);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
47 gnt_box_set_title(GNT_BOX(window), title);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
48 gnt_box_set_alignment(GNT_BOX(window), GNT_ALIGN_MID);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
49
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
50 if (primary)
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
51 gnt_box_add_widget(GNT_BOX(window),
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
52 gnt_label_new_with_format(primary, GNT_TEXT_FLAG_BOLD));
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
53 if (secondary)
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
54 gnt_box_add_widget(GNT_BOX(window), gnt_label_new(secondary));
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
55
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
56 g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(purple_request_close),
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
57 GINT_TO_POINTER(type));
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
58
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
59 return window;
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
60 }
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
61
35456
821aa4bcb6fa Fix a bunch of gtk-doc warnings in finch
Ankit Vani <a@nevitus.org>
parents: 35454
diff changeset
62 /*
18392
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
63 * If the window is closed by the wm (ie, without triggering any of
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
64 * the buttons, then do some default callback.
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
65 */
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
66 static void
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
67 setup_default_callback(GntWidget *window, gpointer default_cb, gpointer data)
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
68 {
20783
b36dfff92590 Do not connect to a signal with a NULL callback. Gets rid of a runtime warning.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
69 if (default_cb == NULL)
b36dfff92590 Do not connect to a signal with a NULL callback. Gets rid of a runtime warning.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20147
diff changeset
70 return;
18402
f84b9b94e0ac Update search-api to not crash. Searching for users in xmpp/oscar works now.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18392
diff changeset
71 g_object_set_data(G_OBJECT(window), "default-callback", default_cb);
18392
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
72 g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(default_cb), data);
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
73 }
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
74
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
75 static void
42079
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
76 action_performed(G_GNUC_UNUSED GntWidget *button, gpointer data)
18392
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
77 {
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
78 g_signal_handlers_disconnect_matched(data, G_SIGNAL_MATCH_FUNC,
18402
f84b9b94e0ac Update search-api to not crash. Searching for users in xmpp/oscar works now.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18392
diff changeset
79 0, 0, NULL,
f84b9b94e0ac Update search-api to not crash. Searching for users in xmpp/oscar works now.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18392
diff changeset
80 g_object_get_data(data, "default-callback"),
f84b9b94e0ac Update search-api to not crash. Searching for users in xmpp/oscar works now.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18392
diff changeset
81 NULL);
18392
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
82 }
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
83
35456
821aa4bcb6fa Fix a bunch of gtk-doc warnings in finch
Ankit Vani <a@nevitus.org>
parents: 35454
diff changeset
84 /*
821aa4bcb6fa Fix a bunch of gtk-doc warnings in finch
Ankit Vani <a@nevitus.org>
parents: 35454
diff changeset
85 * setup_button_box:
821aa4bcb6fa Fix a bunch of gtk-doc warnings in finch
Ankit Vani <a@nevitus.org>
parents: 35454
diff changeset
86 * @win: this is the window
821aa4bcb6fa Fix a bunch of gtk-doc warnings in finch
Ankit Vani <a@nevitus.org>
parents: 35454
diff changeset
87 * @userdata: the userdata to pass to the primary callbacks
821aa4bcb6fa Fix a bunch of gtk-doc warnings in finch
Ankit Vani <a@nevitus.org>
parents: 35454
diff changeset
88 * @cb: the callback
821aa4bcb6fa Fix a bunch of gtk-doc warnings in finch
Ankit Vani <a@nevitus.org>
parents: 35454
diff changeset
89 * @data: data for the callback
821aa4bcb6fa Fix a bunch of gtk-doc warnings in finch
Ankit Vani <a@nevitus.org>
parents: 35454
diff changeset
90 * @...: (text, primary-callback) pairs, ended by a NULL
22995
816ce422324b The required fields are not really required if the action is cancelled.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22937
diff changeset
91 *
816ce422324b The required fields are not really required if the action is cancelled.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22937
diff changeset
92 * The cancellation callback should be the last callback sent.
18392
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
93 */
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
94 static GntWidget *
18392
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
95 setup_button_box(GntWidget *win, gpointer userdata, gpointer cb, gpointer data, ...)
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
96 {
23000
29929da38031 Fix a compiler warning. Sadrul or someone should double-check this.
Richard Laager <rlaager@pidgin.im>
parents: 22995
diff changeset
97 GntWidget *box;
29929da38031 Fix a compiler warning. Sadrul or someone should double-check this.
Richard Laager <rlaager@pidgin.im>
parents: 22995
diff changeset
98 GntWidget *button = NULL;
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
99 va_list list;
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
100 const char *text;
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
101 gpointer callback;
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
102
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
103 box = gnt_hbox_new(FALSE);
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
104
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
105 va_start(list, data);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
106
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
107 while ((text = va_arg(list, const char *)))
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
108 {
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
109 callback = va_arg(list, gpointer);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
110 button = gnt_button_new(text);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
111 gnt_box_add_widget(GNT_BOX(box), button);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
112 g_object_set_data(G_OBJECT(button), "activate-callback", callback);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
113 g_object_set_data(G_OBJECT(button), "activate-userdata", userdata);
18402
f84b9b94e0ac Update search-api to not crash. Searching for users in xmpp/oscar works now.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18392
diff changeset
114 g_signal_connect(G_OBJECT(button), "activate", G_CALLBACK(action_performed), win);
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
115 g_signal_connect(G_OBJECT(button), "activate", G_CALLBACK(cb), data);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
116 }
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
117
23000
29929da38031 Fix a compiler warning. Sadrul or someone should double-check this.
Richard Laager <rlaager@pidgin.im>
parents: 22995
diff changeset
118 if (button)
29929da38031 Fix a compiler warning. Sadrul or someone should double-check this.
Richard Laager <rlaager@pidgin.im>
parents: 22995
diff changeset
119 g_object_set_data(G_OBJECT(button), "cancellation-function", GINT_TO_POINTER(TRUE));
22995
816ce422324b The required fields are not really required if the action is cancelled.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22937
diff changeset
120
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
121 va_end(list);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
122 return box;
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
123 }
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
124
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
125 static void
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
126 notify_input_cb(GntWidget *button, GntWidget *entry)
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
127 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
128 PurpleRequestInputCb callback = g_object_get_data(G_OBJECT(button), "activate-callback");
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
129 gpointer data = g_object_get_data(G_OBJECT(button), "activate-userdata");
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
130 const char *text = gnt_entry_get_text(GNT_ENTRY(entry));
39619
2451343ed79b Use gnt_widget_get_toplevel everywhere.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39311
diff changeset
131 GntWidget *window;
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
132
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
133 if (callback)
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
134 callback(data, text);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
135
39619
2451343ed79b Use gnt_widget_get_toplevel everywhere.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39311
diff changeset
136 window = gnt_widget_get_toplevel(button);
2451343ed79b Use gnt_widget_get_toplevel everywhere.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39311
diff changeset
137 purple_request_close(PURPLE_REQUEST_INPUT, window);
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
138 }
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
139
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
140 static void *
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15715
diff changeset
141 finch_request_input(const char *title, const char *primary,
42079
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
142 const char *secondary, const char *default_value,
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
143 G_GNUC_UNUSED gboolean multiline, gboolean masked,
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
144 G_GNUC_UNUSED gchar *hint, const char *ok_text,
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
145 GCallback ok_cb, const char *cancel_text,
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
146 GCallback cancel_cb,
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
147 G_GNUC_UNUSED PurpleRequestCommonParameters *cpar,
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
148 void *user_data)
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
149 {
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
150 GntWidget *window, *box, *entry;
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
151
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
152 window = setup_request_window(title, primary, secondary, PURPLE_REQUEST_INPUT);
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
153
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
154 entry = gnt_entry_new(default_value);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
155 if (masked)
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
156 gnt_entry_set_masked(GNT_ENTRY(entry), TRUE);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
157 gnt_box_add_widget(GNT_BOX(window), entry);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
158
18392
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
159 box = setup_button_box(window, user_data, notify_input_cb, entry,
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
160 ok_text, ok_cb, cancel_text, cancel_cb, NULL);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
161 gnt_box_add_widget(GNT_BOX(window), box);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
162
18392
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
163 setup_default_callback(window, cancel_cb, user_data);
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
164 gnt_widget_show(window);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
165
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
166 return window;
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
167 }
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
168
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
169 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
170 finch_close_request(PurpleRequestType type, gpointer ui_handle)
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
171 {
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
172 GntWidget *widget = GNT_WIDGET(ui_handle);
16383
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
173 if (type == PURPLE_REQUEST_FIELDS) {
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
174 PurpleRequestFields *fields = g_object_get_data(G_OBJECT(widget), "fields");
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
175 purple_request_fields_destroy(fields);
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
176 }
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
177
39619
2451343ed79b Use gnt_widget_get_toplevel everywhere.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39311
diff changeset
178 widget = gnt_widget_get_toplevel(widget);
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
179 gnt_widget_destroy(widget);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
180 }
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
181
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
182 static void
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
183 request_choice_cb(GntWidget *button, GntComboBox *combo)
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
184 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
185 PurpleRequestChoiceCb callback = g_object_get_data(G_OBJECT(button), "activate-callback");
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
186 gpointer data = g_object_get_data(G_OBJECT(button), "activate-userdata");
34338
c652670afac5 Request API refactoring: custom PURPLE_REQUEST_CHOICE values, instead of indexes
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34335
diff changeset
187 gpointer choice = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo));
39619
2451343ed79b Use gnt_widget_get_toplevel everywhere.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39311
diff changeset
188 GntWidget *window;
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
189
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
190 if (callback)
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
191 callback(data, choice);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
192
39619
2451343ed79b Use gnt_widget_get_toplevel everywhere.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39311
diff changeset
193 window = gnt_widget_get_toplevel(button);
2451343ed79b Use gnt_widget_get_toplevel everywhere.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39311
diff changeset
194 purple_request_close(PURPLE_REQUEST_INPUT, window);
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
195 }
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
196
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
197 static void *
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15715
diff changeset
198 finch_request_choice(const char *title, const char *primary,
42079
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
199 const char *secondary, gpointer default_value,
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
200 const char *ok_text, GCallback ok_cb,
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
201 const char *cancel_text, GCallback cancel_cb,
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
202 G_GNUC_UNUSED PurpleRequestCommonParameters *cpar,
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
203 void *user_data, va_list choices)
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
204 {
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
205 GntWidget *window, *combo, *box;
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
206 const char *text;
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
207 int val;
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
208
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
209 window = setup_request_window(title, primary, secondary, PURPLE_REQUEST_CHOICE);
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
210
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
211 combo = gnt_combo_box_new();
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
212 gnt_box_add_widget(GNT_BOX(window), combo);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
213 while ((text = va_arg(choices, const char *)))
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
214 {
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
215 val = va_arg(choices, int);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
216 gnt_combo_box_add_data(GNT_COMBO_BOX(combo), GINT_TO_POINTER(val + 1), text);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
217 }
34338
c652670afac5 Request API refactoring: custom PURPLE_REQUEST_CHOICE values, instead of indexes
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34335
diff changeset
218 gnt_combo_box_set_selected(GNT_COMBO_BOX(combo), default_value);
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
219
18392
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
220 box = setup_button_box(window, user_data, request_choice_cb, combo,
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
221 ok_text, ok_cb, cancel_text, cancel_cb, NULL);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
222 gnt_box_add_widget(GNT_BOX(window), box);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
223
18392
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
224 setup_default_callback(window, cancel_cb, user_data);
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
225 gnt_widget_show(window);
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30495
diff changeset
226
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
227 return window;
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
228 }
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
229
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
230 static void
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
231 request_action_cb(GntWidget *button, GntWidget *window)
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
232 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
233 PurpleRequestActionCb callback = g_object_get_data(G_OBJECT(button), "activate-callback");
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
234 gpointer data = g_object_get_data(G_OBJECT(button), "activate-userdata");
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
235 int id = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(button), "activate-id"));
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
236
14081
8e302ced7a00 [gaim-migrate @ 16615]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14045
diff changeset
237 if (callback)
8e302ced7a00 [gaim-migrate @ 16615]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14045
diff changeset
238 callback(data, id);
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
239
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
240 purple_request_close(PURPLE_REQUEST_ACTION, window);
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
241 }
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
242
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
243 static void*
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15715
diff changeset
244 finch_request_action(const char *title, const char *primary,
42079
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
245 const char *secondary, int default_value,
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
246 G_GNUC_UNUSED PurpleRequestCommonParameters *cpar,
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
247 void *user_data, size_t actioncount, va_list actions)
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
248 {
22224
5e1b8818889e Focus the button for the default action, if possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22135
diff changeset
249 GntWidget *window, *box, *button, *focus = NULL;
36256
a437550a9308 Remove -Wno-sign-compare and backport fixes from default.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 35991
diff changeset
250 gsize i;
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
251
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
252 window = setup_request_window(title, primary, secondary, PURPLE_REQUEST_ACTION);
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
253
14126
176d35315165 [gaim-migrate @ 16683]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14125
diff changeset
254 box = gnt_hbox_new(FALSE);
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
255 gnt_box_add_widget(GNT_BOX(window), box);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
256 for (i = 0; i < actioncount; i++)
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
257 {
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
258 const char *text = va_arg(actions, const char *);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
259 PurpleRequestActionCb callback = va_arg(actions, PurpleRequestActionCb);
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
260
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
261 button = gnt_button_new(text);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
262 gnt_box_add_widget(GNT_BOX(box), button);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
263
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
264 g_object_set_data(G_OBJECT(button), "activate-callback", callback);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
265 g_object_set_data(G_OBJECT(button), "activate-userdata", user_data);
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
266 g_object_set_data(G_OBJECT(button), "activate-id", GINT_TO_POINTER(i));
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
267 g_signal_connect(G_OBJECT(button), "activate", G_CALLBACK(request_action_cb), window);
22224
5e1b8818889e Focus the button for the default action, if possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22135
diff changeset
268
36256
a437550a9308 Remove -Wno-sign-compare and backport fixes from default.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 35991
diff changeset
269 if (default_value >= 0 && i == (gsize)default_value)
22224
5e1b8818889e Focus the button for the default action, if possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22135
diff changeset
270 focus = button;
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
271 }
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
272
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
273 gnt_widget_show(window);
22224
5e1b8818889e Focus the button for the default action, if possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22135
diff changeset
274 if (focus)
5e1b8818889e Focus the button for the default action, if possible.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22135
diff changeset
275 gnt_box_give_focus_to_child(GNT_BOX(window), focus);
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
276
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
277 return window;
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
278 }
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
279
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
280 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
281 request_fields_cb(GntWidget *button, PurpleRequestFields *fields)
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
282 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
283 PurpleRequestFieldsCb callback = g_object_get_data(G_OBJECT(button), "activate-callback");
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
284 gpointer data = g_object_get_data(G_OBJECT(button), "activate-userdata");
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
285 GList *list;
39619
2451343ed79b Use gnt_widget_get_toplevel everywhere.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39311
diff changeset
286 GntWidget *window;
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
287
16383
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
288 /* Update the data of the fields. Pidgin does this differently. Instead of
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
289 * updating the fields at the end like here, it updates the appropriate field
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
290 * instantly whenever a change is made. That allows it to make sure the
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
291 * 'required' fields are entered before the user can hit OK. It's not the case
41085
508788523450 Fix typos in Finch
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 40836
diff changeset
292 * here, although it can be done. */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
293 for (list = purple_request_fields_get_groups(fields); list; list = list->next)
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
294 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
295 PurpleRequestFieldGroup *group = list->data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
296 GList *fields = purple_request_field_group_get_fields(group);
22995
816ce422324b The required fields are not really required if the action is cancelled.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22937
diff changeset
297
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
298 for (; fields ; fields = fields->next)
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
299 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
300 PurpleRequestField *field = fields->data;
35378
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 34955
diff changeset
301 PurpleRequestFieldType type = purple_request_field_get_field_type(field);
27803
d56c80617fc7 Do not show hidden request fields.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26477
diff changeset
302 if (!purple_request_field_is_visible(field))
d56c80617fc7 Do not show hidden request fields.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26477
diff changeset
303 continue;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
304 if (type == PURPLE_REQUEST_FIELD_BOOLEAN)
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
305 {
42125
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
306 GntWidget *check = g_object_get_data(G_OBJECT(field),
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
307 "finch-ui-data");
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
308 gboolean value = gnt_check_box_get_checked(GNT_CHECK_BOX(check));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
309 purple_request_field_bool_set_value(field, value);
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
310 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
311 else if (type == PURPLE_REQUEST_FIELD_STRING)
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
312 {
42125
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
313 GntWidget *entry = g_object_get_data(G_OBJECT(field),
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
314 "finch-ui-data");
14125
2a14281b124b [gaim-migrate @ 16682]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14124
diff changeset
315 const char *text = gnt_entry_get_text(GNT_ENTRY(entry));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
316 purple_request_field_string_set_value(field, (text && *text) ? text : NULL);
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
317 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
318 else if (type == PURPLE_REQUEST_FIELD_INTEGER)
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
319 {
42125
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
320 GntWidget *entry = g_object_get_data(G_OBJECT(field),
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
321 "finch-ui-data");
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
322 const char *text = gnt_entry_get_text(GNT_ENTRY(entry));
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
323 int value = (text && *text) ? atoi(text) : 0;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
324 purple_request_field_int_set_value(field, value);
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
325 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
326 else if (type == PURPLE_REQUEST_FIELD_CHOICE)
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
327 {
42125
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
328 GntWidget *combo = g_object_get_data(G_OBJECT(field),
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
329 "finch-ui-data");
34338
c652670afac5 Request API refactoring: custom PURPLE_REQUEST_CHOICE values, instead of indexes
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34335
diff changeset
330 gpointer value = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo));
c652670afac5 Request API refactoring: custom PURPLE_REQUEST_CHOICE values, instead of indexes
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34335
diff changeset
331 purple_request_field_choice_set_value(field, value);
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
332 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
333 else if (type == PURPLE_REQUEST_FIELD_LIST)
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
334 {
40836
b5eccef8404e Avoid manual handling of icons in request field list items
Arkadiy Illarionov <qarkai@gmail.com>
parents: 40616
diff changeset
335 GList *selected = NULL;
b5eccef8404e Avoid manual handling of icons in request field list items
Arkadiy Illarionov <qarkai@gmail.com>
parents: 40616
diff changeset
336 GList *list = purple_request_field_list_get_items(field);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
337 if (purple_request_field_list_get_multi_select(field))
14110
ac6690ef2df0 [gaim-migrate @ 16661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14109
diff changeset
338 {
42125
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
339 GntWidget *tree = g_object_get_data(G_OBJECT(field),
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
340 "finch-ui-data");
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14110
diff changeset
341
40836
b5eccef8404e Avoid manual handling of icons in request field list items
Arkadiy Illarionov <qarkai@gmail.com>
parents: 40616
diff changeset
342 for (; list; list = list->next)
14110
ac6690ef2df0 [gaim-migrate @ 16661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14109
diff changeset
343 {
40836
b5eccef8404e Avoid manual handling of icons in request field list items
Arkadiy Illarionov <qarkai@gmail.com>
parents: 40616
diff changeset
344 PurpleKeyValuePair *item = list->data;
b5eccef8404e Avoid manual handling of icons in request field list items
Arkadiy Illarionov <qarkai@gmail.com>
parents: 40616
diff changeset
345 const char *text = item->key;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
346 gpointer key = purple_request_field_list_get_data(field, text);
40836
b5eccef8404e Avoid manual handling of icons in request field list items
Arkadiy Illarionov <qarkai@gmail.com>
parents: 40616
diff changeset
347 if (gnt_tree_get_choice(GNT_TREE(tree), key)) {
b5eccef8404e Avoid manual handling of icons in request field list items
Arkadiy Illarionov <qarkai@gmail.com>
parents: 40616
diff changeset
348 selected = g_list_prepend(selected, (gpointer)text);
b5eccef8404e Avoid manual handling of icons in request field list items
Arkadiy Illarionov <qarkai@gmail.com>
parents: 40616
diff changeset
349 }
14110
ac6690ef2df0 [gaim-migrate @ 16661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14109
diff changeset
350 }
ac6690ef2df0 [gaim-migrate @ 16661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14109
diff changeset
351 }
ac6690ef2df0 [gaim-migrate @ 16661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14109
diff changeset
352 else
ac6690ef2df0 [gaim-migrate @ 16661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14109
diff changeset
353 {
42125
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
354 GntWidget *combo = g_object_get_data(G_OBJECT(field),
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
355 "finch-ui-data");
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14110
diff changeset
356 gpointer data = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo));
30495
cc00c5e8b499 Fix data selection in a list-type request-field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 29049
diff changeset
357
40836
b5eccef8404e Avoid manual handling of icons in request field list items
Arkadiy Illarionov <qarkai@gmail.com>
parents: 40616
diff changeset
358 for (; list; list = list->next) {
b5eccef8404e Avoid manual handling of icons in request field list items
Arkadiy Illarionov <qarkai@gmail.com>
parents: 40616
diff changeset
359 PurpleKeyValuePair *item = list->data;
b5eccef8404e Avoid manual handling of icons in request field list items
Arkadiy Illarionov <qarkai@gmail.com>
parents: 40616
diff changeset
360 const char *text = item->key;
30495
cc00c5e8b499 Fix data selection in a list-type request-field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 29049
diff changeset
361 gpointer key = purple_request_field_list_get_data(field, text);
cc00c5e8b499 Fix data selection in a list-type request-field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 29049
diff changeset
362 if (key == data) {
40836
b5eccef8404e Avoid manual handling of icons in request field list items
Arkadiy Illarionov <qarkai@gmail.com>
parents: 40616
diff changeset
363 selected = g_list_prepend(selected, (gpointer)text);
30495
cc00c5e8b499 Fix data selection in a list-type request-field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 29049
diff changeset
364 break;
cc00c5e8b499 Fix data selection in a list-type request-field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 29049
diff changeset
365 }
cc00c5e8b499 Fix data selection in a list-type request-field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 29049
diff changeset
366 }
14110
ac6690ef2df0 [gaim-migrate @ 16661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14109
diff changeset
367 }
ac6690ef2df0 [gaim-migrate @ 16661]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14109
diff changeset
368
40836
b5eccef8404e Avoid manual handling of icons in request field list items
Arkadiy Illarionov <qarkai@gmail.com>
parents: 40616
diff changeset
369 purple_request_field_list_set_selected(field, selected);
b5eccef8404e Avoid manual handling of icons in request field list items
Arkadiy Illarionov <qarkai@gmail.com>
parents: 40616
diff changeset
370 g_list_free(selected);
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
371 }
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
372 else if (type == PURPLE_REQUEST_FIELD_ACCOUNT)
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
373 {
42125
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
374 GntWidget *combo = g_object_get_data(G_OBJECT(field), "finch-ui-data");
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
375 PurpleAccount *acc = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
376 purple_request_field_account_set_value(field, acc);
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
377 }
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
378 }
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
379 }
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
380
22937
7e0347f7e623 Make sure the required fields are all entered correctly. Underline the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22342
diff changeset
381 purple_notify_close_with_handle(button);
7e0347f7e623 Make sure the required fields are all entered correctly. Underline the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22342
diff changeset
382
22995
816ce422324b The required fields are not really required if the action is cancelled.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22937
diff changeset
383 if (!g_object_get_data(G_OBJECT(button), "cancellation-function") &&
33213
2852fbde4722 Validation for Request API; use it in 'new IM' dialog.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32887
diff changeset
384 (!purple_request_fields_all_required_filled(fields) ||
2852fbde4722 Validation for Request API; use it in 'new IM' dialog.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32887
diff changeset
385 !purple_request_fields_all_valid(fields))) {
22937
7e0347f7e623 Make sure the required fields are all entered correctly. Underline the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22342
diff changeset
386 purple_notify_error(button, _("Error"),
33213
2852fbde4722 Validation for Request API; use it in 'new IM' dialog.
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 32887
diff changeset
387 _("You must properly fill all the required fields."),
34449
bbcb198650b7 Notify API: extend purple_notify_message with PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34448
diff changeset
388 _("The required fields are underlined."), NULL);
22937
7e0347f7e623 Make sure the required fields are all entered correctly. Underline the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22342
diff changeset
389 return;
7e0347f7e623 Make sure the required fields are all entered correctly. Underline the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22342
diff changeset
390 }
7e0347f7e623 Make sure the required fields are all entered correctly. Underline the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22342
diff changeset
391
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
392 if (callback)
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
393 callback(data, fields);
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
394
39619
2451343ed79b Use gnt_widget_get_toplevel everywhere.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39311
diff changeset
395 window = gnt_widget_get_toplevel(button);
2451343ed79b Use gnt_widget_get_toplevel everywhere.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39311
diff changeset
396 purple_request_close(PURPLE_REQUEST_FIELDS, window);
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
397 }
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
398
19934
34e07fa701cf Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
399 static void
42079
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
400 update_selected_account(GntEntry *username, G_GNUC_UNUSED const char *start,
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
401 G_GNUC_UNUSED const char *end,
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
402 GntComboBox *accountlist)
19934
34e07fa701cf Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
403 {
39622
f10f0f13505b Use the new gnt_combo_box_get_dropdown.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39621
diff changeset
404 GList *accounts =
f10f0f13505b Use the new gnt_combo_box_get_dropdown.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39621
diff changeset
405 gnt_tree_get_rows(GNT_TREE(gnt_combo_box_get_dropdown(accountlist)));
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 24986
diff changeset
406 const char *name = gnt_entry_get_text(username);
19934
34e07fa701cf Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
407 while (accounts) {
34728
8efd73063ecf Renamed buddy list functions to more appropriate/simler names.
Ankit Vani <a@nevitus.org>
parents: 34699
diff changeset
408 if (purple_blist_find_buddy(accounts->data, name)) {
19934
34e07fa701cf Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
409 gnt_combo_box_set_selected(accountlist, accounts->data);
34e07fa701cf Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
410 gnt_widget_draw(GNT_WIDGET(accountlist));
34e07fa701cf Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
411 break;
34e07fa701cf Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
412 }
34e07fa701cf Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
413 accounts = accounts->next;
34e07fa701cf Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
414 }
34e07fa701cf Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
415 }
34e07fa701cf Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
416
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
417 static GntWidget*
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
418 create_boolean_field(PurpleRequestField *field)
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
419 {
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
420 const char *label = purple_request_field_get_label(field);
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
421 GntWidget *check = gnt_check_box_new(label);
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
422 gnt_check_box_set_checked(GNT_CHECK_BOX(check),
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
423 purple_request_field_bool_get_default_value(field));
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
424 return check;
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
425 }
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
426
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
427 static GntWidget*
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 24986
diff changeset
428 create_string_field(PurpleRequestField *field, GntWidget **username)
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
429 {
42123
78bae9d1b69b Fix typo in request field getter
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42079
diff changeset
430 const char *hint = purple_request_field_get_type_hint(field);
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
431 GntWidget *entry = gnt_entry_new(
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
432 purple_request_field_string_get_default_value(field));
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
433 gnt_entry_set_masked(GNT_ENTRY(entry),
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
434 purple_request_field_string_is_masked(field));
40125
a7acc7b00d79 Replace purple_str_has_{prefix,suffix} by g_str_has_{prefix,suffix}.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40094
diff changeset
435 if (hint && g_str_has_prefix(hint, "screenname")) {
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39622
diff changeset
436 PurpleBlistNode *node = purple_blist_get_default_root();
40125
a7acc7b00d79 Replace purple_str_has_{prefix,suffix} by g_str_has_{prefix,suffix}.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 40094
diff changeset
437 gboolean offline = g_str_has_suffix(hint, "all");
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
438 for (; node; node = purple_blist_node_next(node, offline)) {
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 33213
diff changeset
439 if (!PURPLE_IS_BUDDY(node))
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
440 continue;
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
441 gnt_entry_add_suggest(GNT_ENTRY(entry), purple_buddy_get_name((PurpleBuddy*)node));
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
442 }
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
443 gnt_entry_set_always_suggest(GNT_ENTRY(entry), TRUE);
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 24986
diff changeset
444 if (username)
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 24986
diff changeset
445 *username = entry;
38260
dcada91c0912 Remove redundant NULL checks
qarkai <qarkai@gmail.com>
parents: 38258
diff changeset
446 } else if (purple_strequal(hint, "group")) {
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
447 PurpleBlistNode *node;
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39622
diff changeset
448 for (node = purple_blist_get_default_root(); node;
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39622
diff changeset
449 node = purple_blist_node_get_sibling_next(node)) {
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 33213
diff changeset
450 if (PURPLE_IS_GROUP(node))
22342
916c989bd2c0 Update finch to not touch the internals of PurpleGroup.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22339
diff changeset
451 gnt_entry_add_suggest(GNT_ENTRY(entry), purple_group_get_name((PurpleGroup *)node));
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
452 }
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
453 }
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
454 return entry;
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
455 }
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
456
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
457 static GntWidget*
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
458 create_integer_field(PurpleRequestField *field)
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
459 {
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
460 char str[256];
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
461 int val = purple_request_field_int_get_default_value(field);
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
462 GntWidget *entry;
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
463
40094
8e6d91e4dd8f Use g_(v)snprintf so we need less wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39887
diff changeset
464 g_snprintf(str, sizeof(str), "%d", val);
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
465 entry = gnt_entry_new(str);
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
466 gnt_entry_set_flag(GNT_ENTRY(entry), GNT_ENTRY_FLAG_INT);
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
467 return entry;
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
468 }
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
469
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
470 static GntWidget*
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
471 create_choice_field(PurpleRequestField *field)
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
472 {
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
473 GntWidget *combo = gnt_combo_box_new();
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
474
40326
cdca03a74387 Add PurpleNamedValue to use in lists instead of consecutive key and value elements
qarkai <qarkai@gmail.com>
parents: 40125
diff changeset
475 for (GList *it = purple_request_field_choice_get_elements(field); it != NULL; it = g_list_next(it))
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
476 {
40329
b5e0f65a5d9c Replace PurpleNamedValue with PurpleKeyValuePair
qarkai <qarkai@gmail.com>
parents: 40326
diff changeset
477 PurpleKeyValuePair *choice = it->data;
34338
c652670afac5 Request API refactoring: custom PURPLE_REQUEST_CHOICE values, instead of indexes
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34335
diff changeset
478
40329
b5e0f65a5d9c Replace PurpleNamedValue with PurpleKeyValuePair
qarkai <qarkai@gmail.com>
parents: 40326
diff changeset
479 gnt_combo_box_add_data(GNT_COMBO_BOX(combo), choice->value, choice->key);
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
480 }
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
481 gnt_combo_box_set_selected(GNT_COMBO_BOX(combo),
34338
c652670afac5 Request API refactoring: custom PURPLE_REQUEST_CHOICE values, instead of indexes
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34335
diff changeset
482 purple_request_field_choice_get_default_value(field));
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
483 return combo;
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
484 }
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
485
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
486 static GntWidget*
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
487 create_list_field(PurpleRequestField *field)
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
488 {
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
489 GntWidget *ret = NULL;
40836
b5eccef8404e Avoid manual handling of icons in request field list items
Arkadiy Illarionov <qarkai@gmail.com>
parents: 40616
diff changeset
490 GList *list = purple_request_field_list_get_items(field);
b5eccef8404e Avoid manual handling of icons in request field list items
Arkadiy Illarionov <qarkai@gmail.com>
parents: 40616
diff changeset
491 if (purple_request_field_list_get_multi_select(field)) {
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
492 GntWidget *tree = gnt_tree_new();
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
493
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
494 for (; list; list = list->next)
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
495 {
40836
b5eccef8404e Avoid manual handling of icons in request field list items
Arkadiy Illarionov <qarkai@gmail.com>
parents: 40616
diff changeset
496 PurpleKeyValuePair *item = list->data;
b5eccef8404e Avoid manual handling of icons in request field list items
Arkadiy Illarionov <qarkai@gmail.com>
parents: 40616
diff changeset
497 const char *text = item->key;
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
498 gpointer key = purple_request_field_list_get_data(field, text);
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
499 gnt_tree_add_choice(GNT_TREE(tree), key,
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
500 gnt_tree_create_row(GNT_TREE(tree), text), NULL, NULL);
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
501 if (purple_request_field_list_is_selected(field, text))
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
502 gnt_tree_set_choice(GNT_TREE(tree), key, TRUE);
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
503 }
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
504 ret = tree;
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
505 }
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
506 else
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
507 {
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
508 GntWidget *combo = gnt_combo_box_new();
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
509
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
510 for (; list; list = list->next)
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
511 {
40836
b5eccef8404e Avoid manual handling of icons in request field list items
Arkadiy Illarionov <qarkai@gmail.com>
parents: 40616
diff changeset
512 PurpleKeyValuePair *item = list->data;
b5eccef8404e Avoid manual handling of icons in request field list items
Arkadiy Illarionov <qarkai@gmail.com>
parents: 40616
diff changeset
513 const char *text = item->key;
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
514 gpointer key = purple_request_field_list_get_data(field, text);
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
515 gnt_combo_box_add_data(GNT_COMBO_BOX(combo), key, text);
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
516 if (purple_request_field_list_is_selected(field, text))
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
517 gnt_combo_box_set_selected(GNT_COMBO_BOX(combo), key);
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
518 }
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
519 ret = combo;
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
520 }
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
521 return ret;
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
522 }
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
523
41851
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
524 static void
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
525 add_account_to_combo(GntWidget *combo, PurpleAccount *account) {
41980
4809f699d6c9 Update Finch for the PurpleAccount deprecations
Gary Kramlich <grim@reaperworld.com>
parents: 41851
diff changeset
526 PurpleContactInfo *info = PURPLE_CONTACT_INFO(account);
41851
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
527 char *text = NULL;
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
528
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
529 text = g_strdup_printf("%s (%s)",
41980
4809f699d6c9 Update Finch for the PurpleAccount deprecations
Gary Kramlich <grim@reaperworld.com>
parents: 41851
diff changeset
530 purple_contact_info_get_username(info),
41851
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
531 purple_account_get_protocol_name(account));
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
532 gnt_combo_box_add_data(GNT_COMBO_BOX(combo), account, text);
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
533 g_free(text);
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
534 }
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
535
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
536 static GntWidget*
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
537 create_account_field(PurpleRequestField *field)
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
538 {
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
539 gboolean all;
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
540 PurpleAccount *def;
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
541 GntWidget *combo = gnt_combo_box_new();
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
542
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
543 all = purple_request_field_account_get_show_all(field);
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
544 def = purple_request_field_account_get_value(field);
41202
5c41b36cb13e port finch to the new AccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41085
diff changeset
545 if (!def) {
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
546 def = purple_request_field_account_get_default_value(field);
41202
5c41b36cb13e port finch to the new AccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41085
diff changeset
547 }
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
548
41202
5c41b36cb13e port finch to the new AccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41085
diff changeset
549 if(all) {
41851
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
550 GListModel *manager_model = NULL;
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
551 guint n_items = 0;
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
552
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
553 manager_model = purple_account_manager_get_default_as_model();
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
554 n_items = g_list_model_get_n_items(manager_model);
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
555 for(guint index = 0; index < n_items; index++) {
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
556 PurpleAccount *account;
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
557
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
558 account = g_list_model_get_item(manager_model, index);
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
559 add_account_to_combo(combo, account);
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
560
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
561 if(account == def) {
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
562 gnt_combo_box_set_selected(GNT_COMBO_BOX(combo), account);
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
563 }
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
564
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
565 g_object_unref(account);
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
566 }
41202
5c41b36cb13e port finch to the new AccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41085
diff changeset
567 } else {
41851
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
568 GList *list = purple_connections_get_all();
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
569 for(; list; list = list->next) {
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
570 PurpleAccount *account = NULL;
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
571
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
572 account = purple_connection_get_account(list->data);
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
573 add_account_to_combo(combo, account);
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
574
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
575 if(account == def) {
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
576 gnt_combo_box_set_selected(GNT_COMBO_BOX(combo), account);
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
577 }
64d7e69bff25 Move PurpleAccountManager to GPtrArray and implement GListModel
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
578 }
41202
5c41b36cb13e port finch to the new AccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41085
diff changeset
579 }
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
580
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
581 gnt_widget_set_size(combo, 20, 3); /* ew */
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
582 return combo;
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
583 }
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
584
35920
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
585 static void
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
586 multifield_extra_cb(GntWidget *button, PurpleRequestFields *allfields)
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
587 {
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
588 PurpleRequestFieldsCb cb;
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
589 gpointer cb_data;
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
590 gpointer handle;
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
591
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
592 handle = g_object_get_data(G_OBJECT(button), "ui-handle");
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
593 cb = g_object_get_data(G_OBJECT(button), "extra-cb");
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
594 cb_data = g_object_get_data(G_OBJECT(button), "extra-cb-data");
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
595
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
596 if (cb != NULL)
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
597 cb(cb_data, allfields);
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
598
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
599 action_performed(button, handle);
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
600 purple_request_close(PURPLE_REQUEST_FIELDS, handle);
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
601 }
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
602
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
603 static void *
15878
f52832b611fe renamed gaim-text to finch
Sean Egan <seanegan@pidgin.im>
parents: 15715
diff changeset
604 finch_request_fields(const char *title, const char *primary,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
605 const char *secondary, PurpleRequestFields *allfields,
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
606 const char *ok, GCallback ok_cb,
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
607 const char *cancel, GCallback cancel_cb,
34332
876483829700 Request API refactoring: switch purple_request_fields to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34331
diff changeset
608 PurpleRequestCommonParameters *cpar,
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
609 void *userdata)
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
610 {
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
611 GntWidget *window, *box;
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
612 GList *grlist;
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 24986
diff changeset
613 GntWidget *username = NULL, *accountlist = NULL;
35920
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
614 PurpleRequestHelpCb help_cb;
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
615 gpointer help_data;
40326
cdca03a74387 Add PurpleNamedValue to use in lists instead of consecutive key and value elements
qarkai <qarkai@gmail.com>
parents: 40125
diff changeset
616 GSList *extra_actions;
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
617
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
618 window = setup_request_window(title, primary, secondary, PURPLE_REQUEST_FIELDS);
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
619
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
620 /* This is how it's going to work: the request-groups are going to be
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
621 * stacked vertically one after the other. A GntLine will be separating
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
622 * the groups. */
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
623 box = gnt_vbox_new(FALSE);
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
624 gnt_box_set_pad(GNT_BOX(box), 0);
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
625 gnt_box_set_fill(GNT_BOX(box), TRUE);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
626 for (grlist = purple_request_fields_get_groups(allfields); grlist; grlist = grlist->next)
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
627 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
628 PurpleRequestFieldGroup *group = grlist->data;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
629 GList *fields = purple_request_field_group_get_fields(group);
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
630 GntWidget *hbox;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
631 const char *title = purple_request_field_group_get_title(group);
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
632
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
633 if (title)
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
634 gnt_box_add_widget(GNT_BOX(box),
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
635 gnt_label_new_with_format(title, GNT_TEXT_FLAG_BOLD));
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
636
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
637 for (; fields ; fields = fields->next)
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
638 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
639 PurpleRequestField *field = fields->data;
35378
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 34955
diff changeset
640 PurpleRequestFieldType type = purple_request_field_get_field_type(field);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
641 const char *label = purple_request_field_get_label(field);
42125
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
642 GntWidget *widget = NULL;
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
643
27803
d56c80617fc7 Do not show hidden request fields.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26477
diff changeset
644 if (!purple_request_field_is_visible(field))
d56c80617fc7 Do not show hidden request fields.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26477
diff changeset
645 continue;
d56c80617fc7 Do not show hidden request fields.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 26477
diff changeset
646
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
647 hbox = gnt_hbox_new(TRUE); /* hrm */
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
648 gnt_box_add_widget(GNT_BOX(box), hbox);
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
649
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
650 if (type != PURPLE_REQUEST_FIELD_BOOLEAN && label)
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14110
diff changeset
651 {
22937
7e0347f7e623 Make sure the required fields are all entered correctly. Underline the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22342
diff changeset
652 GntWidget *l;
7e0347f7e623 Make sure the required fields are all entered correctly. Underline the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22342
diff changeset
653 if (purple_request_field_is_required(field))
7e0347f7e623 Make sure the required fields are all entered correctly. Underline the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22342
diff changeset
654 l = gnt_label_new_with_format(label, GNT_TEXT_FLAG_UNDERLINE);
7e0347f7e623 Make sure the required fields are all entered correctly. Underline the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22342
diff changeset
655 else
7e0347f7e623 Make sure the required fields are all entered correctly. Underline the
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22342
diff changeset
656 l = gnt_label_new(label);
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14110
diff changeset
657 gnt_widget_set_size(l, 0, 1);
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14110
diff changeset
658 gnt_box_add_widget(GNT_BOX(hbox), l);
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14110
diff changeset
659 }
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
660
42125
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
661 if (type == PURPLE_REQUEST_FIELD_BOOLEAN) {
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
662 widget = create_boolean_field(field);
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
663 } else if (type == PURPLE_REQUEST_FIELD_STRING) {
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
664 widget = create_string_field(field, &username);
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
665 } else if (type == PURPLE_REQUEST_FIELD_INTEGER) {
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
666 widget = create_integer_field(field);
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
667 } else if (type == PURPLE_REQUEST_FIELD_CHOICE) {
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
668 widget = create_choice_field(field);
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
669 } else if (type == PURPLE_REQUEST_FIELD_LIST) {
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
670 widget = create_list_field(field);
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
671 } else if (type == PURPLE_REQUEST_FIELD_ACCOUNT) {
24984
64b88867fbdf Hide the PurpleRequestField struct. I figured this one would be easy and
Richard Laager <rlaager@pidgin.im>
parents: 23000
diff changeset
672 accountlist = create_account_field(field);
42125
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
673 widget = accountlist;
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
674 } else {
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
675 widget = gnt_label_new_with_format(_("Not implemented yet."),
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
676 GNT_TEXT_FLAG_BOLD);
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
677 }
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
678 gnt_box_set_alignment(GNT_BOX(hbox), GNT_ALIGN_MID);
42125
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
679 gnt_box_add_widget(GNT_BOX(hbox), widget);
fe51d95f3c12 Replace PurpleRequestField UI data with GObject data
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42123
diff changeset
680 g_object_set_data(G_OBJECT(field), "finch-ui-data", widget);
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
681 }
14124
181ebb961493 [gaim-migrate @ 16681]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14121
diff changeset
682 if (grlist->next)
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14110
diff changeset
683 gnt_box_add_widget(GNT_BOX(box), gnt_hline_new());
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
684 }
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
685 gnt_box_add_widget(GNT_BOX(window), box);
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
686
18392
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
687 box = setup_button_box(window, userdata, request_fields_cb, allfields,
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
688 ok, ok_cb, cancel, cancel_cb, NULL);
35920
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
689
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
690 extra_actions = purple_request_cpar_get_extra_actions(cpar);
40326
cdca03a74387 Add PurpleNamedValue to use in lists instead of consecutive key and value elements
qarkai <qarkai@gmail.com>
parents: 40125
diff changeset
691 for (GSList *it = extra_actions; it; it = it->next) {
40329
b5e0f65a5d9c Replace PurpleNamedValue with PurpleKeyValuePair
qarkai <qarkai@gmail.com>
parents: 40326
diff changeset
692 PurpleKeyValuePair *extra_action = it->data;
35920
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
693
40329
b5e0f65a5d9c Replace PurpleNamedValue with PurpleKeyValuePair
qarkai <qarkai@gmail.com>
parents: 40326
diff changeset
694 GntWidget *button = gnt_button_new(extra_action->key);
35920
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
695 gnt_box_add_widget_in_front(GNT_BOX(box), button);
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
696 g_object_set_data(G_OBJECT(button), "ui-handle", window);
40326
cdca03a74387 Add PurpleNamedValue to use in lists instead of consecutive key and value elements
qarkai <qarkai@gmail.com>
parents: 40125
diff changeset
697 g_object_set_data(G_OBJECT(button), "extra-cb", extra_action->value);
35920
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
698 g_object_set_data(G_OBJECT(button), "extra-cb-data", userdata);
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
699 g_signal_connect(G_OBJECT(button), "activate",
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
700 G_CALLBACK(multifield_extra_cb), allfields);
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
701 }
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
702
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
703 help_cb = purple_request_cpar_get_help_cb(cpar, &help_data);
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
704 if (help_cb) {
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
705 GntWidget *button = gnt_button_new(_("Help"));
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
706 gnt_box_add_widget_in_front(GNT_BOX(box), button);
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
707 g_signal_connect_swapped(G_OBJECT(button), "activate",
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
708 G_CALLBACK(help_cb), help_data);
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
709 }
78b2942f06db Finch-OTR: implement missing PurpleRequestCommonParameters features
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35475
diff changeset
710
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
711 gnt_box_add_widget(GNT_BOX(window), box);
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
712
18392
9dd44f9e5f9e Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18301
diff changeset
713 setup_default_callback(window, cancel_cb, userdata);
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
714 gnt_widget_show(window);
16383
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
715
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 24986
diff changeset
716 if (username && accountlist) {
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 24986
diff changeset
717 g_signal_connect(username, "completion", G_CALLBACK(update_selected_account), accountlist);
19934
34e07fa701cf Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
718 }
34e07fa701cf Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
719
16383
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
720 g_object_set_data(G_OBJECT(window), "fields", allfields);
22995
816ce422324b The required fields are not really required if the action is cancelled.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22937
diff changeset
721
14109
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
722 return window;
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
723 }
1af2b9d5ef3f [gaim-migrate @ 16660]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14081
diff changeset
724
15715
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
725 static void
42079
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
726 file_cancel_cb(G_GNUC_UNUSED GntWidget *wid, gpointer fq)
15715
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
727 {
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
728 FinchFileRequest *data = fq;
39621
ac33d7dd1ead Use new GntFileSel signals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39619
diff changeset
729 if (data->dialog == NULL) {
ac33d7dd1ead Use new GntFileSel signals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39619
diff changeset
730 /* We've already handled this request, and are in the destroy handler. */
ac33d7dd1ead Use new GntFileSel signals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39619
diff changeset
731 return;
ac33d7dd1ead Use new GntFileSel signals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39619
diff changeset
732 }
ac33d7dd1ead Use new GntFileSel signals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39619
diff changeset
733
15715
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
734 if (data->cbs[1] != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
735 ((PurpleRequestFileCb)data->cbs[1])(data->user_data, NULL);
15715
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
736
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
737 purple_request_close(PURPLE_REQUEST_FILE, data->dialog);
39621
ac33d7dd1ead Use new GntFileSel signals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39619
diff changeset
738 data->dialog = NULL;
15715
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
739 }
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
740
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
741 static void
42079
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
742 file_ok_cb(G_GNUC_UNUSED GntWidget *widget, const char *path, const char *file,
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
743 gpointer fq)
15715
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
744 {
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
745 FinchFileRequest *data = fq;
39621
ac33d7dd1ead Use new GntFileSel signals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39619
diff changeset
746 char *dir = g_path_get_dirname(path);
15715
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
747 if (data->cbs[0] != NULL)
15990
8f3cecb0bf47 use file select dialog
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15987
diff changeset
748 ((PurpleRequestFileCb)data->cbs[0])(data->user_data, file);
18561
e48a272d383c Remember the open/save file locations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18402
diff changeset
749 purple_prefs_set_path(data->save ? "/finch/filelocations/last_save_folder" :
e48a272d383c Remember the open/save file locations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18402
diff changeset
750 "/finch/filelocations/last_open_folder", dir);
e48a272d383c Remember the open/save file locations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18402
diff changeset
751 g_free(dir);
15715
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
752
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15878
diff changeset
753 purple_request_close(PURPLE_REQUEST_FILE, data->dialog);
39621
ac33d7dd1ead Use new GntFileSel signals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39619
diff changeset
754 data->dialog = NULL;
15715
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
755 }
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
756
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
757 static void
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
758 file_request_destroy(FinchFileRequest *data)
15715
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
759 {
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
760 g_free(data->cbs);
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
761 g_free(data);
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
762 }
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
763
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
764 static FinchFileRequest *
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
765 finch_file_request_window(const char *title, const char *path,
15715
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
766 GCallback ok_cb, GCallback cancel_cb,
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
767 void *user_data)
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
768 {
15990
8f3cecb0bf47 use file select dialog
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15987
diff changeset
769 GntWidget *window = gnt_file_sel_new();
8f3cecb0bf47 use file select dialog
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15987
diff changeset
770 GntFileSel *sel = GNT_FILE_SEL(window);
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
771 FinchFileRequest *data = g_new0(FinchFileRequest, 1);
15715
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
772
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
773 data->user_data = user_data;
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
774 data->cbs = g_new0(GCallback, 2);
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
775 data->cbs[0] = ok_cb;
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
776 data->cbs[1] = cancel_cb;
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
777 data->dialog = window;
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
778 gnt_box_set_title(GNT_BOX(window), title);
18561
e48a272d383c Remember the open/save file locations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18402
diff changeset
779
e48a272d383c Remember the open/save file locations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18402
diff changeset
780 gnt_file_sel_set_current_location(sel, (path && *path) ? path : purple_home_dir());
e48a272d383c Remember the open/save file locations.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18402
diff changeset
781
39621
ac33d7dd1ead Use new GntFileSel signals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39619
diff changeset
782 g_signal_connect(G_OBJECT(sel), "destroy",
15990
8f3cecb0bf47 use file select dialog
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15987
diff changeset
783 G_CALLBACK(file_cancel_cb), data);
39621
ac33d7dd1ead Use new GntFileSel signals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39619
diff changeset
784 g_signal_connect(G_OBJECT(sel), "cancelled",
ac33d7dd1ead Use new GntFileSel signals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39619
diff changeset
785 G_CALLBACK(file_cancel_cb), data);
ac33d7dd1ead Use new GntFileSel signals.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39619
diff changeset
786 g_signal_connect(G_OBJECT(sel), "file_selected",
15990
8f3cecb0bf47 use file select dialog
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15987
diff changeset
787 G_CALLBACK(file_ok_cb), data);
15715
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
788
18562
c629fdadd30d Fix some crashes resulting from rejecting file-transfer requests.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18561
diff changeset
789 g_object_set_data_full(G_OBJECT(window), "filerequestdata", data,
c629fdadd30d Fix some crashes resulting from rejecting file-transfer requests.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18561
diff changeset
790 (GDestroyNotify)file_request_destroy);
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
791
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
792 return data;
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
793 }
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
794
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
795 static void *
34333
b92698241603 Request API refactoring: switch purple_request_file to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 34332
diff changeset
796 finch_request_file(const char *title, const char *filename, gboolean savedialog,
42079
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
797 GCallback ok_cb, GCallback cancel_cb,
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
798 G_GNUC_UNUSED PurpleRequestCommonParameters *cpar,
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
799 void *user_data)
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
800 {
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
801 FinchFileRequest *data;
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
802 const char *path;
15715
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
803
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
804 path = purple_prefs_get_path(savedialog ? "/finch/filelocations/last_save_folder" : "/finch/filelocations/last_open_folder");
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
805 data = finch_file_request_window(title ? title : (savedialog ? _("Save File...") : _("Open File...")), path,
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
806 ok_cb, cancel_cb, user_data);
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
807 data->save = savedialog;
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
808 if (savedialog)
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
809 gnt_file_sel_set_suggested_filename(GNT_FILE_SEL(data->dialog), filename);
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
810
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
811 gnt_widget_show(data->dialog);
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
812 return data->dialog;
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
813 }
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
814
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
815 static void *
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
816 finch_request_folder(const char *title, const char *dirname, GCallback ok_cb,
42079
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
817 GCallback cancel_cb,
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
818 G_GNUC_UNUSED PurpleRequestCommonParameters *cpar,
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
819 gpointer user_data)
22012
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
820 {
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
821 FinchFileRequest *data;
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
822
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
823 data = finch_file_request_window(title ? title : _("Choose Location..."), dirname,
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
824 ok_cb, cancel_cb, user_data);
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
825 data->save = TRUE;
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
826 gnt_file_sel_set_dirs_only(GNT_FILE_SEL(data->dialog), TRUE);
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
827
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
828 gnt_widget_show(data->dialog);
2b0a29b31ef5 Implement 'request_folder'. (so now the 'autoaccept' plugin cannot just be a Gtk plugin)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21175
diff changeset
829 return data->dialog;
15715
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
830 }
8c0cd13f4af3 The rest of Richard 'wabz' Nelson's patch for adding file-transfer ui.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14752
diff changeset
831
41720
bcfc2c9e5213 Move all of the UiOps to use struct initializers
Gary Kramlich <grim@reaperworld.com>
parents: 41202
diff changeset
832 static PurpleRequestUiOps uiops = {
bcfc2c9e5213 Move all of the UiOps to use struct initializers
Gary Kramlich <grim@reaperworld.com>
parents: 41202
diff changeset
833 .request_input = finch_request_input,
bcfc2c9e5213 Move all of the UiOps to use struct initializers
Gary Kramlich <grim@reaperworld.com>
parents: 41202
diff changeset
834 .request_choice = finch_request_choice,
bcfc2c9e5213 Move all of the UiOps to use struct initializers
Gary Kramlich <grim@reaperworld.com>
parents: 41202
diff changeset
835 .request_action = finch_request_action,
bcfc2c9e5213 Move all of the UiOps to use struct initializers
Gary Kramlich <grim@reaperworld.com>
parents: 41202
diff changeset
836 .request_fields = finch_request_fields,
bcfc2c9e5213 Move all of the UiOps to use struct initializers
Gary Kramlich <grim@reaperworld.com>
parents: 41202
diff changeset
837 .request_file = finch_request_file,
bcfc2c9e5213 Move all of the UiOps to use struct initializers
Gary Kramlich <grim@reaperworld.com>
parents: 41202
diff changeset
838 .request_folder = finch_request_folder,
bcfc2c9e5213 Move all of the UiOps to use struct initializers
Gary Kramlich <grim@reaperworld.com>
parents: 41202
diff changeset
839 .close_request = finch_close_request,
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
840 };
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
841
41840
fe350460fb1c Remove C99-obsoleted constructs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41720
diff changeset
842 PurpleRequestUiOps *
fe350460fb1c Remove C99-obsoleted constructs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41720
diff changeset
843 finch_request_get_ui_ops(void)
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
844 {
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
845 return &uiops;
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
846 }
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
847
41840
fe350460fb1c Remove C99-obsoleted constructs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41720
diff changeset
848 void
fe350460fb1c Remove C99-obsoleted constructs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41720
diff changeset
849 finch_request_init(void)
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
850 {
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
851 }
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
852
41840
fe350460fb1c Remove C99-obsoleted constructs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41720
diff changeset
853 void
fe350460fb1c Remove C99-obsoleted constructs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41720
diff changeset
854 finch_request_uninit(void)
14045
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
855 {
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
856 }
12b8c2bfd3fb [gaim-migrate @ 16552]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
857
42079
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
858 void
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
859 finch_request_save_in_prefs(G_GNUC_UNUSED gpointer data,
679258d92a92 Mark unused parameters as such for all finch
Gary Kramlich <grim@reaperworld.com>
parents: 41980
diff changeset
860 PurpleRequestFields *allfields)
16383
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
861 {
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
862 GList *list;
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
863 for (list = purple_request_fields_get_groups(allfields); list; list = list->next) {
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
864 PurpleRequestFieldGroup *group = list->data;
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
865 GList *fields = purple_request_field_group_get_fields(group);
30495
cc00c5e8b499 Fix data selection in a list-type request-field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 29049
diff changeset
866
16383
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
867 for (; fields ; fields = fields->next) {
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
868 PurpleRequestField *field = fields->data;
35378
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 34955
diff changeset
869 PurpleRequestFieldType type = purple_request_field_get_field_type(field);
16383
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
870 PurplePrefType pt;
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
871 gpointer val = NULL;
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
872 const char *id = purple_request_field_get_id(field);
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
873
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
874 switch (type) {
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
875 case PURPLE_REQUEST_FIELD_LIST:
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
876 val = purple_request_field_list_get_selected(field)->data;
30495
cc00c5e8b499 Fix data selection in a list-type request-field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 29049
diff changeset
877 val = purple_request_field_list_get_data(field, val);
16383
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
878 break;
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
879 case PURPLE_REQUEST_FIELD_BOOLEAN:
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
880 val = GINT_TO_POINTER(purple_request_field_bool_get_value(field));
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
881 break;
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
882 case PURPLE_REQUEST_FIELD_INTEGER:
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
883 val = GINT_TO_POINTER(purple_request_field_int_get_value(field));
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
884 break;
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
885 case PURPLE_REQUEST_FIELD_STRING:
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
886 val = (gpointer)purple_request_field_string_get_value(field);
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
887 break;
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
888 default:
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
889 break;
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
890 }
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
891
35378
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 34955
diff changeset
892 pt = purple_prefs_get_pref_type(id);
16383
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
893 switch (pt) {
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
894 case PURPLE_PREF_INT:
17470
8cba93978730 A change from o_sukhodolsky:
Richard Laager <rlaager@pidgin.im>
parents: 17164
diff changeset
895 {
18301
1988607deed3 Fix a few runtime warnings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18190
diff changeset
896 long int tmp = GPOINTER_TO_INT(val);
35991
e6937e52930b Fix some CWE-252 coverity warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31294
diff changeset
897 if (type == PURPLE_REQUEST_FIELD_LIST) {
e6937e52930b Fix some CWE-252 coverity warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31294
diff changeset
898 /* Lists always return string */
e6937e52930b Fix some CWE-252 coverity warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31294
diff changeset
899 if (sscanf(val, "%ld", &tmp) != 1)
e6937e52930b Fix some CWE-252 coverity warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31294
diff changeset
900 tmp = 0;
e6937e52930b Fix some CWE-252 coverity warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 31294
diff changeset
901 }
17470
8cba93978730 A change from o_sukhodolsky:
Richard Laager <rlaager@pidgin.im>
parents: 17164
diff changeset
902 purple_prefs_set_int(id, (gint)tmp);
16383
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
903 break;
17470
8cba93978730 A change from o_sukhodolsky:
Richard Laager <rlaager@pidgin.im>
parents: 17164
diff changeset
904 }
16383
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
905 case PURPLE_PREF_BOOLEAN:
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
906 purple_prefs_set_bool(id, GPOINTER_TO_INT(val));
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
907 break;
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
908 case PURPLE_PREF_STRING:
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
909 purple_prefs_set_string(id, val);
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
910 break;
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
911 default:
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
912 break;
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
913 }
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
914 }
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
915 }
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
916 }
af8d75120347 Implement the plugin-pref ui using the request api. The preferences for the core plugins can now be modified from Finch. And no new strings.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16255
diff changeset
917
22135
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
918 GntWidget *finch_request_field_get_widget(PurpleRequestField *field)
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
919 {
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
920 GntWidget *ret = NULL;
35378
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 34955
diff changeset
921 switch (purple_request_field_get_field_type(field)) {
22135
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
922 case PURPLE_REQUEST_FIELD_BOOLEAN:
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
923 ret = create_boolean_field(field);
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
924 break;
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
925 case PURPLE_REQUEST_FIELD_STRING:
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
926 ret = create_string_field(field, NULL);
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
927 break;
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
928 case PURPLE_REQUEST_FIELD_INTEGER:
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
929 ret = create_integer_field(field);
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
930 break;
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
931 case PURPLE_REQUEST_FIELD_CHOICE:
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
932 ret = create_choice_field(field);
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
933 break;
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
934 case PURPLE_REQUEST_FIELD_LIST:
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
935 ret = create_list_field(field);
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
936 break;
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
937 case PURPLE_REQUEST_FIELD_ACCOUNT:
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
938 ret = create_account_field(field);
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
939 break;
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
940 default:
35378
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 34955
diff changeset
941 purple_debug_error("GntRequest", "Unimplemented request-field %d\n",
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 34955
diff changeset
942 purple_request_field_get_field_type(field));
22135
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
943 break;
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
944 }
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
945 return ret;
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
946 }
f593e34a0e8e Add a function to get a widget for a request field.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22012
diff changeset
947

mercurial