--- a/libpurple/purplerequestfield.c Sun Mar 05 04:01:47 2023 -0600
+++ b/libpurple/purplerequestfield.c Mon Mar 06 21:21:17 2023 -0600
@@ -28,8 +28,7 @@
#include "purplekeyvaluepair.h"
#include "purpleprivate.h"
-struct _PurpleRequestField
PurpleRequestFieldType type;
PurpleRequestFieldGroup *group;
@@ -41,42 +40,34 @@
@@ -84,29 +75,24 @@
GHashTable *selected_table;
gboolean multiple_selection;
PurpleAccount *default_account;
PurpleFilterAccountFunc filter_func;
PurpleRequestDatasheet *sheet;
@@ -116,194 +102,523 @@
PurpleRequestFieldValidator validator;
+} PurpleRequestFieldPrivate; +static GParamSpec *properties[N_PROPERTIES] = {NULL, }; +G_DEFINE_TYPE_WITH_PRIVATE(PurpleRequestField, purple_request_field, G_TYPE_OBJECT) +/****************************************************************************** + *****************************************************************************/ +purple_request_field_set_id(PurpleRequestField *field, const char *id) { + PurpleRequestFieldPrivate *priv = NULL; + priv = purple_request_field_get_instance_private(field); + priv->id = g_strdup(id); + g_object_notify_by_pspec(G_OBJECT(field), properties[PROP_ID]); +purple_request_field_set_field_type(PurpleRequestField *field, + PurpleRequestFieldType type) + PurpleRequestFieldPrivate *priv = NULL; + priv = purple_request_field_get_instance_private(field); +/****************************************************************************** + * GObject Implementation + *****************************************************************************/ +purple_request_field_get_property(GObject *obj, guint param_id, GValue *value, + PurpleRequestField *field = PURPLE_REQUEST_FIELD(obj); + g_value_set_string(value, purple_request_field_get_id(field)); + g_value_set_string(value, purple_request_field_get_label(field)); + g_value_set_boolean(value, purple_request_field_is_visible(field)); + g_value_set_boolean(value, + purple_request_field_is_sensitive(field)); + g_value_set_string(value, + purple_request_field_get_type_hint(field)); + g_value_set_string(value, purple_request_field_get_tooltip(field)); + g_value_set_boolean(value, + purple_request_field_is_required(field)); + case PROP_IS_VALIDATABLE: + g_value_set_boolean(value, + purple_request_field_is_validatable(field)); + G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); +purple_request_field_set_property(GObject *obj, guint param_id, + const GValue *value, GParamSpec *pspec) + PurpleRequestField *field = PURPLE_REQUEST_FIELD(obj); + purple_request_field_set_id(field, g_value_get_string(value)); + purple_request_field_set_label(field, g_value_get_string(value)); + purple_request_field_set_visible(field, + g_value_get_boolean(value)); + purple_request_field_set_sensitive(field, + g_value_get_boolean(value)); + purple_request_field_set_type_hint(field, + g_value_get_string(value)); + purple_request_field_set_tooltip(field, g_value_get_string(value)); + purple_request_field_set_required(field, + g_value_get_boolean(value)); + G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); +purple_request_field_finalize(GObject *obj) { + PurpleRequestField *field = PURPLE_REQUEST_FIELD(obj); + PurpleRequestFieldPrivate *priv = NULL; + priv = purple_request_field_get_instance_private(field); + g_free(priv->type_hint); + if(priv->type == PURPLE_REQUEST_FIELD_STRING) { + g_free(priv->u.string.default_value); + g_free(priv->u.string.value); + } else if(priv->type == PURPLE_REQUEST_FIELD_CHOICE) { + g_list_free_full(priv->u.choice.elements, + (GDestroyNotify)purple_key_value_pair_free); + } else if(priv->type == PURPLE_REQUEST_FIELD_LIST) { + g_list_free_full(priv->u.list.items, + (GDestroyNotify)purple_key_value_pair_free); + g_list_free_full(priv->u.list.selected, g_free); + g_hash_table_destroy(priv->u.list.item_data); + g_hash_table_destroy(priv->u.list.selected_table); + } else if(priv->type == PURPLE_REQUEST_FIELD_DATASHEET) { + purple_request_datasheet_free(priv->u.datasheet.sheet); + } else if(priv->type == PURPLE_REQUEST_FIELD_IMAGE) { + g_free(priv->u.image.buffer); + G_OBJECT_CLASS(purple_request_field_parent_class)->finalize(obj); +purple_request_field_init(PurpleRequestField *field) { + PurpleRequestFieldPrivate *priv = NULL; + priv = purple_request_field_get_instance_private(field); + priv->sensitive = TRUE; +purple_request_field_class_init(PurpleRequestFieldClass *klass) { + GObjectClass *obj_class = G_OBJECT_CLASS(klass); + obj_class->finalize = purple_request_field_finalize; + obj_class->get_property = purple_request_field_get_property; + obj_class->set_property = purple_request_field_set_property; + * PurpleRequestField:id: + properties[PROP_ID] = g_param_spec_string( + "The ID of the field.", + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); + * PurpleRequestField:label: + * The label of the field. + properties[PROP_LABEL] = g_param_spec_string( + "The label of the field.", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + * PurpleRequestField:visible: + * Whether the field should be visible. + properties[PROP_VISIBLE] = g_param_spec_boolean( + "Whether the field should be visible.", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + * PurpleRequestField:sensitive: + * Whether the field should be sensitive. + properties[PROP_SENSITIVE] = g_param_spec_boolean( + "sensitive", "sensitive", + "Whether the field should be sensitive.", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + * PurpleRequestField:type-hint: + * The type hint of the field. + properties[PROP_TYPE_HINT] = g_param_spec_string( + "type-hint", "type-hint", + "The type hint of the field.", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + * PurpleRequestField:tooltip: + * The tooltip of the field. + properties[PROP_TOOLTIP] = g_param_spec_string( + "The tooltip of the field.", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + * PurpleRequestField:required: + * Whether the field is required to complete the request. + properties[PROP_REQUIRED] = g_param_spec_boolean( + "required", "required", + "Whether the field is required to complete the request.", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + * PurpleRequestField:is-validatable: + * Whether the field can be validated by the requestor. + properties[PROP_IS_VALIDATABLE] = g_param_spec_boolean( + "is-validatable", "is-validatable", + "Whether the field can be validated by the requestor.", + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + g_object_class_install_properties(obj_class, N_PROPERTIES, properties); +/****************************************************************************** + *****************************************************************************/ purple_request_field_get_ui_data(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL);
+ priv = purple_request_field_get_instance_private(field); purple_request_field_set_ui_data(PurpleRequestField *field,
- g_return_if_fail(field != NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - field->ui_data = ui_data;
+ priv = purple_request_field_get_instance_private(field); + priv->ui_data = ui_data; purple_request_field_new(const char *id, const char *text,
- PurpleRequestFieldType type)
+ PurpleRequestFieldType type) PurpleRequestField *field;
- g_return_val_if_fail(id != NULL, NULL);
+ g_return_val_if_fail(id != NULL, NULL); g_return_val_if_fail(type != PURPLE_REQUEST_FIELD_NONE, NULL);
- field = g_new0(PurpleRequestField, 1);
- field->id = g_strdup(id);
- purple_request_field_set_label(field, text);
- purple_request_field_set_visible(field, TRUE);
- purple_request_field_set_sensitive(field, TRUE);
+ field = g_object_new(PURPLE_TYPE_REQUEST_FIELD, + purple_request_field_set_field_type(field, type); -purple_request_field_destroy(PurpleRequestField *field)
- g_return_if_fail(field != NULL);
- g_free(field->type_hint);
- g_free(field->tooltip);
- if(field->type == PURPLE_REQUEST_FIELD_STRING) {
- g_free(field->u.string.default_value);
- g_free(field->u.string.value);
- } else if(field->type == PURPLE_REQUEST_FIELD_CHOICE) {
- g_list_free_full(field->u.choice.elements, (GDestroyNotify)purple_key_value_pair_free);
- } else if(field->type == PURPLE_REQUEST_FIELD_LIST) {
- g_list_free_full(field->u.list.items, (GDestroyNotify)purple_key_value_pair_free);
- g_list_free_full(field->u.list.selected, g_free);
- g_hash_table_destroy(field->u.list.item_data);
- g_hash_table_destroy(field->u.list.selected_table);
- } else if(field->type == PURPLE_REQUEST_FIELD_DATASHEET) {
- purple_request_datasheet_free(field->u.datasheet.sheet);
- } else if(field->type == PURPLE_REQUEST_FIELD_IMAGE) {
- g_free(field->u.image.buffer);
_purple_request_field_set_group(PurpleRequestField *field,
PurpleRequestFieldGroup *group)
- g_return_if_fail(field != NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field));
+ priv = purple_request_field_get_instance_private(field); purple_request_field_set_label(PurpleRequestField *field, const char *label)
- g_return_if_fail(field != NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field));
- field->label = g_strdup(label);
+ priv = purple_request_field_get_instance_private(field); + priv->label = g_strdup(label); + g_object_notify_by_pspec(G_OBJECT(field), properties[PROP_LABEL]); purple_request_field_set_visible(PurpleRequestField *field, gboolean visible)
- g_return_if_fail(field != NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - field->visible = visible;
+ priv = purple_request_field_get_instance_private(field); + priv->visible = visible; + g_object_notify_by_pspec(G_OBJECT(field), properties[PROP_VISIBLE]); purple_request_field_set_type_hint(PurpleRequestField *field,
- g_return_if_fail(field != NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - g_free(field->type_hint);
- field->type_hint = g_strdup(type_hint);
+ priv = purple_request_field_get_instance_private(field); + g_free(priv->type_hint); + priv->type_hint = g_strdup(type_hint); + g_object_notify_by_pspec(G_OBJECT(field), properties[PROP_TYPE_HINT]); purple_request_field_set_tooltip(PurpleRequestField *field, const char *tooltip)
- g_return_if_fail(field != NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - g_free(field->tooltip);
- field->tooltip = g_strdup(tooltip);
+ priv = purple_request_field_get_instance_private(field); + priv->tooltip = g_strdup(tooltip); + g_object_notify_by_pspec(G_OBJECT(field), properties[PROP_TOOLTIP]); purple_request_field_set_required(PurpleRequestField *field, gboolean required)
- g_return_if_fail(field != NULL);
+ PurpleRequestFieldPrivate *priv = NULL; - if (field->required == required)
+ g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); + priv = purple_request_field_get_instance_private(field); - field->required = required;
+ if(priv->required == required) { - if(field->group != NULL) {
- _purple_request_field_group_set_field_required(field->group, field,
+ priv->required = required; + if(priv->group != NULL) { + _purple_request_field_group_set_field_required(priv->group, field, + g_object_notify_by_pspec(G_OBJECT(field), properties[PROP_REQUIRED]); purple_request_field_get_field_type(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, PURPLE_REQUEST_FIELD_NONE);
+ PurpleRequestFieldPrivate *priv = NULL;
+ g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), + PURPLE_REQUEST_FIELD_NONE); + priv = purple_request_field_get_instance_private(field); PurpleRequestFieldGroup *
purple_request_field_get_group(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL);
+ priv = purple_request_field_get_instance_private(field); purple_request_field_get_id(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL);
+ priv = purple_request_field_get_instance_private(field); purple_request_field_get_label(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL);
+ priv = purple_request_field_get_instance_private(field); purple_request_field_is_visible(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, FALSE);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE);
+ priv = purple_request_field_get_instance_private(field); purple_request_field_get_type_hint(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL); - return field->type_hint;
+ priv = purple_request_field_get_instance_private(field); + return priv->type_hint; purple_request_field_get_tooltip(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL);
+ priv = purple_request_field_get_instance_private(field); purple_request_field_is_required(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, FALSE);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE); - return field->required;
+ priv = purple_request_field_get_instance_private(field); purple_request_field_is_filled(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, FALSE);
+ g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE); switch (purple_request_field_get_field_type(field))
@@ -319,40 +634,54 @@
purple_request_field_set_validator(PurpleRequestField *field,
PurpleRequestFieldValidator validator, void *user_data)
- g_return_if_fail(field != NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); + priv = purple_request_field_get_instance_private(field); - field->validator = validator;
- field->validator_data = validator ? user_data : NULL;
+ priv->validator = validator; + priv->validator_data = validator ? user_data : NULL; - if(field->group != NULL) {
- _purple_request_field_group_set_field_validator(field->group, field,
+ if(priv->group != NULL) { + _purple_request_field_group_set_field_validator(priv->group, field, + g_object_notify_by_pspec(G_OBJECT(field), properties[PROP_IS_VALIDATABLE]); purple_request_field_is_validatable(PurpleRequestField *field)
- g_return_val_if_fail(field != NULL, FALSE);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE); - return field->validator != NULL;
+ priv = purple_request_field_get_instance_private(field); + return priv->validator != NULL; purple_request_field_is_valid(PurpleRequestField *field, gchar **errmsg)
+ PurpleRequestFieldPrivate *priv = NULL; - g_return_val_if_fail(field != NULL, FALSE);
+ g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE); + priv = purple_request_field_get_instance_private(field);
if (!purple_request_field_is_required(field) &&
!purple_request_field_is_filled(field))
- valid = field->validator(field, errmsg, field->validator_data);
+ valid = priv->validator(field, errmsg, priv->validator_data); @@ -364,17 +693,27 @@
purple_request_field_set_sensitive(PurpleRequestField *field,
- g_return_if_fail(field != NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - field->sensitive = sensitive;
+ priv = purple_request_field_get_instance_private(field); + priv->sensitive = sensitive; + g_object_notify_by_pspec(G_OBJECT(field), properties[PROP_SENSITIVE]); purple_request_field_is_sensitive(PurpleRequestField *field)
- g_return_val_if_fail(field != NULL, FALSE);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE); - return field->sensitive;
+ priv = purple_request_field_get_instance_private(field); + return priv->sensitive; @@ -382,13 +721,15 @@
const char *default_value, gboolean multiline)
PurpleRequestField *field;
+ PurpleRequestFieldPrivate *priv = NULL; g_return_val_if_fail(id != NULL, NULL);
g_return_val_if_fail(text != NULL, NULL);
field = purple_request_field_new(id, text, PURPLE_REQUEST_FIELD_STRING);
+ priv = purple_request_field_get_instance_private(field); - field->u.string.multiline = multiline;
+ priv->u.string.multiline = multiline; purple_request_field_string_set_default_value(field, default_value);
purple_request_field_string_set_value(field, default_value);
@@ -400,62 +741,90 @@
purple_request_field_string_set_default_value(PurpleRequestField *field,
const char *default_value)
- g_return_if_fail(field != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_STRING);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - g_free(field->u.string.default_value);
- field->u.string.default_value = g_strdup(default_value);
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_STRING); + g_free(priv->u.string.default_value); + priv->u.string.default_value = g_strdup(default_value); purple_request_field_string_set_value(PurpleRequestField *field, const char *value)
- g_return_if_fail(field != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_STRING);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - g_free(field->u.string.value);
- field->u.string.value = g_strdup(value);
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_STRING); + g_free(priv->u.string.value); + priv->u.string.value = g_strdup(value); purple_request_field_string_set_masked(PurpleRequestField *field, gboolean masked)
- g_return_if_fail(field != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_STRING);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - field->u.string.masked = masked;
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_STRING); + priv->u.string.masked = masked; purple_request_field_string_get_default_value(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, NULL);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_STRING, NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL); - return field->u.string.default_value;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_STRING, NULL); + return priv->u.string.default_value; purple_request_field_string_get_value(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, NULL);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_STRING, NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL); - return field->u.string.value;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_STRING, NULL); + return priv->u.string.value; purple_request_field_string_is_multiline(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, FALSE);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_STRING, FALSE);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE); - return field->u.string.multiline;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_STRING, FALSE); + return priv->u.string.multiline; purple_request_field_string_is_masked(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, FALSE);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_STRING, FALSE);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE); - return field->u.string.masked;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_STRING, FALSE); + return priv->u.string.masked; @@ -481,77 +850,110 @@
purple_request_field_int_set_default_value(PurpleRequestField *field,
- g_return_if_fail(field != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_INTEGER);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - field->u.integer.default_value = default_value;
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_INTEGER); + priv->u.integer.default_value = default_value; purple_request_field_int_set_lower_bound(PurpleRequestField *field,
- g_return_if_fail(field != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_INTEGER);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - field->u.integer.lower_bound = lower_bound;
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_INTEGER); + priv->u.integer.lower_bound = lower_bound; purple_request_field_int_set_upper_bound(PurpleRequestField *field,
- g_return_if_fail(field != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_INTEGER);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - field->u.integer.upper_bound = upper_bound;
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_INTEGER); + priv->u.integer.upper_bound = upper_bound; purple_request_field_int_set_value(PurpleRequestField *field, int value)
- g_return_if_fail(field != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_INTEGER);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - if (value < field->u.integer.lower_bound ||
- value > field->u.integer.upper_bound) {
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_INTEGER); + if(value < priv->u.integer.lower_bound || + value > priv->u.integer.upper_bound) purple_debug_error("request", "Int value out of bounds\n");
- field->u.integer.value = value;
+ priv->u.integer.value = value; purple_request_field_int_get_default_value(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, 0);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_INTEGER, 0);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), 0); - return field->u.integer.default_value;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_INTEGER, 0); + return priv->u.integer.default_value; purple_request_field_int_get_lower_bound(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, 0);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_INTEGER, 0);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), 0); - return field->u.integer.lower_bound;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_INTEGER, 0); + return priv->u.integer.lower_bound; purple_request_field_int_get_upper_bound(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, 0);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_INTEGER, 0);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), 0); - return field->u.integer.upper_bound;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_INTEGER, 0); + return priv->u.integer.upper_bound; purple_request_field_int_get_value(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, 0);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_INTEGER, 0);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), 0); - return field->u.integer.value;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_INTEGER, 0); + return priv->u.integer.value; @@ -575,35 +977,51 @@
purple_request_field_bool_set_default_value(PurpleRequestField *field,
- g_return_if_fail(field != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_BOOLEAN);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - field->u.boolean.default_value = default_value;
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_BOOLEAN); + priv->u.boolean.default_value = default_value; purple_request_field_bool_set_value(PurpleRequestField *field, gboolean value)
- g_return_if_fail(field != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_BOOLEAN);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - field->u.boolean.value = value;
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_BOOLEAN); + priv->u.boolean.value = value; purple_request_field_bool_get_default_value(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, FALSE);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_BOOLEAN, FALSE);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE); - return field->u.boolean.default_value;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_BOOLEAN, FALSE); + return priv->u.boolean.default_value; purple_request_field_bool_get_value(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, FALSE);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_BOOLEAN, FALSE);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE); - return field->u.boolean.value;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_BOOLEAN, FALSE); + return priv->u.boolean.value; @@ -635,74 +1053,98 @@
gpointer value, GDestroyNotify destroy)
PurpleKeyValuePair *choice;
+ PurpleRequestFieldPrivate *priv = NULL; - g_return_if_fail(field != NULL);
+ g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); g_return_if_fail(label != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_CHOICE);
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_CHOICE); choice = purple_key_value_pair_new_full(label, value, destroy);
- field->u.choice.elements = g_list_append(field->u.choice.elements,
+ priv->u.choice.elements = g_list_append(priv->u.choice.elements, choice); purple_request_field_choice_set_default_value(PurpleRequestField *field,
- g_return_if_fail(field != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_CHOICE);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - field->u.choice.default_value = default_value;
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_CHOICE); + priv->u.choice.default_value = default_value; purple_request_field_choice_set_value(PurpleRequestField *field, gpointer value)
- g_return_if_fail(field != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_CHOICE);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - field->u.choice.value = value;
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_CHOICE); + priv->u.choice.value = value; purple_request_field_choice_get_default_value(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, NULL);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_CHOICE, NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL); - return field->u.choice.default_value;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_CHOICE, NULL); + return priv->u.choice.default_value; purple_request_field_choice_get_value(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, NULL);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_CHOICE, NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL); - return field->u.choice.value;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_CHOICE, NULL); + return priv->u.choice.value; purple_request_field_choice_get_elements(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, NULL);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_CHOICE, NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL); - return field->u.choice.elements;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_CHOICE, NULL); + return priv->u.choice.elements; purple_request_field_list_new(const char *id, const char *text)
PurpleRequestField *field;
+ PurpleRequestFieldPrivate *priv = NULL; g_return_val_if_fail(id != NULL, NULL);
field = purple_request_field_new(id, text, PURPLE_REQUEST_FIELD_LIST);
+ priv = purple_request_field_get_instance_private(field); - field->u.list.item_data = g_hash_table_new_full(g_str_hash, g_str_equal,
+ priv->u.list.item_data = g_hash_table_new_full(g_str_hash, g_str_equal, - field->u.list.selected_table =
- g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
+ priv->u.list.selected_table = g_hash_table_new_full(g_str_hash, g_str_equal, @@ -711,28 +1153,40 @@
purple_request_field_list_set_multi_select(PurpleRequestField *field,
- g_return_if_fail(field != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - field->u.list.multiple_selection = multi_select;
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_LIST); + priv->u.list.multiple_selection = multi_select; purple_request_field_list_get_multi_select(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, FALSE);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST, FALSE);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE); - return field->u.list.multiple_selection;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_LIST, FALSE); + return priv->u.list.multiple_selection; purple_request_field_list_get_data(PurpleRequestField *field, const char *text)
- g_return_val_if_fail(field != NULL, NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL); g_return_val_if_fail(text != NULL, NULL);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST, NULL);
- return g_hash_table_lookup(field->u.list.item_data, text);
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_LIST, NULL); + return g_hash_table_lookup(priv->u.list.item_data, text); @@ -740,27 +1194,34 @@
+ PurpleRequestFieldPrivate *priv = NULL; - g_return_if_fail(field != NULL);
+ g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); g_return_if_fail(item != NULL);
g_return_if_fail(data != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST);
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_LIST); - field->u.list.has_icons = field->u.list.has_icons || (icon_path != NULL);
+ priv->u.list.has_icons = priv->u.list.has_icons || (icon_path != NULL); kvp = purple_key_value_pair_new_full(item, g_strdup(icon_path), g_free);
- field->u.list.items = g_list_append(field->u.list.items, kvp);
- g_hash_table_insert(field->u.list.item_data, g_strdup(item), data);
+ priv->u.list.items = g_list_append(priv->u.list.items, kvp); + g_hash_table_insert(priv->u.list.item_data, g_strdup(item), data); purple_request_field_list_add_selected(PurpleRequestField *field, const char *item)
- g_return_if_fail(field != NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); g_return_if_fail(item != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST);
- if (!purple_request_field_list_get_multi_select(field) &&
- field->u.list.selected != NULL)
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_LIST); + if(!purple_request_field_list_get_multi_select(field) && + priv->u.list.selected != NULL) purple_debug_warning("request",
"More than one item added to non-multi-select "
@@ -769,35 +1230,41 @@
- field->u.list.selected = g_list_append(field->u.list.selected,
+ priv->u.list.selected = g_list_append(priv->u.list.selected, - g_hash_table_add(field->u.list.selected_table, g_strdup(item));
+ g_hash_table_add(priv->u.list.selected_table, g_strdup(item)); purple_request_field_list_clear_selected(PurpleRequestField *field)
- g_return_if_fail(field != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - if (field->u.list.selected != NULL)
- g_list_free_full(field->u.list.selected, g_free);
- field->u.list.selected = NULL;
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_LIST); + if(priv->u.list.selected != NULL) { + g_list_free_full(priv->u.list.selected, g_free); + priv->u.list.selected = NULL; - g_hash_table_remove_all(field->u.list.selected_table);
+ g_hash_table_remove_all(priv->u.list.selected_table); purple_request_field_list_set_selected(PurpleRequestField *field, GList *items)
+ PurpleRequestFieldPrivate *priv = NULL; - g_return_if_fail(field != NULL);
+ g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); g_return_if_fail(items != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST);
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_LIST); purple_request_field_list_clear_selected(field);
@@ -811,9 +1278,9 @@
for (l = items; l != NULL; l = l->next) {
char *selected = l->data;
- field->u.list.selected = g_list_append(field->u.list.selected,
- g_hash_table_add(field->u.list.selected_table, g_strdup(selected));
+ priv->u.list.selected = g_list_append(priv->u.list.selected, + g_hash_table_add(priv->u.list.selected_table, g_strdup(selected)); @@ -821,35 +1288,51 @@
purple_request_field_list_is_selected(PurpleRequestField *field,
- g_return_val_if_fail(field != NULL, FALSE);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE); g_return_val_if_fail(item != NULL, FALSE);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST, FALSE);
- return g_hash_table_contains(field->u.list.selected_table, item);
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_LIST, FALSE); + return g_hash_table_contains(priv->u.list.selected_table, item); purple_request_field_list_get_selected(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, NULL);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST, NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL); - return field->u.list.selected;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_LIST, NULL); + return priv->u.list.selected; purple_request_field_list_get_items(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, NULL);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST, NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL); - return field->u.list.items;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_LIST, NULL); + return priv->u.list.items; purple_request_field_list_has_icons(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, FALSE);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_LIST, FALSE);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE); - return field->u.list.has_icons;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_LIST, FALSE); + return priv->u.list.has_icons; @@ -870,17 +1353,20 @@
PurpleRequestField *field;
+ PurpleRequestFieldPrivate *priv = NULL; g_return_val_if_fail(id != NULL, NULL);
g_return_val_if_fail(text != NULL, NULL);
g_return_val_if_fail(buf != NULL, NULL);
g_return_val_if_fail(size > 0, NULL);
field = purple_request_field_new(id, text, PURPLE_REQUEST_FIELD_IMAGE);
+ priv = purple_request_field_get_instance_private(field); - field->u.image.buffer = g_memdup2(buf, size);
- field->u.image.size = size;
- field->u.image.scale_x = 1;
- field->u.image.scale_y = 1;
+ priv->u.image.buffer = g_memdup2(buf, size); + priv->u.image.size = size; + priv->u.image.scale_x = 1; + priv->u.image.scale_y = 1; @@ -888,47 +1374,67 @@
purple_request_field_image_set_scale(PurpleRequestField *field, unsigned int x, unsigned int y)
- g_return_if_fail(field != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_IMAGE);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - field->u.image.scale_x = x;
- field->u.image.scale_y = y;
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_IMAGE); + priv->u.image.scale_x = x; + priv->u.image.scale_y = y; purple_request_field_image_get_buffer(PurpleRequestField *field)
- g_return_val_if_fail(field != NULL, NULL);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_IMAGE, NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL); - return field->u.image.buffer;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_IMAGE, NULL); + return priv->u.image.buffer; purple_request_field_image_get_size(PurpleRequestField *field)
- g_return_val_if_fail(field != NULL, 0);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_IMAGE, 0);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), 0); - return field->u.image.size;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_IMAGE, 0); + return priv->u.image.size; purple_request_field_image_get_scale_x(PurpleRequestField *field)
- g_return_val_if_fail(field != NULL, 0);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_IMAGE, 0);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), 0); - return field->u.image.scale_x;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_IMAGE, 0); + return priv->u.image.scale_x; purple_request_field_image_get_scale_y(PurpleRequestField *field)
- g_return_val_if_fail(field != NULL, 0);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_IMAGE, 0);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), 0); - return field->u.image.scale_y;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_IMAGE, 0); + return priv->u.image.scale_y; @@ -962,46 +1468,57 @@
purple_request_field_account_set_default_value(PurpleRequestField *field,
PurpleAccount *default_value)
- g_return_if_fail(field != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_ACCOUNT);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - field->u.account.default_account = default_value;
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_ACCOUNT); + priv->u.account.default_account = default_value; purple_request_field_account_set_value(PurpleRequestField *field,
- g_return_if_fail(field != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_ACCOUNT);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - field->u.account.account = value;
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_ACCOUNT); + priv->u.account.account = value; purple_request_field_account_set_show_all(PurpleRequestField *field,
- g_return_if_fail(field != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_ACCOUNT);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - if (field->u.account.show_all == show_all)
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_ACCOUNT); + if(priv->u.account.show_all == show_all) { - field->u.account.show_all = show_all;
+ priv->u.account.show_all = show_all; PurpleAccountManager *manager = purple_account_manager_get_default();
GList *accounts = purple_account_manager_get_connected(manager);
- if (purple_account_is_connected(field->u.account.default_account))
+ if(purple_account_is_connected(priv->u.account.default_account)) { purple_request_field_account_set_default_value(field,
- if (purple_account_is_connected(field->u.account.account))
+ if(purple_account_is_connected(priv->u.account.account)) { purple_request_field_account_set_value(field,
@@ -1014,42 +1531,62 @@
purple_request_field_account_set_filter(PurpleRequestField *field,
PurpleFilterAccountFunc filter_func)
- g_return_if_fail(field != NULL);
- g_return_if_fail(field->type == PURPLE_REQUEST_FIELD_ACCOUNT);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field)); - field->u.account.filter_func = filter_func;
+ priv = purple_request_field_get_instance_private(field); + g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_ACCOUNT); + priv->u.account.filter_func = filter_func; purple_request_field_account_get_default_value(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, NULL);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_ACCOUNT, NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL); - return field->u.account.default_account;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_ACCOUNT, NULL); + return priv->u.account.default_account; purple_request_field_account_get_value(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, NULL);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_ACCOUNT, NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL); - return field->u.account.account;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_ACCOUNT, NULL); + return priv->u.account.account; purple_request_field_account_get_show_all(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, FALSE);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_ACCOUNT, FALSE);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE); - return field->u.account.show_all;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_ACCOUNT, FALSE); + return priv->u.account.show_all; purple_request_field_account_get_filter(PurpleRequestField *field) {
- g_return_val_if_fail(field != NULL, FALSE);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_ACCOUNT, FALSE);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE); - return field->u.account.filter_func;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_ACCOUNT, FALSE); + return priv->u.account.filter_func; @@ -1057,13 +1594,15 @@
const gchar *text, PurpleRequestDatasheet *sheet)
PurpleRequestField *field;
+ PurpleRequestFieldPrivate *priv = NULL; g_return_val_if_fail(id != NULL, NULL);
g_return_val_if_fail(sheet != NULL, NULL);
field = purple_request_field_new(id, text, PURPLE_REQUEST_FIELD_DATASHEET);
+ priv = purple_request_field_get_instance_private(field); - field->u.datasheet.sheet = sheet;
+ priv->u.datasheet.sheet = sheet; @@ -1071,10 +1610,14 @@
purple_request_field_datasheet_get_sheet(PurpleRequestField *field)
- g_return_val_if_fail(field != NULL, NULL);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_DATASHEET, NULL);
+ PurpleRequestFieldPrivate *priv = NULL; + g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), NULL); - return field->u.datasheet.sheet;
+ priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_DATASHEET, NULL); + return priv->u.datasheet.sheet; @@ -1083,10 +1626,13 @@
purple_request_field_email_validator(PurpleRequestField *field, gchar **errmsg,
G_GNUC_UNUSED gpointer user_data)
+ PurpleRequestFieldPrivate *priv = NULL; - g_return_val_if_fail(field != NULL, FALSE);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_STRING, FALSE);
+ g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE); + priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_STRING, FALSE); value = purple_request_field_string_get_value(field);
@@ -1102,11 +1648,14 @@
purple_request_field_alphanumeric_validator(PurpleRequestField *field,
gchar **errmsg, void *allowed_characters)
+ PurpleRequestFieldPrivate *priv = NULL; gchar invalid_char = '\0';
- g_return_val_if_fail(field != NULL, FALSE);
- g_return_val_if_fail(field->type == PURPLE_REQUEST_FIELD_STRING, FALSE);
+ g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE); + priv = purple_request_field_get_instance_private(field); + g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_STRING, FALSE); value = purple_request_field_string_get_value(field);