From bd1508b710ed55f5fa212a54291dd6ce1ff4f13e Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sun, 19 Aug 2012 02:13:08 +0200 Subject: Added "virtual pad" to SPBox3D. (bzr r11608.1.18) --- src/box3d.cpp | 131 +++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 92 insertions(+), 39 deletions(-) (limited to 'src/box3d.cpp') diff --git a/src/box3d.cpp b/src/box3d.cpp index 23f934b64..de1acdc7e 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -101,18 +101,30 @@ box3d_class_init(SPBox3DClass *klass) item_class->convert_to_guides = box3d_convert_to_guides; } +CBox3D::CBox3D(SPBox3D* box) : CGroup(box) { + this->spbox3d = box; +} + +CBox3D::~CBox3D() { +} + static void box3d_init(SPBox3D *box) { + box->cbox3d = new CBox3D(box); + box->cgroup = box->cbox3d; + box->clpeitem = box->cbox3d; + box->citem = box->cbox3d; + box->cobject = box->cbox3d; + box->persp_href = NULL; box->persp_ref = new Persp3DReference(box); } -static void box3d_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) -{ - if (((SPObjectClass *) (parent_class))->build) { - ((SPObjectClass *) (parent_class))->build(object, document, repr); - } +void CBox3D::onBuild(SPDocument *document, Inkscape::XML::Node *repr) { + SPBox3D* object = this->spbox3d; + + CGroup::onBuild(document, repr); SPBox3D *box = SP_BOX3D (object); box->my_counter = counter++; @@ -134,13 +146,15 @@ static void box3d_build(SPObject *object, SPDocument *document, Inkscape::XML::N } } -/** - * Virtual release of SPBox3D members before destruction. - */ -static void -box3d_release(SPObject *object) +// CPPIFY: remove +static void box3d_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - SPBox3D *box = (SPBox3D *) object; + ((SPBox3D*)object)->cbox3d->onBuild(document, repr); +} + +void CBox3D::onRelease() { + SPBox3D* object = this->spbox3d; + SPBox3D *box = object; if (box->persp_href) { g_free(box->persp_href); @@ -173,14 +187,22 @@ box3d_release(SPObject *object) */ } - if (((SPObjectClass *) parent_class)->release) - ((SPObjectClass *) parent_class)->release(object); + CGroup::onRelease(); } +// CPPIFY: remove +/** + * Virtual release of SPBox3D members before destruction. + */ static void -box3d_set(SPObject *object, unsigned int key, const gchar *value) +box3d_release(SPObject *object) { - SPBox3D *box = SP_BOX3D(object); + ((SPBox3D*)object)->cbox3d->onRelease(); +} + +void CBox3D::onSet(unsigned int key, const gchar* value) { + SPBox3D* object = this->spbox3d; + SPBox3D *box = object; switch (key) { case SP_ATTR_INKSCAPE_BOX3D_PERSPECTIVE_ID: @@ -225,13 +247,18 @@ box3d_set(SPObject *object, unsigned int key, const gchar *value) } break; default: - if (((SPObjectClass *) (parent_class))->set) { - ((SPObjectClass *) (parent_class))->set(object, key, value); - } + CGroup::onSet(key, value); break; } } +// CPPIFY: remove +static void +box3d_set(SPObject *object, unsigned int key, const gchar *value) +{ + ((SPBox3D*)object)->cbox3d->onSet(key, value); +} + /** * Gets called when (re)attached to another perspective. */ @@ -248,9 +275,7 @@ box3d_ref_changed(SPObject *old_ref, SPObject *ref, SPBox3D *box) } } -static void -box3d_update(SPObject *object, SPCtx *ctx, guint flags) -{ +void CBox3D::onUpdate(SPCtx *ctx, guint flags) { if (flags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_STYLE_MODIFIED_FLAG | SP_OBJECT_VIEWPORT_MODIFIED_FLAG)) { /* FIXME?: Perhaps the display updates of box sides should be instantiated from here, but this @@ -260,14 +285,19 @@ box3d_update(SPObject *object, SPCtx *ctx, guint flags) } // Invoke parent method - if (((SPObjectClass *) (parent_class))->update) - ((SPObjectClass *) (parent_class))->update(object, ctx, flags); + CGroup::onUpdate(ctx, flags); } - -static Inkscape::XML::Node * box3d_write(SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) +// CPPIFY: remove +static void +box3d_update(SPObject *object, SPCtx *ctx, guint flags) { - SPBox3D *box = SP_BOX3D(object); + ((SPBox3D*)object)->cbox3d->onUpdate(ctx, flags); +} + +Inkscape::XML::Node* CBox3D::onWrite(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { + SPBox3D* object = this->spbox3d; + SPBox3D *box = object; if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) { // this is where we end up when saving as plain SVG (also in other circumstances?) @@ -307,19 +337,29 @@ static Inkscape::XML::Node * box3d_write(SPObject *object, Inkscape::XML::Docume box->save_corner7 = box->orig_corner7; } - if (((SPObjectClass *) (parent_class))->write) { - ((SPObjectClass *) (parent_class))->write(object, xml_doc, repr, flags); - } + CGroup::onWrite(xml_doc, repr, flags); return repr; } +// CPPIFY: remove +static Inkscape::XML::Node * box3d_write(SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) +{ + return ((SPBox3D*)object)->cbox3d->onWrite(xml_doc, repr, flags); +} + +gchar* CBox3D::onDescription() { + SPBox3D* item = this->spbox3d; + + g_return_val_if_fail(SP_IS_BOX3D(item), NULL); + return g_strdup(_("3D Box")); +} + +// CPPIFY: remove static gchar * box3d_description(SPItem *item) { - g_return_val_if_fail(SP_IS_BOX3D(item), NULL); - - return g_strdup(_("3D Box")); + return ((SPBox3D*)item)->cbox3d->onDescription(); } void box3d_position_set(SPBox3D *box) @@ -333,10 +373,9 @@ void box3d_position_set(SPBox3D *box) } } -static Geom::Affine -box3d_set_transform(SPItem *item, Geom::Affine const &xform) -{ - SPBox3D *box = SP_BOX3D(item); +Geom::Affine CBox3D::onSetTransform(Geom::Affine const &xform) { + SPBox3D* item = this->spbox3d; + SPBox3D *box = item; // We don't apply the transform to the box directly but instead to its perspective (which is // done in sp_selection_apply_affine). Here we only adjust strokes, patterns, etc. @@ -366,6 +405,13 @@ box3d_set_transform(SPItem *item, Geom::Affine const &xform) return Geom::identity(); } +// CPPIFY: remove +static Geom::Affine +box3d_set_transform(SPItem *item, Geom::Affine const &xform) +{ + return ((SPBox3D*)item)->cbox3d->onSetTransform(xform); +} + Proj::Pt3 box3d_get_proj_corner (guint id, Proj::Pt3 const &c0, Proj::Pt3 const &c7) { return Proj::Pt3 ((id & Box3D::X) ? c7[Proj::X] : c0[Proj::X], @@ -1392,9 +1438,10 @@ box3d_push_back_corner_pair(SPBox3D *box, std::listspbox3d; + SPBox3D *box = item; + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); if (!prefs->getBool("/tools/shapes/3dbox/convertguides", true)) { @@ -1425,6 +1472,12 @@ box3d_convert_to_guides(SPItem *item) { sp_guide_pt_pairs_to_guides(item->document, pts); } +// CPPIFY: remove +void +box3d_convert_to_guides(SPItem *item) { + ((SPBox3D*)item)->cbox3d->onConvertToGuides(); +} + /* Local Variables: mode:c++ -- cgit v1.2.3 From 370a3f5cc9e39352a081e5d5dd8c43676547a6e6 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 4 Oct 2012 11:45:44 +1000 Subject: code cleanup: add own includes to cpp files or make the functions static if they are not used elsewhere. (bzr r11735) --- src/box3d.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/box3d.cpp') diff --git a/src/box3d.cpp b/src/box3d.cpp index 23f934b64..a011b1567 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -366,7 +366,7 @@ box3d_set_transform(SPItem *item, Geom::Affine const &xform) return Geom::identity(); } -Proj::Pt3 +static Proj::Pt3 box3d_get_proj_corner (guint id, Proj::Pt3 const &c0, Proj::Pt3 const &c7) { return Proj::Pt3 ((id & Box3D::X) ? c7[Proj::X] : c0[Proj::X], (id & Box3D::Y) ? c7[Proj::Y] : c0[Proj::Y], -- cgit v1.2.3 From 99cb30e28d4ee193f39e23464abbd7630cac8a2d Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sat, 6 Oct 2012 23:56:27 +0200 Subject: Added virtual pad to SPFlowtext; removed old calls to virtual SPItem methods. (bzr r11608.1.46) --- src/box3d.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/box3d.cpp') diff --git a/src/box3d.cpp b/src/box3d.cpp index de1acdc7e..1aea69313 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -96,9 +96,9 @@ box3d_class_init(SPBox3DClass *klass) sp_object_class->write = box3d_write; sp_object_class->update = box3d_update; - item_class->description = box3d_description; - item_class->set_transform = box3d_set_transform; - item_class->convert_to_guides = box3d_convert_to_guides; +// item_class->description = box3d_description; +// item_class->set_transform = box3d_set_transform; +// item_class->convert_to_guides = box3d_convert_to_guides; } CBox3D::CBox3D(SPBox3D* box) : CGroup(box) { -- cgit v1.2.3 From daf76804788f89d287fa468b4d35189f4f9e16e2 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Sat, 27 Oct 2012 19:57:37 +0100 Subject: cppcheck: use gobject casts in box3d and hide dead code (bzr r11839) --- src/box3d.cpp | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) (limited to 'src/box3d.cpp') diff --git a/src/box3d.cpp b/src/box3d.cpp index a011b1567..0cb139458 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -82,13 +82,12 @@ box3d_get_type(void) return type; } -static void -box3d_class_init(SPBox3DClass *klass) +static void box3d_class_init(SPBox3DClass *klass) { - SPObjectClass *sp_object_class = (SPObjectClass *) klass; - SPItemClass *item_class = (SPItemClass *) klass; + SPObjectClass *sp_object_class = SP_OBJECT_CLASS(klass); + SPItemClass *item_class = SP_ITEM_CLASS(klass); - parent_class = (SPGroupClass *) g_type_class_ref(SP_TYPE_GROUP); + parent_class = SP_GROUP_CLASS(g_type_class_ref(SP_TYPE_GROUP)); sp_object_class->build = box3d_build; sp_object_class->release = box3d_release; @@ -110,8 +109,8 @@ box3d_init(SPBox3D *box) static void box3d_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - if (((SPObjectClass *) (parent_class))->build) { - ((SPObjectClass *) (parent_class))->build(object, document, repr); + if ((SP_OBJECT_CLASS(parent_class))->build) { + (SP_OBJECT_CLASS(parent_class))->build(object, document, repr); } SPBox3D *box = SP_BOX3D (object); @@ -140,7 +139,7 @@ static void box3d_build(SPObject *object, SPDocument *document, Inkscape::XML::N static void box3d_release(SPObject *object) { - SPBox3D *box = (SPBox3D *) object; + SPBox3D *box = SP_BOX3D(object); if (box->persp_href) { g_free(box->persp_href); @@ -173,8 +172,8 @@ box3d_release(SPObject *object) */ } - if (((SPObjectClass *) parent_class)->release) - ((SPObjectClass *) parent_class)->release(object); + if ((SP_OBJECT_CLASS(parent_class))->release) + (SP_OBJECT_CLASS(parent_class))->release(object); } static void @@ -225,8 +224,8 @@ box3d_set(SPObject *object, unsigned int key, const gchar *value) } break; default: - if (((SPObjectClass *) (parent_class))->set) { - ((SPObjectClass *) (parent_class))->set(object, key, value); + if ((SP_OBJECT_CLASS(parent_class))->set) { + (SP_OBJECT_CLASS(parent_class))->set(object, key, value); } break; } @@ -260,8 +259,8 @@ box3d_update(SPObject *object, SPCtx *ctx, guint flags) } // Invoke parent method - if (((SPObjectClass *) (parent_class))->update) - ((SPObjectClass *) (parent_class))->update(object, ctx, flags); + if ((SP_OBJECT_CLASS(parent_class))->update) + (SP_OBJECT_CLASS(parent_class))->update(object, ctx, flags); } @@ -307,8 +306,8 @@ static Inkscape::XML::Node * box3d_write(SPObject *object, Inkscape::XML::Docume box->save_corner7 = box->orig_corner7; } - if (((SPObjectClass *) (parent_class))->write) { - ((SPObjectClass *) (parent_class))->write(object, xml_doc, repr, flags); + if ((SP_OBJECT_CLASS(parent_class))->write) { + (SP_OBJECT_CLASS(parent_class))->write(object, xml_doc, repr, flags); } return repr; @@ -684,7 +683,7 @@ box3d_half_line_crosses_joining_line (Geom::Point const &A, Geom::Point const &B { inters = Geom::intersection(lineAB, lineCD); } - catch (Geom::InfiniteSolutions e) + catch (Geom::InfiniteSolutions& e) { // We're probably dealing with parallel lines, so they don't really cross return false; @@ -1078,6 +1077,8 @@ box3d_recompute_z_orders (SPBox3D *box) { central_axis = Box3D::Z; } + // FIXME: At present, this is not used. Why is it calculated? + /* unsigned int central_corner = 3 ^ central_axis; if (central_axis == Box3D::Z) { central_corner = central_corner ^ Box3D::XYZ; @@ -1085,6 +1086,7 @@ box3d_recompute_z_orders (SPBox3D *box) { if (box3d_XY_axes_are_swapped(box)) { central_corner = central_corner ^ Box3D::XYZ; } + */ Geom::Point c1(box3d_get_corner_screen(box, 1, false)); Geom::Point c2(box3d_get_corner_screen(box, 2, false)); -- cgit v1.2.3 From 4569747878f930a0992a2b089460f3f8cdcb39c5 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Wed, 23 Jan 2013 12:22:14 +0000 Subject: Clean up more GObject type definitions (bzr r12055) --- src/box3d.cpp | 51 +++++++++++---------------------------------------- 1 file changed, 11 insertions(+), 40 deletions(-) (limited to 'src/box3d.cpp') diff --git a/src/box3d.cpp b/src/box3d.cpp index 0cb139458..ed0f717d4 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -39,9 +39,6 @@ #include "desktop-handles.h" #include "macros.h" -static void box3d_class_init(SPBox3DClass *klass); -static void box3d_init(SPBox3D *box3d); - static void box3d_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void box3d_release(SPObject *object); static void box3d_set(SPObject *object, unsigned int key, const gchar *value); @@ -54,41 +51,15 @@ static void box3d_convert_to_guides(SPItem *item); static void box3d_ref_changed(SPObject *old_ref, SPObject *ref, SPBox3D *box); -static SPGroupClass *parent_class; - static gint counter = 0; -GType -box3d_get_type(void) -{ - static GType type = 0; - - if (!type) { - GTypeInfo info = { - sizeof(SPBox3DClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) box3d_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof(SPBox3D), - 16, /* n_preallocs */ - (GInstanceInitFunc) box3d_init, - NULL, /* value_table */ - }; - type = g_type_register_static(SP_TYPE_GROUP, "SPBox3D", &info, (GTypeFlags) 0); - } - - return type; -} +G_DEFINE_TYPE(SPBox3D, box3d, SP_TYPE_GROUP); static void box3d_class_init(SPBox3DClass *klass) { SPObjectClass *sp_object_class = SP_OBJECT_CLASS(klass); SPItemClass *item_class = SP_ITEM_CLASS(klass); - parent_class = SP_GROUP_CLASS(g_type_class_ref(SP_TYPE_GROUP)); - sp_object_class->build = box3d_build; sp_object_class->release = box3d_release; sp_object_class->set = box3d_set; @@ -109,8 +80,8 @@ box3d_init(SPBox3D *box) static void box3d_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - if ((SP_OBJECT_CLASS(parent_class))->build) { - (SP_OBJECT_CLASS(parent_class))->build(object, document, repr); + if ((SP_OBJECT_CLASS(box3d_parent_class))->build) { + (SP_OBJECT_CLASS(box3d_parent_class))->build(object, document, repr); } SPBox3D *box = SP_BOX3D (object); @@ -172,8 +143,8 @@ box3d_release(SPObject *object) */ } - if ((SP_OBJECT_CLASS(parent_class))->release) - (SP_OBJECT_CLASS(parent_class))->release(object); + if ((SP_OBJECT_CLASS(box3d_parent_class))->release) + (SP_OBJECT_CLASS(box3d_parent_class))->release(object); } static void @@ -224,8 +195,8 @@ box3d_set(SPObject *object, unsigned int key, const gchar *value) } break; default: - if ((SP_OBJECT_CLASS(parent_class))->set) { - (SP_OBJECT_CLASS(parent_class))->set(object, key, value); + if ((SP_OBJECT_CLASS(box3d_parent_class))->set) { + (SP_OBJECT_CLASS(box3d_parent_class))->set(object, key, value); } break; } @@ -259,8 +230,8 @@ box3d_update(SPObject *object, SPCtx *ctx, guint flags) } // Invoke parent method - if ((SP_OBJECT_CLASS(parent_class))->update) - (SP_OBJECT_CLASS(parent_class))->update(object, ctx, flags); + if ((SP_OBJECT_CLASS(box3d_parent_class))->update) + (SP_OBJECT_CLASS(box3d_parent_class))->update(object, ctx, flags); } @@ -306,8 +277,8 @@ static Inkscape::XML::Node * box3d_write(SPObject *object, Inkscape::XML::Docume box->save_corner7 = box->orig_corner7; } - if ((SP_OBJECT_CLASS(parent_class))->write) { - (SP_OBJECT_CLASS(parent_class))->write(object, xml_doc, repr, flags); + if ((SP_OBJECT_CLASS(box3d_parent_class))->write) { + (SP_OBJECT_CLASS(box3d_parent_class))->write(object, xml_doc, repr, flags); } return repr; -- cgit v1.2.3 From a0a8d020201e0e38a63d9aa3dce228d7d9e6fb35 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Thu, 14 Mar 2013 12:42:39 +0100 Subject: Various changes. (bzr r11608.1.48) --- src/box3d.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/box3d.cpp') diff --git a/src/box3d.cpp b/src/box3d.cpp index 1aea69313..d41e3757e 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -90,7 +90,7 @@ box3d_class_init(SPBox3DClass *klass) parent_class = (SPGroupClass *) g_type_class_ref(SP_TYPE_GROUP); - sp_object_class->build = box3d_build; + //sp_object_class->build = box3d_build; sp_object_class->release = box3d_release; sp_object_class->set = box3d_set; sp_object_class->write = box3d_write; -- 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/box3d.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/box3d.cpp') diff --git a/src/box3d.cpp b/src/box3d.cpp index d41e3757e..ba15e56e5 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -91,10 +91,10 @@ box3d_class_init(SPBox3DClass *klass) parent_class = (SPGroupClass *) g_type_class_ref(SP_TYPE_GROUP); //sp_object_class->build = box3d_build; - sp_object_class->release = box3d_release; - sp_object_class->set = box3d_set; - sp_object_class->write = box3d_write; - sp_object_class->update = box3d_update; +// sp_object_class->release = box3d_release; +// sp_object_class->set = box3d_set; +// sp_object_class->write = box3d_write; +// sp_object_class->update = box3d_update; // item_class->description = box3d_description; // item_class->set_transform = box3d_set_transform; -- 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/box3d.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'src/box3d.cpp') diff --git a/src/box3d.cpp b/src/box3d.cpp index df338c688..a7e6b0538 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -71,10 +71,10 @@ box3d_init(SPBox3D *box) box->persp_ref = new Persp3DReference(box); } -void CBox3D::onBuild(SPDocument *document, Inkscape::XML::Node *repr) { +void CBox3D::build(SPDocument *document, Inkscape::XML::Node *repr) { SPBox3D* object = this->spbox3d; - CGroup::onBuild(document, repr); + CGroup::build(document, repr); SPBox3D *box = SP_BOX3D (object); box->my_counter = counter++; @@ -96,7 +96,7 @@ void CBox3D::onBuild(SPDocument *document, Inkscape::XML::Node *repr) { } } -void CBox3D::onRelease() { +void CBox3D::release() { SPBox3D* object = this->spbox3d; SPBox3D *box = object; @@ -131,10 +131,10 @@ void CBox3D::onRelease() { */ } - CGroup::onRelease(); + CGroup::release(); } -void CBox3D::onSet(unsigned int key, const gchar* value) { +void CBox3D::set(unsigned int key, const gchar* value) { SPBox3D* object = this->spbox3d; SPBox3D *box = object; @@ -181,7 +181,7 @@ void CBox3D::onSet(unsigned int key, const gchar* value) { } break; default: - CGroup::onSet(key, value); + CGroup::set(key, value); break; } } @@ -202,7 +202,7 @@ box3d_ref_changed(SPObject *old_ref, SPObject *ref, SPBox3D *box) } } -void CBox3D::onUpdate(SPCtx *ctx, guint flags) { +void CBox3D::update(SPCtx *ctx, guint flags) { if (flags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_STYLE_MODIFIED_FLAG | SP_OBJECT_VIEWPORT_MODIFIED_FLAG)) { /* FIXME?: Perhaps the display updates of box sides should be instantiated from here, but this @@ -212,10 +212,10 @@ void CBox3D::onUpdate(SPCtx *ctx, guint flags) { } // Invoke parent method - CGroup::onUpdate(ctx, flags); + CGroup::update(ctx, flags); } -Inkscape::XML::Node* CBox3D::onWrite(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { +Inkscape::XML::Node* CBox3D::write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { SPBox3D* object = this->spbox3d; SPBox3D *box = object; @@ -257,12 +257,12 @@ Inkscape::XML::Node* CBox3D::onWrite(Inkscape::XML::Document *xml_doc, Inkscape: box->save_corner7 = box->orig_corner7; } - CGroup::onWrite(xml_doc, repr, flags); + CGroup::write(xml_doc, repr, flags); return repr; } -gchar* CBox3D::onDescription() { +gchar* CBox3D::description() { SPBox3D* item = this->spbox3d; g_return_val_if_fail(SP_IS_BOX3D(item), NULL); @@ -280,7 +280,7 @@ void box3d_position_set(SPBox3D *box) } } -Geom::Affine CBox3D::onSetTransform(Geom::Affine const &xform) { +Geom::Affine CBox3D::set_transform(Geom::Affine const &xform) { SPBox3D* item = this->spbox3d; SPBox3D *box = item; @@ -1341,7 +1341,7 @@ box3d_push_back_corner_pair(SPBox3D *box, std::listspbox3d; SPBox3D *box = item; -- 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/box3d.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/box3d.cpp') diff --git a/src/box3d.cpp b/src/box3d.cpp index a7e6b0538..f44f1bde3 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -60,6 +60,7 @@ static void box3d_init(SPBox3D *box) { box->cbox3d = new CBox3D(box); + box->typeHierarchy.insert(typeid(SPBox3D)); delete box->cgroup; box->cgroup = box->cbox3d; -- 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/box3d.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'src/box3d.cpp') diff --git a/src/box3d.cpp b/src/box3d.cpp index f44f1bde3..8f7c20c49 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -43,7 +43,7 @@ static void box3d_ref_changed(SPObject *old_ref, SPObject *ref, SPBox3D *box); static gint counter = 0; -G_DEFINE_TYPE(SPBox3D, box3d, SP_TYPE_GROUP); +G_DEFINE_TYPE(SPBox3D, box3d, G_TYPE_OBJECT); static void box3d_class_init(SPBox3DClass *klass) { @@ -56,9 +56,9 @@ CBox3D::CBox3D(SPBox3D* box) : CGroup(box) { CBox3D::~CBox3D() { } -static void -box3d_init(SPBox3D *box) -{ +SPBox3D::SPBox3D() : SPGroup() { + SPBox3D* box = this; + box->cbox3d = new CBox3D(box); box->typeHierarchy.insert(typeid(SPBox3D)); @@ -68,10 +68,19 @@ box3d_init(SPBox3D *box) box->citem = box->cbox3d; box->cobject = box->cbox3d; + box->my_counter = 0; + box->swapped = Box3D::NONE; + box->persp_href = NULL; box->persp_ref = new Persp3DReference(box); } +static void +box3d_init(SPBox3D *box) +{ + new (box) SPBox3D(); +} + void CBox3D::build(SPDocument *document, Inkscape::XML::Node *repr) { SPBox3D* object = this->spbox3d; -- 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/box3d.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/box3d.cpp') diff --git a/src/box3d.cpp b/src/box3d.cpp index 8f7c20c49..c3f6a1dbb 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -43,6 +43,16 @@ static void box3d_ref_changed(SPObject *old_ref, SPObject *ref, SPBox3D *box); static gint counter = 0; +#include "sp-factory.h" + +namespace { + SPObject* createBox3D() { + return new SPBox3D(); + } + + bool box3DRegistered = SPFactory::instance().registerObject("inkscape:box3d", createBox3D); +} + G_DEFINE_TYPE(SPBox3D, box3d, G_TYPE_OBJECT); static void box3d_class_init(SPBox3DClass *klass) -- cgit v1.2.3 From dbda80349e95767e390a178cda7c05787fbce1fe Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Fri, 5 Apr 2013 17:51:29 +0200 Subject: Merged Group and subclasses. (bzr r11608.1.77) --- src/box3d.cpp | 79 +++++++++++++++++++++-------------------------------------- 1 file changed, 28 insertions(+), 51 deletions(-) (limited to 'src/box3d.cpp') diff --git a/src/box3d.cpp b/src/box3d.cpp index c3f6a1dbb..3c11d24d7 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -53,48 +53,25 @@ namespace { bool box3DRegistered = SPFactory::instance().registerObject("inkscape:box3d", createBox3D); } -G_DEFINE_TYPE(SPBox3D, box3d, G_TYPE_OBJECT); - -static void box3d_class_init(SPBox3DClass *klass) -{ -} - -CBox3D::CBox3D(SPBox3D* box) : CGroup(box) { - this->spbox3d = box; -} - -CBox3D::~CBox3D() { -} - SPBox3D::SPBox3D() : SPGroup() { - SPBox3D* box = this; - - box->cbox3d = new CBox3D(box); - box->typeHierarchy.insert(typeid(SPBox3D)); + this->clpeitem = this; + this->citem = this; + this->cobject = this; - delete box->cgroup; - box->cgroup = box->cbox3d; - box->clpeitem = box->cbox3d; - box->citem = box->cbox3d; - box->cobject = box->cbox3d; + this->my_counter = 0; + this->swapped = Box3D::NONE; - box->my_counter = 0; - box->swapped = Box3D::NONE; - - box->persp_href = NULL; - box->persp_ref = new Persp3DReference(box); + this->persp_href = NULL; + this->persp_ref = new Persp3DReference(this); } -static void -box3d_init(SPBox3D *box) -{ - new (box) SPBox3D(); +SPBox3D::~SPBox3D() { } -void CBox3D::build(SPDocument *document, Inkscape::XML::Node *repr) { - SPBox3D* object = this->spbox3d; +void SPBox3D::build(SPDocument *document, Inkscape::XML::Node *repr) { + SPBox3D* object = this; - CGroup::build(document, repr); + SPGroup::build(document, repr); SPBox3D *box = SP_BOX3D (object); box->my_counter = counter++; @@ -116,8 +93,8 @@ void CBox3D::build(SPDocument *document, Inkscape::XML::Node *repr) { } } -void CBox3D::release() { - SPBox3D* object = this->spbox3d; +void SPBox3D::release() { + SPBox3D* object = this; SPBox3D *box = object; if (box->persp_href) { @@ -151,11 +128,11 @@ void CBox3D::release() { */ } - CGroup::release(); + SPGroup::release(); } -void CBox3D::set(unsigned int key, const gchar* value) { - SPBox3D* object = this->spbox3d; +void SPBox3D::set(unsigned int key, const gchar* value) { + SPBox3D* object = this; SPBox3D *box = object; switch (key) { @@ -201,7 +178,7 @@ void CBox3D::set(unsigned int key, const gchar* value) { } break; default: - CGroup::set(key, value); + SPGroup::set(key, value); break; } } @@ -222,7 +199,7 @@ box3d_ref_changed(SPObject *old_ref, SPObject *ref, SPBox3D *box) } } -void CBox3D::update(SPCtx *ctx, guint flags) { +void SPBox3D::update(SPCtx *ctx, guint flags) { if (flags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_STYLE_MODIFIED_FLAG | SP_OBJECT_VIEWPORT_MODIFIED_FLAG)) { /* FIXME?: Perhaps the display updates of box sides should be instantiated from here, but this @@ -232,11 +209,11 @@ void CBox3D::update(SPCtx *ctx, guint flags) { } // Invoke parent method - CGroup::update(ctx, flags); + SPGroup::update(ctx, flags); } -Inkscape::XML::Node* CBox3D::write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { - SPBox3D* object = this->spbox3d; +Inkscape::XML::Node* SPBox3D::write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { + SPBox3D* object = this; SPBox3D *box = object; if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) { @@ -277,13 +254,13 @@ Inkscape::XML::Node* CBox3D::write(Inkscape::XML::Document *xml_doc, Inkscape::X box->save_corner7 = box->orig_corner7; } - CGroup::write(xml_doc, repr, flags); + SPGroup::write(xml_doc, repr, flags); return repr; } -gchar* CBox3D::description() { - SPBox3D* item = this->spbox3d; +gchar* SPBox3D::description() { + SPBox3D* item = this; g_return_val_if_fail(SP_IS_BOX3D(item), NULL); return g_strdup(_("3D Box")); @@ -300,8 +277,8 @@ void box3d_position_set(SPBox3D *box) } } -Geom::Affine CBox3D::set_transform(Geom::Affine const &xform) { - SPBox3D* item = this->spbox3d; +Geom::Affine SPBox3D::set_transform(Geom::Affine const &xform) { + SPBox3D* item = this; SPBox3D *box = item; // We don't apply the transform to the box directly but instead to its perspective (which is @@ -1361,8 +1338,8 @@ box3d_push_back_corner_pair(SPBox3D *box, std::listspbox3d; +void SPBox3D::convert_to_guides() { + SPBox3D* item = this; SPBox3D *box = item; Inkscape::Preferences *prefs = Inkscape::Preferences::get(); -- cgit v1.2.3 From 19d00efa85cfc42ccae9bd17ef575602f0d22c50 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Fri, 5 Apr 2013 19:42:32 +0200 Subject: Merged more classes. (bzr r11608.1.78) --- src/box3d.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'src/box3d.cpp') diff --git a/src/box3d.cpp b/src/box3d.cpp index 3c11d24d7..a2c92d880 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -54,7 +54,6 @@ namespace { } SPBox3D::SPBox3D() : SPGroup() { - this->clpeitem = this; this->citem = this; this->cobject = this; -- cgit v1.2.3 From 8073924aacdda310fb7492750f78d5389b3186af Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Fri, 5 Apr 2013 22:45:01 +0200 Subject: Merged Item. (bzr r11608.1.81) --- src/box3d.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'src/box3d.cpp') diff --git a/src/box3d.cpp b/src/box3d.cpp index a2c92d880..e7abf4793 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -54,7 +54,6 @@ namespace { } SPBox3D::SPBox3D() : SPGroup() { - this->citem = this; this->cobject = this; this->my_counter = 0; -- 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/box3d.cpp | 2 -- 1 file changed, 2 deletions(-) (limited to 'src/box3d.cpp') diff --git a/src/box3d.cpp b/src/box3d.cpp index e7abf4793..0f528a592 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -54,8 +54,6 @@ namespace { } SPBox3D::SPBox3D() : SPGroup() { - this->cobject = this; - this->my_counter = 0; this->swapped = Box3D::NONE; -- cgit v1.2.3 From eb3598e7e27619c759ef33bb9ec4ffb8898523de Mon Sep 17 00:00:00 2001 From: Martin Owens Date: Fri, 20 Sep 2013 00:45:16 -0400 Subject: Refactor status-bar text for multiple items, was very broken Fixed bugs: - https://launchpad.net/bugs/1199192 (bzr r12550) --- src/box3d.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'src/box3d.cpp') diff --git a/src/box3d.cpp b/src/box3d.cpp index 0f528a592..193051ee5 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -255,11 +255,8 @@ Inkscape::XML::Node* SPBox3D::write(Inkscape::XML::Document *xml_doc, Inkscape:: return repr; } -gchar* SPBox3D::description() { - SPBox3D* item = this; - - g_return_val_if_fail(SP_IS_BOX3D(item), NULL); - return g_strdup(_("3D Box")); +const char* SPBox3D::display_name() { + return _("3D Box"); } void box3d_position_set(SPBox3D *box) -- cgit v1.2.3 From 86343e070a018d6636c38b1e74ea8cf7b1c4af77 Mon Sep 17 00:00:00 2001 From: Martin Owens Date: Sun, 6 Oct 2013 14:45:09 -0400 Subject: Add 3d Box displayName and description (bzr r12665) --- src/box3d.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/box3d.cpp') diff --git a/src/box3d.cpp b/src/box3d.cpp index 193051ee5..ff99fccba 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -1325,6 +1325,15 @@ SPGroup *box3d_convert_to_group(SPBox3D *box) return SP_GROUP(doc->getObjectByRepr(grepr)); } +const char *SPBox3D::displayName() { + return _("3D Box"); +} + +gchar *SPBox3D::description() { + // We could put more details about the 3d box here + return g_strdup(""); +} + static inline void box3d_push_back_corner_pair(SPBox3D *box, std::list > &pts, int c1, int c2) { pts.push_back(std::make_pair(box3d_get_corner_screen(box, c1, false), -- cgit v1.2.3 From 73edade30f70b4c0ad94c9561b4e4ec0675465b0 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sun, 27 Oct 2013 00:00:51 +0200 Subject: Added some consts. (bzr r12729) --- src/box3d.cpp | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) (limited to 'src/box3d.cpp') diff --git a/src/box3d.cpp b/src/box3d.cpp index ff99fccba..32442746d 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -1325,53 +1325,50 @@ SPGroup *box3d_convert_to_group(SPBox3D *box) return SP_GROUP(doc->getObjectByRepr(grepr)); } -const char *SPBox3D::displayName() { +const char *SPBox3D::displayName() const { return _("3D Box"); } -gchar *SPBox3D::description() { +gchar *SPBox3D::description() const { // We could put more details about the 3d box here return g_strdup(""); } static inline void -box3d_push_back_corner_pair(SPBox3D *box, std::list > &pts, int c1, int c2) { +box3d_push_back_corner_pair(SPBox3D const *box, std::list > &pts, int c1, int c2) { pts.push_back(std::make_pair(box3d_get_corner_screen(box, c1, false), box3d_get_corner_screen(box, c2, false))); } -void SPBox3D::convert_to_guides() { - SPBox3D* item = this; - SPBox3D *box = item; - +void SPBox3D::convert_to_guides() const { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); if (!prefs->getBool("/tools/shapes/3dbox/convertguides", true)) { - box->convert_to_guides(); + this->convert_to_guides(); return; } std::list > pts; /* perspective lines in X direction */ - box3d_push_back_corner_pair(box, pts, 0, 1); - box3d_push_back_corner_pair(box, pts, 2, 3); - box3d_push_back_corner_pair(box, pts, 4, 5); - box3d_push_back_corner_pair(box, pts, 6, 7); + box3d_push_back_corner_pair(this, pts, 0, 1); + box3d_push_back_corner_pair(this, pts, 2, 3); + box3d_push_back_corner_pair(this, pts, 4, 5); + box3d_push_back_corner_pair(this, pts, 6, 7); /* perspective lines in Y direction */ - box3d_push_back_corner_pair(box, pts, 0, 2); - box3d_push_back_corner_pair(box, pts, 1, 3); - box3d_push_back_corner_pair(box, pts, 4, 6); - box3d_push_back_corner_pair(box, pts, 5, 7); + box3d_push_back_corner_pair(this, pts, 0, 2); + box3d_push_back_corner_pair(this, pts, 1, 3); + box3d_push_back_corner_pair(this, pts, 4, 6); + box3d_push_back_corner_pair(this, pts, 5, 7); /* perspective lines in Z direction */ - box3d_push_back_corner_pair(box, pts, 0, 4); - box3d_push_back_corner_pair(box, pts, 1, 5); - box3d_push_back_corner_pair(box, pts, 2, 6); - box3d_push_back_corner_pair(box, pts, 3, 7); + box3d_push_back_corner_pair(this, pts, 0, 4); + box3d_push_back_corner_pair(this, pts, 1, 5); + box3d_push_back_corner_pair(this, pts, 2, 6); + box3d_push_back_corner_pair(this, pts, 3, 7); - sp_guide_pt_pairs_to_guides(item->document, pts); + sp_guide_pt_pairs_to_guides(this->document, pts); } /* -- cgit v1.2.3 From c04e30df241a3ee039077425bab9b9c37abe2854 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sat, 9 Nov 2013 23:36:13 +0100 Subject: Moved and renamed some tool-related files. (bzr r12785) --- src/box3d.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/box3d.cpp') diff --git a/src/box3d.cpp b/src/box3d.cpp index 32442746d..13a8d0e3e 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -21,7 +21,7 @@ #include "box3d.h" #include "box3d-side.h" -#include "box3d-context.h" +#include "ui/tools/box3d-tool.h" #include "proj_pt.h" #include "transf_mat_3x4.h" #include "perspective-line.h" -- cgit v1.2.3