1 /****************************************************************************
2 ** $Id: rs_patternlist.h 1915 2004-09-20 12:08:35Z andrew $
4 ** Copyright (C) 2001-2003 RibbonSoft. All rights reserved.
6 ** This file is part of the qcadlib Library project.
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.
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.
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.
20 ** See http://www.ribbonsoft.com for further details.
22 ** Contact info@ribbonsoft.com if any conditions of this licensing are
25 **********************************************************************/
27 #ifndef RS_PATTERNLIST_H
28 #define RS_PATTERNLIST_H
31 #include "rs_pattern.h"
32 #include "rs_entity.h"
34 #define RS_PATTERNLIST RS_PatternList::instance()
37 * The global list of patterns. This is implemented as a singleton.
38 * Use RS_PatternList::instance() to get a pointer to the object.
40 * @author Andrew Mustun
48 virtual ~RS_PatternList();
50 static RS_PatternList * instance();
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);
60 friend std::ostream & operator<<(std::ostream & os, RS_PatternList & l);
63 static RS_PatternList * uniqueInstance;
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;