summaryrefslogtreecommitdiff
path: root/libpurple
diff options
context:
space:
mode:
authorElliott Sales de Andrade <quantum.analyst@gmail.com>2023-03-10 01:42:06 -0600
committerElliott Sales de Andrade <quantum.analyst@gmail.com>2023-03-10 01:42:06 -0600
commit62982acaa4258b26324a9e7ee395814c279be2cc (patch)
treefc20db7731a337811ee10617728456828d9514f2 /libpurple
parent2b47dafad6610554a321ff826bad6d83dce27cf9 (diff)
downloadpidgin-62982acaa4258b26324a9e7ee395814c279be2cc.tar.gz
Make PurpleRequestFieldInt into a GObject
This also does an `hg cp`, though with all the renaming of the parameter names, maybe that wasn't as useful for tracking the diff. Note, I didn't bother re-indenting some of the blocks, because they'll all eventually be moved when everything is subclassed. Testing Done: Compiled and opened Request Fields from Demo protocol. Reviewed at https://reviews.imfreedom.org/r/2334/
Diffstat (limited to 'libpurple')
-rw-r--r--libpurple/meson.build2
-rw-r--r--libpurple/purplerequestfield.c136
-rw-r--r--libpurple/purplerequestfield.h98
-rw-r--r--libpurple/purplerequestpage.c6
-rw-r--r--libpurple/request/purplerequestfieldint.c288
-rw-r--r--libpurple/request/purplerequestfieldint.h142
6 files changed, 436 insertions, 236 deletions
diff --git a/libpurple/meson.build b/libpurple/meson.build
index 9b255c195c..824bcb64cc 100644
--- a/libpurple/meson.build
+++ b/libpurple/meson.build
@@ -99,6 +99,7 @@ purple_coresources = [
'request.c',
'request/purplerequestfieldaccount.c',
'request/purplerequestfieldbool.c',
+ 'request/purplerequestfieldint.c',
'request/purplerequestfieldstring.c',
'request-datasheet.c',
'roomlist.c',
@@ -225,6 +226,7 @@ purple_coreheaders = [
purple_request_headers = [
'request/purplerequestfieldaccount.h',
'request/purplerequestfieldbool.h',
+ 'request/purplerequestfieldint.h',
'request/purplerequestfieldstring.h',
]
diff --git a/libpurple/purplerequestfield.c b/libpurple/purplerequestfield.c
index 78e00ed138..39479867cb 100644
--- a/libpurple/purplerequestfield.c
+++ b/libpurple/purplerequestfield.c
@@ -42,13 +42,6 @@ typedef struct {
union {
struct {
- int default_value;
- int value;
- int lower_bound;
- int upper_bound;
- } integer;
-
- struct {
gpointer default_value;
gpointer value;
@@ -668,135 +661,6 @@ purple_request_field_is_sensitive(PurpleRequestField *field)
}
PurpleRequestField *
-purple_request_field_int_new(const char *id, const char *text,
- int default_value, int lower_bound, int upper_bound)
-{
- PurpleRequestField *field;
-
- g_return_val_if_fail(id != NULL, NULL);
- g_return_val_if_fail(text != NULL, NULL);
-
- field = purple_request_field_new(id, text, PURPLE_REQUEST_FIELD_INTEGER);
-
- purple_request_field_int_set_lower_bound(field, lower_bound);
- purple_request_field_int_set_upper_bound(field, upper_bound);
- purple_request_field_int_set_default_value(field, default_value);
- purple_request_field_int_set_value(field, default_value);
-
- return field;
-}
-
-void
-purple_request_field_int_set_default_value(PurpleRequestField *field,
- int default_value)
-{
- PurpleRequestFieldPrivate *priv = NULL;
-
- g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field));
-
- priv = purple_request_field_get_instance_private(field);
- g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_INTEGER);
-
- priv->u.integer.default_value = default_value;
-}
-
-void
-purple_request_field_int_set_lower_bound(PurpleRequestField *field,
- int lower_bound)
-{
- PurpleRequestFieldPrivate *priv = NULL;
-
- g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field));
-
- priv = purple_request_field_get_instance_private(field);
- g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_INTEGER);
-
- priv->u.integer.lower_bound = lower_bound;
-}
-
-void
-purple_request_field_int_set_upper_bound(PurpleRequestField *field,
- int upper_bound)
-{
- PurpleRequestFieldPrivate *priv = NULL;
-
- g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field));
-
- priv = purple_request_field_get_instance_private(field);
- g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_INTEGER);
-
- priv->u.integer.upper_bound = upper_bound;
-}
-
-void
-purple_request_field_int_set_value(PurpleRequestField *field, int value)
-{
- PurpleRequestFieldPrivate *priv = NULL;
-
- g_return_if_fail(PURPLE_IS_REQUEST_FIELD(field));
-
- priv = purple_request_field_get_instance_private(field);
- g_return_if_fail(priv->type == PURPLE_REQUEST_FIELD_INTEGER);
-
- if(value < priv->u.integer.lower_bound ||
- value > priv->u.integer.upper_bound)
- {
- purple_debug_error("request", "Int value out of bounds\n");
- return;
- }
-
- priv->u.integer.value = value;
-}
-
-int
-purple_request_field_int_get_default_value(PurpleRequestField *field) {
- PurpleRequestFieldPrivate *priv = NULL;
-
- g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), 0);
-
- priv = purple_request_field_get_instance_private(field);
- g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_INTEGER, 0);
-
- return priv->u.integer.default_value;
-}
-
-int
-purple_request_field_int_get_lower_bound(PurpleRequestField *field) {
- PurpleRequestFieldPrivate *priv = NULL;
-
- g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), 0);
-
- priv = purple_request_field_get_instance_private(field);
- g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_INTEGER, 0);
-
- return priv->u.integer.lower_bound;
-}
-
-int
-purple_request_field_int_get_upper_bound(PurpleRequestField *field) {
- PurpleRequestFieldPrivate *priv = NULL;
-
- g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), 0);
-
- priv = purple_request_field_get_instance_private(field);
- g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_INTEGER, 0);
-
- return priv->u.integer.upper_bound;
-}
-
-int
-purple_request_field_int_get_value(PurpleRequestField *field) {
- PurpleRequestFieldPrivate *priv = NULL;
-
- g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), 0);
-
- priv = purple_request_field_get_instance_private(field);
- g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_INTEGER, 0);
-
- return priv->u.integer.value;
-}
-
-PurpleRequestField *
purple_request_field_choice_new(const char *id, const char *text,
gpointer default_value)
{
diff --git a/libpurple/purplerequestfield.h b/libpurple/purplerequestfield.h
index 21765c76ee..9828758d91 100644
--- a/libpurple/purplerequestfield.h
+++ b/libpurple/purplerequestfield.h
@@ -64,7 +64,6 @@ struct _PurpleRequestFieldClass {
/**
* PurpleRequestFieldType:
* @PURPLE_REQUEST_FIELD_NONE: No field.
- * @PURPLE_REQUEST_FIELD_INTEGER: Integer field.
* @PURPLE_REQUEST_FIELD_CHOICE: Choice field (dropdown?).
* @PURPLE_REQUEST_FIELD_LIST: List field.
* @PURPLE_REQUEST_FIELD_LABEL: Label field.
@@ -76,7 +75,6 @@ struct _PurpleRequestFieldClass {
typedef enum
{
PURPLE_REQUEST_FIELD_NONE,
- PURPLE_REQUEST_FIELD_INTEGER,
PURPLE_REQUEST_FIELD_CHOICE,
PURPLE_REQUEST_FIELD_LIST,
PURPLE_REQUEST_FIELD_LABEL,
@@ -315,102 +313,6 @@ void purple_request_field_set_sensitive(PurpleRequestField *field,
gboolean purple_request_field_is_sensitive(PurpleRequestField *field);
/**************************************************************************/
-/* Integer Field API */
-/**************************************************************************/
-
-/**
- * purple_request_field_int_new:
- * @id: The field ID.
- * @text: The text label of the field.
- * @default_value: The default value.
- * @lower_bound: The lower bound.
- * @upper_bound: The upper bound.
- *
- * Creates an integer field.
- *
- * Returns: (transfer full): The new field.
- */
-PurpleRequestField *purple_request_field_int_new(const char *id,
- const char *text, int default_value, int lower_bound, int upper_bound);
-
-/**
- * purple_request_field_int_set_default_value:
- * @field: The field.
- * @default_value: The default value.
- *
- * Sets the default value in an integer field.
- */
-void purple_request_field_int_set_default_value(PurpleRequestField *field,
- int default_value);
-
-/**
- * purple_request_field_int_set_lower_bound:
- * @field: The field.
- * @lower_bound: The lower bound.
- *
- * Sets the lower bound in an integer field.
- */
-void purple_request_field_int_set_lower_bound(PurpleRequestField *field, int lower_bound);
-
-/**
- * purple_request_field_int_set_upper_bound:
- * @field: The field.
- * @upper_bound: The upper bound.
- *
- * Sets the upper bound in an integer field.
- */
-void purple_request_field_int_set_upper_bound(PurpleRequestField *field, int upper_bound);
-
-/**
- * purple_request_field_int_set_value:
- * @field: The field.
- * @value: The value.
- *
- * Sets the value in an integer field.
- */
-void purple_request_field_int_set_value(PurpleRequestField *field, int value);
-
-/**
- * purple_request_field_int_get_default_value:
- * @field: The field.
- *
- * Returns the default value in an integer field.
- *
- * Returns: The default value.
- */
-int purple_request_field_int_get_default_value(PurpleRequestField *field);
-
-/**
- * purple_request_field_int_get_lower_bound:
- * @field: The field.
- *
- * Returns the lower bound in an integer field.
- *
- * Returns: The lower bound.
- */
-int purple_request_field_int_get_lower_bound(PurpleRequestField *field);
-
-/**
- * purple_request_field_int_get_upper_bound:
- * @field: The field.
- *
- * Returns the upper bound in an integer field.
- *
- * Returns: The upper bound.
- */
-int purple_request_field_int_get_upper_bound(PurpleRequestField *field);
-
-/**
- * purple_request_field_int_get_value:
- * @field: The field.
- *
- * Returns the user-entered value in an integer field.
- *
- * Returns: The value.
- */
-int purple_request_field_int_get_value(PurpleRequestField *field);
-
-/**************************************************************************/
/* Choice Field API */
/**************************************************************************/
diff --git a/libpurple/purplerequestpage.c b/libpurple/purplerequestpage.c
index d8ac50b7cc..858dc0b7df 100644
--- a/libpurple/purplerequestpage.c
+++ b/libpurple/purplerequestpage.c
@@ -25,6 +25,7 @@
#include "purplerequestpage.h"
#include "request/purplerequestfieldaccount.h"
#include "request/purplerequestfieldbool.h"
+#include "request/purplerequestfieldint.h"
#include "request/purplerequestfieldstring.h"
#include "purpleprivate.h"
@@ -313,11 +314,12 @@ purple_request_page_get_integer(PurpleRequestPage *page, const char *id) {
g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), 0);
g_return_val_if_fail(id != NULL, 0);
- if((field = purple_request_page_get_field(page, id)) == NULL) {
+ field = purple_request_page_get_field(page, id);
+ if(!PURPLE_IS_REQUEST_FIELD_INT(field)) {
return 0;
}
- return purple_request_field_int_get_value(field);
+ return purple_request_field_int_get_value(PURPLE_REQUEST_FIELD_INT(field));
}
gboolean
diff --git a/libpurple/request/purplerequestfieldint.c b/libpurple/request/purplerequestfieldint.c
new file mode 100644
index 0000000000..19616146ed
--- /dev/null
+++ b/libpurple/request/purplerequestfieldint.c
@@ -0,0 +1,288 @@
+/* purple
+ *
+ * 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, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
+ */
+
+#include <glib/gi18n-lib.h>
+
+#include "glibcompat.h"
+#include "request.h"
+#include "request/purplerequestfieldint.h"
+#include "debug.h"
+#include "purplekeyvaluepair.h"
+#include "purpleprivate.h"
+
+struct _PurpleRequestFieldInt {
+ PurpleRequestField parent;
+
+ int default_value;
+ int value;
+ int lower_bound;
+ int upper_bound;
+};
+
+enum {
+ PROP_0,
+ PROP_DEFAULT_VALUE,
+ PROP_VALUE,
+ PROP_LOWER_BOUND,
+ PROP_UPPER_BOUND,
+ N_PROPERTIES,
+};
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
+
+/******************************************************************************
+ * GObject Implementation
+ *****************************************************************************/
+G_DEFINE_TYPE(PurpleRequestFieldInt, purple_request_field_int,
+ PURPLE_TYPE_REQUEST_FIELD)
+
+static void
+purple_request_field_int_get_property(GObject *obj, guint param_id,
+ GValue *value, GParamSpec *pspec)
+{
+ PurpleRequestFieldInt *field = PURPLE_REQUEST_FIELD_INT(obj);
+
+ switch(param_id) {
+ case PROP_DEFAULT_VALUE:
+ g_value_set_int(value,
+ purple_request_field_int_get_default_value(field));
+ break;
+ case PROP_VALUE:
+ g_value_set_int(value, purple_request_field_int_get_value(field));
+ break;
+ case PROP_LOWER_BOUND:
+ g_value_set_int(value,
+ purple_request_field_int_get_lower_bound(field));
+ break;
+ case PROP_UPPER_BOUND:
+ g_value_set_int(value,
+ purple_request_field_int_get_upper_bound(field));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
+ break;
+ }
+}
+
+static void
+purple_request_field_int_set_property(GObject *obj, guint param_id,
+ const GValue *value, GParamSpec *pspec)
+{
+ PurpleRequestFieldInt *field = PURPLE_REQUEST_FIELD_INT(obj);
+
+ switch(param_id) {
+ case PROP_DEFAULT_VALUE:
+ purple_request_field_int_set_default_value(field,
+ g_value_get_int(value));
+ break;
+ case PROP_VALUE:
+ purple_request_field_int_set_value(field, g_value_get_int(value));
+ break;
+ case PROP_LOWER_BOUND:
+ purple_request_field_int_set_lower_bound(field,
+ g_value_get_int(value));
+ break;
+ case PROP_UPPER_BOUND:
+ purple_request_field_int_set_upper_bound(field,
+ g_value_get_int(value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
+ break;
+ }
+}
+
+static void
+purple_request_field_int_init(G_GNUC_UNUSED PurpleRequestFieldInt *field) {
+}
+
+static void
+purple_request_field_int_class_init(PurpleRequestFieldIntClass *klass) {
+ GObjectClass *obj_class = G_OBJECT_CLASS(klass);
+
+ obj_class->get_property = purple_request_field_int_get_property;
+ obj_class->set_property = purple_request_field_int_set_property;
+
+ /**
+ * PurpleRequestFieldInt:default-value:
+ *
+ * The default value of the field.
+ *
+ * Since: 3.0.0
+ */
+ properties[PROP_DEFAULT_VALUE] = g_param_spec_int(
+ "default-value", "default-value",
+ "The default value of the field.",
+ G_MININT, G_MAXINT, 0,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+
+ /**
+ * PurpleRequestFieldInt:value:
+ *
+ * The value of the field.
+ *
+ * Since: 3.0.0
+ */
+ properties[PROP_VALUE] = g_param_spec_int(
+ "value", "value",
+ "The value of the field.",
+ G_MININT, G_MAXINT, 0,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+
+ /**
+ * PurpleRequestFieldInt:lower-bound:
+ *
+ * The lower bound of the field.
+ *
+ * Since: 3.0.0
+ */
+ properties[PROP_LOWER_BOUND] = g_param_spec_int(
+ "lower-bound", "lower-bound",
+ "The lower bound of the field.",
+ G_MININT, G_MAXINT, 0,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+
+ /**
+ * PurpleRequestFieldInt:upper-bound:
+ *
+ * The upper bound of the field.
+ *
+ * Since: 3.0.0
+ */
+ properties[PROP_UPPER_BOUND] = g_param_spec_int(
+ "upper-bound", "upper-bound",
+ "The upper bound of the field.",
+ G_MININT, G_MAXINT, 0,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
+}
+
+/******************************************************************************
+ * Public API
+ *****************************************************************************/
+PurpleRequestField *
+purple_request_field_int_new(const char *id, const char *text,
+ int default_value, int lower_bound,
+ int upper_bound)
+{
+ g_return_val_if_fail(id != NULL, NULL);
+ g_return_val_if_fail(text != NULL, NULL);
+
+ return g_object_new(PURPLE_TYPE_REQUEST_FIELD_INT,
+ "id", id,
+ "label", text,
+ "lower-bound", lower_bound,
+ "upper-bound", upper_bound,
+ "default-value", default_value,
+ "value", default_value,
+ NULL);
+}
+
+void
+purple_request_field_int_set_default_value(PurpleRequestFieldInt *field,
+ int default_value)
+{
+ g_return_if_fail(PURPLE_IS_REQUEST_FIELD_INT(field));
+
+ if(field->default_value == default_value) {
+ return;
+ }
+
+ field->default_value = default_value;
+
+ g_object_notify_by_pspec(G_OBJECT(field), properties[PROP_DEFAULT_VALUE]);
+}
+
+void
+purple_request_field_int_set_lower_bound(PurpleRequestFieldInt *field,
+ int lower_bound)
+{
+ g_return_if_fail(PURPLE_IS_REQUEST_FIELD_INT(field));
+
+ if(field->lower_bound == lower_bound) {
+ return;
+ }
+
+ field->lower_bound = lower_bound;
+
+ g_object_notify_by_pspec(G_OBJECT(field), properties[PROP_LOWER_BOUND]);
+}
+
+void
+purple_request_field_int_set_upper_bound(PurpleRequestFieldInt *field,
+ int upper_bound)
+{
+ g_return_if_fail(PURPLE_IS_REQUEST_FIELD_INT(field));
+
+ if(field->upper_bound == upper_bound) {
+ return;
+ }
+
+ field->upper_bound = upper_bound;
+
+ g_object_notify_by_pspec(G_OBJECT(field), properties[PROP_UPPER_BOUND]);
+}
+
+void
+purple_request_field_int_set_value(PurpleRequestFieldInt *field, int value) {
+ g_return_if_fail(PURPLE_IS_REQUEST_FIELD_INT(field));
+
+ if(value < field->lower_bound || value > field->upper_bound) {
+ purple_debug_error("request", "Int value out of bounds\n");
+ return;
+ }
+
+ if(field->value == value) {
+ return;
+ }
+
+ field->value = value;
+
+ g_object_notify_by_pspec(G_OBJECT(field), properties[PROP_VALUE]);
+}
+
+int
+purple_request_field_int_get_default_value(PurpleRequestFieldInt *field) {
+ g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD_INT(field), 0);
+
+ return field->default_value;
+}
+
+int
+purple_request_field_int_get_lower_bound(PurpleRequestFieldInt *field) {
+ g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD_INT(field), 0);
+
+ return field->lower_bound;
+}
+
+int
+purple_request_field_int_get_upper_bound(PurpleRequestFieldInt *field) {
+ g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD_INT(field), 0);
+
+ return field->upper_bound;
+}
+
+int
+purple_request_field_int_get_value(PurpleRequestFieldInt *field) {
+ g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD_INT(field), 0);
+
+ return field->value;
+}
diff --git a/libpurple/request/purplerequestfieldint.h b/libpurple/request/purplerequestfieldint.h
new file mode 100644
index 0000000000..89fb4c72c5
--- /dev/null
+++ b/libpurple/request/purplerequestfieldint.h
@@ -0,0 +1,142 @@
+/*
+ * 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_FIELD_INT_H
+#define PURPLE_REQUEST_FIELD_INT_H
+
+#include <stdlib.h>
+
+#include <glib.h>
+#include <glib-object.h>
+
+/**
+ * PurpleRequestFieldInt:
+ *
+ * An integer request field.
+ */
+typedef struct _PurpleRequestFieldInt PurpleRequestFieldInt;
+
+#include "purplerequestfield.h"
+
+G_BEGIN_DECLS
+
+#define PURPLE_TYPE_REQUEST_FIELD_INT (purple_request_field_int_get_type())
+G_DECLARE_FINAL_TYPE(PurpleRequestFieldInt, purple_request_field_int,
+ PURPLE, REQUEST_FIELD_INT, PurpleRequestField)
+
+/**
+ * purple_request_field_int_new:
+ * @id: The field ID.
+ * @text: The text label of the field.
+ * @default_value: The default value.
+ * @lower_bound: The lower bound.
+ * @upper_bound: The upper bound.
+ *
+ * Creates an integer field.
+ *
+ * Returns: (transfer full): The new field.
+ */
+PurpleRequestField *purple_request_field_int_new(const char *id, const char *text, int default_value, int lower_bound, int upper_bound);
+
+/**
+ * purple_request_field_int_set_default_value:
+ * @field: The field.
+ * @default_value: The default value.
+ *
+ * Sets the default value in an integer field.
+ */
+void purple_request_field_int_set_default_value(PurpleRequestFieldInt *field, int default_value);
+
+/**
+ * purple_request_field_int_set_lower_bound:
+ * @field: The field.
+ * @lower_bound: The lower bound.
+ *
+ * Sets the lower bound in an integer field.
+ */
+void purple_request_field_int_set_lower_bound(PurpleRequestFieldInt *field, int lower_bound);
+
+/**
+ * purple_request_field_int_set_upper_bound:
+ * @field: The field.
+ * @upper_bound: The upper bound.
+ *
+ * Sets the upper bound in an integer field.
+ */
+void purple_request_field_int_set_upper_bound(PurpleRequestFieldInt *field, int upper_bound);
+
+/**
+ * purple_request_field_int_set_value:
+ * @field: The field.
+ * @value: The value.
+ *
+ * Sets the value in an integer field.
+ */
+void purple_request_field_int_set_value(PurpleRequestFieldInt *field, int value);
+
+/**
+ * purple_request_field_int_get_default_value:
+ * @field: The field.
+ *
+ * Returns the default value in an integer field.
+ *
+ * Returns: The default value.
+ */
+int purple_request_field_int_get_default_value(PurpleRequestFieldInt *field);
+
+/**
+ * purple_request_field_int_get_lower_bound:
+ * @field: The field.
+ *
+ * Returns the lower bound in an integer field.
+ *
+ * Returns: The lower bound.
+ */
+int purple_request_field_int_get_lower_bound(PurpleRequestFieldInt *field);
+
+/**
+ * purple_request_field_int_get_upper_bound:
+ * @field: The field.
+ *
+ * Returns the upper bound in an integer field.
+ *
+ * Returns: The upper bound.
+ */
+int purple_request_field_int_get_upper_bound(PurpleRequestFieldInt *field);
+
+/**
+ * purple_request_field_int_get_value:
+ * @field: The field.
+ *
+ * Returns the user-entered value in an integer field.
+ *
+ * Returns: The value.
+ */
+int purple_request_field_int_get_value(PurpleRequestFieldInt *field);
+
+G_END_DECLS
+
+#endif /* PURPLE_REQUEST_FIELD_INT_H */