[glade3] * gladeui/glade-signal.[ch], gladeui/glade-signal-editor.c, gladeui/glade-command.c, gladeui/glade
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glade3] * gladeui/glade-signal.[ch], gladeui/glade-signal-editor.c, gladeui/glade-command.c, gladeui/glade
- Date: Wed, 5 Jan 2011 14:10:16 +0000 (UTC)
commit 81db1aa19c5a9cfdf8883e96bbb545a413ca5f7b
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date: Wed Jan 5 23:17:00 2011 +0900
* gladeui/glade-signal.[ch], gladeui/glade-signal-editor.c, gladeui/glade-command.c,
gladeui/glade-widget.c: Made GladeSignal a GObject.
ChangeLog | 3 +
gladeui/glade-command.c | 4 +-
gladeui/glade-signal-editor.c | 24 ++--
gladeui/glade-signal.c | 333 ++++++++++++++++++++++++++++++-----------
gladeui/glade-signal.h | 33 ++++-
gladeui/glade-widget.c | 11 +-
6 files changed, 295 insertions(+), 113 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index a79aabc..59c055d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -41,6 +41,9 @@
* gladeui/glade-editor.c: Make the editor notebook scrollable.
+ * gladeui/glade-signal.[ch], gladeui/glade-signal-editor.c, gladeui/glade-command.c,
+ gladeui/glade-widget.c: Made GladeSignal a GObject.
+
2011-01-04 Johannes Schmid <jhs gnome org>
* data/gladeui-2.0.pc.in: Fix include paths and library name
diff --git a/gladeui/glade-command.c b/gladeui/glade-command.c
index 0e3566a..f3aed6c 100644
--- a/gladeui/glade-command.c
+++ b/gladeui/glade-command.c
@@ -1823,9 +1823,9 @@ glade_command_add_signal_finalize (GObject * obj)
g_object_unref (cmd->widget);
if (cmd->signal)
- glade_signal_free (cmd->signal);
+ g_object_unref (cmd->signal);
if (cmd->new_signal)
- glade_signal_free (cmd->new_signal);
+ g_object_unref (cmd->new_signal);
glade_command_finalize (obj);
}
diff --git a/gladeui/glade-signal-editor.c b/gladeui/glade-signal-editor.c
index 17ee9a2..c764dec 100644
--- a/gladeui/glade-signal-editor.c
+++ b/gladeui/glade-signal-editor.c
@@ -209,8 +209,8 @@ glade_signal_editor_after_swapped_toggled (GtkCellRendererToggle * cell,
GSE_COLUMN_AFTER, new_after,
GSE_COLUMN_SWAPPED, new_swapped, -1);
- glade_signal_free (old_signal);
- glade_signal_free (new_signal);
+ g_object_unref (old_signal);
+ g_object_unref (new_signal);
gtk_tree_path_free (path);
g_free (signal_name);
g_free (handler);
@@ -254,7 +254,7 @@ append_slot (GladeSignalEditor * self, GtkTreeIter * iter_signal,
gtk_tree_store_set (GTK_TREE_STORE (model), &iter_class, GSE_COLUMN_BOLD,
TRUE, -1);
- glade_signal_free (sig);
+ g_object_unref (sig);
}
static void
@@ -385,7 +385,7 @@ glade_signal_editor_handler_editing_done (GladeSignalEditor * self,
GladeSignal *new_signal = glade_signal_new (signal_name, new_handler,
NULL, FALSE, FALSE);
glade_command_add_signal (glade_widget, new_signal);
- glade_signal_free (new_signal);
+ g_object_unref (new_signal);
gtk_tree_store_set (GTK_TREE_STORE (model), iter,
GSE_COLUMN_HANDLER, new_handler,
GSE_COLUMN_AFTER_VISIBLE, TRUE,
@@ -405,7 +405,7 @@ glade_signal_editor_handler_editing_done (GladeSignalEditor * self,
after,
swapped);
glade_command_remove_signal (glade_widget, old_signal);
- glade_signal_free (old_signal);
+ g_object_unref (old_signal);
gtk_tree_store_set
(GTK_TREE_STORE (model), iter,
@@ -440,8 +440,8 @@ glade_signal_editor_handler_editing_done (GladeSignalEditor * self,
if (glade_signal_equal (old_signal, new_signal) == FALSE)
glade_command_change_signal (glade_widget, old_signal, new_signal);
- glade_signal_free (old_signal);
- glade_signal_free (new_signal);
+ g_object_unref (old_signal);
+ g_object_unref (new_signal);
gtk_tree_store_set (GTK_TREE_STORE (model), iter,
GSE_COLUMN_HANDLER, new_handler,
@@ -500,8 +500,8 @@ glade_signal_editor_userdata_editing_done (GladeSignalEditor * self,
if (glade_signal_equal (old_signal, new_signal) == FALSE)
glade_command_change_signal (glade_widget, old_signal, new_signal);
- glade_signal_free (old_signal);
- glade_signal_free (new_signal);
+ g_object_unref (old_signal);
+ g_object_unref (new_signal);
g_free (handler);
return FALSE;
@@ -829,8 +829,8 @@ glade_signal_editor_user_data_activate (GtkCellRenderer * icon_renderer,
after, swapped);
glade_command_change_signal (priv->widget, old_signal, new_signal);
- glade_signal_free (old_signal);
- glade_signal_free (new_signal);
+ g_object_unref (old_signal);
+ g_object_unref (new_signal);
/* We are removing userdata */
if (project_object == NULL)
@@ -1342,7 +1342,7 @@ glade_signal_editor_load_widget (GladeSignalEditor * editor,
GSE_COLUMN_TOOLTIP, glade_signal_get_support_warning (sig), -1);
}
- glade_signal_free (sig);
+ g_object_unref (sig);
}
diff --git a/gladeui/glade-signal.c b/gladeui/glade-signal.c
index 79820be..abb35b6 100644
--- a/gladeui/glade-signal.c
+++ b/gladeui/glade-signal.c
@@ -30,7 +30,7 @@
#include "glade-signal.h"
#include "glade-xml-utils.h"
-struct _GladeSignal
+struct _GladeSignalPrivate
{
gchar *name; /* Signal name eg "clicked" */
gchar *handler; /* Handler function eg "gtk_main_quit" */
@@ -42,10 +42,190 @@ struct _GladeSignal
guint8 swapped : 1; /* Connect swapped TRUE or FALSE (GtkBuilder only) */
};
+enum {
+ PROP_0,
+ PROP_NAME,
+ PROP_HANDLER,
+ PROP_USERDATA,
+ PROP_SUPPORT,
+ PROP_AFTER,
+ PROP_SWAPPED
+};
+
+static GObjectClass *parent_class;
+
+static void
+glade_signal_finalize (GObject *object)
+{
+ GladeSignal *signal = GLADE_SIGNAL (object);
+
+ g_free (signal->priv->name);
+ g_free (signal->priv->handler);
+ g_free (signal->priv->userdata);
+ g_free (signal->priv->support_warning);
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
+glade_signal_get_property (GObject * object,
+ guint prop_id,
+ GValue * value, GParamSpec * pspec)
+{
+ GladeSignal *signal = GLADE_SIGNAL (object);
+
+ switch (prop_id)
+ {
+ case PROP_NAME:
+ g_value_set_string (value, signal->priv->name);
+ break;
+ case PROP_HANDLER:
+ g_value_set_string (value, signal->priv->handler);
+ break;
+ case PROP_USERDATA:
+ g_value_set_string (value, signal->priv->userdata);
+ break;
+ case PROP_SUPPORT:
+ g_value_set_string (value, signal->priv->support_warning);
+ break;
+ case PROP_AFTER:
+ g_value_set_boolean (value, signal->priv->after);
+ break;
+ case PROP_SWAPPED:
+ g_value_set_boolean (value, signal->priv->swapped);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+glade_signal_set_property (GObject * object,
+ guint prop_id,
+ const GValue * value, GParamSpec * pspec)
+{
+ GladeSignal *signal = GLADE_SIGNAL (object);
+
+ switch (prop_id)
+ {
+ case PROP_NAME:
+ signal->priv->name = g_value_dup_string (value);
+ break;
+ case PROP_HANDLER:
+ glade_signal_set_handler (signal, g_value_get_string (value));
+ break;
+ case PROP_USERDATA:
+ glade_signal_set_userdata (signal, g_value_get_string (value));
+ break;
+ case PROP_SUPPORT:
+ glade_signal_set_support_warning (signal, g_value_get_string (value));
+ break;
+ case PROP_AFTER:
+ glade_signal_set_after (signal, g_value_get_boolean (value));
+ break;
+ case PROP_SWAPPED:
+ glade_signal_set_swapped (signal, g_value_get_boolean (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+glade_signal_init (GladeSignal *signal)
+{
+ signal->priv = G_TYPE_INSTANCE_GET_PRIVATE (signal,
+ GLADE_TYPE_SIGNAL,
+ GladeSignalPrivate);
+}
+
+static void
+glade_signal_klass_init (GladeSignalKlass *klass)
+{
+ GObjectClass *object_class;
+
+ object_class = G_OBJECT_CLASS (klass);
+ parent_class = g_type_class_peek_parent (klass);
+
+ object_class->set_property = glade_signal_set_property;
+ object_class->get_property = glade_signal_get_property;
+ object_class->finalize = glade_signal_finalize;
+
+ /* Properties */
+ g_object_class_install_property (object_class, PROP_NAME,
+ g_param_spec_string
+ ("name", _("Name"),
+ _("The name of this signal"),
+ NULL,
+ G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class, PROP_HANDLER,
+ g_param_spec_string
+ ("handler", _("Handler"),
+ _("The handler for this signal"),
+ NULL, G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class, PROP_USERDATA,
+ g_param_spec_string
+ ("userdata", _("User Data"),
+ _("The user data for this signal"),
+ NULL, G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class, PROP_SUPPORT,
+ g_param_spec_string
+ ("support-warning", _("Support Warning"),
+ _("The versioning support warning for this signal"),
+ NULL, G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class, PROP_AFTER,
+ g_param_spec_boolean
+ ("after", _("After"),
+ _("Whether this signal is run after default handlers"),
+ FALSE, G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class, PROP_SWAPPED,
+ g_param_spec_boolean
+ ("swapped", _("Swapped"),
+ _("Whether the user data is swapped with the instance for the handler"),
+ FALSE, G_PARAM_READWRITE));
+
+ g_type_class_add_private (klass, sizeof (GladeSignalPrivate));
+}
+
+
+GType
+glade_signal_get_type (void)
+{
+ static GType signal_type = 0;
+
+ if (!signal_type)
+ {
+ static const GTypeInfo signal_info = {
+ sizeof (GladeSignalKlass), /* Klass is our class */
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) glade_signal_klass_init,
+ (GClassFinalizeFunc) NULL,
+ NULL, /* class_data */
+ sizeof (GladeSignal),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) glade_signal_init,
+ };
+ signal_type =
+ g_type_register_static (G_TYPE_OBJECT,
+ "GladeSignal", &signal_info, 0);
+ }
+ return signal_type;
+}
+
+
/**
* glade_signal_new:
* @name: a name for the signal
* @handler: a handler function for the signal
+ * @userdata: the userdata for this signal
* @after: whether this handler should be called after the default emission phase
* @swapped: whether the handler's user data should be swapped with the emitter instance.
*
@@ -56,35 +236,17 @@ struct _GladeSignal
GladeSignal *
glade_signal_new (const gchar * name,
const gchar * handler,
- const gchar * userdata, gboolean after, gboolean swapped)
-{
- GladeSignal *signal = g_slice_new0 (GladeSignal);
-
- signal->name = g_strdup (name);
- signal->handler = g_strdup (handler);
- signal->userdata = userdata ? g_strdup (userdata) : NULL;
- signal->after = after;
- signal->swapped = swapped;
-
- return signal;
-}
-
-/**
- * glade_signal_free:
- * @signal: a #GladeSignal
- *
- * Frees @signal and its associated memory.
- */
-void
-glade_signal_free (GladeSignal * signal)
+ const gchar * userdata,
+ gboolean after,
+ gboolean swapped)
{
- g_return_if_fail (GLADE_IS_SIGNAL (signal));
-
- g_free (signal->name);
- g_free (signal->handler);
- g_free (signal->userdata);
- g_free (signal->support_warning);
- g_slice_free (GladeSignal, signal);
+ return (GladeSignal *)g_object_new (GLADE_TYPE_SIGNAL,
+ "name", name,
+ "handler", handler,
+ "userdata", userdata,
+ "after", after,
+ "swapped", swapped,
+ NULL);
}
/**
@@ -98,17 +260,18 @@ gboolean
glade_signal_equal (GladeSignal * sig1, GladeSignal * sig2)
{
gboolean ret = FALSE;
+
g_return_val_if_fail (GLADE_IS_SIGNAL (sig1), FALSE);
g_return_val_if_fail (GLADE_IS_SIGNAL (sig2), FALSE);
/* Intentionally ignore support_warning */
- if (!strcmp (sig1->name, sig2->name) &&
- !strcmp (sig1->handler, sig2->handler) &&
- sig1->after == sig2->after && sig1->swapped == sig2->swapped)
+ if (!strcmp (sig1->priv->name, sig2->priv->name) &&
+ !strcmp (sig1->priv->handler, sig2->priv->handler) &&
+ sig1->priv->after == sig2->priv->after && sig1->priv->swapped == sig2->priv->swapped)
{
- if ((sig1->userdata == NULL && sig2->userdata == NULL) ||
- (sig1->userdata != NULL && sig2->userdata != NULL &&
- !strcmp (sig1->userdata, sig2->userdata)))
+ if ((sig1->priv->userdata == NULL && sig2->priv->userdata == NULL) ||
+ (sig1->priv->userdata != NULL && sig2->priv->userdata != NULL &&
+ !strcmp (sig1->priv->userdata, sig2->priv->userdata)))
ret = TRUE;
}
@@ -128,13 +291,13 @@ glade_signal_clone (const GladeSignal * signal)
g_return_val_if_fail (GLADE_IS_SIGNAL (signal), NULL);
- dup = glade_signal_new (signal->name,
- signal->handler,
- signal->userdata,
- signal->after,
- signal->swapped);
+ dup = glade_signal_new (signal->priv->name,
+ signal->priv->handler,
+ signal->priv->userdata,
+ signal->priv->after,
+ signal->priv->swapped);
- glade_signal_set_support_warning (dup, signal->support_warning);
+ glade_signal_set_support_warning (dup, signal->priv->support_warning);
return dup;
}
@@ -158,7 +321,7 @@ glade_signal_write (GladeSignal * signal,
* access to project, so not really seriosly needed
*/
- name = g_strdup (signal->name);
+ name = g_strdup (signal->priv->name);
/* Now dump the node values... */
signal_node = glade_xml_node_new (context, GLADE_XML_TAG_SIGNAL);
@@ -166,13 +329,13 @@ glade_signal_write (GladeSignal * signal,
glade_xml_node_set_property_string (signal_node, GLADE_XML_TAG_NAME, name);
glade_xml_node_set_property_string (signal_node, GLADE_XML_TAG_HANDLER,
- signal->handler);
+ signal->priv->handler);
- if (signal->userdata)
+ if (signal->priv->userdata)
glade_xml_node_set_property_string (signal_node,
- GLADE_XML_TAG_OBJECT, signal->userdata);
+ GLADE_XML_TAG_OBJECT, signal->priv->userdata);
- if (signal->after)
+ if (signal->priv->after)
glade_xml_node_set_property_string (signal_node,
GLADE_XML_TAG_AFTER,
GLADE_XML_TAG_SIGNAL_TRUE);
@@ -182,7 +345,7 @@ glade_signal_write (GladeSignal * signal,
*/
glade_xml_node_set_property_string (signal_node,
GLADE_XML_TAG_SWAPPED,
- signal->swapped ?
+ signal->priv->swapped ?
GLADE_XML_TAG_SIGNAL_TRUE :
GLADE_XML_TAG_SIGNAL_FALSE);
@@ -222,39 +385,25 @@ glade_signal_read (GladeXmlNode * node)
}
signal = g_new0 (GladeSignal, 1);
- signal->name = name;
- signal->handler = handler;
- signal->after =
+ signal->priv->name = name;
+ signal->priv->handler = handler;
+ signal->priv->after =
glade_xml_get_property_boolean (node, GLADE_XML_TAG_AFTER, FALSE);
- signal->userdata = glade_xml_get_property_string (node, GLADE_XML_TAG_OBJECT);
- signal->swapped = glade_xml_get_property_boolean (node, GLADE_XML_TAG_SWAPPED,
+ signal->priv->userdata = glade_xml_get_property_string (node, GLADE_XML_TAG_OBJECT);
+ signal->priv->swapped = glade_xml_get_property_boolean (node, GLADE_XML_TAG_SWAPPED,
/* If a signal specifies an object, its swapped
* by default behaviour in GtkBuilder */
- signal->userdata != NULL);
+ signal->priv->userdata != NULL);
return signal;
}
-void
-glade_signal_set_name (GladeSignal *signal,
- const gchar *name)
-{
- g_return_if_fail (GLADE_IS_SIGNAL (signal));
-
- if (g_strcmp0 (signal->name, name))
- {
- g_free (signal->name);
- signal->name =
- name ? g_strdup (name) : NULL;
- }
-}
-
G_CONST_RETURN gchar *
glade_signal_get_name (GladeSignal *signal)
{
g_return_val_if_fail (GLADE_IS_SIGNAL (signal), NULL);
- return signal->name;
+ return signal->priv->name;
}
void
@@ -263,11 +412,13 @@ glade_signal_set_handler (GladeSignal *signal,
{
g_return_if_fail (GLADE_IS_SIGNAL (signal));
- if (g_strcmp0 (signal->handler, handler))
+ if (g_strcmp0 (signal->priv->handler, handler))
{
- g_free (signal->handler);
- signal->handler =
+ g_free (signal->priv->handler);
+ signal->priv->handler =
handler ? g_strdup (handler) : NULL;
+
+ g_object_notify (G_OBJECT (signal), "handler");
}
}
@@ -276,7 +427,7 @@ glade_signal_get_handler (GladeSignal *signal)
{
g_return_val_if_fail (GLADE_IS_SIGNAL (signal), NULL);
- return signal->handler;
+ return signal->priv->handler;
}
void
@@ -285,11 +436,13 @@ glade_signal_set_userdata (GladeSignal *signal,
{
g_return_if_fail (GLADE_IS_SIGNAL (signal));
- if (g_strcmp0 (signal->userdata, userdata))
+ if (g_strcmp0 (signal->priv->userdata, userdata))
{
- g_free (signal->userdata);
- signal->userdata =
+ g_free (signal->priv->userdata);
+ signal->priv->userdata =
userdata ? g_strdup (userdata) : NULL;
+
+ g_object_notify (G_OBJECT (signal), "userdata");
}
}
@@ -298,7 +451,7 @@ glade_signal_get_userdata (GladeSignal *signal)
{
g_return_val_if_fail (GLADE_IS_SIGNAL (signal), NULL);
- return signal->userdata;
+ return signal->priv->userdata;
}
void
@@ -307,7 +460,12 @@ glade_signal_set_after (GladeSignal *signal,
{
g_return_if_fail (GLADE_IS_SIGNAL (signal));
- signal->after = after;
+ if (signal->priv->after != after)
+ {
+ signal->priv->after = after;
+
+ g_object_notify (G_OBJECT (signal), "after");
+ }
}
gboolean
@@ -315,7 +473,7 @@ glade_signal_get_after (GladeSignal *signal)
{
g_return_val_if_fail (GLADE_IS_SIGNAL (signal), FALSE);
- return signal->after;
+ return signal->priv->after;
}
void
@@ -324,7 +482,12 @@ glade_signal_set_swapped (GladeSignal *signal,
{
g_return_if_fail (GLADE_IS_SIGNAL (signal));
- signal->swapped = swapped;
+ if (signal->priv->swapped != swapped)
+ {
+ signal->priv->swapped = swapped;
+
+ g_object_notify (G_OBJECT (signal), "swapped");
+ }
}
gboolean
@@ -332,7 +495,7 @@ glade_signal_get_swapped (GladeSignal *signal)
{
g_return_val_if_fail (GLADE_IS_SIGNAL (signal), FALSE);
- return signal->swapped;
+ return signal->priv->swapped;
}
void
@@ -341,11 +504,13 @@ glade_signal_set_support_warning (GladeSignal *signal,
{
g_return_if_fail (GLADE_IS_SIGNAL (signal));
- if (g_strcmp0 (signal->support_warning, support_warning))
+ if (g_strcmp0 (signal->priv->support_warning, support_warning))
{
- g_free (signal->support_warning);
- signal->support_warning =
+ g_free (signal->priv->support_warning);
+ signal->priv->support_warning =
support_warning ? g_strdup (support_warning) : NULL;
+
+ g_object_notify (G_OBJECT (signal), "support-warning");
}
}
@@ -354,5 +519,5 @@ glade_signal_get_support_warning (GladeSignal *signal)
{
g_return_val_if_fail (GLADE_IS_SIGNAL (signal), NULL);
- return signal->support_warning;
+ return signal->priv->support_warning;
}
diff --git a/gladeui/glade-signal.h b/gladeui/glade-signal.h
index 9296e67..c746c0f 100644
--- a/gladeui/glade-signal.h
+++ b/gladeui/glade-signal.h
@@ -5,10 +5,34 @@
G_BEGIN_DECLS
-#define GLADE_SIGNAL(s) ((GladeSignal *)s)
-#define GLADE_IS_SIGNAL(s) (s != NULL)
+#define GLADE_TYPE_SIGNAL (glade_signal_get_type())
+#define GLADE_SIGNAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_SIGNAL, GladeSignal))
+#define GLADE_SIGNAL_KLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_SIGNAL, GladeSignalKlass))
+#define GLADE_IS_SIGNAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_SIGNAL))
+#define GLADE_IS_SIGNAL_KLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_SIGNAL))
+#define GLADE_SIGNAL_GET_KLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_SIGNAL, GladeSignalKlass))
-typedef struct _GladeSignal GladeSignal;
+typedef struct _GladeSignal GladeSignal;
+typedef struct _GladeSignalKlass GladeSignalKlass;
+typedef struct _GladeSignalPrivate GladeSignalPrivate;
+
+struct _GladeSignal {
+ GObject object;
+
+ GladeSignalPrivate *priv;
+};
+
+struct _GladeSignalKlass {
+ GObjectClass object_class;
+
+ void (* glade_reserved1) (void);
+ void (* glade_reserved2) (void);
+ void (* glade_reserved3) (void);
+ void (* glade_reserved4) (void);
+};
+
+
+GType glade_signal_get_type (void) G_GNUC_CONST;
GladeSignal *glade_signal_new (const gchar *name,
const gchar *handler,
@@ -16,7 +40,6 @@ GladeSignal *glade_signal_new (const gchar *name
gboolean after,
gboolean swapped);
GladeSignal *glade_signal_clone (const GladeSignal *signal);
-void glade_signal_free (GladeSignal *signal);
gboolean glade_signal_equal (GladeSignal *sig1,
GladeSignal *sig2);
GladeSignal *glade_signal_read (GladeXmlNode *node);
@@ -24,8 +47,6 @@ void glade_signal_write (GladeSignal *sign
GladeXmlContext *context,
GladeXmlNode *node);
-void glade_signal_set_name (GladeSignal *signal,
- const gchar *name);
G_CONST_RETURN gchar *glade_signal_get_name (GladeSignal *signal);
void glade_signal_set_handler (GladeSignal *signal,
const gchar *handler);
diff --git a/gladeui/glade-widget.c b/gladeui/glade-widget.c
index 90acfce..b780e99 100644
--- a/gladeui/glade-widget.c
+++ b/gladeui/glade-widget.c
@@ -349,7 +349,7 @@ glade_widget_remove_signal_handler_impl (GladeWidget * widget,
tmp_signal_handler = g_ptr_array_index (signals, i);
if (glade_signal_equal (tmp_signal_handler, signal_handler))
{
- glade_signal_free (tmp_signal_handler);
+ g_object_unref (tmp_signal_handler);
g_ptr_array_remove_index (signals, i);
break;
}
@@ -1116,18 +1116,11 @@ static void
free_signals (gpointer value)
{
GPtrArray *signals = (GPtrArray *) value;
- guint i;
- guint nb_signals;
if (signals == NULL)
return;
- /* g_ptr_array_foreach (signals, (GFunc) glade_signal_free, NULL);
- * only available in modern versions of Gtk+ */
- nb_signals = signals->len;
- for (i = 0; i < nb_signals; i++)
- glade_signal_free (g_ptr_array_index (signals, i));
-
+ g_ptr_array_foreach (signals, (GFunc) g_object_unref, NULL);
g_ptr_array_free (signals, TRUE);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]