Salome HOME
Issue #1368: Creation of a Qt panel. Widget creator interface correction to manage...
[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  * \ingroup GUI
22  * Represent a property panel's list of ModuleBase_ModelWidgets.
23  */
24 class MODULEBASE_EXPORT ModuleBase_PageWidget : public QFrame, public ModuleBase_PageBase
25 {
26   Q_OBJECT
27  public:
28   /// Constructs a page that looks like a QFrame
29   explicit ModuleBase_PageWidget(QWidget* theParent = 0);
30   /// Destructs the page
31   virtual ~ModuleBase_PageWidget();
32
33  protected:
34   /// Adds the given widget to page's layout
35   virtual void placeModelWidget(ModuleBase_ModelWidget* theWidget);
36   /// Adds the given page to page's layout
37   virtual void placeWidget(QWidget* theWidget);
38   /// Returns page's layout (QGridLayout)
39   virtual QLayout* pageLayout();
40   /// Adds a stretch to page's layout
41   virtual void addPageStretch();
42
43  private:
44   QGridLayout* myMainLayout; ///< page's layout
45 };
46
47 #endif /* MODULEBASE_PAGEWIDGET_H_ */