From fa1b664180baa1ec99b8d5b9ec7c8b21c7203c9f Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Mon, 20 Aug 2012 23:48:42 +0200 Subject: Added "virtual pad" to SPTitle. (bzr r11608.1.31) --- src/sp-title.cpp | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) (limited to 'src/sp-title.cpp') diff --git a/src/sp-title.cpp b/src/sp-title.cpp index ddeccede2..c7739823c 100644 --- a/src/sp-title.cpp +++ b/src/sp-title.cpp @@ -52,23 +52,36 @@ sp_title_class_init(SPTitleClass *klass) sp_object_class->write = sp_title_write; } +CTitle::CTitle(SPTitle* title) : CObject(title) { + this->sptitle = title; +} + +CTitle::~CTitle() { +} + static void -sp_title_init(SPTitle */*desc*/) +sp_title_init(SPTitle *desc) { + desc->ctitle = new CTitle(desc); + desc->cobject = desc->ctitle; } -/** - * Writes it's settings to an incoming repr object, if any. - */ -static Inkscape::XML::Node *sp_title_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags) -{ +Inkscape::XML::Node* CTitle::onWrite(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { + SPTitle* object = this->sptitle; + if (!repr) { - repr = object->getRepr()->duplicate(doc); + repr = object->getRepr()->duplicate(xml_doc); } - if (((SPObjectClass *) title_parent_class)->write) { - ((SPObjectClass *) title_parent_class)->write(object, doc, repr, flags); - } + CObject::onWrite(xml_doc, repr, flags); return repr; } + +/** + * Writes it's settings to an incoming repr object, if any. + */ +static Inkscape::XML::Node *sp_title_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags) +{ + return ((SPTitle*)object)->ctitle->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-title.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/sp-title.cpp') diff --git a/src/sp-title.cpp b/src/sp-title.cpp index c7739823c..e3f26b71a 100644 --- a/src/sp-title.cpp +++ b/src/sp-title.cpp @@ -49,7 +49,7 @@ sp_title_class_init(SPTitleClass *klass) SPObjectClass *sp_object_class = (SPObjectClass *) klass; title_parent_class = (SPObjectClass *) g_type_class_ref(SP_TYPE_OBJECT); - sp_object_class->write = sp_title_write; +// sp_object_class->write = sp_title_write; } CTitle::CTitle(SPTitle* title) : CObject(title) { -- 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-title.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/sp-title.cpp') diff --git a/src/sp-title.cpp b/src/sp-title.cpp index c51478abc..522901eaf 100644 --- a/src/sp-title.cpp +++ b/src/sp-title.cpp @@ -39,14 +39,14 @@ sp_title_init(SPTitle *desc) desc->cobject = desc->ctitle; } -Inkscape::XML::Node* CTitle::onWrite(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { +Inkscape::XML::Node* CTitle::write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { SPTitle* object = this->sptitle; if (!repr) { repr = object->getRepr()->duplicate(xml_doc); } - CObject::onWrite(xml_doc, repr, flags); + CObject::write(xml_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-title.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/sp-title.cpp') diff --git a/src/sp-title.cpp b/src/sp-title.cpp index 522901eaf..815f0e009 100644 --- a/src/sp-title.cpp +++ b/src/sp-title.cpp @@ -34,6 +34,7 @@ static void sp_title_init(SPTitle *desc) { desc->ctitle = new CTitle(desc); + desc->typeHierarchy.insert(typeid(SPTitle)); delete desc->cobject; desc->cobject = desc->ctitle; -- 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-title.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/sp-title.cpp') diff --git a/src/sp-title.cpp b/src/sp-title.cpp index 815f0e009..a71b53e38 100644 --- a/src/sp-title.cpp +++ b/src/sp-title.cpp @@ -16,7 +16,7 @@ #include "sp-title.h" #include "xml/repr.h" -G_DEFINE_TYPE(SPTitle, sp_title, SP_TYPE_OBJECT); +G_DEFINE_TYPE(SPTitle, sp_title, G_TYPE_OBJECT); static void sp_title_class_init(SPTitleClass *klass) @@ -30,9 +30,9 @@ CTitle::CTitle(SPTitle* title) : CObject(title) { CTitle::~CTitle() { } -static void -sp_title_init(SPTitle *desc) -{ +SPTitle::SPTitle() : SPObject() { + SPTitle* desc = this; + desc->ctitle = new CTitle(desc); desc->typeHierarchy.insert(typeid(SPTitle)); @@ -40,6 +40,12 @@ sp_title_init(SPTitle *desc) desc->cobject = desc->ctitle; } +static void +sp_title_init(SPTitle *desc) +{ + new (desc) SPTitle(); +} + Inkscape::XML::Node* CTitle::write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { SPTitle* object = this->sptitle; -- 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-title.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/sp-title.cpp') diff --git a/src/sp-title.cpp b/src/sp-title.cpp index a71b53e38..614d5033e 100644 --- a/src/sp-title.cpp +++ b/src/sp-title.cpp @@ -16,6 +16,16 @@ #include "sp-title.h" #include "xml/repr.h" +#include "sp-factory.h" + +namespace { + SPObject* createTitle() { + return new SPTitle(); + } + + bool titleRegistered = SPFactory::instance().registerObject("svg:title", createTitle); +} + G_DEFINE_TYPE(SPTitle, sp_title, G_TYPE_OBJECT); static void -- 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-title.cpp | 34 ++++++---------------------------- 1 file changed, 6 insertions(+), 28 deletions(-) (limited to 'src/sp-title.cpp') diff --git a/src/sp-title.cpp b/src/sp-title.cpp index 614d5033e..57c61f590 100644 --- a/src/sp-title.cpp +++ b/src/sp-title.cpp @@ -26,38 +26,16 @@ namespace { bool titleRegistered = SPFactory::instance().registerObject("svg:title", createTitle); } -G_DEFINE_TYPE(SPTitle, sp_title, G_TYPE_OBJECT); - -static void -sp_title_class_init(SPTitleClass *klass) -{ -} - -CTitle::CTitle(SPTitle* title) : CObject(title) { - this->sptitle = title; -} - -CTitle::~CTitle() { -} - -SPTitle::SPTitle() : SPObject() { - SPTitle* desc = this; - - desc->ctitle = new CTitle(desc); - desc->typeHierarchy.insert(typeid(SPTitle)); - - delete desc->cobject; - desc->cobject = desc->ctitle; +SPTitle::SPTitle() : SPObject(), CObject(this) { + delete this->cobject; + this->cobject = this; } -static void -sp_title_init(SPTitle *desc) -{ - new (desc) SPTitle(); +SPTitle::~SPTitle() { } -Inkscape::XML::Node* CTitle::write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { - SPTitle* object = this->sptitle; +Inkscape::XML::Node* SPTitle::write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { + SPTitle* object = this; if (!repr) { repr = object->getRepr()->duplicate(xml_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-title.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'src/sp-title.cpp') diff --git a/src/sp-title.cpp b/src/sp-title.cpp index 57c61f590..4ecfcfa8e 100644 --- a/src/sp-title.cpp +++ b/src/sp-title.cpp @@ -26,9 +26,7 @@ namespace { bool titleRegistered = SPFactory::instance().registerObject("svg:title", createTitle); } -SPTitle::SPTitle() : SPObject(), CObject(this) { - delete this->cobject; - this->cobject = this; +SPTitle::SPTitle() : SPObject() { } SPTitle::~SPTitle() { @@ -41,7 +39,7 @@ Inkscape::XML::Node* SPTitle::write(Inkscape::XML::Document *xml_doc, Inkscape:: repr = object->getRepr()->duplicate(xml_doc); } - CObject::write(xml_doc, repr, flags); + SPObject::write(xml_doc, repr, flags); return repr; } -- cgit v1.2.3