Mercurial > pidgin
comparison libpurple/plugins/perl/common/Request.xs @ 15373:5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Sat, 20 Jan 2007 02:32:10 +0000 |
parents | |
children | 2f8274ce570a |
comparison
equal
deleted
inserted
replaced
15372:f79e0f4df793 | 15373:5fe8042783c1 |
---|---|
1 #include "module.h" | |
2 | |
3 /* This breaks on faceprint's amd64 box | |
4 void * | |
5 gaim_request_action_varg(handle, title, primary, secondary, default_action, user_data, action_count, actions) | |
6 void * handle | |
7 const char *title | |
8 const char *primary | |
9 const char *secondary | |
10 unsigned int default_action | |
11 void *user_data | |
12 size_t action_count | |
13 va_list actions | |
14 */ | |
15 | |
16 | |
17 typedef struct { | |
18 char *cancel_cb; | |
19 char *ok_cb; | |
20 } GaimPerlRequestData; | |
21 | |
22 /********************************************************/ | |
23 /* */ | |
24 /* Callback function that calls a perl subroutine */ | |
25 /* */ | |
26 /* The void * field data is being used as a way to hide */ | |
27 /* the perl sub's name in a GaimPerlRequestData */ | |
28 /* */ | |
29 /********************************************************/ | |
30 static void | |
31 gaim_perl_request_ok_cb(void * data, GaimRequestFields *fields) | |
32 { | |
33 GaimPerlRequestData *gpr = (GaimPerlRequestData *)data; | |
34 | |
35 dSP; | |
36 ENTER; | |
37 SAVETMPS; | |
38 PUSHMARK(sp); | |
39 | |
40 XPUSHs(gaim_perl_bless_object(fields, "Gaim::Request::Fields")); | |
41 PUTBACK; | |
42 | |
43 call_pv(gpr->ok_cb, G_EVAL | G_SCALAR); | |
44 SPAGAIN; | |
45 | |
46 PUTBACK; | |
47 FREETMPS; | |
48 LEAVE; | |
49 | |
50 g_free(gpr->ok_cb); | |
51 g_free(gpr->cancel_cb); | |
52 g_free(gpr); | |
53 } | |
54 | |
55 static void | |
56 gaim_perl_request_cancel_cb(void * data, GaimRequestFields *fields) | |
57 { | |
58 | |
59 GaimPerlRequestData *gpr = (GaimPerlRequestData *)data; | |
60 | |
61 dSP; | |
62 ENTER; | |
63 SAVETMPS; | |
64 PUSHMARK(sp); | |
65 | |
66 XPUSHs(gaim_perl_bless_object(fields, "Gaim::Request::Fields")); | |
67 PUTBACK; | |
68 call_pv(gpr->cancel_cb, G_EVAL | G_SCALAR); | |
69 SPAGAIN; | |
70 | |
71 PUTBACK; | |
72 FREETMPS; | |
73 LEAVE; | |
74 | |
75 g_free(gpr->ok_cb); | |
76 g_free(gpr->cancel_cb); | |
77 g_free(gpr); | |
78 } | |
79 | |
80 MODULE = Gaim::Request PACKAGE = Gaim::Request PREFIX = gaim_request_ | |
81 PROTOTYPES: ENABLE | |
82 | |
83 void * | |
84 gaim_request_input(handle, title, primary, secondary, default_value, multiline, masked, hint, ok_text, ok_cb, cancel_text, cancel_cb) | |
85 Gaim::Plugin handle | |
86 const char * title | |
87 const char * primary | |
88 const char * secondary | |
89 const char * default_value | |
90 gboolean multiline | |
91 gboolean masked | |
92 gchar * hint | |
93 const char * ok_text | |
94 SV * ok_cb | |
95 const char * cancel_text | |
96 SV * cancel_cb | |
97 CODE: | |
98 GaimPerlRequestData *gpr; | |
99 STRLEN len; | |
100 char *basename; | |
101 | |
102 basename = g_path_get_basename(handle->path); | |
103 gaim_perl_normalize_script_name(basename); | |
104 gpr = g_new(GaimPerlRequestData, 1); | |
105 gpr->ok_cb = g_strdup_printf("Gaim::Script::%s::%s", basename, SvPV(ok_cb, len)); | |
106 gpr->cancel_cb = g_strdup_printf("Gaim::Script::%s::%s", basename, SvPV(cancel_cb, len)); | |
107 g_free(basename); | |
108 | |
109 RETVAL = gaim_request_input(handle, title, primary, secondary, default_value, multiline, masked, hint, ok_text, G_CALLBACK(gaim_perl_request_ok_cb), cancel_text, G_CALLBACK(gaim_perl_request_cancel_cb), gpr); | |
110 OUTPUT: | |
111 RETVAL | |
112 | |
113 void * | |
114 gaim_request_file(handle, title, filename, savedialog, ok_cb, cancel_cb) | |
115 Gaim::Plugin handle | |
116 const char * title | |
117 const char * filename | |
118 gboolean savedialog | |
119 SV * ok_cb | |
120 SV * cancel_cb | |
121 CODE: | |
122 GaimPerlRequestData *gpr; | |
123 STRLEN len; | |
124 char *basename; | |
125 | |
126 basename = g_path_get_basename(handle->path); | |
127 gaim_perl_normalize_script_name(basename); | |
128 gpr = g_new(GaimPerlRequestData, 1); | |
129 gpr->ok_cb = g_strdup_printf("Gaim::Script::%s::%s", basename, SvPV(ok_cb, len)); | |
130 gpr->cancel_cb = g_strdup_printf("Gaim::Script::%s::%s", basename, SvPV(cancel_cb, len)); | |
131 g_free(basename); | |
132 | |
133 RETVAL = gaim_request_file(handle, title, filename, savedialog, G_CALLBACK(gaim_perl_request_ok_cb), G_CALLBACK(gaim_perl_request_cancel_cb), gpr); | |
134 OUTPUT: | |
135 RETVAL | |
136 | |
137 void * | |
138 gaim_request_fields(handle, title, primary, secondary, fields, ok_text, ok_cb, cancel_text, cancel_cb) | |
139 Gaim::Plugin handle | |
140 const char * title | |
141 const char * primary | |
142 const char * secondary | |
143 Gaim::Request::Fields fields | |
144 const char * ok_text | |
145 SV * ok_cb | |
146 const char * cancel_text | |
147 SV * cancel_cb | |
148 CODE: | |
149 GaimPerlRequestData *gpr; | |
150 STRLEN len; | |
151 char *basename; | |
152 | |
153 basename = g_path_get_basename(handle->path); | |
154 gaim_perl_normalize_script_name(basename); | |
155 gpr = g_new(GaimPerlRequestData, 1); | |
156 gpr->ok_cb = g_strdup_printf("Gaim::Script::%s::%s", basename, SvPV(ok_cb, len)); | |
157 gpr->cancel_cb = g_strdup_printf("Gaim::Script::%s::%s", basename, SvPV(cancel_cb, len)); | |
158 g_free(basename); | |
159 | |
160 RETVAL = gaim_request_fields(handle, title, primary, secondary, fields, ok_text, G_CALLBACK(gaim_perl_request_ok_cb), cancel_text, G_CALLBACK(gaim_perl_request_cancel_cb), gpr); | |
161 OUTPUT: | |
162 RETVAL | |
163 | |
164 void | |
165 gaim_request_close(type, uihandle) | |
166 Gaim::RequestType type | |
167 void * uihandle | |
168 | |
169 void | |
170 gaim_request_close_with_handle(handle) | |
171 void * handle | |
172 | |
173 MODULE = Gaim::Request PACKAGE = Gaim::Request::Field PREFIX = gaim_request_field_ | |
174 PROTOTYPES: ENABLE | |
175 | |
176 Gaim::Account | |
177 gaim_request_field_account_get_default_value(field) | |
178 Gaim::Request::Field field | |
179 | |
180 IV | |
181 gaim_request_field_account_get_filter(field) | |
182 Gaim::Request::Field field | |
183 CODE: | |
184 RETVAL = PTR2IV(gaim_request_field_account_get_filter(field)); | |
185 OUTPUT: | |
186 RETVAL | |
187 | |
188 gboolean | |
189 gaim_request_field_account_get_show_all(field) | |
190 Gaim::Request::Field field | |
191 | |
192 Gaim::Account | |
193 gaim_request_field_account_get_value(field) | |
194 Gaim::Request::Field field | |
195 | |
196 Gaim::Request::Field | |
197 gaim_request_field_account_new(id, text, account = NULL) | |
198 const char *id | |
199 const char *text | |
200 Gaim::Account account | |
201 | |
202 void | |
203 gaim_request_field_account_set_default_value(field, default_value) | |
204 Gaim::Request::Field field | |
205 Gaim::Account default_value | |
206 | |
207 void | |
208 gaim_request_field_account_set_show_all(field, show_all) | |
209 Gaim::Request::Field field | |
210 gboolean show_all | |
211 | |
212 void | |
213 gaim_request_field_account_set_value(field, value) | |
214 Gaim::Request::Field field | |
215 Gaim::Account value | |
216 | |
217 gboolean | |
218 gaim_request_field_bool_get_default_value(field) | |
219 Gaim::Request::Field field | |
220 | |
221 gboolean | |
222 gaim_request_field_bool_get_value(field) | |
223 Gaim::Request::Field field | |
224 | |
225 Gaim::Request::Field | |
226 gaim_request_field_bool_new(id, text, default_value = TRUE) | |
227 const char *id | |
228 const char *text | |
229 gboolean default_value | |
230 | |
231 void | |
232 gaim_request_field_bool_set_default_value(field, default_value) | |
233 Gaim::Request::Field field | |
234 gboolean default_value | |
235 | |
236 void | |
237 gaim_request_field_bool_set_value(field, value) | |
238 Gaim::Request::Field field | |
239 gboolean value | |
240 | |
241 void | |
242 gaim_request_field_choice_add(field, label) | |
243 Gaim::Request::Field field | |
244 const char *label | |
245 | |
246 int | |
247 gaim_request_field_choice_get_default_value(field) | |
248 Gaim::Request::Field field | |
249 | |
250 void | |
251 gaim_request_field_choice_get_labels(field) | |
252 Gaim::Request::Field field | |
253 PREINIT: | |
254 GList *l; | |
255 PPCODE: | |
256 for (l = gaim_request_field_choice_get_labels(field); l != NULL; l = l->next) { | |
257 XPUSHs(sv_2mortal(newSVpv(l->data, 0))); | |
258 } | |
259 | |
260 int | |
261 gaim_request_field_choice_get_value(field) | |
262 Gaim::Request::Field field | |
263 | |
264 Gaim::Request::Field | |
265 gaim_request_field_choice_new(id, text, default_value = 0) | |
266 const char *id | |
267 const char *text | |
268 int default_value | |
269 | |
270 void | |
271 gaim_request_field_choice_set_default_value(field, default_value) | |
272 Gaim::Request::Field field | |
273 int default_value | |
274 | |
275 void | |
276 gaim_request_field_choice_set_value(field, value) | |
277 Gaim::Request::Field field | |
278 int value | |
279 | |
280 void | |
281 gaim_request_field_destroy(field) | |
282 Gaim::Request::Field field | |
283 | |
284 const char * | |
285 gaim_request_field_get_id(field) | |
286 Gaim::Request::Field field | |
287 | |
288 const char * | |
289 gaim_request_field_get_label(field) | |
290 Gaim::Request::Field field | |
291 | |
292 Gaim::RequestFieldType | |
293 gaim_request_field_get_type(field) | |
294 Gaim::Request::Field field | |
295 | |
296 const char * | |
297 gaim_request_field_get_type_hint(field) | |
298 Gaim::Request::Field field | |
299 | |
300 int | |
301 gaim_request_field_int_get_default_value(field) | |
302 Gaim::Request::Field field | |
303 | |
304 int | |
305 gaim_request_field_int_get_value(field) | |
306 Gaim::Request::Field field | |
307 | |
308 Gaim::Request::Field | |
309 gaim_request_field_int_new(id, text, default_value = 0) | |
310 const char *id | |
311 const char *text | |
312 int default_value | |
313 | |
314 void | |
315 gaim_request_field_int_set_default_value(field, default_value) | |
316 Gaim::Request::Field field | |
317 int default_value | |
318 | |
319 void | |
320 gaim_request_field_int_set_value(field, value) | |
321 Gaim::Request::Field field | |
322 int value | |
323 | |
324 gboolean | |
325 gaim_request_field_is_required(field) | |
326 Gaim::Request::Field field | |
327 | |
328 gboolean | |
329 gaim_request_field_is_visible(field) | |
330 Gaim::Request::Field field | |
331 | |
332 Gaim::Request::Field | |
333 gaim_request_field_label_new(id, text) | |
334 const char *id | |
335 const char *text | |
336 | |
337 void | |
338 gaim_request_field_list_add(field, item, data) | |
339 Gaim::Request::Field field | |
340 const char *item | |
341 void * data | |
342 | |
343 void | |
344 gaim_request_field_list_add_selected(field, item) | |
345 Gaim::Request::Field field | |
346 const char *item | |
347 | |
348 void | |
349 gaim_request_field_list_clear_selected(field) | |
350 Gaim::Request::Field field | |
351 | |
352 void * | |
353 gaim_request_field_list_get_data(field, text) | |
354 Gaim::Request::Field field | |
355 const char *text | |
356 | |
357 void | |
358 gaim_request_field_list_get_items(field) | |
359 Gaim::Request::Field field | |
360 PREINIT: | |
361 const GList *l; | |
362 PPCODE: | |
363 for (l = gaim_request_field_list_get_items(field); l != NULL; l = l->next) { | |
364 XPUSHs(sv_2mortal(newSVpv(l->data, 0))); | |
365 } | |
366 | |
367 gboolean | |
368 gaim_request_field_list_get_multi_select(field) | |
369 Gaim::Request::Field field | |
370 | |
371 void | |
372 gaim_request_field_list_get_selected(field) | |
373 Gaim::Request::Field field | |
374 PREINIT: | |
375 const GList *l; | |
376 PPCODE: | |
377 for (l = gaim_request_field_list_get_selected(field); l != NULL; l = l->next) { | |
378 XPUSHs(sv_2mortal(newSVpv(l->data, 0))); | |
379 } | |
380 | |
381 gboolean | |
382 gaim_request_field_list_is_selected(field, item) | |
383 Gaim::Request::Field field | |
384 const char *item | |
385 | |
386 Gaim::Request::Field | |
387 gaim_request_field_list_new(id, text) | |
388 const char *id | |
389 const char *text | |
390 | |
391 void | |
392 gaim_request_field_list_set_multi_select(field, multi_select) | |
393 Gaim::Request::Field field | |
394 gboolean multi_select | |
395 | |
396 Gaim::Request::Field | |
397 gaim_request_field_new(id, text, type) | |
398 const char *id | |
399 const char *text | |
400 Gaim::RequestFieldType type | |
401 | |
402 void | |
403 gaim_request_field_set_label(field, label) | |
404 Gaim::Request::Field field | |
405 const char *label | |
406 | |
407 void | |
408 gaim_request_field_set_required(field, required) | |
409 Gaim::Request::Field field | |
410 gboolean required | |
411 | |
412 void | |
413 gaim_request_field_set_type_hint(field, type_hint) | |
414 Gaim::Request::Field field | |
415 const char *type_hint | |
416 | |
417 void | |
418 gaim_request_field_set_visible(field, visible) | |
419 Gaim::Request::Field field | |
420 gboolean visible | |
421 | |
422 const char * | |
423 gaim_request_field_string_get_default_value(field) | |
424 Gaim::Request::Field field | |
425 | |
426 const char * | |
427 gaim_request_field_string_get_value(field) | |
428 Gaim::Request::Field field | |
429 | |
430 gboolean | |
431 gaim_request_field_string_is_editable(field) | |
432 Gaim::Request::Field field | |
433 | |
434 gboolean | |
435 gaim_request_field_string_is_masked(field) | |
436 Gaim::Request::Field field | |
437 | |
438 gboolean | |
439 gaim_request_field_string_is_multiline(field) | |
440 Gaim::Request::Field field | |
441 | |
442 Gaim::Request::Field | |
443 gaim_request_field_string_new(id, text, default_value, multiline) | |
444 const char *id | |
445 const char *text | |
446 const char *default_value | |
447 gboolean multiline | |
448 | |
449 void | |
450 gaim_request_field_string_set_default_value(field, default_value) | |
451 Gaim::Request::Field field | |
452 const char *default_value | |
453 | |
454 void | |
455 gaim_request_field_string_set_editable(field, editable) | |
456 Gaim::Request::Field field | |
457 gboolean editable | |
458 | |
459 void | |
460 gaim_request_field_string_set_masked(field, masked) | |
461 Gaim::Request::Field field | |
462 gboolean masked | |
463 | |
464 void | |
465 gaim_request_field_string_set_value(field, value) | |
466 Gaim::Request::Field field | |
467 const char *value | |
468 | |
469 Gaim::Request::UiOps | |
470 gaim_request_get_ui_ops() | |
471 | |
472 void | |
473 gaim_request_set_ui_ops(ops) | |
474 Gaim::Request::UiOps ops | |
475 | |
476 MODULE = Gaim::Request PACKAGE = Gaim::Request::Field::Group PREFIX = gaim_request_field_group_ | |
477 PROTOTYPES: ENABLE | |
478 | |
479 void | |
480 gaim_request_field_group_add_field(group, field) | |
481 Gaim::Request::Field::Group group | |
482 Gaim::Request::Field field | |
483 | |
484 void | |
485 gaim_request_field_group_destroy(group) | |
486 Gaim::Request::Field::Group group | |
487 | |
488 void | |
489 gaim_request_field_group_get_fields(group) | |
490 Gaim::Request::Field::Group group | |
491 PREINIT: | |
492 GList *l; | |
493 PPCODE: | |
494 for (l = gaim_request_field_group_get_fields(group); l != NULL; l = l->next) { | |
495 XPUSHs(sv_2mortal(gaim_perl_bless_object(l->data, "Gaim::Request::Field"))); | |
496 } | |
497 | |
498 const char * | |
499 gaim_request_field_group_get_title(group) | |
500 Gaim::Request::Field::Group group | |
501 | |
502 Gaim::Request::Field::Group | |
503 gaim_request_field_group_new(title) | |
504 const char *title | |
505 | |
506 MODULE = Gaim::Request PACKAGE = Gaim::Request::Fields PREFIX = gaim_request_fields_ | |
507 PROTOTYPES: ENABLE | |
508 | |
509 void | |
510 gaim_request_fields_add_group(fields, group) | |
511 Gaim::Request::Fields fields | |
512 Gaim::Request::Field::Group group | |
513 | |
514 gboolean | |
515 gaim_request_fields_all_required_filled(fields) | |
516 Gaim::Request::Fields fields | |
517 | |
518 void | |
519 gaim_request_fields_destroy(fields) | |
520 Gaim::Request::Fields fields | |
521 | |
522 gboolean | |
523 gaim_request_fields_exists(fields, id) | |
524 Gaim::Request::Fields fields | |
525 const char *id | |
526 | |
527 Gaim::Account | |
528 gaim_request_fields_get_account(fields, id) | |
529 Gaim::Request::Fields fields | |
530 const char *id | |
531 | |
532 gboolean | |
533 gaim_request_fields_get_bool(fields, id) | |
534 Gaim::Request::Fields fields | |
535 const char *id | |
536 | |
537 int | |
538 gaim_request_fields_get_choice(fields, id) | |
539 Gaim::Request::Fields fields | |
540 const char *id | |
541 | |
542 Gaim::Request::Field | |
543 gaim_request_fields_get_field(fields, id) | |
544 Gaim::Request::Fields fields | |
545 const char *id | |
546 | |
547 void | |
548 gaim_request_fields_get_groups(fields) | |
549 Gaim::Request::Fields fields | |
550 PREINIT: | |
551 GList *l; | |
552 PPCODE: | |
553 for (l = gaim_request_fields_get_groups(fields); l != NULL; l = l->next) { | |
554 XPUSHs(sv_2mortal(gaim_perl_bless_object(l->data, "Gaim::Request::Field::Group"))); | |
555 } | |
556 | |
557 int | |
558 gaim_request_fields_get_integer(fields, id) | |
559 Gaim::Request::Fields fields | |
560 const char *id | |
561 | |
562 void | |
563 gaim_request_fields_get_required(fields) | |
564 Gaim::Request::Fields fields | |
565 PREINIT: | |
566 const GList *l; | |
567 PPCODE: | |
568 for (l = gaim_request_fields_get_required(fields); l != NULL; l = l->next) { | |
569 XPUSHs(sv_2mortal(gaim_perl_bless_object(l->data, "Gaim::Request::Field"))); | |
570 } | |
571 | |
572 const char * | |
573 gaim_request_fields_get_string(fields, id) | |
574 Gaim::Request::Fields fields | |
575 const char *id | |
576 | |
577 gboolean | |
578 gaim_request_fields_is_field_required(fields, id) | |
579 Gaim::Request::Fields fields | |
580 const char *id | |
581 | |
582 Gaim::Request::Fields | |
583 gaim_request_fields_new() |