1
#ifndef __SP_ITEM_GROUP_H__
2
#define __SP_ITEM_GROUP_H__
5
* SVG <g> implementation
8
* Lauris Kaplinski <lauris@kaplinski.com>
10
* Copyright (C) 1999-2002 authors
11
* Copyright (C) 2000-2001 Ximian, Inc.
13
* Released under GNU GPL, read the file 'COPYING' for more information
19
#define SP_TYPE_GROUP (sp_group_get_type ())
20
#define SP_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_GROUP, SPGroup))
21
#define SP_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_GROUP, SPGroupClass))
22
#define SP_IS_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_GROUP))
23
#define SP_IS_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_GROUP))
25
struct SPGroup : public SPItem {
26
enum LayerMode { GROUP, LAYER };
28
LayerMode _layer_mode;
29
std::map<unsigned int, LayerMode> _display_modes;
31
LayerMode layerMode() const { return _layer_mode; }
32
void setLayerMode(LayerMode mode);
34
LayerMode effectiveLayerMode(unsigned int display_key) const {
35
if ( _layer_mode == LAYER ) {
38
return layerDisplayMode(display_key);
42
LayerMode layerDisplayMode(unsigned int display_key) const;
43
void setLayerDisplayMode(unsigned int display_key, LayerMode mode);
46
void _updateLayerMode(unsigned int display_key=0);
50
SPItemClass parent_class;
53
GType sp_group_get_type (void);
55
void sp_item_group_ungroup (SPGroup *group, GSList **children, bool do_done = true);
58
GSList *sp_item_group_item_list (SPGroup *group);
59
SPObject *sp_item_group_get_child_by_name (SPGroup *group, SPObject *ref, const gchar *name);