| |
1 /** |
| |
2 * @file request.h Request API |
| |
3 * @ingroup core |
| |
4 * |
| |
5 * gaim |
| |
6 * |
| |
7 * Gaim is the legal property of its developers, whose names are too numerous |
| |
8 * to list here. Please refer to the COPYRIGHT file distributed with this |
| |
9 * source distribution. |
| |
10 * |
| |
11 * This program is free software; you can redistribute it and/or modify |
| |
12 * it under the terms of the GNU General Public License as published by |
| |
13 * the Free Software Foundation; either version 2 of the License, or |
| |
14 * (at your option) any later version. |
| |
15 * |
| |
16 * This program is distributed in the hope that it will be useful, |
| |
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| |
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| |
19 * GNU General Public License for more details. |
| |
20 * |
| |
21 * You should have received a copy of the GNU General Public License |
| |
22 * along with this program; if not, write to the Free Software |
| |
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| |
24 */ |
| |
25 #ifndef _GAIM_REQUEST_H_ |
| |
26 #define _GAIM_REQUEST_H_ |
| |
27 |
| |
28 #include <stdlib.h> |
| |
29 #include <glib-object.h> |
| |
30 #include <glib.h> |
| |
31 |
| |
32 #include "account.h" |
| |
33 |
| |
34 #define GAIM_DEFAULT_ACTION_NONE -1 |
| |
35 |
| |
36 /** |
| |
37 * Request types. |
| |
38 */ |
| |
39 typedef enum |
| |
40 { |
| |
41 GAIM_REQUEST_INPUT = 0, /**< Text input request. */ |
| |
42 GAIM_REQUEST_CHOICE, /**< Multiple-choice request. */ |
| |
43 GAIM_REQUEST_ACTION, /**< Action request. */ |
| |
44 GAIM_REQUEST_FIELDS, /**< Multiple fields request. */ |
| |
45 GAIM_REQUEST_FILE, /**< File open or save request. */ |
| |
46 GAIM_REQUEST_FOLDER /**< Folder selection request. */ |
| |
47 |
| |
48 } GaimRequestType; |
| |
49 |
| |
50 /** |
| |
51 * A type of field. |
| |
52 */ |
| |
53 typedef enum |
| |
54 { |
| |
55 GAIM_REQUEST_FIELD_NONE, |
| |
56 GAIM_REQUEST_FIELD_STRING, |
| |
57 GAIM_REQUEST_FIELD_INTEGER, |
| |
58 GAIM_REQUEST_FIELD_BOOLEAN, |
| |
59 GAIM_REQUEST_FIELD_CHOICE, |
| |
60 GAIM_REQUEST_FIELD_LIST, |
| |
61 GAIM_REQUEST_FIELD_LABEL, |
| |
62 GAIM_REQUEST_FIELD_IMAGE, |
| |
63 GAIM_REQUEST_FIELD_ACCOUNT |
| |
64 |
| |
65 } GaimRequestFieldType; |
| |
66 |
| |
67 /** |
| |
68 * Multiple fields request data. |
| |
69 */ |
| |
70 typedef struct |
| |
71 { |
| |
72 GList *groups; |
| |
73 |
| |
74 GHashTable *fields; |
| |
75 |
| |
76 GList *required_fields; |
| |
77 |
| |
78 void *ui_data; |
| |
79 |
| |
80 } GaimRequestFields; |
| |
81 |
| |
82 /** |
| |
83 * A group of fields with a title. |
| |
84 */ |
| |
85 typedef struct |
| |
86 { |
| |
87 GaimRequestFields *fields_list; |
| |
88 |
| |
89 char *title; |
| |
90 |
| |
91 GList *fields; |
| |
92 |
| |
93 } GaimRequestFieldGroup; |
| |
94 |
| |
95 /** |
| |
96 * A request field. |
| |
97 */ |
| |
98 typedef struct |
| |
99 { |
| |
100 GaimRequestFieldType type; |
| |
101 GaimRequestFieldGroup *group; |
| |
102 |
| |
103 char *id; |
| |
104 char *label; |
| |
105 char *type_hint; |
| |
106 |
| |
107 gboolean visible; |
| |
108 gboolean required; |
| |
109 |
| |
110 union |
| |
111 { |
| |
112 struct |
| |
113 { |
| |
114 gboolean multiline; |
| |
115 gboolean masked; |
| |
116 gboolean editable; |
| |
117 char *default_value; |
| |
118 char *value; |
| |
119 |
| |
120 } string; |
| |
121 |
| |
122 struct |
| |
123 { |
| |
124 int default_value; |
| |
125 int value; |
| |
126 |
| |
127 } integer; |
| |
128 |
| |
129 struct |
| |
130 { |
| |
131 gboolean default_value; |
| |
132 gboolean value; |
| |
133 |
| |
134 } boolean; |
| |
135 |
| |
136 struct |
| |
137 { |
| |
138 int default_value; |
| |
139 int value; |
| |
140 |
| |
141 GList *labels; |
| |
142 |
| |
143 } choice; |
| |
144 |
| |
145 struct |
| |
146 { |
| |
147 GList *items; |
| |
148 GHashTable *item_data; |
| |
149 GList *selected; |
| |
150 GHashTable *selected_table; |
| |
151 |
| |
152 gboolean multiple_selection; |
| |
153 |
| |
154 } list; |
| |
155 |
| |
156 struct |
| |
157 { |
| |
158 GaimAccount *default_account; |
| |
159 GaimAccount *account; |
| |
160 gboolean show_all; |
| |
161 |
| |
162 GaimFilterAccountFunc filter_func; |
| |
163 |
| |
164 } account; |
| |
165 |
| |
166 struct |
| |
167 { |
| |
168 unsigned int scale_x; |
| |
169 unsigned int scale_y; |
| |
170 const char *buffer; |
| |
171 gsize size; |
| |
172 } image; |
| |
173 |
| |
174 } u; |
| |
175 |
| |
176 void *ui_data; |
| |
177 |
| |
178 } GaimRequestField; |
| |
179 |
| |
180 /** |
| |
181 * Request UI operations. |
| |
182 */ |
| |
183 typedef struct |
| |
184 { |
| |
185 void *(*request_input)(const char *title, const char *primary, |
| |
186 const char *secondary, const char *default_value, |
| |
187 gboolean multiline, gboolean masked, gchar *hint, |
| |
188 const char *ok_text, GCallback ok_cb, |
| |
189 const char *cancel_text, GCallback cancel_cb, |
| |
190 void *user_data); |
| |
191 void *(*request_choice)(const char *title, const char *primary, |
| |
192 const char *secondary, unsigned int default_value, |
| |
193 const char *ok_text, GCallback ok_cb, |
| |
194 const char *cancel_text, GCallback cancel_cb, |
| |
195 void *user_data, va_list choices); |
| |
196 void *(*request_action)(const char *title, const char *primary, |
| |
197 const char *secondary, unsigned int default_action, |
| |
198 void *user_data, size_t action_count, |
| |
199 va_list actions); |
| |
200 void *(*request_fields)(const char *title, const char *primary, |
| |
201 const char *secondary, GaimRequestFields *fields, |
| |
202 const char *ok_text, GCallback ok_cb, |
| |
203 const char *cancel_text, GCallback cancel_cb, |
| |
204 void *user_data); |
| |
205 void *(*request_file)(const char *title, const char *filename, |
| |
206 gboolean savedialog, GCallback ok_cb, |
| |
207 GCallback cancel_cb, void *user_data); |
| |
208 void (*close_request)(GaimRequestType type, void *ui_handle); |
| |
209 void *(*request_folder)(const char *title, const char *dirname, |
| |
210 GCallback ok_cb, GCallback cancel_cb, |
| |
211 void *user_data); |
| |
212 } GaimRequestUiOps; |
| |
213 |
| |
214 typedef void (*GaimRequestInputCb)(void *, const char *); |
| |
215 typedef void (*GaimRequestActionCb)(void *, int); |
| |
216 typedef void (*GaimRequestChoiceCb)(void *, int); |
| |
217 typedef void (*GaimRequestFieldsCb)(void *, GaimRequestFields *fields); |
| |
218 typedef void (*GaimRequestFileCb)(void *, const char *filename); |
| |
219 |
| |
220 #ifdef __cplusplus |
| |
221 extern "C" { |
| |
222 #endif |
| |
223 |
| |
224 /**************************************************************************/ |
| |
225 /** @name Field List API */ |
| |
226 /**************************************************************************/ |
| |
227 /*@{*/ |
| |
228 |
| |
229 /** |
| |
230 * Creates a list of fields to pass to gaim_request_fields(). |
| |
231 * |
| |
232 * @return A GaimRequestFields structure. |
| |
233 */ |
| |
234 GaimRequestFields *gaim_request_fields_new(void); |
| |
235 |
| |
236 /** |
| |
237 * Destroys a list of fields. |
| |
238 * |
| |
239 * @param fields The list of fields to destroy. |
| |
240 */ |
| |
241 void gaim_request_fields_destroy(GaimRequestFields *fields); |
| |
242 |
| |
243 /** |
| |
244 * Adds a group of fields to the list. |
| |
245 * |
| |
246 * @param fields The fields list. |
| |
247 * @param group The group to add. |
| |
248 */ |
| |
249 void gaim_request_fields_add_group(GaimRequestFields *fields, |
| |
250 GaimRequestFieldGroup *group); |
| |
251 |
| |
252 /** |
| |
253 * Returns a list of all groups in a field list. |
| |
254 * |
| |
255 * @param fields The fields list. |
| |
256 * |
| |
257 * @return A list of groups. |
| |
258 */ |
| |
259 GList *gaim_request_fields_get_groups(const GaimRequestFields *fields); |
| |
260 |
| |
261 /** |
| |
262 * Returns whether or not the field with the specified ID exists. |
| |
263 * |
| |
264 * @param fields The fields list. |
| |
265 * @param id The ID of the field. |
| |
266 * |
| |
267 * @return TRUE if the field exists, or FALSE. |
| |
268 */ |
| |
269 gboolean gaim_request_fields_exists(const GaimRequestFields *fields, |
| |
270 const char *id); |
| |
271 |
| |
272 /** |
| |
273 * Returns a list of all required fields. |
| |
274 * |
| |
275 * @param fields The fields list. |
| |
276 * |
| |
277 * @return The list of required fields. |
| |
278 */ |
| |
279 const GList *gaim_request_fields_get_required(const GaimRequestFields *fields); |
| |
280 |
| |
281 /** |
| |
282 * Returns whether or not a field with the specified ID is required. |
| |
283 * |
| |
284 * @param fields The fields list. |
| |
285 * @param id The field ID. |
| |
286 * |
| |
287 * @return TRUE if the specified field is required, or FALSE. |
| |
288 */ |
| |
289 gboolean gaim_request_fields_is_field_required(const GaimRequestFields *fields, |
| |
290 const char *id); |
| |
291 |
| |
292 /** |
| |
293 * Returns whether or not all required fields have values. |
| |
294 * |
| |
295 * @param fields The fields list. |
| |
296 * |
| |
297 * @return TRUE if all required fields have values, or FALSE. |
| |
298 */ |
| |
299 gboolean gaim_request_fields_all_required_filled( |
| |
300 const GaimRequestFields *fields); |
| |
301 |
| |
302 /** |
| |
303 * Return the field with the specified ID. |
| |
304 * |
| |
305 * @param fields The fields list. |
| |
306 * @param id The ID of the field. |
| |
307 * |
| |
308 * @return The field, if found. |
| |
309 */ |
| |
310 GaimRequestField *gaim_request_fields_get_field( |
| |
311 const GaimRequestFields *fields, const char *id); |
| |
312 |
| |
313 /** |
| |
314 * Returns the string value of a field with the specified ID. |
| |
315 * |
| |
316 * @param fields The fields list. |
| |
317 * @param id The ID of the field. |
| |
318 * |
| |
319 * @return The string value, if found, or @c NULL otherwise. |
| |
320 */ |
| |
321 const char *gaim_request_fields_get_string(const GaimRequestFields *fields, |
| |
322 const char *id); |
| |
323 |
| |
324 /** |
| |
325 * Returns the integer value of a field with the specified ID. |
| |
326 * |
| |
327 * @param fields The fields list. |
| |
328 * @param id The ID of the field. |
| |
329 * |
| |
330 * @return The integer value, if found, or 0 otherwise. |
| |
331 */ |
| |
332 int gaim_request_fields_get_integer(const GaimRequestFields *fields, |
| |
333 const char *id); |
| |
334 |
| |
335 /** |
| |
336 * Returns the boolean value of a field with the specified ID. |
| |
337 * |
| |
338 * @param fields The fields list. |
| |
339 * @param id The ID of the field. |
| |
340 * |
| |
341 * @return The boolean value, if found, or @c FALSE otherwise. |
| |
342 */ |
| |
343 gboolean gaim_request_fields_get_bool(const GaimRequestFields *fields, |
| |
344 const char *id); |
| |
345 |
| |
346 /** |
| |
347 * Returns the choice index of a field with the specified ID. |
| |
348 * |
| |
349 * @param fields The fields list. |
| |
350 * @param id The ID of the field. |
| |
351 * |
| |
352 * @return The choice index, if found, or -1 otherwise. |
| |
353 */ |
| |
354 int gaim_request_fields_get_choice(const GaimRequestFields *fields, |
| |
355 const char *id); |
| |
356 |
| |
357 /** |
| |
358 * Returns the account of a field with the specified ID. |
| |
359 * |
| |
360 * @param fields The fields list. |
| |
361 * @param id The ID of the field. |
| |
362 * |
| |
363 * @return The account value, if found, or NULL otherwise. |
| |
364 */ |
| |
365 GaimAccount *gaim_request_fields_get_account(const GaimRequestFields *fields, |
| |
366 const char *id); |
| |
367 |
| |
368 /*@}*/ |
| |
369 |
| |
370 /**************************************************************************/ |
| |
371 /** @name Fields Group API */ |
| |
372 /**************************************************************************/ |
| |
373 /*@{*/ |
| |
374 |
| |
375 /** |
| |
376 * Creates a fields group with an optional title. |
| |
377 * |
| |
378 * @param title The optional title to give the group. |
| |
379 * |
| |
380 * @return A new fields group |
| |
381 */ |
| |
382 GaimRequestFieldGroup *gaim_request_field_group_new(const char *title); |
| |
383 |
| |
384 /** |
| |
385 * Destroys a fields group. |
| |
386 * |
| |
387 * @param group The group to destroy. |
| |
388 */ |
| |
389 void gaim_request_field_group_destroy(GaimRequestFieldGroup *group); |
| |
390 |
| |
391 /** |
| |
392 * Adds a field to the group. |
| |
393 * |
| |
394 * @param group The group to add the field to. |
| |
395 * @param field The field to add to the group. |
| |
396 */ |
| |
397 void gaim_request_field_group_add_field(GaimRequestFieldGroup *group, |
| |
398 GaimRequestField *field); |
| |
399 |
| |
400 /** |
| |
401 * Returns the title of a fields group. |
| |
402 * |
| |
403 * @param group The group. |
| |
404 * |
| |
405 * @return The title, if set. |
| |
406 */ |
| |
407 const char *gaim_request_field_group_get_title( |
| |
408 const GaimRequestFieldGroup *group); |
| |
409 |
| |
410 /** |
| |
411 * Returns a list of all fields in a group. |
| |
412 * |
| |
413 * @param group The group. |
| |
414 * |
| |
415 * @return The list of fields in the group. |
| |
416 */ |
| |
417 GList *gaim_request_field_group_get_fields( |
| |
418 const GaimRequestFieldGroup *group); |
| |
419 |
| |
420 /*@}*/ |
| |
421 |
| |
422 /**************************************************************************/ |
| |
423 /** @name Field API */ |
| |
424 /**************************************************************************/ |
| |
425 /*@{*/ |
| |
426 |
| |
427 /** |
| |
428 * Creates a field of the specified type. |
| |
429 * |
| |
430 * @param id The field ID. |
| |
431 * @param text The text label of the field. |
| |
432 * @param type The type of field. |
| |
433 * |
| |
434 * @return The new field. |
| |
435 */ |
| |
436 GaimRequestField *gaim_request_field_new(const char *id, const char *text, |
| |
437 GaimRequestFieldType type); |
| |
438 |
| |
439 /** |
| |
440 * Destroys a field. |
| |
441 * |
| |
442 * @param field The field to destroy. |
| |
443 */ |
| |
444 void gaim_request_field_destroy(GaimRequestField *field); |
| |
445 |
| |
446 /** |
| |
447 * Sets the label text of a field. |
| |
448 * |
| |
449 * @param field The field. |
| |
450 * @param label The text label. |
| |
451 */ |
| |
452 void gaim_request_field_set_label(GaimRequestField *field, const char *label); |
| |
453 |
| |
454 /** |
| |
455 * Sets whether or not a field is visible. |
| |
456 * |
| |
457 * @param field The field. |
| |
458 * @param visible TRUE if visible, or FALSE if not. |
| |
459 */ |
| |
460 void gaim_request_field_set_visible(GaimRequestField *field, gboolean visible); |
| |
461 |
| |
462 /** |
| |
463 * Sets the type hint for the field. |
| |
464 * |
| |
465 * This is optionally used by the UIs to provide such features as |
| |
466 * auto-completion for type hints like "account" and "screenname". |
| |
467 * |
| |
468 * @param field The field. |
| |
469 * @param type_hint The type hint. |
| |
470 */ |
| |
471 void gaim_request_field_set_type_hint(GaimRequestField *field, |
| |
472 const char *type_hint); |
| |
473 |
| |
474 /** |
| |
475 * Sets whether or not a field is required. |
| |
476 * |
| |
477 * @param field The field. |
| |
478 * @param required TRUE if required, or FALSE. |
| |
479 */ |
| |
480 void gaim_request_field_set_required(GaimRequestField *field, |
| |
481 gboolean required); |
| |
482 |
| |
483 /** |
| |
484 * Returns the type of a field. |
| |
485 * |
| |
486 * @param field The field. |
| |
487 * |
| |
488 * @return The field's type. |
| |
489 */ |
| |
490 GaimRequestFieldType gaim_request_field_get_type(const GaimRequestField *field); |
| |
491 |
| |
492 /** |
| |
493 * Returns the ID of a field. |
| |
494 * |
| |
495 * @param field The field. |
| |
496 * |
| |
497 * @return The ID |
| |
498 */ |
| |
499 const char *gaim_request_field_get_id(const GaimRequestField *field); |
| |
500 |
| |
501 /** |
| |
502 * Returns the label text of a field. |
| |
503 * |
| |
504 * @param field The field. |
| |
505 * |
| |
506 * @return The label text. |
| |
507 */ |
| |
508 const char *gaim_request_field_get_label(const GaimRequestField *field); |
| |
509 |
| |
510 /** |
| |
511 * Returns whether or not a field is visible. |
| |
512 * |
| |
513 * @param field The field. |
| |
514 * |
| |
515 * @return TRUE if the field is visible. FALSE otherwise. |
| |
516 */ |
| |
517 gboolean gaim_request_field_is_visible(const GaimRequestField *field); |
| |
518 |
| |
519 /** |
| |
520 * Returns the field's type hint. |
| |
521 * |
| |
522 * @param field The field. |
| |
523 * |
| |
524 * @return The field's type hint. |
| |
525 */ |
| |
526 const char *gaim_request_field_get_type_hint(const GaimRequestField *field); |
| |
527 |
| |
528 /** |
| |
529 * Returns whether or not a field is required. |
| |
530 * |
| |
531 * @param field The field. |
| |
532 * |
| |
533 * @return TRUE if the field is required, or FALSE. |
| |
534 */ |
| |
535 gboolean gaim_request_field_is_required(const GaimRequestField *field); |
| |
536 |
| |
537 /*@}*/ |
| |
538 |
| |
539 /**************************************************************************/ |
| |
540 /** @name String Field API */ |
| |
541 /**************************************************************************/ |
| |
542 /*@{*/ |
| |
543 |
| |
544 /** |
| |
545 * Creates a string request field. |
| |
546 * |
| |
547 * @param id The field ID. |
| |
548 * @param text The text label of the field. |
| |
549 * @param default_value The optional default value. |
| |
550 * @param multiline Whether or not this should be a multiline string. |
| |
551 * |
| |
552 * @return The new field. |
| |
553 */ |
| |
554 GaimRequestField *gaim_request_field_string_new(const char *id, |
| |
555 const char *text, |
| |
556 const char *default_value, |
| |
557 gboolean multiline); |
| |
558 |
| |
559 /** |
| |
560 * Sets the default value in a string field. |
| |
561 * |
| |
562 * @param field The field. |
| |
563 * @param default_value The default value. |
| |
564 */ |
| |
565 void gaim_request_field_string_set_default_value(GaimRequestField *field, |
| |
566 const char *default_value); |
| |
567 |
| |
568 /** |
| |
569 * Sets the value in a string field. |
| |
570 * |
| |
571 * @param field The field. |
| |
572 * @param value The value. |
| |
573 */ |
| |
574 void gaim_request_field_string_set_value(GaimRequestField *field, |
| |
575 const char *value); |
| |
576 |
| |
577 /** |
| |
578 * Sets whether or not a string field is masked |
| |
579 * (commonly used for password fields). |
| |
580 * |
| |
581 * @param field The field. |
| |
582 * @param masked The masked value. |
| |
583 */ |
| |
584 void gaim_request_field_string_set_masked(GaimRequestField *field, |
| |
585 gboolean masked); |
| |
586 |
| |
587 /** |
| |
588 * Sets whether or not a string field is editable. |
| |
589 * |
| |
590 * @param field The field. |
| |
591 * @param editable The editable value. |
| |
592 */ |
| |
593 void gaim_request_field_string_set_editable(GaimRequestField *field, |
| |
594 gboolean editable); |
| |
595 |
| |
596 /** |
| |
597 * Returns the default value in a string field. |
| |
598 * |
| |
599 * @param field The field. |
| |
600 * |
| |
601 * @return The default value. |
| |
602 */ |
| |
603 const char *gaim_request_field_string_get_default_value( |
| |
604 const GaimRequestField *field); |
| |
605 |
| |
606 /** |
| |
607 * Returns the user-entered value in a string field. |
| |
608 * |
| |
609 * @param field The field. |
| |
610 * |
| |
611 * @return The value. |
| |
612 */ |
| |
613 const char *gaim_request_field_string_get_value(const GaimRequestField *field); |
| |
614 |
| |
615 /** |
| |
616 * Returns whether or not a string field is multi-line. |
| |
617 * |
| |
618 * @param field The field. |
| |
619 * |
| |
620 * @return @c TRUE if the field is mulit-line, or @c FALSE otherwise. |
| |
621 */ |
| |
622 gboolean gaim_request_field_string_is_multiline(const GaimRequestField *field); |
| |
623 |
| |
624 /** |
| |
625 * Returns whether or not a string field is masked. |
| |
626 * |
| |
627 * @param field The field. |
| |
628 * |
| |
629 * @return @c TRUE if the field is masked, or @c FALSE otherwise. |
| |
630 */ |
| |
631 gboolean gaim_request_field_string_is_masked(const GaimRequestField *field); |
| |
632 |
| |
633 /** |
| |
634 * Returns whether or not a string field is editable. |
| |
635 * |
| |
636 * @param field The field. |
| |
637 * |
| |
638 * @return @c TRUE if the field is editable, or @c FALSE otherwise. |
| |
639 */ |
| |
640 gboolean gaim_request_field_string_is_editable(const GaimRequestField *field); |
| |
641 |
| |
642 /*@}*/ |
| |
643 |
| |
644 /**************************************************************************/ |
| |
645 /** @name Integer Field API */ |
| |
646 /**************************************************************************/ |
| |
647 /*@{*/ |
| |
648 |
| |
649 /** |
| |
650 * Creates an integer field. |
| |
651 * |
| |
652 * @param id The field ID. |
| |
653 * @param text The text label of the field. |
| |
654 * @param default_value The default value. |
| |
655 * |
| |
656 * @return The new field. |
| |
657 */ |
| |
658 GaimRequestField *gaim_request_field_int_new(const char *id, |
| |
659 const char *text, |
| |
660 int default_value); |
| |
661 |
| |
662 /** |
| |
663 * Sets the default value in an integer field. |
| |
664 * |
| |
665 * @param field The field. |
| |
666 * @param default_value The default value. |
| |
667 */ |
| |
668 void gaim_request_field_int_set_default_value(GaimRequestField *field, |
| |
669 int default_value); |
| |
670 |
| |
671 /** |
| |
672 * Sets the value in an integer field. |
| |
673 * |
| |
674 * @param field The field. |
| |
675 * @param value The value. |
| |
676 */ |
| |
677 void gaim_request_field_int_set_value(GaimRequestField *field, int value); |
| |
678 |
| |
679 /** |
| |
680 * Returns the default value in an integer field. |
| |
681 * |
| |
682 * @param field The field. |
| |
683 * |
| |
684 * @return The default value. |
| |
685 */ |
| |
686 int gaim_request_field_int_get_default_value(const GaimRequestField *field); |
| |
687 |
| |
688 /** |
| |
689 * Returns the user-entered value in an integer field. |
| |
690 * |
| |
691 * @param field The field. |
| |
692 * |
| |
693 * @return The value. |
| |
694 */ |
| |
695 int gaim_request_field_int_get_value(const GaimRequestField *field); |
| |
696 |
| |
697 /*@}*/ |
| |
698 |
| |
699 /**************************************************************************/ |
| |
700 /** @name Boolean Field API */ |
| |
701 /**************************************************************************/ |
| |
702 /*@{*/ |
| |
703 |
| |
704 /** |
| |
705 * Creates a boolean field. |
| |
706 * |
| |
707 * This is often represented as a checkbox. |
| |
708 * |
| |
709 * @param id The field ID. |
| |
710 * @param text The text label of the field. |
| |
711 * @param default_value The default value. |
| |
712 * |
| |
713 * @return The new field. |
| |
714 */ |
| |
715 GaimRequestField *gaim_request_field_bool_new(const char *id, |
| |
716 const char *text, |
| |
717 gboolean default_value); |
| |
718 |
| |
719 /** |
| |
720 * Sets the default value in an boolean field. |
| |
721 * |
| |
722 * @param field The field. |
| |
723 * @param default_value The default value. |
| |
724 */ |
| |
725 void gaim_request_field_bool_set_default_value(GaimRequestField *field, |
| |
726 gboolean default_value); |
| |
727 |
| |
728 /** |
| |
729 * Sets the value in an boolean field. |
| |
730 * |
| |
731 * @param field The field. |
| |
732 * @param value The value. |
| |
733 */ |
| |
734 void gaim_request_field_bool_set_value(GaimRequestField *field, |
| |
735 gboolean value); |
| |
736 |
| |
737 /** |
| |
738 * Returns the default value in an boolean field. |
| |
739 * |
| |
740 * @param field The field. |
| |
741 * |
| |
742 * @return The default value. |
| |
743 */ |
| |
744 gboolean gaim_request_field_bool_get_default_value( |
| |
745 const GaimRequestField *field); |
| |
746 |
| |
747 /** |
| |
748 * Returns the user-entered value in an boolean field. |
| |
749 * |
| |
750 * @param field The field. |
| |
751 * |
| |
752 * @return The value. |
| |
753 */ |
| |
754 gboolean gaim_request_field_bool_get_value(const GaimRequestField *field); |
| |
755 |
| |
756 /*@}*/ |
| |
757 |
| |
758 /**************************************************************************/ |
| |
759 /** @name Choice Field API */ |
| |
760 /**************************************************************************/ |
| |
761 /*@{*/ |
| |
762 |
| |
763 /** |
| |
764 * Creates a multiple choice field. |
| |
765 * |
| |
766 * This is often represented as a group of radio buttons. |
| |
767 * |
| |
768 * @param id The field ID. |
| |
769 * @param text The optional label of the field. |
| |
770 * @param default_value The default choice. |
| |
771 * |
| |
772 * @return The new field. |
| |
773 */ |
| |
774 GaimRequestField *gaim_request_field_choice_new(const char *id, |
| |
775 const char *text, |
| |
776 int default_value); |
| |
777 |
| |
778 /** |
| |
779 * Adds a choice to a multiple choice field. |
| |
780 * |
| |
781 * @param field The choice field. |
| |
782 * @param label The choice label. |
| |
783 */ |
| |
784 void gaim_request_field_choice_add(GaimRequestField *field, |
| |
785 const char *label); |
| |
786 |
| |
787 /** |
| |
788 * Sets the default value in an choice field. |
| |
789 * |
| |
790 * @param field The field. |
| |
791 * @param default_value The default value. |
| |
792 */ |
| |
793 void gaim_request_field_choice_set_default_value(GaimRequestField *field, |
| |
794 int default_value); |
| |
795 |
| |
796 /** |
| |
797 * Sets the value in an choice field. |
| |
798 * |
| |
799 * @param field The field. |
| |
800 * @param value The value. |
| |
801 */ |
| |
802 void gaim_request_field_choice_set_value(GaimRequestField *field, int value); |
| |
803 |
| |
804 /** |
| |
805 * Returns the default value in an choice field. |
| |
806 * |
| |
807 * @param field The field. |
| |
808 * |
| |
809 * @return The default value. |
| |
810 */ |
| |
811 int gaim_request_field_choice_get_default_value(const GaimRequestField *field); |
| |
812 |
| |
813 /** |
| |
814 * Returns the user-entered value in an choice field. |
| |
815 * |
| |
816 * @param field The field. |
| |
817 * |
| |
818 * @return The value. |
| |
819 */ |
| |
820 int gaim_request_field_choice_get_value(const GaimRequestField *field); |
| |
821 |
| |
822 /** |
| |
823 * Returns a list of labels in a choice field. |
| |
824 * |
| |
825 * @param field The field. |
| |
826 * |
| |
827 * @return The list of labels. |
| |
828 */ |
| |
829 GList *gaim_request_field_choice_get_labels(const GaimRequestField *field); |
| |
830 |
| |
831 /*@}*/ |
| |
832 |
| |
833 /**************************************************************************/ |
| |
834 /** @name List Field API */ |
| |
835 /**************************************************************************/ |
| |
836 /*@{*/ |
| |
837 |
| |
838 /** |
| |
839 * Creates a multiple list item field. |
| |
840 * |
| |
841 * @param id The field ID. |
| |
842 * @param text The optional label of the field. |
| |
843 * |
| |
844 * @return The new field. |
| |
845 */ |
| |
846 GaimRequestField *gaim_request_field_list_new(const char *id, const char *text); |
| |
847 |
| |
848 /** |
| |
849 * Sets whether or not a list field allows multiple selection. |
| |
850 * |
| |
851 * @param field The list field. |
| |
852 * @param multi_select TRUE if multiple selection is enabled, |
| |
853 * or FALSE otherwise. |
| |
854 */ |
| |
855 void gaim_request_field_list_set_multi_select(GaimRequestField *field, |
| |
856 gboolean multi_select); |
| |
857 |
| |
858 /** |
| |
859 * Returns whether or not a list field allows multiple selection. |
| |
860 * |
| |
861 * @param field The list field. |
| |
862 * |
| |
863 * @return TRUE if multiple selection is enabled, or FALSE otherwise. |
| |
864 */ |
| |
865 gboolean gaim_request_field_list_get_multi_select( |
| |
866 const GaimRequestField *field); |
| |
867 |
| |
868 /** |
| |
869 * Returns the data for a particular item. |
| |
870 * |
| |
871 * @param field The list field. |
| |
872 * @param text The item text. |
| |
873 * |
| |
874 * @return The data associated with the item. |
| |
875 */ |
| |
876 void *gaim_request_field_list_get_data(const GaimRequestField *field, |
| |
877 const char *text); |
| |
878 |
| |
879 /** |
| |
880 * Adds an item to a list field. |
| |
881 * |
| |
882 * @param field The list field. |
| |
883 * @param item The list item. |
| |
884 * @param data The associated data. |
| |
885 */ |
| |
886 void gaim_request_field_list_add(GaimRequestField *field, |
| |
887 const char *item, void *data); |
| |
888 |
| |
889 /** |
| |
890 * Adds a selected item to the list field. |
| |
891 * |
| |
892 * @param field The field. |
| |
893 * @param item The item to add. |
| |
894 */ |
| |
895 void gaim_request_field_list_add_selected(GaimRequestField *field, |
| |
896 const char *item); |
| |
897 |
| |
898 /** |
| |
899 * Clears the list of selected items in a list field. |
| |
900 * |
| |
901 * @param field The field. |
| |
902 */ |
| |
903 void gaim_request_field_list_clear_selected(GaimRequestField *field); |
| |
904 |
| |
905 /** |
| |
906 * Sets a list of selected items in a list field. |
| |
907 * |
| |
908 * @param field The field. |
| |
909 * @param items The list of selected items. |
| |
910 */ |
| |
911 void gaim_request_field_list_set_selected(GaimRequestField *field, |
| |
912 const GList *items); |
| |
913 |
| |
914 /** |
| |
915 * Returns whether or not a particular item is selected in a list field. |
| |
916 * |
| |
917 * @param field The field. |
| |
918 * @param item The item. |
| |
919 * |
| |
920 * @return TRUE if the item is selected. FALSE otherwise. |
| |
921 */ |
| |
922 gboolean gaim_request_field_list_is_selected(const GaimRequestField *field, |
| |
923 const char *item); |
| |
924 |
| |
925 /** |
| |
926 * Returns a list of selected items in a list field. |
| |
927 * |
| |
928 * To retrieve the data for each item, use |
| |
929 * gaim_request_field_list_get_data(). |
| |
930 * |
| |
931 * @param field The field. |
| |
932 * |
| |
933 * @return The list of selected items. |
| |
934 */ |
| |
935 const GList *gaim_request_field_list_get_selected( |
| |
936 const GaimRequestField *field); |
| |
937 |
| |
938 /** |
| |
939 * Returns a list of items in a list field. |
| |
940 * |
| |
941 * @param field The field. |
| |
942 * |
| |
943 * @return The list of items. |
| |
944 */ |
| |
945 const GList *gaim_request_field_list_get_items(const GaimRequestField *field); |
| |
946 |
| |
947 /*@}*/ |
| |
948 |
| |
949 /**************************************************************************/ |
| |
950 /** @name Label Field API */ |
| |
951 /**************************************************************************/ |
| |
952 /*@{*/ |
| |
953 |
| |
954 /** |
| |
955 * Creates a label field. |
| |
956 * |
| |
957 * @param id The field ID. |
| |
958 * @param text The label of the field. |
| |
959 * |
| |
960 * @return The new field. |
| |
961 */ |
| |
962 GaimRequestField *gaim_request_field_label_new(const char *id, |
| |
963 const char *text); |
| |
964 |
| |
965 /*@}*/ |
| |
966 |
| |
967 /**************************************************************************/ |
| |
968 /** @name Image Field API */ |
| |
969 /**************************************************************************/ |
| |
970 /*@{*/ |
| |
971 |
| |
972 /** |
| |
973 * Creates an image field. |
| |
974 * |
| |
975 * @param id The field ID. |
| |
976 * @param text The label of the field. |
| |
977 * @param buf The image data. |
| |
978 * @param size The size of the data in @a buffer. |
| |
979 * |
| |
980 * @return The new field. |
| |
981 */ |
| |
982 GaimRequestField *gaim_request_field_image_new(const char *id, const char *text, |
| |
983 const char *buf, gsize size); |
| |
984 |
| |
985 /** |
| |
986 * Sets the scale factors of an image field. |
| |
987 * |
| |
988 * @param field The image field. |
| |
989 * @param x The x scale factor. |
| |
990 * @param y The y scale factor. |
| |
991 */ |
| |
992 void gaim_request_field_image_set_scale(GaimRequestField *field, unsigned int x, unsigned int y); |
| |
993 |
| |
994 /** |
| |
995 * Returns pointer to the image. |
| |
996 * |
| |
997 * @param field The image field. |
| |
998 * |
| |
999 * @return Pointer to the image. |
| |
1000 */ |
| |
1001 const char *gaim_request_field_image_get_buffer(GaimRequestField *field); |
| |
1002 |
| |
1003 /** |
| |
1004 * Returns size (in bytes) of the image. |
| |
1005 * |
| |
1006 * @param field The image field. |
| |
1007 * |
| |
1008 * @return Size of the image. |
| |
1009 */ |
| |
1010 gsize gaim_request_field_image_get_size(GaimRequestField *field); |
| |
1011 |
| |
1012 /** |
| |
1013 * Returns X scale coefficient of the image. |
| |
1014 * |
| |
1015 * @param field The image field. |
| |
1016 * |
| |
1017 * @return X scale coefficient of the image. |
| |
1018 */ |
| |
1019 unsigned int gaim_request_field_image_get_scale_x(GaimRequestField *field); |
| |
1020 |
| |
1021 /** |
| |
1022 * Returns Y scale coefficient of the image. |
| |
1023 * |
| |
1024 * @param field The image field. |
| |
1025 * |
| |
1026 * @return Y scale coefficient of the image. |
| |
1027 */ |
| |
1028 unsigned int gaim_request_field_image_get_scale_y(GaimRequestField *field); |
| |
1029 |
| |
1030 /*@}*/ |
| |
1031 |
| |
1032 /**************************************************************************/ |
| |
1033 /** @name Account Field API */ |
| |
1034 /**************************************************************************/ |
| |
1035 /*@{*/ |
| |
1036 |
| |
1037 /** |
| |
1038 * Creates an account field. |
| |
1039 * |
| |
1040 * By default, this field will not show offline accounts. |
| |
1041 * |
| |
1042 * @param id The field ID. |
| |
1043 * @param text The text label of the field. |
| |
1044 * @param account The optional default account. |
| |
1045 * |
| |
1046 * @return The new field. |
| |
1047 */ |
| |
1048 GaimRequestField *gaim_request_field_account_new(const char *id, |
| |
1049 const char *text, |
| |
1050 GaimAccount *account); |
| |
1051 |
| |
1052 /** |
| |
1053 * Sets the default account on an account field. |
| |
1054 * |
| |
1055 * @param field The account field. |
| |
1056 * @param default_value The default account. |
| |
1057 */ |
| |
1058 void gaim_request_field_account_set_default_value(GaimRequestField *field, |
| |
1059 GaimAccount *default_value); |
| |
1060 |
| |
1061 /** |
| |
1062 * Sets the account in an account field. |
| |
1063 * |
| |
1064 * @param field The account field. |
| |
1065 * @param value The account. |
| |
1066 */ |
| |
1067 void gaim_request_field_account_set_value(GaimRequestField *field, |
| |
1068 GaimAccount *value); |
| |
1069 |
| |
1070 /** |
| |
1071 * Sets whether or not to show all accounts in an account field. |
| |
1072 * |
| |
1073 * If TRUE, all accounts, online or offline, will be shown. If FALSE, |
| |
1074 * only online accounts will be shown. |
| |
1075 * |
| |
1076 * @param field The account field. |
| |
1077 * @param show_all Whether or not to show all accounts. |
| |
1078 */ |
| |
1079 void gaim_request_field_account_set_show_all(GaimRequestField *field, |
| |
1080 gboolean show_all); |
| |
1081 |
| |
1082 /** |
| |
1083 * Sets the account filter function in an account field. |
| |
1084 * |
| |
1085 * This function will determine which accounts get displayed and which |
| |
1086 * don't. |
| |
1087 * |
| |
1088 * @param field The account field. |
| |
1089 * @param filter_func The account filter function. |
| |
1090 */ |
| |
1091 void gaim_request_field_account_set_filter(GaimRequestField *field, |
| |
1092 GaimFilterAccountFunc filter_func); |
| |
1093 |
| |
1094 /** |
| |
1095 * Returns the default account in an account field. |
| |
1096 * |
| |
1097 * @param field The field. |
| |
1098 * |
| |
1099 * @return The default account. |
| |
1100 */ |
| |
1101 GaimAccount *gaim_request_field_account_get_default_value( |
| |
1102 const GaimRequestField *field); |
| |
1103 |
| |
1104 /** |
| |
1105 * Returns the user-entered account in an account field. |
| |
1106 * |
| |
1107 * @param field The field. |
| |
1108 * |
| |
1109 * @return The user-entered account. |
| |
1110 */ |
| |
1111 GaimAccount *gaim_request_field_account_get_value( |
| |
1112 const GaimRequestField *field); |
| |
1113 |
| |
1114 /** |
| |
1115 * Returns whether or not to show all accounts in an account field. |
| |
1116 * |
| |
1117 * If TRUE, all accounts, online or offline, will be shown. If FALSE, |
| |
1118 * only online accounts will be shown. |
| |
1119 * |
| |
1120 * @param field The account field. |
| |
1121 * @return Whether or not to show all accounts. |
| |
1122 */ |
| |
1123 gboolean gaim_request_field_account_get_show_all( |
| |
1124 const GaimRequestField *field); |
| |
1125 |
| |
1126 /** |
| |
1127 * Returns the account filter function in an account field. |
| |
1128 * |
| |
1129 * This function will determine which accounts get displayed and which |
| |
1130 * don't. |
| |
1131 * |
| |
1132 * @param field The account field. |
| |
1133 * |
| |
1134 * @return The account filter function. |
| |
1135 */ |
| |
1136 GaimFilterAccountFunc gaim_request_field_account_get_filter( |
| |
1137 const GaimRequestField *field); |
| |
1138 |
| |
1139 /*@}*/ |
| |
1140 |
| |
1141 /**************************************************************************/ |
| |
1142 /** @name Request API */ |
| |
1143 /**************************************************************************/ |
| |
1144 /*@{*/ |
| |
1145 |
| |
1146 /** |
| |
1147 * Prompts the user for text input. |
| |
1148 * |
| |
1149 * @param handle The plugin or connection handle. For some |
| |
1150 * things this is EXTREMELY important. The |
| |
1151 * handle is used to programmatically close |
| |
1152 * the request dialog when it is no longer |
| |
1153 * needed. For PRPLs this is often a pointer |
| |
1154 * to the GaimConnection instance. For plugins |
| |
1155 * this should be a similar, unique memory |
| |
1156 * location. This value is important because |
| |
1157 * it allows a request to be closed, say, when |
| |
1158 * you sign offline. If the request is NOT |
| |
1159 * closed it is VERY likely to cause a crash |
| |
1160 * whenever the callback handler functions are |
| |
1161 * triggered. |
| |
1162 * @param title The title of the message. |
| |
1163 * @param primary The main point of the message. |
| |
1164 * @param secondary The secondary information. |
| |
1165 * @param default_value The default value. |
| |
1166 * @param multiline TRUE if the inputted text can span multiple lines. |
| |
1167 * @param masked TRUE if the inputted text should be masked in some way. |
| |
1168 * @param hint Optionally suggest how the input box should appear. |
| |
1169 * Use "html," for example, to allow the user to enter |
| |
1170 * HTML. |
| |
1171 * @param ok_text The text for the @c OK button. |
| |
1172 * @param ok_cb The callback for the @c OK button. |
| |
1173 * @param cancel_text The text for the @c Cancel button. |
| |
1174 * @param cancel_cb The callback for the @c Cancel button. |
| |
1175 * @param user_data The data to pass to the callback. |
| |
1176 * |
| |
1177 * @return A UI-specific handle. |
| |
1178 */ |
| |
1179 void *gaim_request_input(void *handle, const char *title, |
| |
1180 const char *primary, const char *secondary, |
| |
1181 const char *default_value, |
| |
1182 gboolean multiline, gboolean masked, gchar *hint, |
| |
1183 const char *ok_text, GCallback ok_cb, |
| |
1184 const char *cancel_text, GCallback cancel_cb, |
| |
1185 void *user_data); |
| |
1186 |
| |
1187 /** |
| |
1188 * Prompts the user for multiple-choice input. |
| |
1189 * |
| |
1190 * @param handle The plugin or connection handle. For some |
| |
1191 * things this is EXTREMELY important. See |
| |
1192 * the comments on gaim_request_input. |
| |
1193 * @param title The title of the message. |
| |
1194 * @param primary The main point of the message. |
| |
1195 * @param secondary The secondary information. |
| |
1196 * @param default_value The default value. |
| |
1197 * @param ok_text The text for the @c OK button. |
| |
1198 * @param ok_cb The callback for the @c OK button. |
| |
1199 * @param cancel_text The text for the @c Cancel button. |
| |
1200 * @param cancel_cb The callback for the @c Cancel button. |
| |
1201 * @param user_data The data to pass to the callback. |
| |
1202 * @param ... The choices. This argument list should be |
| |
1203 * terminated with a NULL parameter. |
| |
1204 * |
| |
1205 * @return A UI-specific handle. |
| |
1206 */ |
| |
1207 void *gaim_request_choice(void *handle, const char *title, |
| |
1208 const char *primary, const char *secondary, |
| |
1209 unsigned int default_value, |
| |
1210 const char *ok_text, GCallback ok_cb, |
| |
1211 const char *cancel_text, GCallback cancel_cb, |
| |
1212 void *user_data, ...); |
| |
1213 |
| |
1214 /** |
| |
1215 * Prompts the user for multiple-choice input. |
| |
1216 * |
| |
1217 * @param handle The plugin or connection handle. For some |
| |
1218 * things this is EXTREMELY important. See |
| |
1219 * the comments on gaim_request_input. |
| |
1220 * @param title The title of the message. |
| |
1221 * @param primary The main point of the message. |
| |
1222 * @param secondary The secondary information. |
| |
1223 * @param default_value The default value. |
| |
1224 * @param ok_text The text for the @c OK button. |
| |
1225 * @param ok_cb The callback for the @c OK button. |
| |
1226 * @param cancel_text The text for the @c Cancel button. |
| |
1227 * @param cancel_cb The callback for the @c Cancel button. |
| |
1228 * @param user_data The data to pass to the callback. |
| |
1229 * @param choices The choices. This argument list should be |
| |
1230 * terminated with a @c NULL parameter. |
| |
1231 * |
| |
1232 * @return A UI-specific handle. |
| |
1233 */ |
| |
1234 void *gaim_request_choice_varg(void *handle, const char *title, |
| |
1235 const char *primary, const char *secondary, |
| |
1236 unsigned int default_value, |
| |
1237 const char *ok_text, GCallback ok_cb, |
| |
1238 const char *cancel_text, GCallback cancel_cb, |
| |
1239 void *user_data, va_list choices); |
| |
1240 |
| |
1241 /** |
| |
1242 * Prompts the user for an action. |
| |
1243 * |
| |
1244 * This is often represented as a dialog with a button for each action. |
| |
1245 * |
| |
1246 * @param handle The plugin or connection handle. For some |
| |
1247 * things this is EXTREMELY important. See |
| |
1248 * the comments on gaim_request_input. |
| |
1249 * @param title The title of the message. |
| |
1250 * @param primary The main point of the message. |
| |
1251 * @param secondary The secondary information. |
| |
1252 * @param default_action The default value. |
| |
1253 * @param user_data The data to pass to the callback. |
| |
1254 * @param action_count The number of actions. |
| |
1255 * @param ... A list of actions. |
| |
1256 * |
| |
1257 * @return A UI-specific handle. |
| |
1258 */ |
| |
1259 void *gaim_request_action(void *handle, const char *title, |
| |
1260 const char *primary, const char *secondary, |
| |
1261 unsigned int default_action, |
| |
1262 void *user_data, size_t action_count, ...); |
| |
1263 |
| |
1264 /** |
| |
1265 * Prompts the user for an action. |
| |
1266 * |
| |
1267 * This is often represented as a dialog with a button for each action. |
| |
1268 * |
| |
1269 * @param handle The plugin or connection handle. For some |
| |
1270 * things this is EXTREMELY important. See |
| |
1271 * the comments on gaim_request_input. |
| |
1272 * @param title The title of the message. |
| |
1273 * @param primary The main point of the message. |
| |
1274 * @param secondary The secondary information. |
| |
1275 * @param default_action The default value. |
| |
1276 * @param user_data The data to pass to the callback. |
| |
1277 * @param action_count The number of actions. |
| |
1278 * @param actions A list of actions and callbacks. |
| |
1279 * |
| |
1280 * @return A UI-specific handle. |
| |
1281 */ |
| |
1282 void *gaim_request_action_varg(void *handle, const char *title, |
| |
1283 const char *primary, const char *secondary, |
| |
1284 unsigned int default_action, |
| |
1285 void *user_data, size_t action_count, |
| |
1286 va_list actions); |
| |
1287 |
| |
1288 /** |
| |
1289 * Displays groups of fields for the user to fill in. |
| |
1290 * |
| |
1291 * @param handle The plugin or connection handle. For some |
| |
1292 * things this is EXTREMELY important. See |
| |
1293 * the comments on gaim_request_input. |
| |
1294 * @param title The title of the message. |
| |
1295 * @param primary The main point of the message. |
| |
1296 * @param secondary The secondary information. |
| |
1297 * @param fields The list of fields. |
| |
1298 * @param ok_text The text for the @c OK button. |
| |
1299 * @param ok_cb The callback for the @c OK button. |
| |
1300 * @param cancel_text The text for the @c Cancel button. |
| |
1301 * @param cancel_cb The callback for the @c Cancel button. |
| |
1302 * @param user_data The data to pass to the callback. |
| |
1303 * |
| |
1304 * @return A UI-specific handle. |
| |
1305 */ |
| |
1306 void *gaim_request_fields(void *handle, const char *title, |
| |
1307 const char *primary, const char *secondary, |
| |
1308 GaimRequestFields *fields, |
| |
1309 const char *ok_text, GCallback ok_cb, |
| |
1310 const char *cancel_text, GCallback cancel_cb, |
| |
1311 void *user_data); |
| |
1312 |
| |
1313 /** |
| |
1314 * Closes a request. |
| |
1315 * |
| |
1316 * @param type The request type. |
| |
1317 * @param uihandle The request UI handle. |
| |
1318 */ |
| |
1319 void gaim_request_close(GaimRequestType type, void *uihandle); |
| |
1320 |
| |
1321 /** |
| |
1322 * Closes all requests registered with the specified handle. |
| |
1323 * |
| |
1324 * @param handle The handle. |
| |
1325 */ |
| |
1326 void gaim_request_close_with_handle(void *handle); |
| |
1327 |
| |
1328 /** |
| |
1329 * A wrapper for gaim_request_action() that uses @c Yes and @c No buttons. |
| |
1330 */ |
| |
1331 #define gaim_request_yes_no(handle, title, primary, secondary, \ |
| |
1332 default_action, user_data, yes_cb, no_cb) \ |
| |
1333 gaim_request_action((handle), (title), (primary), (secondary), \ |
| |
1334 (default_action), (user_data), 2, \ |
| |
1335 _("Yes"), (yes_cb), _("No"), (no_cb)) |
| |
1336 |
| |
1337 /** |
| |
1338 * A wrapper for gaim_request_action() that uses @c OK and @c Cancel buttons. |
| |
1339 */ |
| |
1340 #define gaim_request_ok_cancel(handle, title, primary, secondary, \ |
| |
1341 default_action, user_data, ok_cb, cancel_cb) \ |
| |
1342 gaim_request_action((handle), (title), (primary), (secondary), \ |
| |
1343 (default_action), (user_data), 2, \ |
| |
1344 _("OK"), (ok_cb), _("Cancel"), (cancel_cb)) |
| |
1345 |
| |
1346 /** |
| |
1347 * A wrapper for gaim_request_action() that uses Accept and Cancel buttons. |
| |
1348 */ |
| |
1349 #define gaim_request_accept_cancel(handle, title, primary, secondary, \ |
| |
1350 default_action, user_data, accept_cb, \ |
| |
1351 cancel_cb) \ |
| |
1352 gaim_request_action((handle), (title), (primary), (secondary), \ |
| |
1353 (default_action), (user_data), 2, \ |
| |
1354 _("_Accept"), (accept_cb), _("Cancel"), (cancel_cb)) |
| |
1355 |
| |
1356 /** |
| |
1357 * Displays a file selector request dialog. Returns the selected filename to |
| |
1358 * the callback. Can be used for either opening a file or saving a file. |
| |
1359 * |
| |
1360 * @param handle The plugin or connection handle. For some |
| |
1361 * things this is EXTREMELY important. See |
| |
1362 * the comments on gaim_request_input. |
| |
1363 * @param title The title for the dialog (may be @c NULL) |
| |
1364 * @param filename The default filename (may be @c NULL) |
| |
1365 * @param savedialog True if this dialog is being used to save a file. |
| |
1366 * False if it is being used to open a file. |
| |
1367 * @param ok_cb The callback for the @c OK button. |
| |
1368 * @param cancel_cb The callback for the @c Cancel button. |
| |
1369 * @param user_data The data to pass to the callback. |
| |
1370 * |
| |
1371 * @return A UI-specific handle. |
| |
1372 */ |
| |
1373 void *gaim_request_file(void *handle, const char *title, const char *filename, |
| |
1374 gboolean savedialog, |
| |
1375 GCallback ok_cb, GCallback cancel_cb, |
| |
1376 void *user_data); |
| |
1377 |
| |
1378 /** |
| |
1379 * Displays a folder select dialog. Returns the selected filename to |
| |
1380 * the callback. |
| |
1381 * |
| |
1382 * @param handle The plugin or connection handle. For some |
| |
1383 * things this is EXTREMELY important. See |
| |
1384 * the comments on gaim_request_input. |
| |
1385 * @param title The title for the dialog (may be @c NULL) |
| |
1386 * @param dirname The default directory name (may be @c NULL) |
| |
1387 * @param ok_cb The callback for the @c OK button. |
| |
1388 * @param cancel_cb The callback for the @c Cancel button. |
| |
1389 * @param user_data The data to pass to the callback. |
| |
1390 * |
| |
1391 * @return A UI-specific handle. |
| |
1392 */ |
| |
1393 void *gaim_request_folder(void *handle, const char *title, const char *dirname, |
| |
1394 GCallback ok_cb, GCallback cancel_cb, |
| |
1395 void *user_data); |
| |
1396 |
| |
1397 /*@}*/ |
| |
1398 |
| |
1399 /**************************************************************************/ |
| |
1400 /** @name UI Registration Functions */ |
| |
1401 /**************************************************************************/ |
| |
1402 /*@{*/ |
| |
1403 |
| |
1404 /** |
| |
1405 * Sets the UI operations structure to be used when displaying a |
| |
1406 * request. |
| |
1407 * |
| |
1408 * @param ops The UI operations structure. |
| |
1409 */ |
| |
1410 void gaim_request_set_ui_ops(GaimRequestUiOps *ops); |
| |
1411 |
| |
1412 /** |
| |
1413 * Returns the UI operations structure to be used when displaying a |
| |
1414 * request. |
| |
1415 * |
| |
1416 * @return The UI operations structure. |
| |
1417 */ |
| |
1418 GaimRequestUiOps *gaim_request_get_ui_ops(void); |
| |
1419 |
| |
1420 /*@}*/ |
| |
1421 |
| |
1422 #ifdef __cplusplus |
| |
1423 } |
| |
1424 #endif |
| |
1425 |
| |
1426 #endif /* _GAIM_REQUEST_H_ */ |