summaryrefslogtreecommitdiffstats
path: root/src/sp-use.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sp-use.cpp')
-rw-r--r--src/sp-use.cpp52
1 files changed, 13 insertions, 39 deletions
diff --git a/src/sp-use.cpp b/src/sp-use.cpp
index 0f45f5444..d5b3c004a 100644
--- a/src/sp-use.cpp
+++ b/src/sp-use.cpp
@@ -38,8 +38,6 @@
/* fixme: */
-static void sp_use_class_init(SPUseClass *classname);
-static void sp_use_init(SPUse *use);
static void sp_use_finalize(GObject *obj);
static void sp_use_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr);
@@ -60,32 +58,10 @@ static void sp_use_href_changed(SPObject *old_ref, SPObject *ref, SPUse *use);
static void sp_use_delete_self(SPObject *deleted, SPUse *self);
-static SPItemClass *parent_class;
-
//void m_print(gchar *say, Geom::Affine m)
//{ g_print("%s %g %g %g %g %g %g\n", say, m[0], m[1], m[2], m[3], m[4], m[5]); }
-GType
-sp_use_get_type(void)
-{
- static GType use_type = 0;
- if (!use_type) {
- GTypeInfo use_info = {
- sizeof(SPUseClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) sp_use_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof(SPUse),
- 16, /* n_preallocs */
- (GInstanceInitFunc) sp_use_init,
- NULL, /* value_table */
- };
- use_type = g_type_register_static(SP_TYPE_ITEM, "SPUse", &use_info, (GTypeFlags)0);
- }
- return use_type;
-}
+G_DEFINE_TYPE(SPUse, sp_use, SP_TYPE_ITEM);
static void
sp_use_class_init(SPUseClass *classname)
@@ -94,8 +70,6 @@ sp_use_class_init(SPUseClass *classname)
SPObjectClass *sp_object_class = (SPObjectClass *) classname;
SPItemClass *item_class = (SPItemClass *) classname;
- parent_class = (SPItemClass*) g_type_class_ref(SP_TYPE_ITEM);
-
gobject_class->finalize = sp_use_finalize;
sp_object_class->build = sp_use_build;
@@ -155,8 +129,8 @@ sp_use_finalize(GObject *obj)
static void
sp_use_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr)
{
- if (((SPObjectClass *) parent_class)->build) {
- (* ((SPObjectClass *) parent_class)->build)(object, document, repr);
+ if (((SPObjectClass *) sp_use_parent_class)->build) {
+ (* ((SPObjectClass *) sp_use_parent_class)->build)(object, document, repr);
}
object->readAttr( "x" );
@@ -189,8 +163,8 @@ sp_use_release(SPObject *object)
use->ref->detach();
- if (((SPObjectClass *) parent_class)->release) {
- ((SPObjectClass *) parent_class)->release(object);
+ if (((SPObjectClass *) sp_use_parent_class)->release) {
+ ((SPObjectClass *) sp_use_parent_class)->release(object);
}
}
@@ -242,8 +216,8 @@ sp_use_set(SPObject *object, unsigned key, gchar const *value)
}
default:
- if (((SPObjectClass *) parent_class)->set) {
- ((SPObjectClass *) parent_class)->set(object, key, value);
+ if (((SPObjectClass *) sp_use_parent_class)->set) {
+ ((SPObjectClass *) sp_use_parent_class)->set(object, key, value);
}
break;
}
@@ -258,8 +232,8 @@ sp_use_write(SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML::
repr = xml_doc->createElement("svg:use");
}
- if (((SPObjectClass *) (parent_class))->write) {
- ((SPObjectClass *) (parent_class))->write(object, xml_doc, repr, flags);
+ if (((SPObjectClass *) (sp_use_parent_class))->write) {
+ ((SPObjectClass *) (sp_use_parent_class))->write(object, xml_doc, repr, flags);
}
sp_repr_set_svg_double(repr, "x", use->x.computed);
@@ -380,8 +354,8 @@ sp_use_hide(SPItem *item, unsigned key)
SP_ITEM(use->child)->invoke_hide(key);
}
- if (((SPItemClass *) parent_class)->hide) {
- ((SPItemClass *) parent_class)->hide(item, key);
+ if (((SPItemClass *) sp_use_parent_class)->hide) {
+ ((SPItemClass *) sp_use_parent_class)->hide(item, key);
}
}
@@ -585,8 +559,8 @@ sp_use_update(SPObject *object, SPCtx *ctx, unsigned flags)
SPItemCtx *ictx = (SPItemCtx *) ctx;
SPItemCtx cctx = *ictx;
- if (((SPObjectClass *) (parent_class))->update)
- ((SPObjectClass *) (parent_class))->update(object, ctx, flags);
+ if (((SPObjectClass *) (sp_use_parent_class))->update)
+ ((SPObjectClass *) (sp_use_parent_class))->update(object, ctx, flags);
if (flags & SP_OBJECT_MODIFIED_FLAG) {
flags |= SP_OBJECT_PARENT_MODIFIED_FLAG;