| Wocky Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | Object Hierarchy | Properties | ||||
#include <wocky/wocky-data-form.h> enum WockyDataFormFieldType; WockyDataFormFieldOption; WockyDataFormField; WockyDataForm; WockyDataFormClass; WockyDataFormPrivate; enum WockyDataFormError; GQuark wocky_data_form_error_quark (void); #define WOCKY_DATA_FORM_ERROR WockyDataForm * wocky_data_form_new_from_form (WockyNode *node,GError **error); gboolean wocky_data_form_set_type (WockyDataForm *self,const gchar *form_type); gboolean wocky_data_form_set_boolean (WockyDataForm *self,const gchar *field_name,gboolean field_value,gboolean create_if_missing); gboolean wocky_data_form_set_string (WockyDataForm *self,const gchar *field_name,const gchar *field_value,gboolean create_if_missing); gboolean wocky_data_form_set_strv (WockyDataForm *self,const gchar *field_name,const gchar * const *field_values,gboolean create_if_missing); void wocky_data_form_submit (WockyDataForm *self,WockyNode *node); gboolean wocky_data_form_parse_result (WockyDataForm *self,WockyNode *node,GError **error); const gchar * wocky_data_form_get_title (WockyDataForm *self); const gchar * wocky_data_form_get_instructions (WockyDataForm *self);
"instructions" gchar* : Read / Write / Construct Only "title" gchar* : Read / Write / Construct Only
typedef enum
{
WOCKY_DATA_FORM_FIELD_TYPE_UNSPECIFIED, /*< skip >*/
WOCKY_DATA_FORM_FIELD_TYPE_BOOLEAN,
WOCKY_DATA_FORM_FIELD_TYPE_FIXED,
WOCKY_DATA_FORM_FIELD_TYPE_HIDDEN,
WOCKY_DATA_FORM_FIELD_TYPE_JID_MULTI,
WOCKY_DATA_FORM_FIELD_TYPE_JID_SINGLE,
WOCKY_DATA_FORM_FIELD_TYPE_LIST_MULTI,
WOCKY_DATA_FORM_FIELD_TYPE_LIST_SINGLE,
WOCKY_DATA_FORM_FIELD_TYPE_TEXT_MULTI,
WOCKY_DATA_FORM_FIELD_TYPE_TEXT_PRIVATE,
WOCKY_DATA_FORM_FIELD_TYPE_TEXT_SINGLE
} WockyDataFormFieldType;
Data form field types, as documented in XEP-0004 §3.3.
| Unspecified field type | |
| Boolean field type | |
| Fixed description field type | |
| Hidden field type | |
| A list of multiple JIDs | |
| A single JID | |
| Many options to choose one or more from | |
| Many options to choose one from | |
| Multiple lines of text | |
| A single line of text that should be obscured (by, say, asterisks) | |
| A single line of text |
typedef struct {
gchar *label;
gchar *value;
} WockyDataFormFieldOption;
A single data form field option.
typedef struct {
WockyDataFormFieldType type;
gchar *var;
gchar *label;
gchar *desc;
gboolean required;
GValue *default_value;
GValue *value;
/* for LIST_MULTI and LIST_SINGLE only.
* List of (WockyDataFormFieldOption *)*/
GSList *options;
} WockyDataFormField;
Details about a single data form field in a WockyDataForm.
WockyDataFormFieldType |
the type of the field |
gchar * |
the field name |
gchar * |
the label of the field |
gchar * |
the description of the field |
gboolean |
TRUE if the field is required, otherwise FALSE
|
GValue * |
the default of the field |
GValue * |
the field value |
GSList * |
a GSList of WockyDataFormFieldOptions if type
if WOCKY_DATA_FORM_FIELD_TYPE_LIST_MULTI or
WOCKY_DATA_FORM_FIELD_TYPE_LIST_SINGLE
|
typedef struct {
/* (gchar *) owned by the WockyDataFormField =>
* borrowed (WockyDataFormField *) */
GHashTable *fields;
/* list containing owned (WockyDataFormField *) in the order they
* have been presented in the form */
GSList *fields_list;
/* list of GSList * of (WockyDataFormField *), representing one or more sets
* of results */
GSList *results;
} WockyDataForm;
An object that represents an XMPP data form as described in XEP-0004.
GHashTable * |
a GHashTable of strings to WockyDataFormFields |
GSList * |
a list of WockyDataFormFields in the order they have been presented in the form |
GSList * |
a list of GSLists of WockyDataFormFields representing one or more sets of result. |
typedef enum {
WOCKY_DATA_FORM_ERROR_NOT_FORM,
WOCKY_DATA_FORM_ERROR_WRONG_TYPE,
} WockyDataFormError;
WockyDataForm specific errors.
WockyDataForm * wocky_data_form_new_from_form (WockyNode *node,GError **error);
|
|
|
|
Returns : |
gboolean wocky_data_form_set_type (WockyDataForm *self,const gchar *form_type);
Creates a hidden FORM_TYPE field in self and sets its value to form_type.
This is intended only to be used on empty forms created for blind
submission.
|
a WockyDataForm |
|
the URI to use as the FORM_TYPE field; may not be NULL
|
Returns : |
TRUE if the form's type was set; FALSE if the form already had a
type.
|
gboolean wocky_data_form_set_boolean (WockyDataForm *self,const gchar *field_name,gboolean field_value,gboolean create_if_missing);
|
a data form |
|
the name of a boolean field of self
|
|
the value to fill in for field_name
|
|
if no field named field_name exists, create it
|
Returns : |
TRUE if the field was successfully filled in; FALSE if the field
did not exist or does not accept a boolean
|
gboolean wocky_data_form_set_string (WockyDataForm *self,const gchar *field_name,const gchar *field_value,gboolean create_if_missing);
|
|
|
|
|
|
|
|
Returns : |
gboolean wocky_data_form_set_strv (WockyDataForm *self,const gchar *field_name,const gchar * const *field_values,gboolean create_if_missing);
|
|
|
|
|
|
|
|
Returns : |
void wocky_data_form_submit (WockyDataForm *self,WockyNode *node);
Adds a node tree which submits self based on the current values set on
self's fields.
|
a data form |
|
a node to which to add a form submission |
gboolean wocky_data_form_parse_result (WockyDataForm *self,WockyNode *node,GError **error);
|
|
|
|
|
|
Returns : |
const gchar * wocky_data_form_get_title (WockyDataForm *self);
|
|
Returns : |
const gchar * wocky_data_form_get_instructions (WockyDataForm *self);
|
|
Returns : |