| 1138 return field->u.account.filter_func; |
1131 return field->u.account.filter_func; |
| 1139 } |
1132 } |
| 1140 |
1133 |
| 1141 /* -- */ |
1134 /* -- */ |
| 1142 |
1135 |
| 1143 PurpleRequestField *purple_request_field_blist_nodes_new(const char *id, |
|
| 1144 const char *text, PurpleRequestBlistFlags flags, GList *selected) |
|
| 1145 { |
|
| 1146 PurpleRequestField *field; |
|
| 1147 |
|
| 1148 g_return_val_if_fail(id != NULL, NULL); |
|
| 1149 g_return_val_if_fail(text != NULL, NULL); |
|
| 1150 |
|
| 1151 field = purple_request_field_new(id, text, PURPLE_REQUEST_FIELD_BLIST); |
|
| 1152 |
|
| 1153 field->u.blist.flags = flags; |
|
| 1154 field->u.blist.default_nodes = selected; |
|
| 1155 purple_request_field_blist_set_selection_list(field, selected); |
|
| 1156 |
|
| 1157 return field; |
|
| 1158 } |
|
| 1159 |
|
| 1160 PurpleFilterBlistFunc |
|
| 1161 purple_request_field_blist_set_filter(PurpleRequestField *field, PurpleFilterBlistFunc filter) |
|
| 1162 { |
|
| 1163 PurpleFilterBlistFunc old; |
|
| 1164 g_return_val_if_fail(field != NULL, NULL); |
|
| 1165 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_BLIST, NULL); |
|
| 1166 old = field->u.blist.filter; |
|
| 1167 field->u.blist.filter = filter; |
|
| 1168 return old; |
|
| 1169 } |
|
| 1170 |
|
| 1171 PurpleFilterBlistFunc |
|
| 1172 purple_request_field_blist_get_filter(const PurpleRequestField *field) |
|
| 1173 { |
|
| 1174 g_return_val_if_fail(field != NULL, NULL); |
|
| 1175 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_BLIST, NULL); |
|
| 1176 return field->u.blist.filter; |
|
| 1177 } |
|
| 1178 |
|
| 1179 GList *purple_request_field_blist_get_selection_list(const PurpleRequestField *field) |
|
| 1180 { |
|
| 1181 g_return_val_if_fail(field != NULL, NULL); |
|
| 1182 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_BLIST, NULL); |
|
| 1183 return field->u.blist.selecteds; |
|
| 1184 } |
|
| 1185 |
|
| 1186 gboolean purple_request_field_blist_add(PurpleRequestField *field, PurpleBlistNode *node) |
|
| 1187 { |
|
| 1188 g_return_val_if_fail(field != NULL, FALSE); |
|
| 1189 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_BLIST, FALSE); |
|
| 1190 if (!g_list_find(field->u.blist.selecteds, node)) { |
|
| 1191 field->u.blist.selecteds = g_list_append(field->u.blist.selecteds, node); |
|
| 1192 return TRUE; |
|
| 1193 } else { |
|
| 1194 return FALSE; |
|
| 1195 } |
|
| 1196 } |
|
| 1197 |
|
| 1198 gboolean purple_request_field_blist_remove(PurpleRequestField *field, PurpleBlistNode *node) |
|
| 1199 { |
|
| 1200 GList *search; |
|
| 1201 g_return_val_if_fail(field != NULL, FALSE); |
|
| 1202 g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_BLIST, FALSE); |
|
| 1203 if ((search = g_list_find(field->u.blist.selecteds, node)) != NULL) { |
|
| 1204 field->u.blist.selecteds = g_list_delete_link(field->u.blist.selecteds, search); |
|
| 1205 return TRUE; |
|
| 1206 } else { |
|
| 1207 return FALSE; |
|
| 1208 } |
|
| 1209 } |
|
| 1210 |
|
| 1211 void purple_request_field_blist_set_selection_list(PurpleRequestField *field, GList *selecteds) |
|
| 1212 { |
|
| 1213 g_return_if_fail(field != NULL); |
|
| 1214 g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_BLIST); |
|
| 1215 if (field->u.blist.selecteds) |
|
| 1216 g_list_free(field->u.blist.selecteds); |
|
| 1217 field->u.blist.selecteds = selecteds; |
|
| 1218 } |
|
| 1219 |
|
| 1220 /* -- */ |
|
| 1221 |
|
| 1222 void * |
1136 void * |
| 1223 purple_request_input(void *handle, const char *title, const char *primary, |
1137 purple_request_input(void *handle, const char *title, const char *primary, |
| 1224 const char *secondary, const char *default_value, |
1138 const char *secondary, const char *default_value, |
| 1225 gboolean multiline, gboolean masked, gchar *hint, |
1139 gboolean multiline, gboolean masked, gchar *hint, |
| 1226 const char *ok_text, GCallback ok_cb, |
1140 const char *ok_text, GCallback ok_cb, |