Salome HOME
Merge branch 'master' into Dev_1.1.0
[modules/shaper.git] / src / ModuleBase / ModuleBase_PageWidget.h
1 /*
2  * ModuleBase_PageWidget.h
3  *
4  *  Created on: Mar 4, 2015
5  *      Author: sbh
6  */
7
8 #ifndef MODULEBASE_PAGEWIDGET_H_
9 #define MODULEBASE_PAGEWIDGET_H_
10
11 #include <ModuleBase.h>
12 #include <ModuleBase_PageBase.h>
13
14 #include <QFrame>
15 #include <QList>
16
17 class ModuleBase_ModelWidget;
18 class QGridLayout;
19
20 /*!
21  * Represent a property panel's list of ModuleBase_ModelWidgets.
22  */
23 class MODULEBASE_EXPORT ModuleBase_PageWidget : public QFrame, public ModuleBase_PageBase
24 {
25   Q_OBJECT
26  public:
27   /// Constructs a page that looks like a QFrame
28   explicit ModuleBase_PageWidget(QWidget* theParent = 0);
29   /// Destructs the page
30   virtual ~ModuleBase_PageWidget();
31
32  protected:
33   /// Adds the given widget to page's layout
34   virtual void placeModelWidget(ModuleBase_ModelWidget* theWidget);
35   /// Adds the given page to page's layout
36   virtual void placePageWidget(ModuleBase_PageBase* theWidget);
37   /// Returns page's layout (QGridLayout)
38   virtual QLayout* pageLayout();
39   /// Adds a stretch to page's layout
40   virtual void addPageStretch();
41
42  private:
43   QGridLayout* myMainLayout; ///< page's layout
44 };
45
46 #endif /* MODULEBASE_PAGEWIDGET_H_ */