]> Shamusworld >> Repos - architektonas/blob - src/base/rs_patternlist.h
734d2669c7ddf1a2c504c59845fa17ee6dae50dd
[architektonas] / src / base / rs_patternlist.h
1 /****************************************************************************
2 ** $Id: rs_patternlist.h 1915 2004-09-20 12:08:35Z andrew $
3 **
4 ** Copyright (C) 2001-2003 RibbonSoft. All rights reserved.
5 **
6 ** This file is part of the qcadlib Library project.
7 **
8 ** This file may be distributed and/or modified under the terms of the
9 ** GNU General Public License version 2 as published by the Free Software
10 ** Foundation and appearing in the file LICENSE.GPL included in the
11 ** packaging of this file.
12 **
13 ** Licensees holding valid qcadlib Professional Edition licenses may use
14 ** this file in accordance with the qcadlib Commercial License
15 ** Agreement provided with the Software.
16 **
17 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
18 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
19 **
20 ** See http://www.ribbonsoft.com for further details.
21 **
22 ** Contact info@ribbonsoft.com if any conditions of this licensing are
23 ** not clear to you.
24 **
25 **********************************************************************/
26
27 #ifndef RS_PATTERNLIST_H
28 #define RS_PATTERNLIST_H
29
30 #include <QtCore>
31 #include "rs_pattern.h"
32 #include "rs_entity.h"
33
34 #define RS_PATTERNLIST RS_PatternList::instance()
35
36 /**
37  * The global list of patterns. This is implemented as a singleton.
38  * Use RS_PatternList::instance() to get a pointer to the object.
39  *
40  * @author Andrew Mustun
41  */
42 class RS_PatternList
43 {
44         protected:
45                 RS_PatternList();
46
47         public:
48                 virtual ~RS_PatternList();
49
50                 static RS_PatternList * instance();
51                 void init();
52                 void clearPatterns();
53                 int countPatterns();
54                 virtual void removePattern(RS_Pattern * pattern);
55                 RS_Pattern * requestPattern(const QString & name);
56                 RS_Pattern * firstPattern();
57                 RS_Pattern * nextPattern();
58                 bool contains(const QString & name);
59
60                 friend std::ostream & operator<<(std::ostream & os, RS_PatternList & l);
61
62         protected:
63                 static RS_PatternList * uniqueInstance;
64
65         private:
66                 //! patterns in the graphic
67         //    Q3PtrList<RS_Pattern> patterns;
68                 QList<RS_Pattern *> patterns;
69                 QListIterator<RS_Pattern *> patternIterator;
70                 //! List of registered PatternListListeners
71                 //Q3PtrList<RS_PatternListListener> patternListListeners;
72 };
73
74 #endif