summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarkus Engel <markus.engel@tum.de>2013-04-06 14:26:39 +0000
committerMarkus Engel <markus.engel@tum.de>2013-04-06 14:26:39 +0000
commit8f5e6d495f0478701218adc8078db5063b710a05 (patch)
treecc1fb0bbfbe239c40db179cc4f8b42e66c74603e /src
parentMerged PaintServer and subclasses; moved Gradient classes to own files. (diff)
downloadinkscape-8f5e6d495f0478701218adc8078db5063b710a05.tar.gz
inkscape-8f5e6d495f0478701218adc8078db5063b710a05.zip
Merged ObjectGroup and subclasses.
(bzr r11608.1.83)
Diffstat (limited to 'src')
-rw-r--r--src/sp-clippath.cpp70
-rw-r--r--src/sp-clippath.h32
-rw-r--r--src/sp-mask.cpp74
-rw-r--r--src/sp-mask.h22
-rw-r--r--src/sp-namedview.cpp129
-rw-r--r--src/sp-namedview.h25
-rw-r--r--src/sp-object-group.cpp48
-rw-r--r--src/sp-object-group.h32
8 files changed, 123 insertions, 309 deletions
diff --git a/src/sp-clippath.cpp b/src/sp-clippath.cpp
index 496a4ed82..17571d195 100644
--- a/src/sp-clippath.cpp
+++ b/src/sp-clippath.cpp
@@ -50,46 +50,22 @@ namespace {
bool clipPathRegistered = SPFactory::instance().registerObject("svg:clipPath", createClipPath);
}
-G_DEFINE_TYPE(SPClipPath, sp_clippath, G_TYPE_OBJECT);
-
-static void
-sp_clippath_class_init(SPClipPathClass *klass)
-{
-}
-
-CClipPath::CClipPath(SPClipPath* clippath) : CObjectGroup(clippath) {
- this->spclippath = clippath;
-}
-
-CClipPath::~CClipPath() {
-}
-
SPClipPath::SPClipPath() : SPObjectGroup() {
- SPClipPath* cp = this;
-
- cp->cclippath = new CClipPath(cp);
- cp->typeHierarchy.insert(typeid(SPClipPath));
+ this->cobject = this;
- delete cp->cobjectgroup;
- cp->cobjectgroup = cp->cclippath;
- cp->cobject = cp->cclippath;
+ this->clipPathUnits_set = FALSE;
+ this->clipPathUnits = SP_CONTENT_UNITS_USERSPACEONUSE;
- cp->clipPathUnits_set = FALSE;
- cp->clipPathUnits = SP_CONTENT_UNITS_USERSPACEONUSE;
-
- cp->display = NULL;
+ this->display = NULL;
}
-static void
-sp_clippath_init(SPClipPath *cp)
-{
- new (cp) SPClipPath();
+SPClipPath::~SPClipPath() {
}
-void CClipPath::build(SPDocument* doc, Inkscape::XML::Node* repr) {
- SPClipPath* object = this->spclippath;
+void SPClipPath::build(SPDocument* doc, Inkscape::XML::Node* repr) {
+ SPClipPath* object = this;
- CObjectGroup::build(doc, repr);
+ SPObjectGroup::build(doc, repr);
object->readAttr( "style" );
object->readAttr( "clipPathUnits" );
@@ -98,8 +74,8 @@ void CClipPath::build(SPDocument* doc, Inkscape::XML::Node* repr) {
doc->addResource("clipPath", object);
}
-void CClipPath::release() {
- SPClipPath* object = this->spclippath;
+void SPClipPath::release() {
+ SPClipPath* object = this;
if (object->document) {
// Unregister ourselves
@@ -112,11 +88,11 @@ void CClipPath::release() {
cp->display = sp_clippath_view_list_remove(cp->display, cp->display);
}
- CObjectGroup::release();
+ SPObjectGroup::release();
}
-void CClipPath::set(unsigned int key, const gchar* value) {
- SPClipPath* object = this->spclippath;
+void SPClipPath::set(unsigned int key, const gchar* value) {
+ SPClipPath* object = this;
SPClipPath *cp = SP_CLIPPATH(object);
@@ -139,17 +115,17 @@ void CClipPath::set(unsigned int key, const gchar* value) {
sp_style_read_from_object(object->style, object);
object->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_STYLE_MODIFIED_FLAG);
} else {
- CObjectGroup::set(key, value);
+ SPObjectGroup::set(key, value);
}
break;
}
}
-void CClipPath::child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref) {
- SPClipPath* object = this->spclippath;
+void SPClipPath::child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref) {
+ SPClipPath* object = this;
/* Invoke SPObjectGroup implementation */
- CObjectGroup::child_added(child, ref);
+ SPObjectGroup::child_added(child, ref);
/* Show new object */
SPObject *ochild = object->document->getObjectByRepr(child);
@@ -166,8 +142,8 @@ void CClipPath::child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref
}
}
-void CClipPath::update(SPCtx* ctx, unsigned int flags) {
- SPClipPath* object = this->spclippath;
+void SPClipPath::update(SPCtx* ctx, unsigned int flags) {
+ SPClipPath* object = this;
if (flags & SP_OBJECT_MODIFIED_FLAG) {
flags |= SP_OBJECT_PARENT_MODIFIED_FLAG;
@@ -204,8 +180,8 @@ void CClipPath::update(SPCtx* ctx, unsigned int flags) {
}
}
-void CClipPath::modified(unsigned int flags) {
- SPClipPath* object = this->spclippath;
+void SPClipPath::modified(unsigned int flags) {
+ SPClipPath* object = this;
if (flags & SP_OBJECT_MODIFIED_FLAG) {
flags |= SP_OBJECT_PARENT_MODIFIED_FLAG;
@@ -230,12 +206,12 @@ void CClipPath::modified(unsigned int flags) {
}
}
-Inkscape::XML::Node* CClipPath::write(Inkscape::XML::Document* xml_doc, Inkscape::XML::Node* repr, guint flags) {
+Inkscape::XML::Node* SPClipPath::write(Inkscape::XML::Document* xml_doc, Inkscape::XML::Node* repr, guint flags) {
if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) {
repr = xml_doc->createElement("svg:clipPath");
}
- CObjectGroup::write(xml_doc, repr, flags);
+ SPObjectGroup::write(xml_doc, repr, flags);
return repr;
}
diff --git a/src/sp-clippath.h b/src/sp-clippath.h
index b4b3c669b..331c4f4cd 100644
--- a/src/sp-clippath.h
+++ b/src/sp-clippath.h
@@ -15,9 +15,8 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#define SP_TYPE_CLIPPATH (sp_clippath_get_type())
#define SP_CLIPPATH(obj) ((SPClipPath*)obj)
-#define SP_IS_CLIPPATH(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPClipPath)))
+#define SP_IS_CLIPPATH(obj) (dynamic_cast<const SPClipPath*>((SPObject*)obj))
struct SPClipPathView;
@@ -25,8 +24,6 @@ struct SPClipPathView;
#include "uri-references.h"
#include "xml/node.h"
-GType sp_clippath_get_type() G_GNUC_CONST;
-
namespace Inkscape {
class Drawing;
@@ -34,12 +31,10 @@ class DrawingItem;
} // namespace Inkscape
-class CClipPath;
-
class SPClipPath : public SPObjectGroup {
public:
SPClipPath();
- CClipPath* cclippath;
+ virtual ~SPClipPath();
class Reference;
@@ -56,25 +51,7 @@ public:
void setBBox(unsigned int key, Geom::OptRect const &bbox);
Geom::OptRect geometricBounds(Geom::Affine const &transform);
-private:
- friend class SPClipPathClass;
-};
-
-class SPClipPathClass {
-public:
- SPObjectGroupClass parent_class;
-
-private:
- friend class SPClipPath;
-};
-
-
-class CClipPath : public CObjectGroup {
-public:
- CClipPath(SPClipPath* clippath);
- virtual ~CClipPath();
-
- virtual void build(SPDocument* doc, Inkscape::XML::Node* repr);
+ virtual void build(SPDocument* doc, Inkscape::XML::Node* repr);
virtual void release();
virtual void child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref);
@@ -85,9 +62,6 @@ public:
virtual void modified(unsigned int flags);
virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags);
-
-protected:
- SPClipPath* spclippath;
};
diff --git a/src/sp-mask.cpp b/src/sp-mask.cpp
index 014d40a6a..101c041d2 100644
--- a/src/sp-mask.cpp
+++ b/src/sp-mask.cpp
@@ -47,49 +47,25 @@ namespace {
bool maskRegistered = SPFactory::instance().registerObject("svg:mask", createMask);
}
-G_DEFINE_TYPE(SPMask, sp_mask, G_TYPE_OBJECT);
-
-static void
-sp_mask_class_init (SPMaskClass *klass)
-{
-}
-
-CMask::CMask(SPMask* mask) : CObjectGroup(mask) {
- this->spmask = mask;
-}
-
-CMask::~CMask() {
-}
-
SPMask::SPMask() : SPObjectGroup() {
- SPMask* mask = this;
-
- mask->cmask = new CMask(mask);
- mask->typeHierarchy.insert(typeid(SPMask));
+ this->cobject = this;
- delete mask->cobjectgroup;
- mask->cobjectgroup = mask->cmask;
- mask->cobject = mask->cmask;
+ this->maskUnits_set = FALSE;
+ this->maskUnits = SP_CONTENT_UNITS_OBJECTBOUNDINGBOX;
- mask->maskUnits_set = FALSE;
- mask->maskUnits = SP_CONTENT_UNITS_OBJECTBOUNDINGBOX;
+ this->maskContentUnits_set = FALSE;
+ this->maskContentUnits = SP_CONTENT_UNITS_USERSPACEONUSE;
- mask->maskContentUnits_set = FALSE;
- mask->maskContentUnits = SP_CONTENT_UNITS_USERSPACEONUSE;
-
- mask->display = NULL;
+ this->display = NULL;
}
-static void
-sp_mask_init (SPMask *mask)
-{
- new (mask) SPMask();
+SPMask::~SPMask() {
}
-void CMask::build(SPDocument* doc, Inkscape::XML::Node* repr) {
- SPMask* object = this->spmask;
+void SPMask::build(SPDocument* doc, Inkscape::XML::Node* repr) {
+ SPMask* object = this;
- CObjectGroup::build(doc, repr);
+ SPObjectGroup::build(doc, repr);
object->readAttr( "maskUnits" );
object->readAttr( "maskContentUnits" );
@@ -98,8 +74,8 @@ void CMask::build(SPDocument* doc, Inkscape::XML::Node* repr) {
doc->addResource("mask", object);
}
-void CMask::release() {
- SPMask* object = this->spmask;
+void SPMask::release() {
+ SPMask* object = this;
if (object->document) {
// Unregister ourselves
@@ -112,11 +88,11 @@ void CMask::release() {
cp->display = sp_mask_view_list_remove (cp->display, cp->display);
}
- CObjectGroup::release();
+ SPObjectGroup::release();
}
-void CMask::set(unsigned int key, const gchar* value) {
- SPMask* object = this->spmask;
+void SPMask::set(unsigned int key, const gchar* value) {
+ SPMask* object = this;
SPMask *mask = SP_MASK (object);
@@ -148,16 +124,16 @@ void CMask::set(unsigned int key, const gchar* value) {
object->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG);
break;
default:
- CObjectGroup::set(key, value);
+ SPObjectGroup::set(key, value);
break;
}
}
-void CMask::child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref) {
- SPMask* object = this->spmask;
+void SPMask::child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref) {
+ SPMask* object = this;
/* Invoke SPObjectGroup implementation */
- CObjectGroup::child_added(child, ref);
+ SPObjectGroup::child_added(child, ref);
/* Show new object */
SPObject *ochild = object->document->getObjectByRepr(child);
@@ -175,8 +151,8 @@ void CMask::child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref) {
}
-void CMask::update(SPCtx* ctx, unsigned int flags) {
- SPMask* object = this->spmask;
+void SPMask::update(SPCtx* ctx, unsigned int flags) {
+ SPMask* object = this;
if (flags & SP_OBJECT_MODIFIED_FLAG) {
flags |= SP_OBJECT_PARENT_MODIFIED_FLAG;
@@ -213,8 +189,8 @@ void CMask::update(SPCtx* ctx, unsigned int flags) {
}
}
-void CMask::modified(unsigned int flags) {
- SPMask* object = this->spmask;
+void SPMask::modified(unsigned int flags) {
+ SPMask* object = this;
if (flags & SP_OBJECT_MODIFIED_FLAG) {
flags |= SP_OBJECT_PARENT_MODIFIED_FLAG;
@@ -239,12 +215,12 @@ void CMask::modified(unsigned int flags) {
}
}
-Inkscape::XML::Node* CMask::write(Inkscape::XML::Document* xml_doc, Inkscape::XML::Node* repr, guint flags) {
+Inkscape::XML::Node* SPMask::write(Inkscape::XML::Document* xml_doc, Inkscape::XML::Node* repr, guint flags) {
if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) {
repr = xml_doc->createElement("svg:mask");
}
- CObjectGroup::write(xml_doc, repr, flags);
+ SPObjectGroup::write(xml_doc, repr, flags);
return repr;
}
diff --git a/src/sp-mask.h b/src/sp-mask.h
index bc70d2850..fe029ab56 100644
--- a/src/sp-mask.h
+++ b/src/sp-mask.h
@@ -18,14 +18,11 @@
#include "uri-references.h"
#include "xml/node.h"
-#define SP_TYPE_MASK (sp_mask_get_type ())
#define SP_MASK(obj) ((SPMask*)obj)
-#define SP_IS_MASK(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPMask)))
+#define SP_IS_MASK(obj) (dynamic_cast<const SPMask*>((SPObject*)obj))
struct SPMaskView;
-class CMask;
-
namespace Inkscape {
class Drawing;
@@ -37,7 +34,7 @@ class DrawingItem;
class SPMask : public SPObjectGroup {
public:
SPMask();
- CMask* cmask;
+ virtual ~SPMask();
unsigned int maskUnits_set : 1;
unsigned int maskUnits : 1;
@@ -46,16 +43,6 @@ public:
unsigned int maskContentUnits : 1;
SPMaskView *display;
-};
-
-struct SPMaskClass {
- SPObjectGroupClass parent_class;
-};
-
-class CMask : public CObjectGroup {
-public:
- CMask(SPMask* mask);
- virtual ~CMask();
virtual void build(SPDocument* doc, Inkscape::XML::Node* repr);
virtual void release();
@@ -68,13 +55,8 @@ public:
virtual void modified(unsigned int flags);
virtual Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags);
-
-protected:
- SPMask* spmask;
};
-GType sp_mask_get_type (void);
-
class SPMaskReference : public Inkscape::URIReference {
public:
SPMaskReference(SPObject *obj) : URIReference(obj) {}
diff --git a/src/sp-namedview.cpp b/src/sp-namedview.cpp
index 762f56257..767017e6d 100644
--- a/src/sp-namedview.cpp
+++ b/src/sp-namedview.cpp
@@ -65,68 +65,45 @@ namespace {
bool namedViewRegistered = SPFactory::instance().registerObject("sodipodi:namedview", createNamedView);
}
-
-G_DEFINE_TYPE(SPNamedView, sp_namedview, G_TYPE_OBJECT);
-
-static void sp_namedview_class_init(SPNamedViewClass * klass)
-{
-}
-
-CNamedView::CNamedView(SPNamedView* view) : CObjectGroup(view) {
- this->spnamedview = view;
-}
-
-CNamedView::~CNamedView() {
-}
-
SPNamedView::SPNamedView() : SPObjectGroup(), snap_manager(this) {
- SPNamedView* nv = this;
-
- nv->cnamedview = new CNamedView(nv);
- nv->typeHierarchy.insert(typeid(SPNamedView));
-
- delete nv->cobjectgroup;
- nv->cobjectgroup = nv->cnamedview;
- nv->cobject = nv->cnamedview;
-
- nv->zoom = 0;
- nv->guidecolor = 0;
- nv->guidehicolor = 0;
- nv->views = NULL;
- nv->borderlayer = 0;
- nv->units = NULL;
- nv->window_x = 0;
- nv->cy = 0;
- nv->window_y = 0;
- nv->doc_units = NULL;
- nv->pagecolor = 0;
- nv->cx = 0;
- nv->pageshadow = 0;
- nv->window_width = 0;
- nv->window_height = 0;
- nv->window_maximized = 0;
- nv->bordercolor = 0;
-
- nv->editable = TRUE;
- nv->showguides = TRUE;
- nv->grids_visible = false;
- nv->showborder = TRUE;
- nv->showpageshadow = TRUE;
-
- nv->guides = NULL;
- nv->viewcount = 0;
- nv->grids = NULL;
-
- nv->default_layer_id = 0;
-
- nv->connector_spacing = defaultConnSpacing;
-
- //new (&nv->snap_manager) SnapManager(nv);
+ this->cobject = this;
+
+ this->zoom = 0;
+ this->guidecolor = 0;
+ this->guidehicolor = 0;
+ this->views = NULL;
+ this->borderlayer = 0;
+ this->units = NULL;
+ this->window_x = 0;
+ this->cy = 0;
+ this->window_y = 0;
+ this->doc_units = NULL;
+ this->pagecolor = 0;
+ this->cx = 0;
+ this->pageshadow = 0;
+ this->window_width = 0;
+ this->window_height = 0;
+ this->window_maximized = 0;
+ this->bordercolor = 0;
+
+ this->editable = TRUE;
+ this->showguides = TRUE;
+ this->grids_visible = false;
+ this->showborder = TRUE;
+ this->showpageshadow = TRUE;
+
+ this->guides = NULL;
+ this->viewcount = 0;
+ this->grids = NULL;
+
+ this->default_layer_id = 0;
+
+ this->connector_spacing = defaultConnSpacing;
+
+ //new (&this->snap_manager) SnapManager(this);
}
-static void sp_namedview_init(SPNamedView *nv)
-{
- new (nv) SPNamedView();
+SPNamedView::~SPNamedView() {
}
static void sp_namedview_generate_old_grid(SPNamedView * /*nv*/, SPDocument *document, Inkscape::XML::Node *repr) {
@@ -217,13 +194,13 @@ static void sp_namedview_generate_old_grid(SPNamedView * /*nv*/, SPDocument *doc
}
}
-void CNamedView::build(SPDocument *document, Inkscape::XML::Node *repr) {
- SPNamedView* object = this->spnamedview;
+void SPNamedView::build(SPDocument *document, Inkscape::XML::Node *repr) {
+ SPNamedView* object = this;
SPNamedView *nv = (SPNamedView *) object;
SPObjectGroup *og = (SPObjectGroup *) object;
- CObjectGroup::build(document, repr);
+ SPObjectGroup::build(document, repr);
object->readAttr( "inkscape:document-units" );
object->readAttr( "units" );
@@ -293,8 +270,8 @@ void CNamedView::build(SPDocument *document, Inkscape::XML::Node *repr) {
sp_namedview_generate_old_grid(nv, document, repr);
}
-void CNamedView::release() {
- SPNamedView* object = this->spnamedview;
+void SPNamedView::release() {
+ SPNamedView* object = this;
SPNamedView *namedview = (SPNamedView *) object;
if (namedview->guides) {
@@ -309,13 +286,13 @@ void CNamedView::release() {
namedview->grids = g_slist_remove_link(namedview->grids, namedview->grids); // deletes first entry
}
- CObjectGroup::release();
+ SPObjectGroup::release();
namedview->snap_manager.~SnapManager();
}
-void CNamedView::set(unsigned int key, const gchar* value) {
- SPNamedView* object = this->spnamedview;
+void SPNamedView::set(unsigned int key, const gchar* value) {
+ SPNamedView* object = this;
SPNamedView *nv = SP_NAMEDVIEW(object);
@@ -629,7 +606,7 @@ void CNamedView::set(unsigned int key, const gchar* value) {
break;
}
default:
- CObjectGroup::set(key, value);
+ SPObjectGroup::set(key, value);
break;
}
}
@@ -675,12 +652,12 @@ sp_namedview_add_grid(SPNamedView *nv, Inkscape::XML::Node *repr, SPDesktop *des
return grid;
}
-void CNamedView::child_added(Inkscape::XML::Node *child, Inkscape::XML::Node *ref) {
- SPNamedView* object = this->spnamedview;
+void SPNamedView::child_added(Inkscape::XML::Node *child, Inkscape::XML::Node *ref) {
+ SPNamedView* object = this;
SPNamedView *nv = (SPNamedView *) object;
- CObjectGroup::child_added(child, ref);
+ SPObjectGroup::child_added(child, ref);
if (!strcmp(child->name(), "inkscape:grid")) {
sp_namedview_add_grid(nv, child, NULL);
@@ -706,8 +683,8 @@ void CNamedView::child_added(Inkscape::XML::Node *child, Inkscape::XML::Node *re
}
}
-void CNamedView::remove_child(Inkscape::XML::Node *child) {
- SPNamedView* object = this->spnamedview;
+void SPNamedView::remove_child(Inkscape::XML::Node *child) {
+ SPNamedView* object = this;
SPNamedView *nv = (SPNamedView *) object;
if (!strcmp(child->name(), "inkscape:grid")) {
@@ -732,11 +709,11 @@ void CNamedView::remove_child(Inkscape::XML::Node *child) {
}
}
- CObjectGroup::remove_child(child);
+ SPObjectGroup::remove_child(child);
}
-Inkscape::XML::Node* CNamedView::write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) {
- SPNamedView* object = this->spnamedview;
+Inkscape::XML::Node* SPNamedView::write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) {
+ SPNamedView* object = this;
if ( ( flags & SP_OBJECT_WRITE_EXT ) &&
repr != object->getRepr() )
diff --git a/src/sp-namedview.h b/src/sp-namedview.h
index 28defe4d9..50ff57278 100644
--- a/src/sp-namedview.h
+++ b/src/sp-namedview.h
@@ -14,17 +14,14 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#define SP_TYPE_NAMEDVIEW (sp_namedview_get_type())
#define SP_NAMEDVIEW(obj) ((SPNamedView*)obj)
-#define SP_IS_NAMEDVIEW(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPNamedView)))
+#define SP_IS_NAMEDVIEW(obj) (dynamic_cast<const SPNamedView*>((SPObject*)obj))
#include "sp-object-group.h"
#include "sp-metric.h"
#include "snap.h"
#include "document.h"
-G_BEGIN_DECLS
-
struct SPUnit;
namespace Inkscape {
@@ -36,12 +33,10 @@ enum {
SP_BORDER_LAYER_TOP
};
-class CNamedView;
-
class SPNamedView : public SPObjectGroup {
public:
SPNamedView();
- CNamedView* cnamedview;
+ virtual ~SPNamedView();
unsigned int editable : 1;
unsigned int showguides : 1;
@@ -100,18 +95,8 @@ public:
private:
double getMarginLength(gchar const * const key,SPUnit const * const margin_units,SPUnit const * const return_units,double const width,double const height,bool const use_width);
friend class SPDocument;
-};
-
-struct SPNamedViewClass {
- SPObjectGroupClass parent_class;
-};
-
-class CNamedView : public CObjectGroup {
public:
- CNamedView(SPNamedView* view);
- virtual ~CNamedView();
-
virtual void build(SPDocument *document, Inkscape::XML::Node *repr);
virtual void release();
virtual void set(unsigned int key, gchar const* value);
@@ -120,14 +105,9 @@ public:
virtual void remove_child(Inkscape::XML::Node* child);
virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags);
-
-protected:
- SPNamedView* spnamedview;
};
-GType sp_namedview_get_type();
-
SPNamedView *sp_document_namedview(SPDocument *document, gchar const *name);
void sp_namedview_window_from_document(SPDesktop *desktop);
@@ -138,7 +118,6 @@ void sp_namedview_toggle_guides(SPDocument *doc, Inkscape::XML::Node *repr);
void sp_namedview_show_grids(SPNamedView *namedview, bool show, bool dirty_document);
Inkscape::CanvasGrid * sp_namedview_get_first_enabled_grid(SPNamedView *namedview);
-G_END_DECLS
#endif /* !INKSCAPE_SP_NAMEDVIEW_H */
diff --git a/src/sp-object-group.cpp b/src/sp-object-group.cpp
index 29ac0eb43..afe425211 100644
--- a/src/sp-object-group.cpp
+++ b/src/sp-object-group.cpp
@@ -16,40 +16,16 @@
#include "xml/repr.h"
#include "document.h"
-
-G_DEFINE_TYPE(SPObjectGroup, sp_objectgroup, G_TYPE_OBJECT);
-
-static void
-sp_objectgroup_class_init(SPObjectGroupClass *klass)
-{
-}
-
-SPObjectGroup::SPObjectGroup() : SPObject() {
- SPObjectGroup* objectgroup = this;
-
- objectgroup->cobjectgroup = new CObjectGroup(objectgroup);
- objectgroup->typeHierarchy.insert(typeid(SPObjectGroup));
-
- delete objectgroup->cobject;
- objectgroup->cobject = objectgroup->cobjectgroup;
+SPObjectGroup::SPObjectGroup() : SPObject(), CObject(this) {
+ delete this->cobject;
+ this->cobject = this;
}
-static void
-sp_objectgroup_init(SPObjectGroup * objectgroup)
-{
- new (objectgroup) SPObjectGroup();
+SPObjectGroup::~SPObjectGroup() {
}
-CObjectGroup::CObjectGroup(SPObjectGroup* gr) : CObject(gr) {
- this->spobjectgroup = gr;
-}
-
-CObjectGroup::~CObjectGroup() {
-}
-
-
-void CObjectGroup::child_added(Inkscape::XML::Node *child, Inkscape::XML::Node *ref) {
- SPObjectGroup* object = this->spobjectgroup;
+void SPObjectGroup::child_added(Inkscape::XML::Node *child, Inkscape::XML::Node *ref) {
+ SPObjectGroup* object = this;
CObject::child_added(child, ref);
@@ -57,8 +33,8 @@ void CObjectGroup::child_added(Inkscape::XML::Node *child, Inkscape::XML::Node *
}
-void CObjectGroup::remove_child(Inkscape::XML::Node *child) {
- SPObjectGroup* object = this->spobjectgroup;
+void SPObjectGroup::remove_child(Inkscape::XML::Node *child) {
+ SPObjectGroup* object = this;
CObject::remove_child(child);
@@ -66,8 +42,8 @@ void CObjectGroup::remove_child(Inkscape::XML::Node *child) {
}
-void CObjectGroup::order_changed(Inkscape::XML::Node *child, Inkscape::XML::Node *old_ref, Inkscape::XML::Node *new_ref) {
- SPObjectGroup* object = this->spobjectgroup;
+void SPObjectGroup::order_changed(Inkscape::XML::Node *child, Inkscape::XML::Node *old_ref, Inkscape::XML::Node *new_ref) {
+ SPObjectGroup* object = this;
CObject::order_changed(child, old_ref, new_ref);
@@ -75,8 +51,8 @@ void CObjectGroup::order_changed(Inkscape::XML::Node *child, Inkscape::XML::Node
}
-Inkscape::XML::Node *CObjectGroup::write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) {
- SPObjectGroup* object = this->spobjectgroup;
+Inkscape::XML::Node *SPObjectGroup::write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) {
+ SPObjectGroup* object = this;
if (flags & SP_OBJECT_WRITE_BUILD) {
if (!repr) {
diff --git a/src/sp-object-group.h b/src/sp-object-group.h
index 74c406b1e..faa7872ed 100644
--- a/src/sp-object-group.h
+++ b/src/sp-object-group.h
@@ -16,35 +16,13 @@
#include "sp-object.h"
-#define SP_TYPE_OBJECTGROUP (sp_objectgroup_get_type ())
#define SP_OBJECTGROUP(obj) ((SPObjectGroup*)obj)
-#define SP_IS_OBJECTGROUP(obj) (obj != NULL && static_cast<const SPObject*>(obj)->typeHierarchy.count(typeid(SPObjectGroup)))
+#define SP_IS_OBJECTGROUP(obj) (dynamic_cast<const SPObjectGroup*>((SPObject*)obj))
-GType sp_objectgroup_get_type() G_GNUC_CONST;
-class CObjectGroup;
-
-class SPObjectGroup : public SPObject {
+class SPObjectGroup : public SPObject, public CObject {
public:
SPObjectGroup();
- CObjectGroup* cobjectgroup;
-
-private:
- friend class SPObjectGroupClass;
-};
-
-class SPObjectGroupClass {
-public:
- SPObjectClass parent_class;
-
-private:
- friend class SPObjectGroup;
-};
-
-
-class CObjectGroup : public CObject {
-public:
- CObjectGroup(SPObjectGroup* gr);
- virtual ~CObjectGroup();
+ virtual ~SPObjectGroup();
virtual void child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref);
virtual void remove_child(Inkscape::XML::Node* child);
@@ -52,12 +30,8 @@ public:
virtual void order_changed(Inkscape::XML::Node* child, Inkscape::XML::Node* old, Inkscape::XML::Node* new_repr);
virtual Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags);
-
-protected:
- SPObjectGroup* spobjectgroup;
};
-
#endif // SEEN_SP_OBJECTGROUP_H
/*
Local Variables: