summaryrefslogtreecommitdiffstats
path: root/src/sp-star.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sp-star.cpp')
-rw-r--r--src/sp-star.cpp56
1 files changed, 15 insertions, 41 deletions
diff --git a/src/sp-star.cpp b/src/sp-star.cpp
index 08de1732b..af2420340 100644
--- a/src/sp-star.cpp
+++ b/src/sp-star.cpp
@@ -32,9 +32,6 @@
#include "sp-star.h"
-static void sp_star_class_init (SPStarClass *klass);
-static void sp_star_init (SPStar *star);
-
static void sp_star_build (SPObject * object, SPDocument * document, Inkscape::XML::Node * repr);
static Inkscape::XML::Node *sp_star_write (SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags);
static void sp_star_set (SPObject *object, unsigned int key, const gchar *value);
@@ -46,37 +43,14 @@ static void sp_star_snappoints(SPItem const *item, std::vector<Inkscape::SnapCan
static void sp_star_set_shape (SPShape *shape);
static void sp_star_update_patheffect (SPLPEItem *lpeitem, bool write);
-static SPShapeClass *parent_class;
-
-GType
-sp_star_get_type (void)
-{
- static GType type = 0;
-
- if (!type) {
- GTypeInfo info = {
- sizeof (SPStarClass),
- NULL, NULL,
- (GClassInitFunc) sp_star_class_init,
- NULL, NULL,
- sizeof (SPStar),
- 16,
- (GInstanceInitFunc) sp_star_init,
- NULL, /* value_table */
- };
- type = g_type_register_static (SP_TYPE_SHAPE, "SPStar", &info, (GTypeFlags)0);
- }
- return type;
-}
+G_DEFINE_TYPE(SPStar, sp_star, SP_TYPE_SHAPE);
static void sp_star_class_init(SPStarClass *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));
+ SPObjectClass *sp_object_class = SP_OBJECT_CLASS(klass);
+ SPItemClass *item_class = SP_ITEM_CLASS(klass);
+ SPLPEItemClass *lpe_item_class = SP_LPE_ITEM_CLASS(klass);
+ SPShapeClass *shape_class = SP_SHAPE_CLASS(klass);
sp_object_class->build = sp_star_build;
sp_object_class->write = sp_star_write;
@@ -107,8 +81,8 @@ sp_star_init (SPStar * star)
static void
sp_star_build (SPObject * object, SPDocument * document, Inkscape::XML::Node * repr)
{
- if (((SPObjectClass *) parent_class)->build)
- ((SPObjectClass *) parent_class)->build (object, document, repr);
+ if (((SPObjectClass *) sp_star_parent_class)->build)
+ ((SPObjectClass *) sp_star_parent_class)->build (object, document, repr);
object->readAttr( "sodipodi:cx" );
object->readAttr( "sodipodi:cy" );
@@ -150,8 +124,8 @@ sp_star_write (SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML
repr->setAttribute("d", d);
g_free (d);
- if (((SPObjectClass *) (parent_class))->write)
- ((SPObjectClass *) (parent_class))->write (object, xml_doc, repr, flags);
+ if (((SPObjectClass *) (sp_star_parent_class))->write)
+ ((SPObjectClass *) (sp_star_parent_class))->write (object, xml_doc, repr, flags);
return repr;
}
@@ -250,8 +224,8 @@ sp_star_set (SPObject *object, unsigned int key, const gchar *value)
object->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG);
break;
default:
- if (((SPObjectClass *) parent_class)->set)
- ((SPObjectClass *) parent_class)->set (object, key, value);
+ if (((SPObjectClass *) sp_star_parent_class)->set)
+ ((SPObjectClass *) sp_star_parent_class)->set (object, key, value);
break;
}
}
@@ -265,8 +239,8 @@ sp_star_update (SPObject *object, SPCtx *ctx, guint flags)
((SPShape *) object)->setShape ();
}
- if (((SPObjectClass *) parent_class)->update)
- ((SPObjectClass *) parent_class)->update (object, ctx, flags);
+ if (((SPObjectClass *) sp_star_parent_class)->update)
+ ((SPObjectClass *) sp_star_parent_class)->update (object, ctx, flags);
}
static void
@@ -544,8 +518,8 @@ static void sp_star_snappoints(SPItem const *item, std::vector<Inkscape::SnapCan
Inkscape::SnapPreferences local_snapprefs = *snapprefs;
local_snapprefs.setTargetSnappable(Inkscape::SNAPTARGET_OBJECT_MIDPOINT, false);
- if (((SPItemClass *) parent_class)->snappoints) {
- ((SPItemClass *) parent_class)->snappoints (item, p, &local_snapprefs);
+ if (((SPItemClass *) sp_star_parent_class)->snappoints) {
+ ((SPItemClass *) sp_star_parent_class)->snappoints (item, p, &local_snapprefs);
}
if (snapprefs->isTargetSnappable(Inkscape::SNAPTARGET_OBJECT_MIDPOINT)) {