libpurple/purplerequestpage.h

changeset 42122
77a267934abf
parent 42120
1de24f50c9a6
child 42127
18acb99a0fa6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libpurple/purplerequestpage.h	Sun Mar 05 02:26:17 2023 -0600
@@ -0,0 +1,248 @@
+/*
+ * Purple - Internet Messaging Library
+ * Copyright (C) Pidgin Developers <devel@pidgin.im>
+ *
+ * Purple is the legal property of its developers, whose names are too numerous
+ * to list here.  Please refer to the COPYRIGHT file distributed with this
+ * source distribution.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
+ */
+
+#if !defined(PURPLE_GLOBAL_HEADER_INSIDE) && !defined(PURPLE_COMPILATION)
+# error "only <purple.h> may be included directly"
+#endif
+
+#ifndef PURPLE_REQUEST_PAGE_H
+#define PURPLE_REQUEST_PAGE_H
+
+#include <stdlib.h>
+
+#include <glib.h>
+#include <glib-object.h>
+
+/**
+ * PurpleRequestFields:
+ *
+ * Multiple fields request data.
+ */
+typedef struct _PurpleRequestFields PurpleRequestFields;
+
+#include "account.h"
+#include "purplerequestgroup.h"
+#include "purplerequestfield.h"
+
+G_BEGIN_DECLS
+
+/**
+ * purple_request_fields_new:
+ *
+ * Creates a list of fields to pass to purple_request_fields().
+ *
+ * Returns: (transfer full): A PurpleRequestFields structure.
+ */
+PurpleRequestFields *purple_request_fields_new(void);
+
+/**
+ * purple_request_fields_destroy:
+ * @fields: The list of fields to destroy.
+ *
+ * Destroys a list of fields.
+ */
+void purple_request_fields_destroy(PurpleRequestFields *fields);
+
+/**
+ * purple_request_fields_add_group:
+ * @fields: The fields list.
+ * @group:  The group to add.
+ *
+ * Adds a group of fields to the list.
+ */
+void purple_request_fields_add_group(PurpleRequestFields *fields,
+								   PurpleRequestFieldGroup *group);
+
+/**
+ * purple_request_fields_get_groups:
+ * @fields: The fields list.
+ *
+ * Returns a list of all groups in a field list.
+ *
+ * Returns: (element-type PurpleRequestFieldGroup) (transfer none): A list of groups.
+ */
+GList *purple_request_fields_get_groups(const PurpleRequestFields *fields);
+
+/**
+ * purple_request_fields_exists:
+ * @fields: The fields list.
+ * @id:     The ID of the field.
+ *
+ * Returns whether or not the field with the specified ID exists.
+ *
+ * Returns: TRUE if the field exists, or FALSE.
+ */
+gboolean purple_request_fields_exists(const PurpleRequestFields *fields,
+									const char *id);
+
+/**
+ * purple_request_fields_get_required:
+ * @fields: The fields list.
+ *
+ * Returns a list of all required fields.
+ *
+ * Returns: (element-type PurpleRequestField) (transfer none): The list of required fields.
+ */
+const GList *purple_request_fields_get_required(
+	const PurpleRequestFields *fields);
+
+/**
+ * purple_request_fields_get_validatable:
+ * @fields: The fields list.
+ *
+ * Returns a list of all validated fields.
+ *
+ * Returns: (element-type PurpleRequestField) (transfer none): The list of validated fields.
+ */
+const GList *purple_request_fields_get_validatable(
+	const PurpleRequestFields *fields);
+
+/**
+ * purple_request_fields_is_field_required:
+ * @fields: The fields list.
+ * @id:     The field ID.
+ *
+ * Returns whether or not a field with the specified ID is required.
+ *
+ * Returns: TRUE if the specified field is required, or FALSE.
+ */
+gboolean purple_request_fields_is_field_required(const PurpleRequestFields *fields,
+											   const char *id);
+
+/**
+ * purple_request_fields_all_required_filled:
+ * @fields: The fields list.
+ *
+ * Returns whether or not all required fields have values.
+ *
+ * Returns: TRUE if all required fields have values, or FALSE.
+ */
+gboolean purple_request_fields_all_required_filled(
+	const PurpleRequestFields *fields);
+
+/**
+ * purple_request_fields_all_valid:
+ * @fields: The fields list.
+ *
+ * Returns whether or not all fields are valid.
+ *
+ * Returns: TRUE if all fields are valid, or FALSE.
+ */
+gboolean purple_request_fields_all_valid(const PurpleRequestFields *fields);
+
+/**
+ * purple_request_fields_get_field:
+ * @fields: The fields list.
+ * @id:     The ID of the field.
+ *
+ * Return the field with the specified ID.
+ *
+ * Returns: (transfer none): The field, if found.
+ */
+PurpleRequestField *purple_request_fields_get_field(
+		const PurpleRequestFields *fields, const char *id);
+
+/**
+ * purple_request_fields_get_string:
+ * @fields: The fields list.
+ * @id:     The ID of the field.
+ *
+ * Returns the string value of a field with the specified ID.
+ *
+ * Returns: The string value, if found, or %NULL otherwise.
+ */
+const char *purple_request_fields_get_string(const PurpleRequestFields *fields,
+										   const char *id);
+
+/**
+ * purple_request_fields_get_integer:
+ * @fields: The fields list.
+ * @id:     The ID of the field.
+ *
+ * Returns the integer value of a field with the specified ID.
+ *
+ * Returns: The integer value, if found, or 0 otherwise.
+ */
+int purple_request_fields_get_integer(const PurpleRequestFields *fields,
+									const char *id);
+
+/**
+ * purple_request_fields_get_bool:
+ * @fields: The fields list.
+ * @id:     The ID of the field.
+ *
+ * Returns the boolean value of a field with the specified ID.
+ *
+ * Returns: The boolean value, if found, or %FALSE otherwise.
+ */
+gboolean purple_request_fields_get_bool(const PurpleRequestFields *fields,
+									  const char *id);
+
+/**
+ * purple_request_fields_get_choice:
+ * @fields: The fields list.
+ * @id:     The ID of the field.
+ *
+ * Returns the choice index of a field with the specified ID.
+ *
+ * Returns: The choice value, if found, or NULL otherwise.
+ */
+gpointer
+purple_request_fields_get_choice(const PurpleRequestFields *fields,
+	const char *id);
+
+/**
+ * purple_request_fields_get_account:
+ * @fields: The fields list.
+ * @id:     The ID of the field.
+ *
+ * Returns the account of a field with the specified ID.
+ *
+ * Returns: (transfer none): The account value, if found, or %NULL otherwise.
+ */
+PurpleAccount *purple_request_fields_get_account(const PurpleRequestFields *fields,
+											 const char *id);
+
+/**
+ * purple_request_fields_get_ui_data:
+ * @fields: The fields list.
+ *
+ * Returns the UI data associated with this object.
+ *
+ * Returns: The UI data associated with this object.  This is a
+ *         convenience field provided to the UIs--it is not
+ *         used by the libpurple core.
+ */
+gpointer purple_request_fields_get_ui_data(const PurpleRequestFields *fields);
+
+/**
+ * purple_request_fields_set_ui_data:
+ * @fields: The fields list.
+ * @ui_data: A pointer to associate with this object.
+ *
+ * Set the UI data associated with this object.
+ */
+void purple_request_fields_set_ui_data(PurpleRequestFields *fields, gpointer ui_data);
+
+G_END_DECLS
+
+#endif /* PURPLE_REQUEST_PAGE_H */

mercurial