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