]> Shamusworld >> Repos - architektonas/blob - src/base/rs_layerlist.h
0dcdfbda7616901d6707aeca3bf6317253e4aab0
[architektonas] / src / base / rs_layerlist.h
1 #ifndef RS_LAYERLIST_H
2 #define RS_LAYERLIST_H
3
4 #include <iostream>
5 #include <QtCore>
6
7 class RS_Layer;
8 //class RS_LayerListListener;
9
10 /**
11  * A list of layers.
12  *
13  * @author Andrew Mustun
14  */
15 class RS_LayerList
16 {
17         public:
18                 RS_LayerList();
19                 virtual ~RS_LayerList();
20
21                 void clear();
22                 uint count() const;
23                 RS_Layer * at(uint i);
24                 void activate(const QString & name, bool notify = false);
25                 void activate(RS_Layer * layer, bool notify = false);
26                 RS_Layer * getActive();
27                 virtual void add(RS_Layer * layer);
28                 virtual void remove(RS_Layer * layer);
29                 virtual void edit(RS_Layer * layer, const RS_Layer & source);
30                 RS_Layer * find(const QString & name);
31                 int getIndex(const QString & name);
32                 int getIndex(RS_Layer * layer);
33                 void toggle(const QString & name);
34                 void toggle(RS_Layer * layer);
35                 void toggleLock(RS_Layer * layer);
36                 void freezeAll(bool freeze);
37 //              void addListener(RS_LayerListListener * listener);
38 //              void removeListener(RS_LayerListListener * listener);
39                 void setModified(bool m);
40                 virtual bool isModified() const;
41
42                 friend std::ostream & operator<<(std::ostream & os, RS_LayerList & l);
43
44         private:
45                 //! layers in the graphic
46                 QList<RS_Layer *> layers;
47                 //! List of registered LayerListListeners
48 //              QList<RS_LayerListListener *> layerListListeners;
49                 //! Currently active layer
50                 RS_Layer * activeLayer;
51                 /** Flag set if the layer list was modified and not yet saved. */
52                 bool modified;
53 };
54
55 #endif