summaryrefslogtreecommitdiffstats
path: root/src/sp-desc.cpp
diff options
context:
space:
mode:
authorMarkus Engel <markus.engel@tum.de>2012-08-21 14:33:55 +0000
committerMarkus Engel <markus.engel@tum.de>2012-08-21 14:33:55 +0000
commite5d321608cc2310442509c367cebf65fe8c618e7 (patch)
treec03100dc0f71279eb58413abeaf51bf9dd3c1e1d /src/sp-desc.cpp
parentAdded "virtual pad" to SPMetadata. (diff)
downloadinkscape-e5d321608cc2310442509c367cebf65fe8c618e7.tar.gz
inkscape-e5d321608cc2310442509c367cebf65fe8c618e7.zip
Added "virtual pad" to SPDesc.
(bzr r11608.1.42)
Diffstat (limited to 'src/sp-desc.cpp')
-rw-r--r--src/sp-desc.cpp31
1 files changed, 22 insertions, 9 deletions
diff --git a/src/sp-desc.cpp b/src/sp-desc.cpp
index bbc47ecbb..6178ccbbf 100644
--- a/src/sp-desc.cpp
+++ b/src/sp-desc.cpp
@@ -50,22 +50,35 @@ static void sp_desc_class_init(SPDescClass *klass)
sp_object_class->write = sp_desc_write;
}
-static void sp_desc_init(SPDesc */*desc*/)
-{
+CDesc::CDesc(SPDesc* desc) : CObject(desc) {
+ this->spdesc = desc;
}
-/**
- * Writes it's settings to an incoming repr object, if any.
- */
-static Inkscape::XML::Node *sp_desc_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags)
+CDesc::~CDesc() {
+}
+
+static void sp_desc_init(SPDesc *desc)
{
+ desc->cdesc = new CDesc(desc);
+ desc->cobject = desc->cdesc;
+}
+
+Inkscape::XML::Node* CDesc::onWrite(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags) {
+ SPDesc* object = this->spdesc;
+
if (!repr) {
repr = object->getRepr()->duplicate(doc);
}
- if ((static_cast<SPObjectClass *>(desc_parent_class))->write) {
- (static_cast<SPObjectClass *>(desc_parent_class))->write(object, doc, repr, flags);
- }
+ CObject::onWrite(doc, repr, flags);
return repr;
}
+
+/**
+ * Writes it's settings to an incoming repr object, if any.
+ */
+static Inkscape::XML::Node *sp_desc_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags)
+{
+ return ((SPDesc*)object)->cdesc->onWrite(doc, repr, flags);
+}