summaryrefslogtreecommitdiffstats
path: root/src/sp-object.cpp
diff options
context:
space:
mode:
authorMenTaLguY <mental@rydia.net>2006-07-29 22:21:36 +0000
committermental <mental@users.sourceforge.net>2006-07-29 22:21:36 +0000
commitb76d1bd6fd8a18b7ce338dff9e33e69d55703b7e (patch)
treeb16814a62af9a6ac010f6e4f09441523a7da7c96 /src/sp-object.cpp
parentswitch to sigc++ SPObject signals for SPSwitch (diff)
downloadinkscape-b76d1bd6fd8a18b7ce338dff9e33e69d55703b7e.tar.gz
inkscape-b76d1bd6fd8a18b7ce338dff9e33e69d55703b7e.zip
remove GObject signals from SPObject
(bzr r1511)
Diffstat (limited to 'src/sp-object.cpp')
-rw-r--r--src/sp-object.cpp28
1 files changed, 8 insertions, 20 deletions
diff --git a/src/sp-object.cpp b/src/sp-object.cpp
index 43611e9ed..62a442d0a 100644
--- a/src/sp-object.cpp
+++ b/src/sp-object.cpp
@@ -99,8 +99,6 @@ static gchar *sp_object_get_unique_id(SPObject *object, gchar const *defid);
guint update_in_progress = 0; // guard against update-during-update
-enum {RELEASE, MODIFIED, LAST_SIGNAL};
-
Inkscape::XML::NodeEventVector object_event_vector = {
sp_object_repr_child_added,
sp_object_repr_child_removed,
@@ -110,7 +108,6 @@ Inkscape::XML::NodeEventVector object_event_vector = {
};
static GObjectClass *parent_class;
-static guint object_signals[LAST_SIGNAL] = {0};
/**
* Registers the SPObject class with Gdk and returns its type number.
@@ -147,21 +144,6 @@ sp_object_class_init(SPObjectClass *klass)
parent_class = (GObjectClass *) g_type_class_ref(G_TYPE_OBJECT);
- object_signals[RELEASE] = g_signal_new("release",
- G_TYPE_FROM_CLASS(klass),
- (GSignalFlags)(G_SIGNAL_RUN_CLEANUP | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS),
- G_STRUCT_OFFSET(SPObjectClass, release),
- NULL, NULL,
- sp_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
- object_signals[MODIFIED] = g_signal_new("modified",
- G_TYPE_FROM_CLASS(klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET(SPObjectClass, modified),
- NULL, NULL,
- sp_marshal_NONE__UINT,
- G_TYPE_NONE, 1, G_TYPE_UINT);
-
object_class->finalize = sp_object_finalize;
klass->child_added = sp_object_child_added;
@@ -869,7 +851,10 @@ void SPObject::releaseReferences() {
sp_repr_remove_listener_by_data(this->repr, this);
- g_signal_emit(G_OBJECT(this), object_signals[RELEASE], 0);
+ SPObjectClass *klass=(SPObjectClass *)G_OBJECT_GET_CLASS(this);
+ if (klass->release) {
+ klass->release(this);
+ }
this->_release_signal.emit(this);
/* all hrefs should be released by the "release" handlers */
@@ -1302,7 +1287,10 @@ SPObject::emitModified(unsigned int flags)
this->mflags = 0;
g_object_ref(G_OBJECT(this));
- g_signal_emit(G_OBJECT(this), object_signals[MODIFIED], 0, flags);
+ SPObjectClass *klass=(SPObjectClass *)G_OBJECT_GET_CLASS(this);
+ if (klass->modified) {
+ klass->modified(this, flags);
+ }
_modified_signal.emit(this, flags);
g_object_unref(G_OBJECT(this));
}