summaryrefslogtreecommitdiffstats
path: root/src/sp-item.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sp-item.cpp')
-rw-r--r--src/sp-item.cpp33
1 files changed, 26 insertions, 7 deletions
diff --git a/src/sp-item.cpp b/src/sp-item.cpp
index 5075bdcd3..63fd25bcc 100644
--- a/src/sp-item.cpp
+++ b/src/sp-item.cpp
@@ -78,7 +78,7 @@
static SPItemView* sp_item_view_list_remove(SPItemView *list,
SPItemView *view);
-G_DEFINE_TYPE(SPItem, sp_item, SP_TYPE_OBJECT);
+G_DEFINE_TYPE(SPItem, sp_item, G_TYPE_OBJECT);
/**
* SPItem vtable initialization.
@@ -96,21 +96,40 @@ CItem::CItem(SPItem* item) : CObject(item) {
CItem::~CItem() {
}
-/**
- * Callback for SPItem object initialization.
- */
-static void
-sp_item_init(SPItem *item)
-{
+SPItem::SPItem() : SPObject() {
+ SPItem* item = this;
+
item->citem = new CItem(item);
item->typeHierarchy.insert(typeid(SPItem));
delete item->cobject;
item->cobject = item->citem;
+ item->sensitive = 0;
+ item->clip_ref = NULL;
+ item->avoidRef = NULL;
+ item->_is_evaluated = false;
+ item->stop_paint = 0;
+ item->_evaluated_status = 0;
+ item->bbox_valid = 0;
+ item->freeze_stroke_width = false;
+ item->transform_center_x = 0;
+ item->transform_center_y = 0;
+ item->display = NULL;
+ item->mask_ref = NULL;
+
item->init();
}
+/**
+ * Callback for SPItem object initialization.
+ */
+static void
+sp_item_init(SPItem *item)
+{
+ new (item) SPItem();
+}
+
void SPItem::init() {
sensitive = TRUE;
bbox_valid = FALSE;