diff options
Diffstat (limited to 'src/sp-spiral.cpp')
| -rw-r--r-- | src/sp-spiral.cpp | 134 |
1 files changed, 5 insertions, 129 deletions
diff --git a/src/sp-spiral.cpp b/src/sp-spiral.cpp index d802baab2..8843604b9 100644 --- a/src/sp-spiral.cpp +++ b/src/sp-spiral.cpp @@ -28,73 +28,15 @@ #include "sp-spiral.h" -static void sp_spiral_class_init (SPSpiralClass *klass); -static void sp_spiral_init (SPSpiral *spiral); - -static void sp_spiral_build (SPObject * object, SPDocument * document, Inkscape::XML::Node * repr); -static Inkscape::XML::Node *sp_spiral_write (SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); -static void sp_spiral_set (SPObject *object, unsigned int key, const gchar *value); -static void sp_spiral_update (SPObject *object, SPCtx *ctx, guint flags); - -static gchar * sp_spiral_description (SPItem * item); -static void sp_spiral_snappoints(SPItem const *item, std::vector<Inkscape::SnapCandidatePoint> &p, Inkscape::SnapPreferences const *snapprefs); - -static void sp_spiral_set_shape (SPShape *shape); -static void sp_spiral_update_patheffect (SPLPEItem *lpeitem, bool write); - static Geom::Point sp_spiral_get_tangent (SPSpiral const *spiral, gdouble t); -static SPShapeClass *parent_class; - -/** - * Register SPSpiral class and return its type number. - */ -GType -sp_spiral_get_type (void) -{ - static GType spiral_type = 0; - - if (!spiral_type) { - GTypeInfo spiral_info = { - sizeof (SPSpiralClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) sp_spiral_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (SPSpiral), - 16, /* n_preallocs */ - (GInstanceInitFunc) sp_spiral_init, - NULL, /* value_table */ - }; - spiral_type = g_type_register_static (SP_TYPE_SHAPE, "SPSpiral", &spiral_info, (GTypeFlags)0); - } - return spiral_type; -} +G_DEFINE_TYPE(SPSpiral, sp_spiral, SP_TYPE_SHAPE); /** * SPSpiral vtable initialization. */ static void sp_spiral_class_init(SPSpiralClass *klass) { - SPObjectClass *sp_object_class = reinterpret_cast<SPObjectClass *>(klass); - SPItemClass *item_class = reinterpret_cast<SPItemClass *>(klass); - SPLPEItemClass *lpe_item_class = reinterpret_cast<SPLPEItemClass *>(klass); - SPShapeClass *shape_class = reinterpret_cast<SPShapeClass *>(klass); - - parent_class = reinterpret_cast<SPShapeClass *>(g_type_class_ref(SP_TYPE_SHAPE)); - - //sp_object_class->build = sp_spiral_build; -// sp_object_class->write = sp_spiral_write; -// sp_object_class->set = sp_spiral_set; -// sp_object_class->update = sp_spiral_update; - -// item_class->description = sp_spiral_description; -// item_class->snappoints = sp_spiral_snappoints; - - //lpe_item_class->update_patheffect = sp_spiral_update_patheffect; - - //shape_class->set_shape = sp_spiral_set_shape; } CSpiral::CSpiral(SPSpiral* spiral) : CShape(spiral) { @@ -111,6 +53,8 @@ static void sp_spiral_init (SPSpiral * spiral) { spiral->cspiral = new CSpiral(spiral); + + delete spiral->cshape; spiral->cshape = spiral->cspiral; spiral->clpeitem = spiral->cspiral; spiral->citem = spiral->cspiral; @@ -139,15 +83,6 @@ void CSpiral::onBuild(SPDocument * document, Inkscape::XML::Node * repr) { object->readAttr( "sodipodi:t0" ); } -// CPPIFY: remove -/** - * Virtual build: set spiral properties from corresponding repr. - */ -static void sp_spiral_build(SPObject * object, SPDocument * document, Inkscape::XML::Node * repr) -{ - ((SPSpiral*)object)->cspiral->onBuild(document, repr); -} - Inkscape::XML::Node* CSpiral::onWrite(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { SPSpiral *spiral = this->spspiral; @@ -170,7 +105,7 @@ Inkscape::XML::Node* CSpiral::onWrite(Inkscape::XML::Document *xml_doc, Inkscape } // make sure the curve is rebuilt with all up-to-date parameters - sp_spiral_set_shape(spiral); + this->onSetShape(); //Nulls might be possible if this called iteratively if ( !spiral->_curve ) { @@ -186,16 +121,6 @@ Inkscape::XML::Node* CSpiral::onWrite(Inkscape::XML::Document *xml_doc, Inkscape return repr; } -// CPPIFY: remove -/** - * Virtual write: write spiral attributes to corresponding repr. - */ -static Inkscape::XML::Node * -sp_spiral_write (SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) -{ - return ((SPSpiral*)object)->cspiral->onWrite(xml_doc, repr, flags); -} - void CSpiral::onSet(unsigned int key, gchar const* value) { SPSpiral *spiral = this->spspiral; SPSpiral* object = spiral; @@ -283,15 +208,6 @@ void CSpiral::onSet(unsigned int key, gchar const* value) { } } -// CPPIFY: remove -/** - * Virtual set: change spiral object attribute. - */ -static void sp_spiral_set(SPObject *object, unsigned int key, const gchar *value) -{ - ((SPSpiral*)object)->cspiral->onSet(key, value); -} - void CSpiral::onUpdate(SPCtx *ctx, guint flags) { SPSpiral* object = this->spspiral; @@ -302,19 +218,11 @@ void CSpiral::onUpdate(SPCtx *ctx, guint flags) { CShape::onUpdate(ctx, flags); } -// CPPIFY: remove -/** - * Virtual update callback. - */ -static void sp_spiral_update(SPObject *object, SPCtx *ctx, guint flags) -{ - ((SPSpiral*)object)->cspiral->onUpdate(ctx, flags); -} void CSpiral::onUpdatePatheffect(bool write) { SPSpiral* shape = this->spspiral; - sp_spiral_set_shape(shape); + this->onSetShape(); if (write) { Inkscape::XML::Node *repr = shape->getRepr(); @@ -330,12 +238,6 @@ void CSpiral::onUpdatePatheffect(bool write) { shape->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG); } -// CPPIFY: remove -static void sp_spiral_update_patheffect(SPLPEItem *lpeitem, bool write) -{ - ((SPSpiral*)lpeitem)->cspiral->onUpdatePatheffect(write); -} - gchar* CSpiral::onDescription() { SPSpiral* item = this->spspiral; @@ -344,16 +246,6 @@ gchar* CSpiral::onDescription() { return g_strdup_printf (_("<b>Spiral</b> with %3f turns"), SP_SPIRAL(item)->revo); } -// CPPIFY: remove -/** - * Return textual description of spiral. - */ -static gchar *sp_spiral_description(SPItem * item) -{ - return ((SPSpiral*)item)->cspiral->onDescription(); -} - - /** * Fit beziers together to spiral and draw it. * @@ -511,13 +403,6 @@ void CSpiral::onSetShape() { c->unref(); } -// CPPIFY: remove -static void -sp_spiral_set_shape (SPShape *shape) -{ - ((SPSpiral*)shape)->cspiral->onSetShape(); -} - /** * Set spiral properties and update display. */ @@ -568,15 +453,6 @@ void CSpiral::onSnappoints(std::vector<Inkscape::SnapCandidatePoint> &p, Inkscap } } -// CPPIFY: remove -/** - * Virtual snappoints callback. - */ -static void sp_spiral_snappoints(SPItem const *item, std::vector<Inkscape::SnapCandidatePoint> &p, Inkscape::SnapPreferences const *snapprefs) -{ - ((SPSpiral*)item)->cspiral->onSnappoints(p, snapprefs); -} - /** * Return one of the points on the spiral. * |
