gboolean purple_request_fields_all_required_filled(const PurpleRequestFields *fields) { GList *l; g_return_val_if_fail(fields != NULL, FALSE); for (l = fields->required_fields; l != NULL; l = l->next) { PurpleRequestField *field = (PurpleRequestField *)l->data; switch (purple_request_field_get_type(field)) { case PURPLE_REQUEST_FIELD_STRING: if (purple_request_field_string_get_value(field) == NULL || *(purple_request_field_string_get_value(field)) == '\0') return FALSE; break; default: break; } } return TRUE; }
void Request::FieldsDialog::StringField::OnActivate(CppConsUI::Button& activator) { CppConsUI::InputDialog *dialog = new CppConsUI::InputDialog(purple_request_field_get_label(field), purple_request_field_string_get_value(field)); dialog->signal_response.connect(sigc::mem_fun(this, &StringField::ResponseHandler)); dialog->Show(); }
void finch_request_save_in_prefs(gpointer null, PurpleRequestFields *allfields) { GList *list; for (list = purple_request_fields_get_groups(allfields); list; list = list->next) { PurpleRequestFieldGroup *group = list->data; GList *fields = purple_request_field_group_get_fields(group); for (; fields ; fields = fields->next) { PurpleRequestField *field = fields->data; PurpleRequestFieldType type = purple_request_field_get_type(field); PurplePrefType pt; gpointer val = NULL; const char *id = purple_request_field_get_id(field); switch (type) { case PURPLE_REQUEST_FIELD_LIST: val = purple_request_field_list_get_selected(field)->data; break; case PURPLE_REQUEST_FIELD_BOOLEAN: val = GINT_TO_POINTER(purple_request_field_bool_get_value(field)); break; case PURPLE_REQUEST_FIELD_INTEGER: val = GINT_TO_POINTER(purple_request_field_int_get_value(field)); break; case PURPLE_REQUEST_FIELD_STRING: val = (gpointer)purple_request_field_string_get_value(field); break; default: break; } pt = purple_prefs_get_type(id); switch (pt) { case PURPLE_PREF_INT: { long int tmp = GPOINTER_TO_INT(val); if (type == PURPLE_REQUEST_FIELD_LIST) /* Lists always return string */ sscanf(val, "%ld", &tmp); purple_prefs_set_int(id, (gint)tmp); break; } case PURPLE_PREF_BOOLEAN: purple_prefs_set_bool(id, GPOINTER_TO_INT(val)); break; case PURPLE_PREF_STRING: purple_prefs_set_string(id, val); break; default: break; } } } }
const char * purple_request_fields_get_string(const PurpleRequestFields *fields, const char *id) { PurpleRequestField *field; g_return_val_if_fail(fields != NULL, NULL); g_return_val_if_fail(id != NULL, NULL); if ((field = purple_request_fields_get_field(fields, id)) == NULL) return NULL; return purple_request_field_string_get_value(field); }
void Request::FieldsDialog::StringField::ResponseHandler( CppConsUI::InputDialog& activator, CppConsUI::AbstractDialog::ResponseType response) { switch (response) { case CppConsUI::AbstractDialog::RESPONSE_OK: purple_request_field_string_set_value(field, activator.GetText()); SetValue(purple_request_field_string_get_value(field)); break; default: break; } }
gboolean ggp_validator_password_equal(PurpleRequestField *field, gchar **errmsg, void *field2_p) { const char *value1, *value2; PurpleRequestField *field2 = field2_p; g_return_val_if_fail(field != NULL, FALSE); g_return_val_if_fail(field2 != NULL, FALSE); g_return_val_if_fail(purple_request_field_get_field_type(field) == PURPLE_REQUEST_FIELD_STRING, FALSE); g_return_val_if_fail(purple_request_field_get_field_type(field2) == PURPLE_REQUEST_FIELD_STRING, FALSE); value1 = purple_request_field_string_get_value(field); value2 = purple_request_field_string_get_value(field2); if (g_strcmp0(value1, value2) == 0) return TRUE; if (errmsg) *errmsg = g_strdup(_("Passwords do not match")); return FALSE; }
gboolean ggp_validator_password(PurpleRequestField *field, gchar **errmsg, void *user_data) { const char *value; g_return_val_if_fail(field != NULL, FALSE); g_return_val_if_fail(purple_request_field_get_field_type(field) == PURPLE_REQUEST_FIELD_STRING, FALSE); value = purple_request_field_string_get_value(field); if (value != NULL && ggp_password_validate(value)) return TRUE; if (errmsg) *errmsg = g_strdup(_("Password can contain 6-15 alphanumeric characters")); return FALSE; }
gboolean ggp_validator_token(PurpleRequestField *field, gchar **errmsg, void *token) { const char *value; g_return_val_if_fail(field != NULL, FALSE); g_return_val_if_fail(purple_request_field_get_field_type(field) == PURPLE_REQUEST_FIELD_STRING, FALSE); value = purple_request_field_string_get_value(field); if (value != NULL && ggp_account_token_validate(token, value)) return TRUE; if (errmsg) *errmsg = g_strdup(_("CAPTCHA validation failed")); return FALSE; }
Request::FieldsDialog::StringField::StringField(PurpleRequestField *field) : Button(FLAG_VALUE), field(field) { g_assert(field); if (purple_request_field_string_is_masked(field)) { // TODO } char *text = g_strdup_printf("%s%s", purple_request_field_is_required(field) ? "*" : "", purple_request_field_get_label(field)); SetText(text); g_free(text); SetValue(purple_request_field_string_get_value(field)); signal_activate.connect(sigc::mem_fun(this, &StringField::OnActivate)); }
static void plainprpl_change_address_ok(void *ptr, PurpleRequestFields *fields) { PurpleBuddy *buddy; plain_buddy_state *bstate; plain_plugin_state *pstate; PurpleRequestField *field; buddy = (PurpleBuddy *) ptr; bstate = purple_buddy_get_protocol_data(buddy); pstate = purple_connection_get_protocol_data(buddy->account->gc); field = purple_request_fields_get_field(fields, "addr_str"); const char *addr_str = purple_request_field_string_get_value(field); purple_blist_node_set_string(PURPLE_BLIST_NODE(buddy), "addr_str", addr_str); //resolve address again bstate->state = BUDDY_STATE_RESOLVE; bstate->state_step = 0; bstate->state_next = 0; bstate->time_recv = 0; bstate->time_send = 0; //handle now pstate->time_next = 0; }