Code

Merge and cleanup of GSoC C++-ification project.
[inkscape.git] / src / sp-object-group.h
index 5d67df6fecea0518c615f1cec8b9c9a156f2ae44..a666a316a6ca4881a50e5be2cedb7eeee441727e 100644 (file)
@@ -1,11 +1,12 @@
-#ifndef __SP_OBJECTGROUP_H__
-#define __SP_OBJECTGROUP_H__
+#ifndef SEEN_SP_OBJECTGROUP_H
+#define SEEN_SP_OBJECTGROUP_H
 
 /*
  * Abstract base class for non-item groups
  *
  * Author:
  *   Lauris Kaplinski <lauris@kaplinski.com>
+ *   Abhishek Sharma
  *
  * Copyright (C) 1999-2003 Authors
  * Copyright (C) 2001-2002 Ximian, Inc.
 
 #include "sp-object.h"
 
-#define SP_TYPE_OBJECTGROUP (sp_objectgroup_get_type ())
+#define SP_TYPE_OBJECTGROUP (SPObjectGroup::sp_objectgroup_get_type ())
 #define SP_OBJECTGROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_OBJECTGROUP, SPObjectGroup))
 #define SP_OBJECTGROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_OBJECTGROUP, SPObjectGroupClass))
 #define SP_IS_OBJECTGROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_OBJECTGROUP))
 #define SP_IS_OBJECTGROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_OBJECTGROUP))
 
-struct SPObjectGroup : public SPObject {
-};
+class SPObjectGroup : public SPObject {
+public:
+    static GType sp_objectgroup_get_type(void);
+
+private:
+    static void init(SPObjectGroup *objectgroup);
 
-struct SPObjectGroupClass {
-       SPObjectClass parent_class;
+    static void childAdded(SPObject * object, Inkscape::XML::Node * child, Inkscape::XML::Node * ref);
+    static void removeChild(SPObject * object, Inkscape::XML::Node * child);
+    static void orderChanged(SPObject * object, Inkscape::XML::Node * child, Inkscape::XML::Node * old_ref, Inkscape::XML::Node * new_ref);
+    static Inkscape::XML::Node *write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags);
+
+    friend class SPObjectGroupClass;   
 };
 
-GType sp_objectgroup_get_type (void);
+class SPObjectGroupClass {
+public:
+    SPObjectClass parent_class;
+
+private:
+    static void sp_objectgroup_class_init(SPObjectGroupClass *klass);
+    static SPObjectClass *static_parent_class;
 
-#endif
+    friend class SPObjectGroup;        
+};
+
+#endif // SEEN_SP_OBJECTGROUP_H
+/*
+  Local Variables:
+  mode:c++
+  c-file-style:"stroustrup"
+  c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+  indent-tabs-mode:nil
+  fill-column:99
+  End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :