diff libpurple/request.c @ 31933:5c174d124e29

Hide-a-Struct
author Mark Doliner <mark@kingant.net>
date Tue, 23 Aug 2011 04:37:58 +0000
parents a88631af0f5e
children 4a0bc7b7957b
line wrap: on
line diff
--- a/libpurple/request.c	Tue Aug 23 04:32:43 2011 +0000
+++ b/libpurple/request.c	Tue Aug 23 04:37:58 2011 +0000
@@ -42,6 +42,92 @@
 
 } PurpleRequestInfo;
 
+/**
+ * A request field.
+ */
+struct _PurpleRequestField
+{
+	PurpleRequestFieldType type;
+	PurpleRequestFieldGroup *group;
+
+	char *id;
+	char *label;
+	char *type_hint;
+
+	gboolean visible;
+	gboolean required;
+
+	union
+	{
+		struct
+		{
+			gboolean multiline;
+			gboolean masked;
+			gboolean editable;
+			char *default_value;
+			char *value;
+
+		} string;
+
+		struct
+		{
+			int default_value;
+			int value;
+
+		} integer;
+
+		struct
+		{
+			gboolean default_value;
+			gboolean value;
+
+		} boolean;
+
+		struct
+		{
+			int default_value;
+			int value;
+
+			GList *labels;
+
+		} choice;
+
+		struct
+		{
+			GList *items;
+			GList *icons;
+			GHashTable *item_data;
+			GList *selected;
+			GHashTable *selected_table;
+
+			gboolean multiple_selection;
+
+		} list;
+
+		struct
+		{
+			PurpleAccount *default_account;
+			PurpleAccount *account;
+			gboolean show_all;
+
+			PurpleFilterAccountFunc filter_func;
+
+		} account;
+
+		struct
+		{
+			unsigned int scale_x;
+			unsigned int scale_y;
+			const char *buffer;
+			gsize size;
+		} image;
+
+	} u;
+
+	void *ui_data;
+	char *tooltip;
+
+};
 
 PurpleRequestFields *
 purple_request_fields_new(void)