[gtk+/wip/actor: 39/42] xxx: actor
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/actor: 39/42] xxx: actor
- Date: Tue, 18 Dec 2012 13:29:19 +0000 (UTC)
commit f2e04eed7e3e555517d4ec2d1e65325f0ac62e45
Author: Benjamin Otte <otte redhat com>
Date: Tue Dec 18 12:35:41 2012 +0100
xxx: actor
gtk/actors/gtkactor.c | 54 +++++++++++++++++++++++++++++++++++++++--
gtk/actors/gtkactorprivate.h | 6 ++++
2 files changed, 57 insertions(+), 3 deletions(-)
---
diff --git a/gtk/actors/gtkactor.c b/gtk/actors/gtkactor.c
index 8ee5ee9..4c8cbb2 100644
--- a/gtk/actors/gtkactor.c
+++ b/gtk/actors/gtkactor.c
@@ -24,11 +24,12 @@
#include "gtkactorprivate.h"
#include "gtkdebug.h"
#include "gtkintl.h"
-#include "actors/gtklayoutmanagerprivate.h"
+#include "gtkmarshalers.h"
#include "gtkprivate.h"
#include "gtksizerequestcacheprivate.h"
#include "gtktypebuiltins.h"
#include "gtkwidget.h"
+#include "actors/gtklayoutmanagerprivate.h"
struct _GtkActorPrivate {
SizeRequestCache requests;
@@ -98,7 +99,15 @@ enum
PROP_LAST
};
+enum {
+ ACTOR_ADDED,
+ ACTOR_REMOVED,
+
+ LAST_SIGNAL
+};
+
static GParamSpec *obj_props[PROP_LAST];
+static guint actor_signals[LAST_SIGNAL] = { 0 };
G_DEFINE_TYPE (GtkActor, _gtk_actor, G_TYPE_INITIALLY_UNOWNED)
@@ -643,6 +652,45 @@ _gtk_actor_class_init (GtkActorClass *klass)
GTK_TYPE_ACTOR,
GTK_PARAM_READABLE);
+ /**
+ * GtkActor::actor-added:
+ * @actor: the actor which received the signal
+ * @child: the new child that has been added to @actor
+ *
+ * The ::actor-added signal is emitted each time a child
+ * has been added to @actor.
+ *
+ * Since: 0.4
+ */
+ actor_signals[ACTOR_ADDED] =
+ g_signal_new (I_("actor-added"),
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GtkActorClass, actor_added),
+ NULL, NULL,
+ _gtk_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1,
+ GTK_TYPE_ACTOR);
+ /**
+ * GtkActor::actor-removed:
+ * @actor: the actor which received the signal
+ * @child: the child that has been removed from @actor
+ *
+ * The ::actor-removed signal is emitted each time a child
+ * is removed from @actor.
+ *
+ * Since: 0.4
+ */
+ actor_signals[ACTOR_REMOVED] =
+ g_signal_new (I_("actor-removed"),
+ G_TYPE_FROM_CLASS (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GtkActorClass, actor_removed),
+ NULL, NULL,
+ _gtk_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1,
+ GTK_TYPE_ACTOR);
+
g_object_class_install_properties (object_class, PROP_LAST, obj_props);
g_type_class_add_private (klass, sizeof (GtkActorPrivate));
@@ -1118,7 +1166,7 @@ gtk_actor_add_child_internal (GtkActor *self,
_gtk_actor_queue_relayout (child->priv->parent);
}
- g_signal_emit_by_name (self, "actor-added", child);
+ g_signal_emit (self, actor_signals[ACTOR_ADDED], 0, child);
if (old_first_child != self->priv->first_child)
g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_FIRST_CHILD]);
@@ -1540,7 +1588,7 @@ gtk_actor_remove_child_internal (GtkActor *self,
GTK_ACTOR_GET_CLASS (child)->parent_set (child, self);
/* we need to emit the signal before dropping the reference */
- g_signal_emit_by_name (self, "actor-removed", child);
+ g_signal_emit (self, actor_signals[ACTOR_REMOVED], 0, child);
if (old_first != self->priv->first_child)
g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_FIRST_CHILD]);
diff --git a/gtk/actors/gtkactorprivate.h b/gtk/actors/gtkactorprivate.h
index 949b9dd..f19fbad 100644
--- a/gtk/actors/gtkactorprivate.h
+++ b/gtk/actors/gtkactorprivate.h
@@ -85,6 +85,12 @@ struct _GtkActorClass
void (* screen_changed) (GtkActor *self,
GdkScreen *new_screen,
GdkScreen *old_screen);
+
+ /* signals */
+ void (* actor_added) (GtkActor *self,
+ GtkActor *child);
+ void (* actor_removed) (GtkActor *self,
+ GtkActor *child);
};
/**
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]