libpurple/request.c

changeset 34451
b7165d4e1d73
parent 34448
e15d91a77cb3
child 34452
7d05b0f03826
--- a/libpurple/request.c	Sat Sep 21 12:26:23 2013 +0200
+++ b/libpurple/request.c	Sat Sep 21 14:47:08 2013 +0200
@@ -175,6 +175,8 @@
 	gpointer help_data;
 
 	GSList *extra_actions;
+
+	gpointer parent_from;
 };
 
 PurpleRequestCommonParameters *
@@ -424,6 +426,24 @@
 	return cpar->extra_actions;
 }
 
+void
+purple_request_cpar_set_parent_from(PurpleRequestCommonParameters *cpar,
+	gpointer ui_handle)
+{
+	g_return_if_fail(cpar != NULL);
+
+	cpar->parent_from = ui_handle;
+}
+
+gpointer
+purple_request_cpar_get_parent_from(PurpleRequestCommonParameters *cpar)
+{
+	if (cpar == NULL)
+		return NULL;
+
+	return cpar->parent_from;
+}
+
 PurpleRequestFields *
 purple_request_fields_new(void)
 {
@@ -2286,6 +2306,28 @@
 	                             NULL, user_data);
 }
 
+gboolean
+purple_request_is_valid_ui_handle(void *ui_handle, PurpleRequestType *type)
+{
+	GList *it;
+
+	if (ui_handle == NULL)
+		return FALSE;
+
+	for (it = handles; it != NULL; it = g_list_next(it)) {
+		PurpleRequestInfo *info = it->data;
+
+		if (info->ui_handle != ui_handle)
+			continue;
+
+		if (type != NULL)
+			*type = info->type;
+		return TRUE;
+	}
+
+	return FALSE;
+}
+
 static void
 purple_request_close_info(PurpleRequestInfo *info)
 {

mercurial