Salome HOME
Merge branch 'master' of newgeom:newgeom
[modules/shaper.git] / src / ModuleBase / ModuleBase_WidgetCustom.h
1 // File:        ModuleBase_WidgetCustom.h
2 // Created:     25 Apr 2014
3 // Author:      Natalia ERMOLAEVA
4
5 #ifndef ModuleBase_WidgetCustom_H
6 #define ModuleBase_WidgetCustom_H
7
8 #include <ModuleBase.h>
9
10 #include <QObject>
11
12 #include <boost/shared_ptr.hpp>
13
14 class ModelAPI_Feature;
15
16 /**\class ModuleBase_WidgetCustom
17  * \ingroup GUI
18  * \brief An abstract custom widget class. This class realization is assumed to create some controls.
19  * The controls values modification should send signal about values change. Method store is used to fill
20  * the feature with the 
21  */
22 class MODULEBASE_EXPORT ModuleBase_WidgetCustom : public QObject
23 {
24   Q_OBJECT
25 public:
26   /// Constructor
27   /// \theParent the parent object
28   ModuleBase_WidgetCustom(QObject* theParent) :QObject(theParent) {};
29   /// Destructor
30   virtual ~ModuleBase_WidgetCustom() {};
31
32   /// Saves the internal parameters to the given feature
33   /// \param theFeature a model feature to be changed
34   virtual void store(boost::shared_ptr<ModelAPI_Feature> theFeature) = 0;
35
36 signals:
37   /// The signal about widget values changed
38   void valuesChanged();
39 };
40
41 #endif