Salome HOME
Bugfixes for focus processing in the property panel
[modules/shaper.git] / src / ModuleBase / ModuleBase_PageBase.h
1 /*
2  * ModuleBase_PageBase.h
3  *
4  *  Created on: Mar 4, 2015
5  *      Author: sbh
6  */
7
8 #ifndef MODULEBASE_PAGEBASE_H_
9 #define MODULEBASE_PAGEBASE_H_
10
11 #include <ModuleBase.h>
12 #include <ModuleBase_Tools.h>
13
14 class ModuleBase_ModelWidget;
15 class QLayout;
16 class QWidget;
17
18 /*!
19  * Represent a property panel's list of ModuleBase_ModelWidgets.
20  */
21 class MODULEBASE_EXPORT ModuleBase_PageBase
22 {
23  public:
24   ModuleBase_PageBase();
25   virtual ~ModuleBase_PageBase();
26   QWidget* pageWidget();
27
28   void addModelWidget(ModuleBase_ModelWidget* theWidget);
29   void addPageWidget(ModuleBase_PageBase* theWidget);
30
31   void clearPage();
32   bool takeFocus();
33   QList<ModuleBase_ModelWidget*> modelWidgets();
34   void alignToTop();
35
36  protected:
37   virtual void placeModelWidget(ModuleBase_ModelWidget* theWidget) = 0;
38   virtual void placePageWidget(ModuleBase_PageBase* theWidget) = 0;
39   virtual QLayout* pageLayout() = 0;
40   virtual void addPageStretch() = 0;
41
42  private:
43   QList<ModuleBase_ModelWidget*> myWidgetList;
44
45 };
46
47 #endif /* MODULEBASE_PAGEBASE_H_ */