libpurple/request.c

changeset 34502
433382371e89
parent 34501
cb22f5baa4f6
child 35142
d3f26f67a5ef
--- a/libpurple/request.c	Mon Oct 28 16:01:41 2013 +0100
+++ b/libpurple/request.c	Tue Oct 29 19:01:56 2013 +0100
@@ -132,6 +132,10 @@
 			PurpleCertificate *cert;
 		} certificate;
 
+		struct
+		{
+			PurpleRequestDatasheet *sheet;
+		} datasheet;
 	} u;
 
 	void *ui_data;
@@ -985,6 +989,10 @@
 		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);
+	}
 
 	g_free(field);
 }
@@ -1972,6 +1980,31 @@
 	return field->u.certificate.cert;
 }
 
+PurpleRequestField *
+purple_request_field_datasheet_new(const char *id,
+	const gchar *text, PurpleRequestDatasheet *sheet)
+{
+	PurpleRequestField *field;
+
+	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);
+
+	field->u.datasheet.sheet = sheet;
+
+	return field;
+}
+
+PurpleRequestDatasheet *
+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);
+
+	return field->u.datasheet.sheet;
+}
+
 /* -- */
 
 gboolean

mercurial