summaryrefslogtreecommitdiffstats
path: root/src/persp3d.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/persp3d.cpp')
-rw-r--r--src/persp3d.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/persp3d.cpp b/src/persp3d.cpp
index 50ecd6522..2d67ac1a2 100644
--- a/src/persp3d.cpp
+++ b/src/persp3d.cpp
@@ -43,7 +43,7 @@ Persp3DImpl::Persp3DImpl() {
my_counter = global_counter++;
}
-G_DEFINE_TYPE(Persp3D, persp3d, SP_TYPE_OBJECT);
+G_DEFINE_TYPE(Persp3D, persp3d, G_TYPE_OBJECT);
static Inkscape::XML::NodeEventVector const persp3d_repr_events = {
NULL, /* child_added */
@@ -69,12 +69,9 @@ CPersp3D::CPersp3D(Persp3D* persp3d) : CObject(persp3d) {
CPersp3D::~CPersp3D() {
}
-/**
- * Callback to initialize Persp3D object.
- */
-static void
-persp3d_init(Persp3D *persp)
-{
+Persp3D::Persp3D() : SPObject() {
+ Persp3D* persp = this;
+
persp->cpersp3d = new CPersp3D(persp);
persp->typeHierarchy.insert(typeid(Persp3D));
@@ -85,6 +82,15 @@ persp3d_init(Persp3D *persp)
}
/**
+ * Callback to initialize Persp3D object.
+ */
+static void
+persp3d_init(Persp3D *persp)
+{
+ new (persp) Persp3D();
+}
+
+/**
* Virtual build: set persp3d attributes from its associated XML node.
*/
void CPersp3D::build(SPDocument *document, Inkscape::XML::Node *repr) {