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()