Frapper  1.0a
AbstractParameter.h
Go to the documentation of this file.
1 /*
2 -----------------------------------------------------------------------------
3 This source file is part of FRAPPER
4 research.animationsinstitut.de
5 sourceforge.net/projects/frapper
6 
7 Copyright (c) 2008-2009 Filmakademie Baden-Wuerttemberg, Institute of Animation
8 
9 This program is free software; you can redistribute it and/or modify it under
10 the terms of the GNU Lesser General Public License as published by the Free Software
11 Foundation; version 2.1 of the License.
12 
13 This program is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
16 
17 You should have received a copy of the GNU Lesser General Public License along with
18 this program; if not, write to the Free Software Foundation, Inc., 59 Temple
19 Place - Suite 330, Boston, MA 02111-1307, USA, or go to
20 http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
21 -----------------------------------------------------------------------------
22 */
23 
34 
35 #ifndef ABSTRACTPARAMETER_H
36 #define ABSTRACTPARAMETER_H
37 
38 #include "FrapperPrerequisites.h"
39 #include <QtCore/QObject>
40 #include <QtCore/QHash>
41 #include <QtCore/QList>
42 #include <QtCore/QString>
43 
44 
45 namespace Frapper {
46 
47 //
48 // Forward Declarations
49 //
50 class Node;
51 
52 
56 class FRAPPER_CORE_EXPORT AbstractParameter : public QObject
57 {
58 
59  Q_OBJECT
60 
61 public: // type definitions
62 
66  typedef QHash<QString, AbstractParameter *> Map;
67 
71  typedef QList<AbstractParameter *> List;
72 
73 public: // constructors and destructors
74 
80  AbstractParameter ( const QString &name );
81 
87  AbstractParameter ( const AbstractParameter &parameter );
88 
92  virtual ~AbstractParameter ();
93 
94 public: // functions
95 
101  QString getName () const;
102 
109  bool isEnabled () const;
110 
117  virtual void setEnabled ( bool enabled, bool propagate = true );
118 
124  virtual void setName ( const QString &name );
125 
131  Node * getNode () const;
132 
138  virtual void setNode ( Node *node );
139 
145  virtual AbstractParameter * clone () = 0;
146 
153  virtual bool isGroup () const = 0;
154 
159  virtual void reset () = 0;
160 
161 signals: // signals
162 
166  void enabledChanged ();
167 
168 
169 protected: // data
170 
174  QString m_name;
175 
180  bool m_enabled;
181 
187 };
188 
189 } // end namespace Frapper
190 
191 #endif