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