comparison libpurple/request.c @ 32672:3828a61c44da

A boring and large patch so I can merge heads.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Fri, 23 Dec 2011 08:21:58 +0000
parents a88631af0f5e
children
comparison
equal deleted inserted replaced
32671:0e69949b3e61 32672:3828a61c44da
40 void *handle; 40 void *handle;
41 void *ui_handle; 41 void *ui_handle;
42 42
43 } PurpleRequestInfo; 43 } PurpleRequestInfo;
44 44
45 struct _PurpleRequestField
46 {
47 PurpleRequestFieldType type;
48 PurpleRequestFieldGroup *group;
49
50 char *id;
51 char *label;
52 char *type_hint;
53
54 gboolean visible;
55 gboolean required;
56
57 union
58 {
59 struct
60 {
61 gboolean multiline;
62 gboolean masked;
63 gboolean editable;
64 char *default_value;
65 char *value;
66
67 } string;
68
69 struct
70 {
71 int default_value;
72 int value;
73
74 } integer;
75
76 struct
77 {
78 gboolean default_value;
79 gboolean value;
80
81 } boolean;
82
83 struct
84 {
85 int default_value;
86 int value;
87
88 GList *labels;
89
90 } choice;
91
92 struct
93 {
94 GList *items;
95 GList *icons;
96 GHashTable *item_data;
97 GList *selected;
98 GHashTable *selected_table;
99
100 gboolean multiple_selection;
101
102 } list;
103
104 struct
105 {
106 PurpleAccount *default_account;
107 PurpleAccount *account;
108 gboolean show_all;
109
110 PurpleFilterAccountFunc filter_func;
111
112 } account;
113
114 struct
115 {
116 unsigned int scale_x;
117 unsigned int scale_y;
118 const char *buffer;
119 gsize size;
120 } image;
121
122 } u;
123
124 void *ui_data;
125 char *tooltip;
126 };
127
128 struct _PurpleRequestFields
129 {
130 GList *groups;
131
132 GHashTable *fields;
133
134 GList *required_fields;
135
136 void *ui_data;
137 };
138
139 struct _PurpleRequestFieldGroup
140 {
141 PurpleRequestFields *fields_list;
142
143 char *title;
144
145 GList *fields;
146 };
45 147
46 PurpleRequestFields * 148 PurpleRequestFields *
47 purple_request_fields_new(void) 149 purple_request_fields_new(void)
48 { 150 {
49 PurpleRequestFields *fields; 151 PurpleRequestFields *fields;
269 return NULL; 371 return NULL;
270 372
271 return purple_request_field_account_get_value(field); 373 return purple_request_field_account_get_value(field);
272 } 374 }
273 375
376 gpointer purple_request_fields_get_ui_data(const PurpleRequestFields *fields)
377 {
378 g_return_val_if_fail(fields != NULL, NULL);
379
380 return fields->ui_data;
381 }
382
383 void purple_request_fields_set_ui_data(PurpleRequestFields *fields, gpointer ui_data)
384 {
385 g_return_if_fail(fields != NULL);
386
387 fields->ui_data = ui_data;
388 }
389
274 PurpleRequestFieldGroup * 390 PurpleRequestFieldGroup *
275 purple_request_field_group_new(const char *title) 391 purple_request_field_group_new(const char *title)
276 { 392 {
277 PurpleRequestFieldGroup *group; 393 PurpleRequestFieldGroup *group;
278 394
333 purple_request_field_group_get_fields(const PurpleRequestFieldGroup *group) 449 purple_request_field_group_get_fields(const PurpleRequestFieldGroup *group)
334 { 450 {
335 g_return_val_if_fail(group != NULL, NULL); 451 g_return_val_if_fail(group != NULL, NULL);
336 452
337 return group->fields; 453 return group->fields;
454 }
455
456 PurpleRequestFields *
457 purple_request_field_group_get_fields_list(const PurpleRequestFieldGroup *group)
458 {
459 g_return_val_if_fail(group != NULL, NULL);
460
461 return group->fields_list;
338 } 462 }
339 463
340 PurpleRequestField * 464 PurpleRequestField *
341 purple_request_field_new(const char *id, const char *text, 465 purple_request_field_new(const char *id, const char *text,
342 PurpleRequestFieldType type) 466 PurpleRequestFieldType type)
863 987
864 return g_hash_table_lookup(field->u.list.item_data, text); 988 return g_hash_table_lookup(field->u.list.item_data, text);
865 } 989 }
866 990
867 void 991 void
868 purple_request_field_list_add(PurpleRequestField *field, const char *item,
869 void *data)
870 {
871 purple_request_field_list_add_icon(field, item, NULL, data);
872 }
873
874 void
875 purple_request_field_list_add_icon(PurpleRequestField *field, const char *item, const char* icon_path, 992 purple_request_field_list_add_icon(PurpleRequestField *field, const char *item, const char* icon_path,
876 void *data) 993 void *data)
877 { 994 {
878 g_return_if_fail(field != NULL); 995 g_return_if_fail(field != NULL);
879 g_return_if_fail(item != NULL); 996 g_return_if_fail(item != NULL);