Salome HOME
Merge branch 'master' of newgeom:newgeom
[modules/shaper.git] / src / ModuleBase / ModuleBase_WidgetFactory.h
1 /*
2  * ModuleBase_WidgetFactory.h
3  *
4  *  Created on: Apr 3, 2014
5  *      Author: sbh
6  */
7
8 #ifndef ModuleBase_WidgetFactory_H_
9 #define ModuleBase_WidgetFactory_H_
10
11 #include "ModuleBase.h"
12 #include "ModuleBase_ModelWidget.h"
13
14 #include <QString>
15 #include <QList>
16
17 class QObject;
18 class QWidget;
19 class Config_WidgetAPI;
20 class ModuleBase_Operation;
21 class ModuleBase_IWorkshop;
22
23 class MODULEBASE_EXPORT ModuleBase_WidgetFactory
24 {
25 public:
26   ModuleBase_WidgetFactory(ModuleBase_Operation* theOperation, ModuleBase_IWorkshop* theWorkshop);
27   virtual ~ModuleBase_WidgetFactory();
28
29   void createWidget(QWidget* theParent);
30
31   QList<ModuleBase_ModelWidget*> getModelWidgets() const
32   {
33     return myModelWidgets;
34   }
35
36 protected:
37   //Widgets
38   QWidget* createWidgetByType(const std::string& theType, QWidget* theParent = NULL);
39   QWidget* labelControl(QWidget* theParent);
40   QWidget* doubleSpinBoxControl(QWidget* theParent);
41   QWidget* pointSelectorControl(QWidget* theParent);
42   QWidget* createContainer(const std::string& theType, QWidget* theParent = NULL);
43   QWidget* selectorControl(QWidget* theParent);
44   QWidget* booleanControl(QWidget* theParent);
45
46   bool connectWidget(QObject*, const QString&);
47   QString qs(const std::string& theStdString) const;
48
49 private:
50   Config_WidgetAPI* myWidgetApi;
51   ModuleBase_Operation*   myOperation;
52   ModuleBase_IWorkshop*   myWorkshop;
53
54   QList<ModuleBase_ModelWidget*> myModelWidgets;
55 };
56
57 #endif /* ModuleBase_WidgetFactory_H_ */