pidgin/pidgin

Make PurpleRequestFieldBool into a GObject

14 months ago, Elliott Sales de Andrade
cfa707dcda7d
Parents 1a89a067a0d5
Children 59ceb87dc43c
Make PurpleRequestFieldBool 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/2332/
--- a/finch/gntrequest.c Fri Mar 10 01:16:40 2023 -0600
+++ b/finch/gntrequest.c Fri Mar 10 01:24:33 2023 -0600
@@ -293,12 +293,12 @@
PurpleRequestFieldType type = purple_request_field_get_field_type(field);
if (!purple_request_field_is_visible(field))
continue;
- if (type == PURPLE_REQUEST_FIELD_BOOLEAN)
- {
+ if(PURPLE_IS_REQUEST_FIELD_BOOL(field)) {
GntWidget *check = g_object_get_data(G_OBJECT(field),
"finch-ui-data");
gboolean value = gnt_check_box_get_checked(GNT_CHECK_BOX(check));
- purple_request_field_bool_set_value(field, value);
+ purple_request_field_bool_set_value(PURPLE_REQUEST_FIELD_BOOL(field),
+ value);
} else if(PURPLE_IS_REQUEST_FIELD_STRING(field)) {
GntWidget *entry = g_object_get_data(G_OBJECT(field),
"finch-ui-data");
@@ -416,10 +416,11 @@
static GntWidget*
create_boolean_field(PurpleRequestField *field)
{
+ PurpleRequestFieldBool *boolfield = PURPLE_REQUEST_FIELD_BOOL(field);
const char *label = purple_request_field_get_label(field);
GntWidget *check = gnt_check_box_new(label);
gnt_check_box_set_checked(GNT_CHECK_BOX(check),
- purple_request_field_bool_get_default_value(field));
+ purple_request_field_bool_get_default_value(boolfield));
return check;
}
@@ -649,8 +650,7 @@
hbox = gnt_hbox_new(TRUE); /* hrm */
gnt_box_add_widget(GNT_BOX(box), hbox);
- if (type != PURPLE_REQUEST_FIELD_BOOLEAN && label)
- {
+ if(!PURPLE_IS_REQUEST_FIELD_BOOL(field) && label) {
GntWidget *l;
if (purple_request_field_is_required(field))
l = gnt_label_new_with_format(label, GNT_TEXT_FLAG_UNDERLINE);
@@ -660,7 +660,7 @@
gnt_box_add_widget(GNT_BOX(hbox), l);
}
- if (type == PURPLE_REQUEST_FIELD_BOOLEAN) {
+ if(PURPLE_IS_REQUEST_FIELD_BOOL(field)) {
widget = create_boolean_field(field);
} else if(PURPLE_IS_REQUEST_FIELD_STRING(field)) {
widget = create_string_field(field, &username);
@@ -873,7 +873,10 @@
gpointer val = NULL;
const char *id = purple_request_field_get_id(field);
- if(PURPLE_IS_REQUEST_FIELD_STRING(field)) {
+ if(PURPLE_IS_REQUEST_FIELD_BOOL(field)) {
+ PurpleRequestFieldBool *bfield = PURPLE_REQUEST_FIELD_BOOL(field);
+ val = GINT_TO_POINTER(purple_request_field_bool_get_value(bfield));
+ } else if(PURPLE_IS_REQUEST_FIELD_STRING(field)) {
PurpleRequestFieldString *sfield = PURPLE_REQUEST_FIELD_STRING(field);
val = (gpointer)purple_request_field_string_get_value(sfield);
} else {
@@ -882,9 +885,6 @@
val = purple_request_field_list_get_selected(field)->data;
val = purple_request_field_list_get_data(field, val);
break;
- case PURPLE_REQUEST_FIELD_BOOLEAN:
- val = GINT_TO_POINTER(purple_request_field_bool_get_value(field));
- break;
case PURPLE_REQUEST_FIELD_INTEGER:
val = GINT_TO_POINTER(purple_request_field_int_get_value(field));
break;
@@ -922,15 +922,14 @@
GntWidget *finch_request_field_get_widget(PurpleRequestField *field)
{
GntWidget *ret = NULL;
- if(PURPLE_IS_REQUEST_FIELD_STRING(field)) {
+ if(PURPLE_IS_REQUEST_FIELD_BOOL(field)) {
+ ret = create_boolean_field(field);
+ } else if(PURPLE_IS_REQUEST_FIELD_STRING(field)) {
ret = create_string_field(field, NULL);
} else if(PURPLE_IS_REQUEST_FIELD_ACCOUNT(field)) {
ret = create_account_field(field);
} else {
switch (purple_request_field_get_field_type(field)) {
- case PURPLE_REQUEST_FIELD_BOOLEAN:
- ret = create_boolean_field(field);
- break;
case PURPLE_REQUEST_FIELD_INTEGER:
ret = create_integer_field(field);
break;
--- a/libpurple/account.c Fri Mar 10 01:16:40 2023 -0600
+++ b/libpurple/account.c Fri Mar 10 01:24:33 2023 -0600
@@ -38,6 +38,7 @@
#include "purpleprotocolmanager.h"
#include "purpleprotocolserver.h"
#include "request.h"
+#include "request/purplerequestfieldbool.h"
#include "request/purplerequestfieldstring.h"
#include "server.h"
#include "signals.h"
--- a/libpurple/meson.build Fri Mar 10 01:16:40 2023 -0600
+++ b/libpurple/meson.build Fri Mar 10 01:24:33 2023 -0600
@@ -98,6 +98,7 @@
'queuedoutputstream.c',
'request.c',
'request/purplerequestfieldaccount.c',
+ 'request/purplerequestfieldbool.c',
'request/purplerequestfieldstring.c',
'request-datasheet.c',
'roomlist.c',
@@ -223,6 +224,7 @@
purple_request_headers = [
'request/purplerequestfieldaccount.h',
+ 'request/purplerequestfieldbool.h',
'request/purplerequestfieldstring.h',
]
--- a/libpurple/protocols/jabber/xdata.c Fri Mar 10 01:16:40 2023 -0600
+++ b/libpurple/protocols/jabber/xdata.c Fri Mar 10 01:24:33 2023 -0600
@@ -130,13 +130,17 @@
}
break;
case JABBER_X_DATA_BOOLEAN:
+ {
+ PurpleRequestFieldBool *bfield = PURPLE_REQUEST_FIELD_BOOL(field);
fieldnode = purple_xmlnode_new_child(result, "field");
purple_xmlnode_set_attrib(fieldnode, "var", id);
valuenode = purple_xmlnode_new_child(fieldnode, "value");
- if(purple_request_field_bool_get_value(field))
+ if(purple_request_field_bool_get_value(bfield)) {
purple_xmlnode_insert_data(valuenode, "1", -1);
- else
+ } else {
purple_xmlnode_insert_data(valuenode, "0", -1);
+ }
+ }
break;
case JABBER_X_DATA_IGNORE:
break;
--- a/libpurple/purplerequestfield.c Fri Mar 10 01:16:40 2023 -0600
+++ b/libpurple/purplerequestfield.c Fri Mar 10 01:24:33 2023 -0600
@@ -49,11 +49,6 @@
} integer;
struct {
- gboolean default_value;
- gboolean value;
- } boolean;
-
- struct {
gpointer default_value;
gpointer value;
@@ -802,74 +797,6 @@
}
PurpleRequestField *
-purple_request_field_bool_new(const char *id, const char *text,
- gboolean default_value)
-{
- 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_BOOLEAN);
-
- purple_request_field_bool_set_default_value(field, default_value);
- purple_request_field_bool_set_value(field, default_value);
-
- return field;
-}
-
-void
-purple_request_field_bool_set_default_value(PurpleRequestField *field,
- gboolean 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_BOOLEAN);
-
- priv->u.boolean.default_value = default_value;
-}
-
-void
-purple_request_field_bool_set_value(PurpleRequestField *field, gboolean 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_BOOLEAN);
-
- priv->u.boolean.value = value;
-}
-
-gboolean
-purple_request_field_bool_get_default_value(PurpleRequestField *field) {
- PurpleRequestFieldPrivate *priv = NULL;
-
- g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE);
-
- priv = purple_request_field_get_instance_private(field);
- g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_BOOLEAN, FALSE);
-
- return priv->u.boolean.default_value;
-}
-
-gboolean
-purple_request_field_bool_get_value(PurpleRequestField *field) {
- PurpleRequestFieldPrivate *priv = NULL;
-
- g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD(field), FALSE);
-
- priv = purple_request_field_get_instance_private(field);
- g_return_val_if_fail(priv->type == PURPLE_REQUEST_FIELD_BOOLEAN, FALSE);
-
- return priv->u.boolean.value;
-}
-
-PurpleRequestField *
purple_request_field_choice_new(const char *id, const char *text,
gpointer default_value)
{
--- a/libpurple/purplerequestfield.h Fri Mar 10 01:16:40 2023 -0600
+++ b/libpurple/purplerequestfield.h Fri Mar 10 01:24:33 2023 -0600
@@ -65,7 +65,6 @@
* PurpleRequestFieldType:
* @PURPLE_REQUEST_FIELD_NONE: No field.
* @PURPLE_REQUEST_FIELD_INTEGER: Integer field.
- * @PURPLE_REQUEST_FIELD_BOOLEAN: Boolean field.
* @PURPLE_REQUEST_FIELD_CHOICE: Choice field (dropdown?).
* @PURPLE_REQUEST_FIELD_LIST: List field.
* @PURPLE_REQUEST_FIELD_LABEL: Label field.
@@ -78,7 +77,6 @@
{
PURPLE_REQUEST_FIELD_NONE,
PURPLE_REQUEST_FIELD_INTEGER,
- PURPLE_REQUEST_FIELD_BOOLEAN,
PURPLE_REQUEST_FIELD_CHOICE,
PURPLE_REQUEST_FIELD_LIST,
PURPLE_REQUEST_FIELD_LABEL,
@@ -413,66 +411,6 @@
int purple_request_field_int_get_value(PurpleRequestField *field);
/**************************************************************************/
-/* Boolean Field API */
-/**************************************************************************/
-
-/**
- * purple_request_field_bool_new:
- * @id: The field ID.
- * @text: The text label of the field.
- * @default_value: The default value.
- *
- * Creates a boolean field.
- *
- * This is often represented as a checkbox.
- *
- * Returns: (transfer full): The new field.
- */
-PurpleRequestField *purple_request_field_bool_new(const char *id,
- const char *text,
- gboolean default_value);
-
-/**
- * purple_request_field_bool_set_default_value:
- * @field: The field.
- * @default_value: The default value.
- *
- * Sets the default value in an boolean field.
- */
-void purple_request_field_bool_set_default_value(PurpleRequestField *field,
- gboolean default_value);
-
-/**
- * purple_request_field_bool_set_value:
- * @field: The field.
- * @value: The value.
- *
- * Sets the value in an boolean field.
- */
-void purple_request_field_bool_set_value(PurpleRequestField *field,
- gboolean value);
-
-/**
- * purple_request_field_bool_get_default_value:
- * @field: The field.
- *
- * Returns the default value in an boolean field.
- *
- * Returns: The default value.
- */
-gboolean purple_request_field_bool_get_default_value(PurpleRequestField *field);
-
-/**
- * purple_request_field_bool_get_value:
- * @field: The field.
- *
- * Returns the user-entered value in an boolean field.
- *
- * Returns: The value.
- */
-gboolean purple_request_field_bool_get_value(PurpleRequestField *field);
-
-/**************************************************************************/
/* Choice Field API */
/**************************************************************************/
--- a/libpurple/purplerequestpage.c Fri Mar 10 01:16:40 2023 -0600
+++ b/libpurple/purplerequestpage.c Fri Mar 10 01:24:33 2023 -0600
@@ -24,6 +24,7 @@
#include "glibcompat.h"
#include "purplerequestpage.h"
#include "request/purplerequestfieldaccount.h"
+#include "request/purplerequestfieldbool.h"
#include "request/purplerequestfieldstring.h"
#include "purpleprivate.h"
@@ -326,11 +327,12 @@
g_return_val_if_fail(PURPLE_IS_REQUEST_PAGE(page), FALSE);
g_return_val_if_fail(id != NULL, FALSE);
- if((field = purple_request_page_get_field(page, id)) == NULL) {
+ field = purple_request_page_get_field(page, id);
+ if(!PURPLE_IS_REQUEST_FIELD_BOOL(field)) {
return FALSE;
}
- return purple_request_field_bool_get_value(field);
+ return purple_request_field_bool_get_value(PURPLE_REQUEST_FIELD_BOOL(field));
}
gpointer
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/libpurple/request/purplerequestfieldbool.c Fri Mar 10 01:24:33 2023 -0600
@@ -0,0 +1,191 @@
+/* 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 "purplerequestfield.h"
+#include "request/purplerequestfieldbool.h"
+
+struct _PurpleRequestFieldBool {
+ PurpleRequestField parent;
+
+ gboolean default_value;
+ gboolean value;
+};
+
+enum {
+ PROP_0,
+ PROP_DEFAULT_VALUE,
+ PROP_VALUE,
+ N_PROPERTIES,
+};
+static GParamSpec *properties[N_PROPERTIES] = {NULL, };
+
+/******************************************************************************
+ * GObject Implementation
+ *****************************************************************************/
+G_DEFINE_TYPE(PurpleRequestFieldBool, purple_request_field_bool,
+ PURPLE_TYPE_REQUEST_FIELD)
+
+static void
+purple_request_field_bool_get_property(GObject *obj, guint param_id,
+ GValue *value, GParamSpec *pspec)
+{
+ PurpleRequestFieldBool *field = PURPLE_REQUEST_FIELD_BOOL(obj);
+
+ switch(param_id) {
+ case PROP_DEFAULT_VALUE:
+ g_value_set_boolean(value,
+ purple_request_field_bool_get_default_value(field));
+ break;
+ case PROP_VALUE:
+ g_value_set_boolean(value,
+ purple_request_field_bool_get_value(field));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
+ break;
+ }
+}
+
+static void
+purple_request_field_bool_set_property(GObject *obj, guint param_id,
+ const GValue *value, GParamSpec *pspec)
+{
+ PurpleRequestFieldBool *field = PURPLE_REQUEST_FIELD_BOOL(obj);
+
+ switch(param_id) {
+ case PROP_DEFAULT_VALUE:
+ purple_request_field_bool_set_default_value(field,
+ g_value_get_boolean(value));
+ break;
+ case PROP_VALUE:
+ purple_request_field_bool_set_value(field,
+ g_value_get_boolean(value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
+ break;
+ }
+}
+
+static void
+purple_request_field_bool_init(G_GNUC_UNUSED PurpleRequestFieldBool *field) {
+}
+
+static void
+purple_request_field_bool_class_init(PurpleRequestFieldBoolClass *klass) {
+ GObjectClass *obj_class = G_OBJECT_CLASS(klass);
+
+ obj_class->get_property = purple_request_field_bool_get_property;
+ obj_class->set_property = purple_request_field_bool_set_property;
+
+ /**
+ * PurpleRequestFieldBool:default-value:
+ *
+ * The default value of the field.
+ *
+ * Since: 3.0.0
+ */
+ properties[PROP_DEFAULT_VALUE] = g_param_spec_boolean(
+ "default-value", "default-value",
+ "The default value of the field.",
+ FALSE,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+
+ /**
+ * PurpleRequestFieldBool:value:
+ *
+ * The value of the field.
+ *
+ * Since: 3.0.0
+ */
+ properties[PROP_VALUE] = g_param_spec_boolean(
+ "value", "value",
+ "The value of the field.",
+ FALSE,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
+}
+
+/******************************************************************************
+ * Public API
+ *****************************************************************************/
+PurpleRequestField *
+purple_request_field_bool_new(const char *id, const char *text,
+ gboolean default_value)
+{
+ g_return_val_if_fail(id != NULL, NULL);
+ g_return_val_if_fail(text != NULL, NULL);
+
+ return g_object_new(PURPLE_TYPE_REQUEST_FIELD_BOOL,
+ "id", id,
+ "label", text,
+ "default-value", default_value,
+ "value", default_value,
+ NULL);
+}
+
+void
+purple_request_field_bool_set_default_value(PurpleRequestFieldBool *field,
+ gboolean default_value)
+{
+ g_return_if_fail(PURPLE_IS_REQUEST_FIELD_BOOL(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_bool_set_value(PurpleRequestFieldBool *field,
+ gboolean value)
+{
+ g_return_if_fail(PURPLE_IS_REQUEST_FIELD_BOOL(field));
+
+ if(field->value == value) {
+ return;
+ }
+
+ field->value = value;
+
+ g_object_notify_by_pspec(G_OBJECT(field), properties[PROP_DEFAULT_VALUE]);
+}
+
+gboolean
+purple_request_field_bool_get_default_value(PurpleRequestFieldBool *field) {
+ g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD_BOOL(field), FALSE);
+
+ return field->default_value;
+}
+
+gboolean
+purple_request_field_bool_get_value(PurpleRequestFieldBool *field) {
+ g_return_val_if_fail(PURPLE_IS_REQUEST_FIELD_BOOL(field), FALSE);
+
+ return field->value;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/libpurple/request/purplerequestfieldbool.h Fri Mar 10 01:24:33 2023 -0600
@@ -0,0 +1,104 @@
+/*
+ * 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_BOOL_H
+#define PURPLE_REQUEST_FIELD_BOOL_H
+
+#include <stdlib.h>
+
+#include <glib.h>
+#include <glib-object.h>
+
+/**
+ * PurpleRequestFieldBool:
+ *
+ * A boolean request field.
+ */
+typedef struct _PurpleRequestFieldBool PurpleRequestFieldBool;
+
+#include "purplerequestfield.h"
+
+G_BEGIN_DECLS
+
+#define PURPLE_TYPE_REQUEST_FIELD_BOOL (purple_request_field_bool_get_type())
+G_DECLARE_FINAL_TYPE(PurpleRequestFieldBool, purple_request_field_bool,
+ PURPLE, REQUEST_FIELD_BOOL, PurpleRequestField)
+
+/**
+ * purple_request_field_bool_new:
+ * @id: The field ID.
+ * @text: The text label of the field.
+ * @default_value: The default value.
+ *
+ * Creates a boolean field.
+ *
+ * This is often represented as a checkbox.
+ *
+ * Returns: (transfer full): The new field.
+ */
+PurpleRequestField *purple_request_field_bool_new(const char *id, const char *text, gboolean default_value);
+
+/**
+ * purple_request_field_bool_set_default_value:
+ * @field: The field.
+ * @default_value: The default value.
+ *
+ * Sets the default value in an boolean field.
+ */
+void purple_request_field_bool_set_default_value(PurpleRequestFieldBool *field, gboolean default_value);
+
+/**
+ * purple_request_field_bool_set_value:
+ * @field: The field.
+ * @value: The value.
+ *
+ * Sets the value in an boolean field.
+ */
+void purple_request_field_bool_set_value(PurpleRequestFieldBool *field, gboolean value);
+
+/**
+ * purple_request_field_bool_get_default_value:
+ * @field: The field.
+ *
+ * Returns the default value in an boolean field.
+ *
+ * Returns: The default value.
+ */
+gboolean purple_request_field_bool_get_default_value(PurpleRequestFieldBool *field);
+
+/**
+ * purple_request_field_bool_get_value:
+ * @field: The field.
+ *
+ * Returns the user-entered value in an boolean field.
+ *
+ * Returns: The value.
+ */
+gboolean purple_request_field_bool_get_value(PurpleRequestFieldBool *field);
+
+G_END_DECLS
+
+#endif /* PURPLE_REQUEST_FIELD_BOOL_H */
--- a/pidgin/gtkrequest.c Fri Mar 10 01:16:40 2023 -0600
+++ b/pidgin/gtkrequest.c Fri Mar 10 01:24:33 2023 -0600
@@ -241,7 +241,7 @@
static void
field_bool_cb(GtkCheckButton *button, PurpleRequestField *field)
{
- purple_request_field_bool_set_value(field,
+ purple_request_field_bool_set_value(PURPLE_REQUEST_FIELD_BOOL(field),
gtk_check_button_get_active(button));
req_field_changed_common(GTK_WIDGET(button), field);
@@ -1220,6 +1220,7 @@
create_bool_field(PurpleRequestField *field,
PurpleRequestCommonParameters *cpar)
{
+ PurpleRequestFieldBool *boolfield = PURPLE_REQUEST_FIELD_BOOL(field);
GtkWidget *widget;
gchar *label;
@@ -1231,7 +1232,7 @@
gtk_widget_set_tooltip_text(widget, purple_request_field_get_tooltip(field));
gtk_check_button_set_active(GTK_CHECK_BUTTON(widget),
- purple_request_field_bool_get_default_value(field));
+ purple_request_field_bool_get_default_value(boolfield));
g_signal_connect(widget, "toggled", G_CALLBACK(field_bool_cb), field);
@@ -2054,8 +2055,9 @@
purple_request_field_string_is_multiline(PURPLE_REQUEST_FIELD_STRING(field))))
{
rows += 2;
- } else if (compact && type != PURPLE_REQUEST_FIELD_BOOLEAN)
+ } else if(compact && !PURPLE_IS_REQUEST_FIELD_BOOL(field)) {
rows++;
+ }
}
grid = gtk_grid_new();
@@ -2097,8 +2099,7 @@
field_label = pidgin_request_escape(cpar,
purple_request_field_get_label(field));
- if (type != PURPLE_REQUEST_FIELD_BOOLEAN && field_label)
- {
+ if(!PURPLE_IS_REQUEST_FIELD_BOOL(field) && field_label) {
char *text = NULL;
if (field_label[strlen(field_label) - 1] != ':' &&
@@ -2145,9 +2146,9 @@
widget = create_string_field(field);
} else if (type == PURPLE_REQUEST_FIELD_INTEGER)
widget = create_int_field(field);
- else if (type == PURPLE_REQUEST_FIELD_BOOLEAN)
+ else if(PURPLE_IS_REQUEST_FIELD_BOOL(field)) {
widget = create_bool_field(field, cpar);
- else if (type == PURPLE_REQUEST_FIELD_CHOICE)
+ } else if (type == PURPLE_REQUEST_FIELD_CHOICE)
widget = create_choice_field(field);
else if (type == PURPLE_REQUEST_FIELD_LIST)
widget = create_list_field(field);
@@ -2182,9 +2183,7 @@
{
gtk_grid_attach(GTK_GRID(grid), widget,
0, row_num, 2 * cols, 1);
- }
- else if (type == PURPLE_REQUEST_FIELD_BOOLEAN)
- {
+ } else if(PURPLE_IS_REQUEST_FIELD_BOOL(field)) {
gtk_grid_attach(GTK_GRID(grid), widget,
col_offset, row_num, 1, 1);
}