]> SALOME platform Git repositories - modules/shaper.git/blob - src/ModuleBase/ModuleBase_PageBase.h
Salome HOME
Property pannel refactoring: focus processing in paged widgets
[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
27   void addModelWidget(ModuleBase_ModelWidget* theWidget);
28   void addPageWidget(ModuleBase_PageBase* theWidget);
29
30   void clearPage();
31   void takeFocus();
32   QList<ModuleBase_ModelWidget*> modelWidgets();
33
34  protected:
35   virtual void placeModelWidget(ModuleBase_ModelWidget* theWidget) = 0;
36   virtual void placePageWidget(ModuleBase_PageBase* theWidget) = 0;
37   virtual QLayout* pageLayout() = 0;
38
39  private:
40   QList<ModuleBase_ModelWidget*> myWidgetList;
41
42 };
43
44 #endif /* MODULEBASE_PAGEBASE_H_ */