From e5d321608cc2310442509c367cebf65fe8c618e7 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Tue, 21 Aug 2012 16:33:55 +0200 Subject: Added "virtual pad" to SPDesc. (bzr r11608.1.42) --- src/sp-desc.cpp | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) (limited to 'src/sp-desc.cpp') 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(desc_parent_class))->write) { - (static_cast(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); +} -- cgit v1.2.3 From 957c3e4b7909d42c5a13f1b1dd583f877fc32259 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sat, 30 Mar 2013 00:46:57 +0100 Subject: Removed function pointers from SPObject and subclasses. Added some missing virtual pads for classes that were hidden by preprocessor macros. (bzr r11608.1.55) --- src/sp-desc.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/sp-desc.cpp') diff --git a/src/sp-desc.cpp b/src/sp-desc.cpp index 6178ccbbf..5307854f0 100644 --- a/src/sp-desc.cpp +++ b/src/sp-desc.cpp @@ -47,7 +47,7 @@ static void sp_desc_class_init(SPDescClass *klass) SPObjectClass *sp_object_class = (SPObjectClass *)(klass); desc_parent_class = (SPObjectClass *)(g_type_class_ref(SP_TYPE_OBJECT)); - sp_object_class->write = sp_desc_write; +// sp_object_class->write = sp_desc_write; } CDesc::CDesc(SPDesc* desc) : CObject(desc) { -- cgit v1.2.3 From 7df6616da5ea2debb86838366ddf746841549cdb Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sat, 30 Mar 2013 00:56:13 +0100 Subject: Renamed virtual function names. (bzr r11608.1.57) --- src/sp-desc.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/sp-desc.cpp') diff --git a/src/sp-desc.cpp b/src/sp-desc.cpp index 3bbaa839c..41619eb87 100644 --- a/src/sp-desc.cpp +++ b/src/sp-desc.cpp @@ -39,14 +39,14 @@ static void sp_desc_init(SPDesc *desc) desc->cobject = desc->cdesc; } -Inkscape::XML::Node* CDesc::onWrite(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags) { +Inkscape::XML::Node* CDesc::write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags) { SPDesc* object = this->spdesc; if (!repr) { repr = object->getRepr()->duplicate(doc); } - CObject::onWrite(doc, repr, flags); + CObject::write(doc, repr, flags); return repr; } -- cgit v1.2.3 From a5d6e692d661f0bf7648e64e8fcb04588bb8f3ab Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Mon, 1 Apr 2013 00:07:00 +0200 Subject: Prepared exchange of casting macros. (bzr r11608.1.63) --- src/sp-desc.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/sp-desc.cpp') diff --git a/src/sp-desc.cpp b/src/sp-desc.cpp index 41619eb87..d4836f86a 100644 --- a/src/sp-desc.cpp +++ b/src/sp-desc.cpp @@ -34,6 +34,7 @@ CDesc::~CDesc() { static void sp_desc_init(SPDesc *desc) { desc->cdesc = new CDesc(desc); + desc->typeHierarchy.insert(typeid(SPDesc)); delete desc->cobject; desc->cobject = desc->cdesc; -- cgit v1.2.3 From 69f3b6f1abb2bb422935d43262e1e99aab359954 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Tue, 2 Apr 2013 01:41:30 +0200 Subject: Added constructors to SP classes. (bzr r11608.1.67) --- src/sp-desc.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/sp-desc.cpp') diff --git a/src/sp-desc.cpp b/src/sp-desc.cpp index d4836f86a..81b4240bb 100644 --- a/src/sp-desc.cpp +++ b/src/sp-desc.cpp @@ -31,8 +31,9 @@ CDesc::CDesc(SPDesc* desc) : CObject(desc) { CDesc::~CDesc() { } -static void sp_desc_init(SPDesc *desc) -{ +SPDesc::SPDesc() : SPObject() { + SPDesc* desc = this; + desc->cdesc = new CDesc(desc); desc->typeHierarchy.insert(typeid(SPDesc)); @@ -40,6 +41,11 @@ static void sp_desc_init(SPDesc *desc) desc->cobject = desc->cdesc; } +static void sp_desc_init(SPDesc *desc) +{ + new (desc) SPDesc(); +} + Inkscape::XML::Node* CDesc::write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags) { SPDesc* object = this->spdesc; -- cgit v1.2.3 From d1af3566872dfff2aeec84859c87f1f8d13f79df Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Tue, 2 Apr 2013 19:14:36 +0200 Subject: Registered classes with new factory. Hkern, Vkern and FeFuncX have to be rewritten, as they aren't real classes. (bzr r11608.1.69) --- src/sp-desc.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/sp-desc.cpp') diff --git a/src/sp-desc.cpp b/src/sp-desc.cpp index 81b4240bb..0fe1f5305 100644 --- a/src/sp-desc.cpp +++ b/src/sp-desc.cpp @@ -16,6 +16,16 @@ #include "sp-desc.h" #include "xml/repr.h" +#include "sp-factory.h" + +namespace { + SPObject* createDesc() { + return new SPDesc(); + } + + bool descRegistered = SPFactory::instance().registerObject("svg:desc", createDesc); +} + G_DEFINE_TYPE(SPDesc, sp_desc, SP_TYPE_OBJECT); static void sp_desc_class_init(SPDescClass *klass) -- cgit v1.2.3 From 7b7e0294b0c06a8d3ec19b73486a91e12cf67adf Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sat, 6 Apr 2013 22:16:05 +0200 Subject: Merged more classes. (bzr r11608.1.84) --- src/sp-desc.cpp | 34 ++++++---------------------------- 1 file changed, 6 insertions(+), 28 deletions(-) (limited to 'src/sp-desc.cpp') diff --git a/src/sp-desc.cpp b/src/sp-desc.cpp index 0fe1f5305..e7530e501 100644 --- a/src/sp-desc.cpp +++ b/src/sp-desc.cpp @@ -26,38 +26,16 @@ namespace { bool descRegistered = SPFactory::instance().registerObject("svg:desc", createDesc); } -G_DEFINE_TYPE(SPDesc, sp_desc, SP_TYPE_OBJECT); - -static void sp_desc_class_init(SPDescClass *klass) -{ - SPObjectClass *sp_object_class = (SPObjectClass *)(klass); - -} - -CDesc::CDesc(SPDesc* desc) : CObject(desc) { - this->spdesc = desc; -} - -CDesc::~CDesc() { -} - -SPDesc::SPDesc() : SPObject() { - SPDesc* desc = this; - - desc->cdesc = new CDesc(desc); - desc->typeHierarchy.insert(typeid(SPDesc)); - - delete desc->cobject; - desc->cobject = desc->cdesc; +SPDesc::SPDesc() : SPObject(), CObject(this) { + delete this->cobject; + this->cobject = this; } -static void sp_desc_init(SPDesc *desc) -{ - new (desc) SPDesc(); +SPDesc::~SPDesc() { } -Inkscape::XML::Node* CDesc::write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags) { - SPDesc* object = this->spdesc; +Inkscape::XML::Node* SPDesc::write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags) { + SPDesc* object = this; if (!repr) { repr = object->getRepr()->duplicate(doc); -- cgit v1.2.3 From 27e2102f96a5554bcd5310ec11435d155773b279 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sun, 7 Apr 2013 18:28:22 +0200 Subject: Merge Object and subclasses. Merging of SP- and C-classes complete. (bzr r11608.1.86) --- src/sp-desc.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'src/sp-desc.cpp') diff --git a/src/sp-desc.cpp b/src/sp-desc.cpp index e7530e501..c8e0f16e4 100644 --- a/src/sp-desc.cpp +++ b/src/sp-desc.cpp @@ -26,9 +26,7 @@ namespace { bool descRegistered = SPFactory::instance().registerObject("svg:desc", createDesc); } -SPDesc::SPDesc() : SPObject(), CObject(this) { - delete this->cobject; - this->cobject = this; +SPDesc::SPDesc() : SPObject() { } SPDesc::~SPDesc() { @@ -41,7 +39,7 @@ Inkscape::XML::Node* SPDesc::write(Inkscape::XML::Document* doc, Inkscape::XML:: repr = object->getRepr()->duplicate(doc); } - CObject::write(doc, repr, flags); + SPObject::write(doc, repr, flags); return repr; } -- cgit v1.2.3 From beecbea1b415d5b9536f2309c4f30fc258e346f5 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Wed, 31 Jul 2013 22:51:23 +0200 Subject: Cleaned up a bit; fixed struct vs. class forward declarations. (bzr r11608.1.111) --- src/sp-desc.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'src/sp-desc.cpp') diff --git a/src/sp-desc.cpp b/src/sp-desc.cpp index c8e0f16e4..199ae0176 100644 --- a/src/sp-desc.cpp +++ b/src/sp-desc.cpp @@ -32,18 +32,15 @@ SPDesc::SPDesc() : SPObject() { SPDesc::~SPDesc() { } +/** + * Writes it's settings to an incoming repr object, if any. + */ Inkscape::XML::Node* SPDesc::write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags) { - SPDesc* object = this; - if (!repr) { - repr = object->getRepr()->duplicate(doc); + repr = this->getRepr()->duplicate(doc); } SPObject::write(doc, repr, flags); return repr; } - -/** - * Writes it's settings to an incoming repr object, if any. - */ -- cgit v1.2.3