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