Mercurial > pidgin
annotate finch/gntrequest.c @ 21289:b35cb9abaed2
Removed typedef
| author | Gabriel Schulhof <nix@go-nix.ca> |
|---|---|
| date | Sat, 10 Nov 2007 14:58:54 +0000 |
| parents | cab348e39751 |
| children | 51cf02dbdb0e |
| rev | line source |
|---|---|
| 15817 | 1 /** |
| 2 * @file gntrequest.c GNT Request API | |
|
16194
0f0832c13fcb
Rename the Doxygen group from gntui to finch and define the finch group
Richard Laager <rlaager@wiktel.com>
parents:
16164
diff
changeset
|
3 * @ingroup finch |
|
20074
6bf32c9e15a7
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents:
19761
diff
changeset
|
4 */ |
|
6bf32c9e15a7
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents:
19761
diff
changeset
|
5 |
|
6bf32c9e15a7
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents:
19761
diff
changeset
|
6 /* finch |
| 15817 | 7 * |
|
15870
66dff3dfdea6
Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@wiktel.com>
parents:
15843
diff
changeset
|
8 * Finch is the legal property of its developers, whose names are too numerous |
| 15817 | 9 * to list here. Please refer to the COPYRIGHT file distributed with this |
| 10 * source distribution. | |
| 11 * | |
| 12 * This program is free software; you can redistribute it and/or modify | |
| 13 * it under the terms of the GNU General Public License as published by | |
| 14 * the Free Software Foundation; either version 2 of the License, or | |
| 15 * (at your option) any later version. | |
| 16 * | |
| 17 * This program is distributed in the hope that it will be useful, | |
| 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 20 * GNU General Public License for more details. | |
| 21 * | |
| 22 * You should have received a copy of the GNU General Public License | |
| 23 * along with this program; if not, write to the Free Software | |
|
19681
44b4e8bd759b
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
19528
diff
changeset
|
24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 15817 | 25 */ |
| 26 #include <gnt.h> | |
| 27 #include <gntbox.h> | |
| 28 #include <gntbutton.h> | |
| 29 #include <gntcheckbox.h> | |
| 30 #include <gntcombobox.h> | |
| 31 #include <gntentry.h> | |
|
15927
846a00760176
use file select dialog
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15924
diff
changeset
|
32 #include <gntfilesel.h> |
| 15817 | 33 #include <gntlabel.h> |
| 34 #include <gntline.h> | |
| 35 #include <gnttree.h> | |
| 36 | |
| 15822 | 37 #include "finch.h" |
| 15817 | 38 #include "gntrequest.h" |
|
16164
87019c619be0
Include header files, not source files. Bah.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15936
diff
changeset
|
39 #include "util.h" |
| 15817 | 40 |
| 41 typedef struct | |
| 42 { | |
| 43 void *user_data; | |
|
15927
846a00760176
use file select dialog
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15924
diff
changeset
|
44 GntWidget *dialog; |
| 15817 | 45 GCallback *cbs; |
|
18410
719f73b9a593
Remember the open/save file locations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18347
diff
changeset
|
46 gboolean save; |
| 15822 | 47 } PurpleGntFileRequest; |
| 15817 | 48 |
| 49 static GntWidget * | |
| 50 setup_request_window(const char *title, const char *primary, | |
| 15822 | 51 const char *secondary, PurpleRequestType type) |
| 15817 | 52 { |
| 53 GntWidget *window; | |
| 54 | |
| 55 window = gnt_vbox_new(FALSE); | |
| 56 gnt_box_set_toplevel(GNT_BOX(window), TRUE); | |
| 57 gnt_box_set_title(GNT_BOX(window), title); | |
| 58 gnt_box_set_alignment(GNT_BOX(window), GNT_ALIGN_MID); | |
| 59 | |
| 60 if (primary) | |
| 61 gnt_box_add_widget(GNT_BOX(window), | |
| 62 gnt_label_new_with_format(primary, GNT_TEXT_FLAG_BOLD)); | |
| 63 if (secondary) | |
| 64 gnt_box_add_widget(GNT_BOX(window), gnt_label_new(secondary)); | |
| 65 | |
| 15822 | 66 g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(purple_request_close), |
| 15817 | 67 GINT_TO_POINTER(type)); |
| 68 | |
| 69 return window; | |
| 70 } | |
| 71 | |
|
18333
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
72 /** |
|
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
73 * If the window is closed by the wm (ie, without triggering any of |
|
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
74 * the buttons, then do some default callback. |
|
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
75 */ |
|
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
76 static void |
|
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
77 setup_default_callback(GntWidget *window, gpointer default_cb, gpointer data) |
|
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
78 { |
|
20719
2354c9748a66
Do not connect to a signal with a NULL callback. Gets rid of a runtime warning.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20074
diff
changeset
|
79 if (default_cb == NULL) |
|
2354c9748a66
Do not connect to a signal with a NULL callback. Gets rid of a runtime warning.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
20074
diff
changeset
|
80 return; |
|
18347
a90f9a0b90c8
Update search-api to not crash. Searching for users in xmpp/oscar works now.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18333
diff
changeset
|
81 g_object_set_data(G_OBJECT(window), "default-callback", default_cb); |
|
18333
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
82 g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(default_cb), data); |
|
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
83 } |
|
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
84 |
|
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
85 static void |
|
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
86 action_performed(GntWidget *button, gpointer data) |
|
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
87 { |
|
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
88 g_signal_handlers_disconnect_matched(data, G_SIGNAL_MATCH_FUNC, |
|
18347
a90f9a0b90c8
Update search-api to not crash. Searching for users in xmpp/oscar works now.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18333
diff
changeset
|
89 0, 0, NULL, |
|
a90f9a0b90c8
Update search-api to not crash. Searching for users in xmpp/oscar works now.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18333
diff
changeset
|
90 g_object_get_data(data, "default-callback"), |
|
a90f9a0b90c8
Update search-api to not crash. Searching for users in xmpp/oscar works now.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18333
diff
changeset
|
91 NULL); |
|
18333
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
92 } |
|
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
93 |
|
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
94 /** |
|
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
95 * window: this is the window |
|
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
96 * userdata: the userdata to pass to the primary callbacks |
|
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
97 * cb: the callback |
|
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
98 * data: data for the callback |
|
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
99 * (text, primary-callback) pairs, ended by a NULL |
|
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
100 */ |
| 15817 | 101 static GntWidget * |
|
18333
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
102 setup_button_box(GntWidget *win, gpointer userdata, gpointer cb, gpointer data, ...) |
| 15817 | 103 { |
| 104 GntWidget *box, *button; | |
| 105 va_list list; | |
| 106 const char *text; | |
| 107 gpointer callback; | |
| 108 | |
| 109 box = gnt_hbox_new(FALSE); | |
| 110 | |
| 111 va_start(list, data); | |
| 112 | |
| 113 while ((text = va_arg(list, const char *))) | |
| 114 { | |
| 115 callback = va_arg(list, gpointer); | |
| 116 button = gnt_button_new(text); | |
| 117 gnt_box_add_widget(GNT_BOX(box), button); | |
| 118 g_object_set_data(G_OBJECT(button), "activate-callback", callback); | |
| 119 g_object_set_data(G_OBJECT(button), "activate-userdata", userdata); | |
|
18347
a90f9a0b90c8
Update search-api to not crash. Searching for users in xmpp/oscar works now.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18333
diff
changeset
|
120 g_signal_connect(G_OBJECT(button), "activate", G_CALLBACK(action_performed), win); |
| 15817 | 121 g_signal_connect(G_OBJECT(button), "activate", G_CALLBACK(cb), data); |
| 122 } | |
| 123 | |
| 124 va_end(list); | |
| 125 return box; | |
| 126 } | |
| 127 | |
| 128 static void | |
| 129 notify_input_cb(GntWidget *button, GntWidget *entry) | |
| 130 { | |
| 15822 | 131 PurpleRequestInputCb callback = g_object_get_data(G_OBJECT(button), "activate-callback"); |
| 15817 | 132 gpointer data = g_object_get_data(G_OBJECT(button), "activate-userdata"); |
| 133 const char *text = gnt_entry_get_text(GNT_ENTRY(entry)); | |
| 134 | |
| 135 if (callback) | |
| 136 callback(data, text); | |
| 137 | |
| 138 while (button->parent) | |
| 139 button = button->parent; | |
| 140 | |
| 15822 | 141 purple_request_close(PURPLE_REQUEST_INPUT, button); |
| 15817 | 142 } |
| 143 | |
| 144 static void * | |
| 145 finch_request_input(const char *title, const char *primary, | |
| 146 const char *secondary, const char *default_value, | |
| 147 gboolean multiline, gboolean masked, gchar *hint, | |
| 148 const char *ok_text, GCallback ok_cb, | |
| 149 const char *cancel_text, GCallback cancel_cb, | |
|
16439
08db93bbd798
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evan.s@dreskin.net>
parents:
16310
diff
changeset
|
150 PurpleAccount *account, const char *who, PurpleConversation *conv, |
|
21095
cab348e39751
disapproval of revision '0e5385979f58d6ee74f668bb9b5dfd1ae3b6043f'
Richard Laager <rlaager@wiktel.com>
parents:
21086
diff
changeset
|
151 const char *ui_hint, void *user_data) |
| 15817 | 152 { |
| 153 GntWidget *window, *box, *entry; | |
| 154 | |
| 15822 | 155 window = setup_request_window(title, primary, secondary, PURPLE_REQUEST_INPUT); |
| 15817 | 156 |
| 157 entry = gnt_entry_new(default_value); | |
| 158 if (masked) | |
| 159 gnt_entry_set_masked(GNT_ENTRY(entry), TRUE); | |
| 160 gnt_box_add_widget(GNT_BOX(window), entry); | |
| 161 | |
|
18333
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
162 box = setup_button_box(window, user_data, notify_input_cb, entry, |
| 15817 | 163 ok_text, ok_cb, cancel_text, cancel_cb, NULL); |
| 164 gnt_box_add_widget(GNT_BOX(window), box); | |
| 165 | |
|
18333
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
166 setup_default_callback(window, cancel_cb, user_data); |
| 15817 | 167 gnt_widget_show(window); |
| 168 | |
| 169 return window; | |
| 170 } | |
| 171 | |
| 172 static void | |
| 15822 | 173 finch_close_request(PurpleRequestType type, gpointer ui_handle) |
| 15817 | 174 { |
| 175 GntWidget *widget = GNT_WIDGET(ui_handle); | |
|
16310
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
176 if (type == PURPLE_REQUEST_FIELDS) { |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
177 PurpleRequestFields *fields = g_object_get_data(G_OBJECT(widget), "fields"); |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
178 purple_request_fields_destroy(fields); |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
179 } |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
180 |
| 15817 | 181 while (widget->parent) |
| 182 widget = widget->parent; | |
| 183 gnt_widget_destroy(widget); | |
| 184 } | |
| 185 | |
| 186 static void | |
| 187 request_choice_cb(GntWidget *button, GntComboBox *combo) | |
| 188 { | |
| 15822 | 189 PurpleRequestChoiceCb callback = g_object_get_data(G_OBJECT(button), "activate-callback"); |
| 15817 | 190 gpointer data = g_object_get_data(G_OBJECT(button), "activate-userdata"); |
| 191 int choice = GPOINTER_TO_INT(gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo))) - 1; | |
| 192 | |
| 193 if (callback) | |
| 194 callback(data, choice); | |
| 195 | |
| 196 while (button->parent) | |
| 197 button = button->parent; | |
| 198 | |
| 15822 | 199 purple_request_close(PURPLE_REQUEST_INPUT, button); |
| 15817 | 200 } |
| 201 | |
| 202 static void * | |
| 203 finch_request_choice(const char *title, const char *primary, | |
|
19528
b7fa8fa4de5b
Fix building on older glib versions.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18411
diff
changeset
|
204 const char *secondary, int default_value, |
| 15817 | 205 const char *ok_text, GCallback ok_cb, |
| 206 const char *cancel_text, GCallback cancel_cb, | |
|
16439
08db93bbd798
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evan.s@dreskin.net>
parents:
16310
diff
changeset
|
207 PurpleAccount *account, const char *who, PurpleConversation *conv, |
|
21095
cab348e39751
disapproval of revision '0e5385979f58d6ee74f668bb9b5dfd1ae3b6043f'
Richard Laager <rlaager@wiktel.com>
parents:
21086
diff
changeset
|
208 const char *ui_hint, void *user_data, va_list choices) |
| 15817 | 209 { |
| 210 GntWidget *window, *combo, *box; | |
| 211 const char *text; | |
| 212 int val; | |
| 213 | |
| 15822 | 214 window = setup_request_window(title, primary, secondary, PURPLE_REQUEST_CHOICE); |
| 15817 | 215 |
| 216 combo = gnt_combo_box_new(); | |
| 217 gnt_box_add_widget(GNT_BOX(window), combo); | |
| 218 while ((text = va_arg(choices, const char *))) | |
| 219 { | |
| 220 val = va_arg(choices, int); | |
| 221 gnt_combo_box_add_data(GNT_COMBO_BOX(combo), GINT_TO_POINTER(val + 1), text); | |
| 222 } | |
| 223 gnt_combo_box_set_selected(GNT_COMBO_BOX(combo), GINT_TO_POINTER(default_value + 1)); | |
| 224 | |
|
18333
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
225 box = setup_button_box(window, user_data, request_choice_cb, combo, |
| 15817 | 226 ok_text, ok_cb, cancel_text, cancel_cb, NULL); |
| 227 gnt_box_add_widget(GNT_BOX(window), box); | |
| 228 | |
|
18333
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
229 setup_default_callback(window, cancel_cb, user_data); |
| 15817 | 230 gnt_widget_show(window); |
| 231 | |
| 232 return window; | |
| 233 } | |
| 234 | |
| 235 static void | |
| 236 request_action_cb(GntWidget *button, GntWidget *window) | |
| 237 { | |
| 15822 | 238 PurpleRequestActionCb callback = g_object_get_data(G_OBJECT(button), "activate-callback"); |
| 15817 | 239 gpointer data = g_object_get_data(G_OBJECT(button), "activate-userdata"); |
| 240 int id = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(button), "activate-id")); | |
| 241 | |
| 242 if (callback) | |
| 243 callback(data, id); | |
| 244 | |
| 15822 | 245 purple_request_close(PURPLE_REQUEST_ACTION, window); |
| 15817 | 246 } |
| 247 | |
| 248 static void* | |
| 249 finch_request_action(const char *title, const char *primary, | |
|
19528
b7fa8fa4de5b
Fix building on older glib versions.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18411
diff
changeset
|
250 const char *secondary, int default_value, |
|
16439
08db93bbd798
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evan.s@dreskin.net>
parents:
16310
diff
changeset
|
251 PurpleAccount *account, const char *who, PurpleConversation *conv, |
|
21095
cab348e39751
disapproval of revision '0e5385979f58d6ee74f668bb9b5dfd1ae3b6043f'
Richard Laager <rlaager@wiktel.com>
parents:
21086
diff
changeset
|
252 const char *ui_hint, void *user_data, size_t actioncount, |
| 15817 | 253 va_list actions) |
| 254 { | |
| 255 GntWidget *window, *box, *button; | |
| 256 int i; | |
| 257 | |
| 15822 | 258 window = setup_request_window(title, primary, secondary, PURPLE_REQUEST_ACTION); |
| 15817 | 259 |
| 260 box = gnt_hbox_new(FALSE); | |
| 261 gnt_box_add_widget(GNT_BOX(window), box); | |
| 262 for (i = 0; i < actioncount; i++) | |
| 263 { | |
| 264 const char *text = va_arg(actions, const char *); | |
| 15822 | 265 PurpleRequestActionCb callback = va_arg(actions, PurpleRequestActionCb); |
| 15817 | 266 |
| 267 button = gnt_button_new(text); | |
| 268 gnt_box_add_widget(GNT_BOX(box), button); | |
| 269 | |
| 270 g_object_set_data(G_OBJECT(button), "activate-callback", callback); | |
| 271 g_object_set_data(G_OBJECT(button), "activate-userdata", user_data); | |
| 272 g_object_set_data(G_OBJECT(button), "activate-id", GINT_TO_POINTER(i)); | |
| 273 g_signal_connect(G_OBJECT(button), "activate", G_CALLBACK(request_action_cb), window); | |
| 274 } | |
| 275 | |
| 276 gnt_widget_show(window); | |
| 277 | |
| 278 return window; | |
| 279 } | |
| 280 | |
| 281 static void | |
| 15822 | 282 request_fields_cb(GntWidget *button, PurpleRequestFields *fields) |
| 15817 | 283 { |
| 15822 | 284 PurpleRequestFieldsCb callback = g_object_get_data(G_OBJECT(button), "activate-callback"); |
| 15817 | 285 gpointer data = g_object_get_data(G_OBJECT(button), "activate-userdata"); |
| 286 GList *list; | |
| 287 | |
|
16310
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
288 /* Update the data of the fields. Pidgin does this differently. Instead of |
| 15817 | 289 * updating the fields at the end like here, it updates the appropriate field |
| 290 * instantly whenever a change is made. That allows it to make sure the | |
| 291 * 'required' fields are entered before the user can hit OK. It's not the case | |
| 292 * here, althought it can be done. I am not honouring the 'required' fields | |
| 293 * for the moment. */ | |
| 15822 | 294 for (list = purple_request_fields_get_groups(fields); list; list = list->next) |
| 15817 | 295 { |
| 15822 | 296 PurpleRequestFieldGroup *group = list->data; |
| 297 GList *fields = purple_request_field_group_get_fields(group); | |
| 15817 | 298 |
| 299 for (; fields ; fields = fields->next) | |
| 300 { | |
| 15822 | 301 PurpleRequestField *field = fields->data; |
| 302 PurpleRequestFieldType type = purple_request_field_get_type(field); | |
| 303 if (type == PURPLE_REQUEST_FIELD_BOOLEAN) | |
| 15817 | 304 { |
| 305 GntWidget *check = field->ui_data; | |
| 306 gboolean value = gnt_check_box_get_checked(GNT_CHECK_BOX(check)); | |
| 15822 | 307 purple_request_field_bool_set_value(field, value); |
| 15817 | 308 } |
| 15822 | 309 else if (type == PURPLE_REQUEST_FIELD_STRING) |
| 15817 | 310 { |
| 311 GntWidget *entry = field->ui_data; | |
| 312 const char *text = gnt_entry_get_text(GNT_ENTRY(entry)); | |
| 15822 | 313 purple_request_field_string_set_value(field, (text && *text) ? text : NULL); |
| 15817 | 314 } |
| 15822 | 315 else if (type == PURPLE_REQUEST_FIELD_INTEGER) |
| 15817 | 316 { |
| 317 GntWidget *entry = field->ui_data; | |
| 318 const char *text = gnt_entry_get_text(GNT_ENTRY(entry)); | |
| 319 int value = (text && *text) ? atoi(text) : 0; | |
| 15822 | 320 purple_request_field_int_set_value(field, value); |
| 15817 | 321 } |
| 15822 | 322 else if (type == PURPLE_REQUEST_FIELD_CHOICE) |
| 15817 | 323 { |
| 324 GntWidget *combo = field->ui_data; | |
| 325 int id; | |
| 326 id = GPOINTER_TO_INT(gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo))); | |
| 15822 | 327 purple_request_field_choice_set_value(field, id); |
| 15817 | 328 } |
| 15822 | 329 else if (type == PURPLE_REQUEST_FIELD_LIST) |
| 15817 | 330 { |
| 331 GList *list = NULL; | |
| 15822 | 332 if (purple_request_field_list_get_multi_select(field)) |
| 15817 | 333 { |
|
18118
ab6d2763b8d8
Re-fix the DBus list handling code by killing const GList* / const GSList*
Richard Laager <rlaager@wiktel.com>
parents:
18063
diff
changeset
|
334 GList *iter; |
| 15817 | 335 GntWidget *tree = field->ui_data; |
| 336 | |
| 15822 | 337 iter = purple_request_field_list_get_items(field); |
| 15817 | 338 for (; iter; iter = iter->next) |
| 339 { | |
| 340 const char *text = iter->data; | |
| 15822 | 341 gpointer key = purple_request_field_list_get_data(field, text); |
| 15817 | 342 if (gnt_tree_get_choice(GNT_TREE(tree), key)) |
| 343 list = g_list_prepend(list, key); | |
| 344 } | |
| 345 } | |
| 346 else | |
| 347 { | |
| 348 GntWidget *combo = field->ui_data; | |
| 349 gpointer data = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo)); | |
| 350 list = g_list_append(list, data); | |
| 351 } | |
| 352 | |
| 15822 | 353 purple_request_field_list_set_selected(field, list); |
| 15817 | 354 g_list_free(list); |
| 355 } | |
| 15822 | 356 else if (type == PURPLE_REQUEST_FIELD_ACCOUNT) |
| 15817 | 357 { |
| 358 GntWidget *combo = field->ui_data; | |
| 15822 | 359 PurpleAccount *acc = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo)); |
| 360 purple_request_field_account_set_value(field, acc); | |
| 15817 | 361 } |
| 362 } | |
| 363 } | |
| 364 | |
| 365 if (callback) | |
| 366 callback(data, fields); | |
| 367 | |
| 368 while (button->parent) | |
| 369 button = button->parent; | |
| 370 | |
| 15822 | 371 purple_request_close(PURPLE_REQUEST_FIELDS, button); |
| 15817 | 372 } |
| 373 | |
|
19761
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
374 static void |
|
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
375 update_selected_account(GntEntry *screenname, const char *start, const char *end, |
|
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
376 GntComboBox *accountlist) |
|
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
377 { |
|
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
378 GList *accounts = gnt_tree_get_rows(GNT_TREE(accountlist->dropdown)); |
|
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
379 const char *name = gnt_entry_get_text(screenname); |
|
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
380 while (accounts) { |
|
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
381 if (purple_find_buddy(accounts->data, name)) { |
|
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
382 gnt_combo_box_set_selected(accountlist, accounts->data); |
|
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
383 gnt_widget_draw(GNT_WIDGET(accountlist)); |
|
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
384 break; |
|
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
385 } |
|
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
386 accounts = accounts->next; |
|
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
387 } |
|
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
388 } |
|
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
389 |
| 15817 | 390 static void * |
| 391 finch_request_fields(const char *title, const char *primary, | |
| 15822 | 392 const char *secondary, PurpleRequestFields *allfields, |
| 15817 | 393 const char *ok, GCallback ok_cb, |
| 394 const char *cancel, GCallback cancel_cb, | |
|
16439
08db93bbd798
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evan.s@dreskin.net>
parents:
16310
diff
changeset
|
395 PurpleAccount *account, const char *who, PurpleConversation *conv, |
|
21095
cab348e39751
disapproval of revision '0e5385979f58d6ee74f668bb9b5dfd1ae3b6043f'
Richard Laager <rlaager@wiktel.com>
parents:
21086
diff
changeset
|
396 const char *ui_hint, void *userdata) |
| 15817 | 397 { |
| 398 GntWidget *window, *box; | |
| 399 GList *grlist; | |
|
19761
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
400 GntWidget *screenname = NULL, *accountlist = NULL; |
| 15817 | 401 |
| 15822 | 402 window = setup_request_window(title, primary, secondary, PURPLE_REQUEST_FIELDS); |
| 15817 | 403 |
| 404 /* This is how it's going to work: the request-groups are going to be | |
| 405 * stacked vertically one after the other. A GntLine will be separating | |
| 406 * the groups. */ | |
| 407 box = gnt_vbox_new(FALSE); | |
| 408 gnt_box_set_pad(GNT_BOX(box), 0); | |
| 409 gnt_box_set_fill(GNT_BOX(box), TRUE); | |
| 15822 | 410 for (grlist = purple_request_fields_get_groups(allfields); grlist; grlist = grlist->next) |
| 15817 | 411 { |
| 15822 | 412 PurpleRequestFieldGroup *group = grlist->data; |
| 413 GList *fields = purple_request_field_group_get_fields(group); | |
| 15817 | 414 GntWidget *hbox; |
| 15822 | 415 const char *title = purple_request_field_group_get_title(group); |
| 15817 | 416 |
| 417 if (title) | |
| 418 gnt_box_add_widget(GNT_BOX(box), | |
| 419 gnt_label_new_with_format(title, GNT_TEXT_FLAG_BOLD)); | |
| 420 | |
| 421 for (; fields ; fields = fields->next) | |
| 422 { | |
| 423 /* XXX: Break each of the fields into a separate function? */ | |
| 15822 | 424 PurpleRequestField *field = fields->data; |
| 425 PurpleRequestFieldType type = purple_request_field_get_type(field); | |
| 426 const char *label = purple_request_field_get_label(field); | |
| 15817 | 427 |
| 428 hbox = gnt_hbox_new(TRUE); /* hrm */ | |
| 429 gnt_box_add_widget(GNT_BOX(box), hbox); | |
| 430 | |
| 15822 | 431 if (type != PURPLE_REQUEST_FIELD_BOOLEAN && label) |
| 15817 | 432 { |
| 433 GntWidget *l = gnt_label_new(label); | |
| 434 gnt_widget_set_size(l, 0, 1); | |
| 435 gnt_box_add_widget(GNT_BOX(hbox), l); | |
| 436 } | |
| 437 | |
| 15822 | 438 if (type == PURPLE_REQUEST_FIELD_BOOLEAN) |
| 15817 | 439 { |
| 440 GntWidget *check = gnt_check_box_new(label); | |
| 441 gnt_check_box_set_checked(GNT_CHECK_BOX(check), | |
| 15822 | 442 purple_request_field_bool_get_default_value(field)); |
| 15817 | 443 gnt_box_add_widget(GNT_BOX(hbox), check); |
| 444 field->ui_data = check; | |
| 445 } | |
| 15822 | 446 else if (type == PURPLE_REQUEST_FIELD_STRING) |
| 15817 | 447 { |
| 15829 | 448 const char *hint = purple_request_field_get_type_hint(field); |
| 15817 | 449 GntWidget *entry = gnt_entry_new( |
| 15822 | 450 purple_request_field_string_get_default_value(field)); |
| 15817 | 451 gnt_entry_set_masked(GNT_ENTRY(entry), |
| 15822 | 452 purple_request_field_string_is_masked(field)); |
|
18222
ef65d43190e5
Fix a few runtime warnings.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18118
diff
changeset
|
453 if (hint && purple_str_has_prefix(hint, "screenname")) { |
| 15829 | 454 PurpleBlistNode *node = purple_blist_get_root(); |
| 455 gboolean offline = purple_str_has_suffix(hint, "all"); | |
| 456 for (; node; node = purple_blist_node_next(node, offline)) { | |
| 457 if (!PURPLE_BLIST_NODE_IS_BUDDY(node)) | |
|
15826
f59cfcce68a8
Add auto-complete support in request-entries that have 'screenname' hint set. This can be useful in, for example, 'send im' dialog etc.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15817
diff
changeset
|
458 continue; |
| 15829 | 459 gnt_entry_add_suggest(GNT_ENTRY(entry), purple_buddy_get_name((PurpleBuddy*)node)); |
|
15826
f59cfcce68a8
Add auto-complete support in request-entries that have 'screenname' hint set. This can be useful in, for example, 'send im' dialog etc.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15817
diff
changeset
|
460 } |
|
f59cfcce68a8
Add auto-complete support in request-entries that have 'screenname' hint set. This can be useful in, for example, 'send im' dialog etc.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15817
diff
changeset
|
461 gnt_entry_set_always_suggest(GNT_ENTRY(entry), TRUE); |
|
19761
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
462 screenname = entry; |
|
15843
e74c2488448b
Group autocomplete for buddy adding
Richard Nelson <wabz@pidgin.im>
parents:
15829
diff
changeset
|
463 } else if (hint && !strcmp(hint, "group")) { |
|
e74c2488448b
Group autocomplete for buddy adding
Richard Nelson <wabz@pidgin.im>
parents:
15829
diff
changeset
|
464 PurpleBlistNode *node; |
|
e74c2488448b
Group autocomplete for buddy adding
Richard Nelson <wabz@pidgin.im>
parents:
15829
diff
changeset
|
465 for (node = purple_blist_get_root(); node; node = node->next) { |
|
e74c2488448b
Group autocomplete for buddy adding
Richard Nelson <wabz@pidgin.im>
parents:
15829
diff
changeset
|
466 if (PURPLE_BLIST_NODE_IS_GROUP(node)) |
|
e74c2488448b
Group autocomplete for buddy adding
Richard Nelson <wabz@pidgin.im>
parents:
15829
diff
changeset
|
467 gnt_entry_add_suggest(GNT_ENTRY(entry), ((PurpleGroup *)node)->name); |
|
e74c2488448b
Group autocomplete for buddy adding
Richard Nelson <wabz@pidgin.im>
parents:
15829
diff
changeset
|
468 } |
|
15826
f59cfcce68a8
Add auto-complete support in request-entries that have 'screenname' hint set. This can be useful in, for example, 'send im' dialog etc.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15817
diff
changeset
|
469 } |
| 15817 | 470 gnt_box_add_widget(GNT_BOX(hbox), entry); |
| 471 field->ui_data = entry; | |
| 472 } | |
| 15822 | 473 else if (type == PURPLE_REQUEST_FIELD_INTEGER) |
| 15817 | 474 { |
| 475 char str[256]; | |
| 15822 | 476 int val = purple_request_field_int_get_default_value(field); |
| 15817 | 477 GntWidget *entry; |
| 478 | |
| 479 snprintf(str, sizeof(str), "%d", val); | |
| 480 entry = gnt_entry_new(str); | |
| 481 gnt_entry_set_flag(GNT_ENTRY(entry), GNT_ENTRY_FLAG_INT); | |
| 482 gnt_box_add_widget(GNT_BOX(hbox), entry); | |
| 483 field->ui_data = entry; | |
| 484 } | |
| 15822 | 485 else if (type == PURPLE_REQUEST_FIELD_CHOICE) |
| 15817 | 486 { |
| 487 int id; | |
|
18118
ab6d2763b8d8
Re-fix the DBus list handling code by killing const GList* / const GSList*
Richard Laager <rlaager@wiktel.com>
parents:
18063
diff
changeset
|
488 GList *list; |
| 15817 | 489 GntWidget *combo = gnt_combo_box_new(); |
| 490 gnt_box_add_widget(GNT_BOX(hbox), combo); | |
| 491 field->ui_data = combo; | |
| 492 | |
| 15822 | 493 list = purple_request_field_choice_get_labels(field); |
| 15817 | 494 for (id = 1; list; list = list->next, id++) |
| 495 { | |
| 496 gnt_combo_box_add_data(GNT_COMBO_BOX(combo), | |
| 497 GINT_TO_POINTER(id), list->data); | |
| 498 } | |
| 499 gnt_combo_box_set_selected(GNT_COMBO_BOX(combo), | |
| 15822 | 500 GINT_TO_POINTER(purple_request_field_choice_get_default_value(field))); |
| 15817 | 501 } |
| 15822 | 502 else if (type == PURPLE_REQUEST_FIELD_LIST) |
| 15817 | 503 { |
|
18118
ab6d2763b8d8
Re-fix the DBus list handling code by killing const GList* / const GSList*
Richard Laager <rlaager@wiktel.com>
parents:
18063
diff
changeset
|
504 GList *list; |
| 15822 | 505 gboolean multi = purple_request_field_list_get_multi_select(field); |
| 15817 | 506 if (multi) |
| 507 { | |
| 508 GntWidget *tree = gnt_tree_new(); | |
| 509 gnt_box_add_widget(GNT_BOX(hbox), tree); | |
| 510 field->ui_data = tree; | |
| 511 | |
| 15822 | 512 list = purple_request_field_list_get_items(field); |
| 15817 | 513 for (; list; list = list->next) |
| 514 { | |
| 515 const char *text = list->data; | |
| 15822 | 516 gpointer key = purple_request_field_list_get_data(field, text); |
| 15817 | 517 gnt_tree_add_choice(GNT_TREE(tree), key, |
| 518 gnt_tree_create_row(GNT_TREE(tree), text), NULL, NULL); | |
| 15822 | 519 if (purple_request_field_list_is_selected(field, text)) |
| 15817 | 520 gnt_tree_set_choice(GNT_TREE(tree), key, TRUE); |
| 521 } | |
| 522 } | |
| 523 else | |
| 524 { | |
| 525 GntWidget *combo = gnt_combo_box_new(); | |
| 526 gnt_box_set_alignment(GNT_BOX(hbox), GNT_ALIGN_MID); | |
| 527 gnt_box_add_widget(GNT_BOX(hbox), combo); | |
| 528 field->ui_data = combo; | |
| 529 | |
| 15822 | 530 list = purple_request_field_list_get_items(field); |
| 15817 | 531 for (; list; list = list->next) |
| 532 { | |
| 533 const char *text = list->data; | |
| 15822 | 534 gpointer key = purple_request_field_list_get_data(field, text); |
| 15817 | 535 gnt_combo_box_add_data(GNT_COMBO_BOX(combo), key, text); |
| 15822 | 536 if (purple_request_field_list_is_selected(field, text)) |
| 15817 | 537 gnt_combo_box_set_selected(GNT_COMBO_BOX(combo), key); |
| 538 } | |
| 539 } | |
| 540 } | |
| 15822 | 541 else if (type == PURPLE_REQUEST_FIELD_ACCOUNT) |
| 15817 | 542 { |
| 543 gboolean all; | |
| 15822 | 544 PurpleAccount *def; |
|
18063
926ccb104da0
disapproval of revision '1411afd7660760db59966c3a9f18e2adab8eb27e'
Richard Laager <rlaager@wiktel.com>
parents:
18058
diff
changeset
|
545 GList *list; |
| 15817 | 546 GntWidget *combo = gnt_combo_box_new(); |
| 547 gnt_box_set_alignment(GNT_BOX(hbox), GNT_ALIGN_MID); | |
| 548 gnt_box_add_widget(GNT_BOX(hbox), combo); | |
| 549 field->ui_data = combo; | |
| 550 | |
| 15822 | 551 all = purple_request_field_account_get_show_all(field); |
|
16927
43abb4942a6d
Select the right account when adding a buddy after authorizing her.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16439
diff
changeset
|
552 def = purple_request_field_account_get_value(field); |
|
43abb4942a6d
Select the right account when adding a buddy after authorizing her.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16439
diff
changeset
|
553 if (!def) |
|
43abb4942a6d
Select the right account when adding a buddy after authorizing her.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16439
diff
changeset
|
554 def = purple_request_field_account_get_default_value(field); |
| 15817 | 555 |
| 556 if (all) | |
| 15822 | 557 list = purple_accounts_get_all(); |
| 15817 | 558 else |
| 15822 | 559 list = purple_connections_get_all(); |
| 15817 | 560 |
| 561 for (; list; list = list->next) | |
| 562 { | |
| 15822 | 563 PurpleAccount *account; |
| 15817 | 564 char *text; |
| 565 | |
| 566 if (all) | |
| 567 account = list->data; | |
| 568 else | |
| 15822 | 569 account = purple_connection_get_account(list->data); |
| 15817 | 570 |
| 571 text = g_strdup_printf("%s (%s)", | |
| 15822 | 572 purple_account_get_username(account), |
| 573 purple_account_get_protocol_name(account)); | |
| 15817 | 574 gnt_combo_box_add_data(GNT_COMBO_BOX(combo), account, text); |
| 575 g_free(text); | |
| 576 if (account == def) | |
| 577 gnt_combo_box_set_selected(GNT_COMBO_BOX(combo), account); | |
| 578 } | |
| 579 gnt_widget_set_size(combo, 20, 3); /* ew */ | |
|
19761
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
580 accountlist = combo; |
| 15817 | 581 } |
| 582 else | |
| 583 { | |
| 584 gnt_box_add_widget(GNT_BOX(hbox), | |
| 585 gnt_label_new_with_format(_("Not implemented yet."), | |
| 586 GNT_TEXT_FLAG_BOLD)); | |
| 587 } | |
| 588 } | |
| 589 if (grlist->next) | |
| 590 gnt_box_add_widget(GNT_BOX(box), gnt_hline_new()); | |
| 591 } | |
| 592 gnt_box_add_widget(GNT_BOX(window), box); | |
| 593 | |
|
18333
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
594 box = setup_button_box(window, userdata, request_fields_cb, allfields, |
| 15817 | 595 ok, ok_cb, cancel, cancel_cb, NULL); |
| 596 gnt_box_add_widget(GNT_BOX(window), box); | |
| 597 | |
|
18333
f23a7736586f
Consider closing a request dialog equivalent to cancelling it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18222
diff
changeset
|
598 setup_default_callback(window, cancel_cb, userdata); |
| 15817 | 599 gnt_widget_show(window); |
|
16310
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
600 |
|
19761
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
601 if (screenname && accountlist) { |
|
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
602 g_signal_connect(screenname, "completion", G_CALLBACK(update_selected_account), accountlist); |
|
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
603 } |
|
8c356223e182
Select the right account when a buddyname is selected from the suggest-list.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
604 |
|
16310
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
605 g_object_set_data(G_OBJECT(window), "fields", allfields); |
| 15817 | 606 |
| 607 return window; | |
| 608 } | |
| 609 | |
| 610 static void | |
|
18411
3849776d0f71
Fix some crashes resulting from rejecting file-transfer requests.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18410
diff
changeset
|
611 file_cancel_cb(gpointer fq, GntWidget *wid) |
| 15817 | 612 { |
| 15822 | 613 PurpleGntFileRequest *data = fq; |
| 15817 | 614 if (data->cbs[1] != NULL) |
| 15822 | 615 ((PurpleRequestFileCb)data->cbs[1])(data->user_data, NULL); |
| 15817 | 616 |
| 15822 | 617 purple_request_close(PURPLE_REQUEST_FILE, data->dialog); |
| 15817 | 618 } |
| 619 | |
| 620 static void | |
|
18411
3849776d0f71
Fix some crashes resulting from rejecting file-transfer requests.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18410
diff
changeset
|
621 file_ok_cb(gpointer fq, GntWidget *widget) |
| 15817 | 622 { |
| 15822 | 623 PurpleGntFileRequest *data = fq; |
|
15927
846a00760176
use file select dialog
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15924
diff
changeset
|
624 char *file = gnt_file_sel_get_selected_file(GNT_FILE_SEL(data->dialog)); |
|
18410
719f73b9a593
Remember the open/save file locations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18347
diff
changeset
|
625 char *dir = g_path_get_dirname(file); |
| 15817 | 626 if (data->cbs[0] != NULL) |
|
15927
846a00760176
use file select dialog
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15924
diff
changeset
|
627 ((PurpleRequestFileCb)data->cbs[0])(data->user_data, file); |
|
846a00760176
use file select dialog
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15924
diff
changeset
|
628 g_free(file); |
|
18410
719f73b9a593
Remember the open/save file locations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18347
diff
changeset
|
629 purple_prefs_set_path(data->save ? "/finch/filelocations/last_save_folder" : |
|
719f73b9a593
Remember the open/save file locations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18347
diff
changeset
|
630 "/finch/filelocations/last_open_folder", dir); |
|
719f73b9a593
Remember the open/save file locations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18347
diff
changeset
|
631 g_free(dir); |
| 15817 | 632 |
| 15822 | 633 purple_request_close(PURPLE_REQUEST_FILE, data->dialog); |
| 15817 | 634 } |
| 635 | |
| 636 static void | |
| 15822 | 637 file_request_destroy(PurpleGntFileRequest *data) |
| 15817 | 638 { |
| 639 g_free(data->cbs); | |
| 640 g_free(data); | |
| 641 } | |
| 642 | |
| 643 static void * | |
| 644 finch_request_file(const char *title, const char *filename, | |
| 645 gboolean savedialog, | |
| 646 GCallback ok_cb, GCallback cancel_cb, | |
|
16439
08db93bbd798
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evan.s@dreskin.net>
parents:
16310
diff
changeset
|
647 PurpleAccount *account, const char *who, PurpleConversation *conv, |
|
21095
cab348e39751
disapproval of revision '0e5385979f58d6ee74f668bb9b5dfd1ae3b6043f'
Richard Laager <rlaager@wiktel.com>
parents:
21086
diff
changeset
|
648 const char *ui_hint, void *user_data) |
| 15817 | 649 { |
|
15927
846a00760176
use file select dialog
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15924
diff
changeset
|
650 GntWidget *window = gnt_file_sel_new(); |
|
846a00760176
use file select dialog
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15924
diff
changeset
|
651 GntFileSel *sel = GNT_FILE_SEL(window); |
| 15822 | 652 PurpleGntFileRequest *data = g_new0(PurpleGntFileRequest, 1); |
|
18410
719f73b9a593
Remember the open/save file locations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18347
diff
changeset
|
653 const char *path; |
| 15817 | 654 |
| 655 data->user_data = user_data; | |
| 656 data->cbs = g_new0(GCallback, 2); | |
| 657 data->cbs[0] = ok_cb; | |
| 658 data->cbs[1] = cancel_cb; | |
| 659 data->dialog = window; | |
|
18410
719f73b9a593
Remember the open/save file locations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18347
diff
changeset
|
660 data->save = savedialog; |
| 15817 | 661 gnt_box_set_title(GNT_BOX(window), title ? title : (savedialog ? _("Save File...") : _("Open File..."))); |
|
18410
719f73b9a593
Remember the open/save file locations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18347
diff
changeset
|
662 |
|
719f73b9a593
Remember the open/save file locations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18347
diff
changeset
|
663 path = purple_prefs_get_path(savedialog ? "/finch/filelocations/last_save_folder" : "/finch/filelocations/last_open_folder"); |
|
719f73b9a593
Remember the open/save file locations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18347
diff
changeset
|
664 gnt_file_sel_set_current_location(sel, (path && *path) ? path : purple_home_dir()); |
|
719f73b9a593
Remember the open/save file locations.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18347
diff
changeset
|
665 |
| 15936 | 666 if (savedialog) |
| 667 gnt_file_sel_set_suggested_filename(sel, filename); | |
|
18411
3849776d0f71
Fix some crashes resulting from rejecting file-transfer requests.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18410
diff
changeset
|
668 |
|
15927
846a00760176
use file select dialog
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15924
diff
changeset
|
669 g_signal_connect(G_OBJECT(sel->cancel), "activate", |
|
18411
3849776d0f71
Fix some crashes resulting from rejecting file-transfer requests.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18410
diff
changeset
|
670 G_CALLBACK(action_performed), window); |
|
3849776d0f71
Fix some crashes resulting from rejecting file-transfer requests.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18410
diff
changeset
|
671 g_signal_connect(G_OBJECT(sel->select), "activate", |
|
3849776d0f71
Fix some crashes resulting from rejecting file-transfer requests.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18410
diff
changeset
|
672 G_CALLBACK(action_performed), window); |
|
3849776d0f71
Fix some crashes resulting from rejecting file-transfer requests.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18410
diff
changeset
|
673 g_signal_connect_swapped(G_OBJECT(sel->cancel), "activate", |
|
15927
846a00760176
use file select dialog
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15924
diff
changeset
|
674 G_CALLBACK(file_cancel_cb), data); |
|
18411
3849776d0f71
Fix some crashes resulting from rejecting file-transfer requests.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18410
diff
changeset
|
675 g_signal_connect_swapped(G_OBJECT(sel->select), "activate", |
|
15927
846a00760176
use file select dialog
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15924
diff
changeset
|
676 G_CALLBACK(file_ok_cb), data); |
| 15817 | 677 |
|
18411
3849776d0f71
Fix some crashes resulting from rejecting file-transfer requests.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18410
diff
changeset
|
678 setup_default_callback(window, file_cancel_cb, data); |
|
3849776d0f71
Fix some crashes resulting from rejecting file-transfer requests.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18410
diff
changeset
|
679 g_object_set_data_full(G_OBJECT(window), "filerequestdata", data, |
|
3849776d0f71
Fix some crashes resulting from rejecting file-transfer requests.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18410
diff
changeset
|
680 (GDestroyNotify)file_request_destroy); |
| 15817 | 681 gnt_widget_show(window); |
| 682 | |
| 683 return window; | |
| 684 } | |
| 685 | |
| 15822 | 686 static PurpleRequestUiOps uiops = |
| 15817 | 687 { |
|
17091
46f2f86e08e4
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents:
16927
diff
changeset
|
688 finch_request_input, |
|
46f2f86e08e4
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents:
16927
diff
changeset
|
689 finch_request_choice, |
|
46f2f86e08e4
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents:
16927
diff
changeset
|
690 finch_request_action, |
|
46f2f86e08e4
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents:
16927
diff
changeset
|
691 finch_request_fields, |
|
46f2f86e08e4
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents:
16927
diff
changeset
|
692 finch_request_file, |
|
46f2f86e08e4
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents:
16927
diff
changeset
|
693 finch_close_request, |
|
46f2f86e08e4
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents:
16927
diff
changeset
|
694 NULL, /* No plans for request_folder */ |
|
46f2f86e08e4
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents:
16927
diff
changeset
|
695 NULL, |
|
46f2f86e08e4
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents:
16927
diff
changeset
|
696 NULL, |
|
46f2f86e08e4
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents:
16927
diff
changeset
|
697 NULL, |
|
46f2f86e08e4
Death to more futuristic struct initialization. This should be the last.
Richard Laager <rlaager@wiktel.com>
parents:
16927
diff
changeset
|
698 NULL |
| 15817 | 699 }; |
| 700 | |
| 15822 | 701 PurpleRequestUiOps *finch_request_get_ui_ops() |
| 15817 | 702 { |
| 703 return &uiops; | |
| 704 } | |
| 705 | |
| 706 void finch_request_init() | |
| 707 { | |
| 708 } | |
| 709 | |
| 710 void finch_request_uninit() | |
| 711 { | |
| 712 } | |
| 713 | |
|
16310
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
714 void finch_request_save_in_prefs(gpointer null, PurpleRequestFields *allfields) |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
715 { |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
716 GList *list; |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
717 for (list = purple_request_fields_get_groups(allfields); list; list = list->next) { |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
718 PurpleRequestFieldGroup *group = list->data; |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
719 GList *fields = purple_request_field_group_get_fields(group); |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
720 |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
721 for (; fields ; fields = fields->next) { |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
722 PurpleRequestField *field = fields->data; |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
723 PurpleRequestFieldType type = purple_request_field_get_type(field); |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
724 PurplePrefType pt; |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
725 gpointer val = NULL; |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
726 const char *id = purple_request_field_get_id(field); |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
727 |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
728 switch (type) { |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
729 case PURPLE_REQUEST_FIELD_LIST: |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
730 val = purple_request_field_list_get_selected(field)->data; |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
731 break; |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
732 case PURPLE_REQUEST_FIELD_BOOLEAN: |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
733 val = GINT_TO_POINTER(purple_request_field_bool_get_value(field)); |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
734 break; |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
735 case PURPLE_REQUEST_FIELD_INTEGER: |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
736 val = GINT_TO_POINTER(purple_request_field_int_get_value(field)); |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
737 break; |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
738 case PURPLE_REQUEST_FIELD_STRING: |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
739 val = (gpointer)purple_request_field_string_get_value(field); |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
740 break; |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
741 default: |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
742 break; |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
743 } |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
744 |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
745 pt = purple_prefs_get_type(id); |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
746 switch (pt) { |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
747 case PURPLE_PREF_INT: |
|
17392
a236c67e39b6
A change from o_sukhodolsky:
Richard Laager <rlaager@wiktel.com>
parents:
17091
diff
changeset
|
748 { |
|
18222
ef65d43190e5
Fix a few runtime warnings.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18118
diff
changeset
|
749 long int tmp = GPOINTER_TO_INT(val); |
|
16310
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
750 if (type == PURPLE_REQUEST_FIELD_LIST) /* Lists always return string */ |
|
17392
a236c67e39b6
A change from o_sukhodolsky:
Richard Laager <rlaager@wiktel.com>
parents:
17091
diff
changeset
|
751 sscanf(val, "%ld", &tmp); |
|
a236c67e39b6
A change from o_sukhodolsky:
Richard Laager <rlaager@wiktel.com>
parents:
17091
diff
changeset
|
752 purple_prefs_set_int(id, (gint)tmp); |
|
16310
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
753 break; |
|
17392
a236c67e39b6
A change from o_sukhodolsky:
Richard Laager <rlaager@wiktel.com>
parents:
17091
diff
changeset
|
754 } |
|
16310
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
755 case PURPLE_PREF_BOOLEAN: |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
756 purple_prefs_set_bool(id, GPOINTER_TO_INT(val)); |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
757 break; |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
758 case PURPLE_PREF_STRING: |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
759 purple_prefs_set_string(id, val); |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
760 break; |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
761 default: |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
762 break; |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
763 } |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
764 } |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
765 } |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
766 } |
|
8c89913276b3
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 <imadil@gmail.com>
parents:
16194
diff
changeset
|
767 |
