# HG changeset patch # User Christian Hammond # Date 1071997076 0 # Node ID 9b478c6e0bfa2c18e21ae7981008d196ad0a31f4 # Parent d91806e4ea64e6b5226b99279888448b1d00c717 [gaim-migrate @ 8564] Added support for invisible fields. committer: Tailor Script diff -r d91806e4ea64 -r 9b478c6e0bfa src/gtkrequest.c --- a/src/gtkrequest.c Sun Dec 21 08:52:38 2003 +0000 +++ b/src/gtkrequest.c Sun Dec 21 08:57:56 2003 +0000 @@ -834,6 +834,9 @@ field = fl->data; + if (!gaim_request_field_is_visible(field)) + continue; + type = gaim_request_field_get_type(field); if (type != GAIM_REQUEST_FIELD_BOOLEAN) @@ -880,6 +883,8 @@ widget = create_choice_field(field); else if (type == GAIM_REQUEST_FIELD_LIST) widget = create_list_field(field); + else + continue; if (type == GAIM_REQUEST_FIELD_STRING && gaim_request_field_string_is_multiline(field)) diff -r d91806e4ea64 -r 9b478c6e0bfa src/request.c --- a/src/request.c Sun Dec 21 08:52:38 2003 +0000 +++ b/src/request.c Sun Dec 21 08:57:56 2003 +0000 @@ -254,6 +254,7 @@ field->type = type; gaim_request_field_set_label(field, text); + gaim_request_field_set_visible(field, TRUE); return field; } @@ -314,6 +315,14 @@ field->label = (label == NULL ? NULL : g_strdup(label)); } +void +gaim_request_field_set_visible(GaimRequestField *field, gboolean visible) +{ + g_return_if_fail(field != NULL); + + field->visible = visible; +} + GaimRequestFieldType gaim_request_field_get_type(const GaimRequestField *field) { @@ -338,6 +347,14 @@ return field->label; } +gboolean +gaim_request_field_is_visible(const GaimRequestField *field) +{ + g_return_val_if_fail(field != NULL, FALSE); + + return field->visible; +} + GaimRequestField * gaim_request_field_string_new(const char *id, const char *text, const char *default_value, gboolean multiline) diff -r d91806e4ea64 -r 9b478c6e0bfa src/request.h --- a/src/request.h Sun Dec 21 08:52:38 2003 +0000 +++ b/src/request.h Sun Dec 21 08:57:56 2003 +0000 @@ -63,6 +63,8 @@ char *id; char *label; + gboolean visible; + union { struct @@ -355,6 +357,14 @@ void gaim_request_field_set_label(GaimRequestField *field, const char *label); /** + * Sets whether or not a field is visible. + * + * @param field The field. + * @param visible TRUE if visible, or FALSE if not. + */ +void gaim_request_field_set_visible(GaimRequestField *field, gboolean visible); + +/** * Returns the type of a field. * * @param field The field. @@ -381,6 +391,15 @@ */ const char *gaim_request_field_get_label(const GaimRequestField *field); +/** + * Returns whether or not a field is visible. + * + * @param field The field. + * + * @return TRUE if the field is visible. FALSE otherwise. + */ +gboolean gaim_request_field_is_visible(const GaimRequestField *field); + /*@}*/ /**************************************************************************/