Code

Merge and cleanup of GSoC C++-ification project.
[inkscape.git] / src / sp-object-group.h
1 #ifndef SEEN_SP_OBJECTGROUP_H
2 #define SEEN_SP_OBJECTGROUP_H
4 /*
5  * Abstract base class for non-item groups
6  *
7  * Author:
8  *   Lauris Kaplinski <lauris@kaplinski.com>
9  *   Abhishek Sharma
10  *
11  * Copyright (C) 1999-2003 Authors
12  * Copyright (C) 2001-2002 Ximian, Inc.
13  *
14  * Released under GNU GPL, read the file 'COPYING' for more information
15  */
17 #include "sp-object.h"
19 #define SP_TYPE_OBJECTGROUP (SPObjectGroup::sp_objectgroup_get_type ())
20 #define SP_OBJECTGROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_OBJECTGROUP, SPObjectGroup))
21 #define SP_OBJECTGROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_OBJECTGROUP, SPObjectGroupClass))
22 #define SP_IS_OBJECTGROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_OBJECTGROUP))
23 #define SP_IS_OBJECTGROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_OBJECTGROUP))
25 class SPObjectGroup : public SPObject {
26 public:
27     static GType sp_objectgroup_get_type(void);
29 private:
30     static void init(SPObjectGroup *objectgroup);
32     static void childAdded(SPObject * object, Inkscape::XML::Node * child, Inkscape::XML::Node * ref);
33     static void removeChild(SPObject * object, Inkscape::XML::Node * child);
34     static void orderChanged(SPObject * object, Inkscape::XML::Node * child, Inkscape::XML::Node * old_ref, Inkscape::XML::Node * new_ref);
35     static Inkscape::XML::Node *write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags);
37     friend class SPObjectGroupClass;    
38 };
40 class SPObjectGroupClass {
41 public:
42     SPObjectClass parent_class;
44 private:
45     static void sp_objectgroup_class_init(SPObjectGroupClass *klass);
46     static SPObjectClass *static_parent_class;
48     friend class SPObjectGroup; 
49 };
51 #endif // SEEN_SP_OBJECTGROUP_H
52 /*
53   Local Variables:
54   mode:c++
55   c-file-style:"stroustrup"
56   c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
57   indent-tabs-mode:nil
58   fill-column:99
59   End:
60 */
61 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :