summaryrefslogtreecommitdiffstats
path: root/src/sp-defs.cpp
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2013-09-19 22:33:11 +0000
committerJabiertxof <jtx@jtx.marker.es>2013-09-19 22:33:11 +0000
commit4bda89e32e33c7bdff5d3ea3c1ceee1f806de9f7 (patch)
treecaeb924426bcc861badc6fa81318b67460b26d47 /src/sp-defs.cpp
parentUpdate to trunk (diff)
parentupdates for cmake (diff)
downloadinkscape-4bda89e32e33c7bdff5d3ea3c1ceee1f806de9f7.tar.gz
inkscape-4bda89e32e33c7bdff5d3ea3c1ceee1f806de9f7.zip
Update to trunk
(bzr r11950.1.141)
Diffstat (limited to 'src/sp-defs.cpp')
-rw-r--r--src/sp-defs.cpp75
1 files changed, 25 insertions, 50 deletions
diff --git a/src/sp-defs.cpp b/src/sp-defs.cpp
index f7a906163..334570076 100644
--- a/src/sp-defs.cpp
+++ b/src/sp-defs.cpp
@@ -20,66 +20,45 @@
#include "xml/repr.h"
#include "document.h"
-static void sp_defs_release (SPObject *object);
-static void sp_defs_update (SPObject *object,
- SPCtx *ctx,
- guint flags);
-static void sp_defs_modified(SPObject *object,
- guint flags);
-static Inkscape::XML::Node* sp_defs_write (SPObject *object,
- Inkscape::XML::Document *doc,
- Inkscape::XML::Node *repr,
- guint flags);
-
-G_DEFINE_TYPE(SPDefs, sp_defs, SP_TYPE_OBJECT);
-
-static void
-sp_defs_class_init(SPDefsClass *dc)
-{
- SPObjectClass *sp_object_class = (SPObjectClass *) dc;
-
- sp_object_class->release = sp_defs_release;
- sp_object_class->update = sp_defs_update;
- sp_object_class->modified = sp_defs_modified;
- sp_object_class->write = sp_defs_write;
+#include "sp-factory.h"
+
+namespace {
+ SPObject* createDefs() {
+ return new SPDefs();
+ }
+
+ bool defsRegistered = SPFactory::instance().registerObject("svg:defs", createDefs);
}
-static void
-sp_defs_init(SPDefs * /*defs*/)
-{
+SPDefs::SPDefs() : SPObject() {
}
-static void
-sp_defs_release(SPObject *object)
-{
- if (((SPObjectClass *) (sp_defs_parent_class))->release) {
- ((SPObjectClass *) (sp_defs_parent_class))->release(object);
- }
+SPDefs::~SPDefs() {
}
-static void
-sp_defs_update(SPObject *object, SPCtx *ctx, guint flags)
-{
+void SPDefs::release() {
+ SPObject::release();
+}
+
+void SPDefs::update(SPCtx *ctx, guint flags) {
if (flags & SP_OBJECT_MODIFIED_FLAG) {
flags |= SP_OBJECT_PARENT_MODIFIED_FLAG;
}
flags &= SP_OBJECT_MODIFIED_CASCADE;
- GSList *l = g_slist_reverse(object->childList(true));
+ GSList *l = g_slist_reverse(this->childList(true));
while (l) {
SPObject *child = SP_OBJECT(l->data);
l = g_slist_remove(l, child);
if (flags || (child->uflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) {
child->updateDisplay(ctx, flags);
}
- g_object_unref (G_OBJECT (child));
+ sp_object_unref(child);
}
}
-static void
-sp_defs_modified(SPObject *object, guint flags)
-{
+void SPDefs::modified(unsigned int flags) {
if (flags & SP_OBJECT_MODIFIED_FLAG) {
flags |= SP_OBJECT_PARENT_MODIFIED_FLAG;
}
@@ -87,8 +66,8 @@ sp_defs_modified(SPObject *object, guint flags)
flags &= SP_OBJECT_MODIFIED_CASCADE;
GSList *l = NULL;
- for ( SPObject *child = object->firstChild() ; child; child = child->getNext() ) {
- g_object_ref(G_OBJECT(child));
+ for ( SPObject *child = this->firstChild() ; child; child = child->getNext() ) {
+ sp_object_ref(child);
l = g_slist_prepend(l, child);
}
@@ -100,13 +79,11 @@ sp_defs_modified(SPObject *object, guint flags)
if (flags || (child->mflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) {
child->emitModified(flags);
}
- g_object_unref( G_OBJECT(child) );
+ sp_object_unref(child);
}
}
-static Inkscape::XML::Node*
-sp_defs_write(SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags)
-{
+Inkscape::XML::Node* SPDefs::write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) {
if (flags & SP_OBJECT_WRITE_BUILD) {
if (!repr) {
@@ -114,7 +91,7 @@ sp_defs_write(SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML:
}
GSList *l = NULL;
- for ( SPObject *child = object->firstChild() ; child; child = child->getNext() ) {
+ for ( SPObject *child = this->firstChild() ; child; child = child->getNext() ) {
Inkscape::XML::Node *crepr = child->updateRepr(xml_doc, NULL, flags);
if (crepr) {
l = g_slist_prepend(l, crepr);
@@ -128,14 +105,12 @@ sp_defs_write(SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML:
}
} else {
- for ( SPObject *child = object->firstChild() ; child; child = child->getNext() ) {
+ for ( SPObject *child = this->firstChild() ; child; child = child->getNext() ) {
child->updateRepr(flags);
}
}
- if (((SPObjectClass *) (sp_defs_parent_class))->write) {
- (* ((SPObjectClass *) (sp_defs_parent_class))->write)(object, xml_doc, repr, flags);
- }
+ SPObject::write(xml_doc, repr, flags);
return repr;
}