diff options
| author | Markus Engel <markus.engel@tum.de> | 2013-03-29 23:52:42 +0000 |
|---|---|---|
| committer | Markus Engel <markus.engel@tum.de> | 2013-03-29 23:52:42 +0000 |
| commit | a168040d5a452544328a1e6ad35aaac351f94d44 (patch) | |
| tree | fae1ba829f543a473da281bd5fa6e4deabbf6912 /src/sp-object-group.cpp | |
| parent | Removed function pointers from SPObject and subclasses. (diff) | |
| parent | Dutch translation update (diff) | |
| download | inkscape-a168040d5a452544328a1e6ad35aaac351f94d44.tar.gz inkscape-a168040d5a452544328a1e6ad35aaac351f94d44.zip | |
merged from trunk
(bzr r11608.1.56)
Diffstat (limited to 'src/sp-object-group.cpp')
| -rw-r--r-- | src/sp-object-group.cpp | 63 |
1 files changed, 11 insertions, 52 deletions
diff --git a/src/sp-object-group.cpp b/src/sp-object-group.cpp index e18755ea2..a4ada0120 100644 --- a/src/sp-object-group.cpp +++ b/src/sp-object-group.cpp @@ -16,40 +16,21 @@ #include "xml/repr.h" #include "document.h" -SPObjectClass * SPObjectGroupClass::static_parent_class = 0; -GType SPObjectGroup::sp_objectgroup_get_type(void) +G_DEFINE_TYPE(SPObjectGroup, sp_objectgroup, SP_TYPE_OBJECT); + +static void +sp_objectgroup_class_init(SPObjectGroupClass *klass) { - static GType objectgroup_type = 0; - if (!objectgroup_type) { - GTypeInfo objectgroup_info = { - sizeof(SPObjectGroupClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) SPObjectGroupClass::sp_objectgroup_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof(SPObjectGroup), - 16, /* n_preallocs */ - (GInstanceInitFunc) init, - NULL, /* value_table */ - }; - objectgroup_type = g_type_register_static(SP_TYPE_OBJECT, "SPObjectGroup", &objectgroup_info, (GTypeFlags)0); - } - return objectgroup_type; } -void SPObjectGroupClass::sp_objectgroup_class_init(SPObjectGroupClass *klass) +static void +sp_objectgroup_init(SPObjectGroup * objectgroup) { - //GObjectClass * object_class = (GObjectClass *) klass; - SPObjectClass * sp_object_class = (SPObjectClass *) klass; - - static_parent_class = (SPObjectClass *)g_type_class_ref(SP_TYPE_OBJECT); + objectgroup->cobjectgroup = new CObjectGroup(objectgroup); -// sp_object_class->child_added = SPObjectGroup::childAdded; -// sp_object_class->remove_child = SPObjectGroup::removeChild; -// sp_object_class->order_changed = SPObjectGroup::orderChanged; -// sp_object_class->write = SPObjectGroup::write; + delete objectgroup->cobject; + objectgroup->cobject = objectgroup->cobjectgroup; } CObjectGroup::CObjectGroup(SPObjectGroup* gr) : CObject(gr) { @@ -59,11 +40,6 @@ CObjectGroup::CObjectGroup(SPObjectGroup* gr) : CObject(gr) { CObjectGroup::~CObjectGroup() { } -void SPObjectGroup::init(SPObjectGroup * objectgroup) -{ - objectgroup->cobjectgroup = new CObjectGroup(objectgroup); - objectgroup->cobject = objectgroup->cobjectgroup; -} void CObjectGroup::onChildAdded(Inkscape::XML::Node *child, Inkscape::XML::Node *ref) { SPObjectGroup* object = this->spobjectgroup; @@ -73,10 +49,6 @@ void CObjectGroup::onChildAdded(Inkscape::XML::Node *child, Inkscape::XML::Node object->requestModified(SP_OBJECT_MODIFIED_FLAG); } -void SPObjectGroup::childAdded(SPObject *object, Inkscape::XML::Node *child, Inkscape::XML::Node *ref) -{ - ((SPObjectGroup*)object)->cobjectgroup->onChildAdded(child, ref); -} void CObjectGroup::onRemoveChild(Inkscape::XML::Node *child) { SPObjectGroup* object = this->spobjectgroup; @@ -86,10 +58,6 @@ void CObjectGroup::onRemoveChild(Inkscape::XML::Node *child) { object->requestModified(SP_OBJECT_MODIFIED_FLAG); } -void SPObjectGroup::removeChild(SPObject *object, Inkscape::XML::Node *child) -{ - ((SPObjectGroup*)object)->cobjectgroup->onRemoveChild(child); -} void CObjectGroup::onOrderChanged(Inkscape::XML::Node *child, Inkscape::XML::Node *old_ref, Inkscape::XML::Node *new_ref) { SPObjectGroup* object = this->spobjectgroup; @@ -99,10 +67,6 @@ void CObjectGroup::onOrderChanged(Inkscape::XML::Node *child, Inkscape::XML::Nod object->requestModified(SP_OBJECT_MODIFIED_FLAG); } -void SPObjectGroup::orderChanged(SPObject *object, Inkscape::XML::Node *child, Inkscape::XML::Node *old_ref, Inkscape::XML::Node *new_ref) -{ - ((SPObjectGroup*)object)->cobjectgroup->onOrderChanged(child, old_ref, new_ref); -} Inkscape::XML::Node *CObjectGroup::onWrite(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { SPObjectGroup* object = this->spobjectgroup; @@ -119,8 +83,8 @@ Inkscape::XML::Node *CObjectGroup::onWrite(Inkscape::XML::Document *xml_doc, Ink } } while (l) { - repr->addChild((Inkscape::XML::Node *) l->data, NULL); - Inkscape::GC::release((Inkscape::XML::Node *) l->data); + repr->addChild(static_cast<Inkscape::XML::Node *>(l->data), NULL); + Inkscape::GC::release(static_cast<Inkscape::XML::Node *>(l->data)); l = g_slist_remove(l, l->data); } } else { @@ -134,11 +98,6 @@ Inkscape::XML::Node *CObjectGroup::onWrite(Inkscape::XML::Document *xml_doc, Ink return repr; } -Inkscape::XML::Node *SPObjectGroup::write(SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) -{ - return ((SPObjectGroup*)object)->cobjectgroup->onWrite(xml_doc, repr, flags); -} - /* Local Variables: mode:c++ |
