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