Salome HOME
Merge branch 'Dev_1.1.0' of newgeom:newgeom into Dev_1.1.0
[modules/shaper.git] / src / ModuleBase / ModuleBase_PagedContainer.h
1 /*
2  * ModuleBase_PagedContainer.h
3  *
4  *  Created on: Mar 13, 2015
5  *      Author: sbh
6  */
7
8 #ifndef MODULEBASE_PAGEDCONTAINER_H_
9 #define MODULEBASE_PAGEDCONTAINER_H_
10
11 #include <ModuleBase.h>
12 #include <ModuleBase_ModelWidget.h>
13
14 class ModuleBase_PageBase;
15
16 class MODULEBASE_EXPORT ModuleBase_PagedContainer : public ModuleBase_ModelWidget
17 {
18   Q_OBJECT
19  public:
20   ModuleBase_PagedContainer(QWidget* theParent, const Config_WidgetAPI* theData,
21                            const std::string& theParentId);
22   virtual ~ModuleBase_PagedContainer();
23
24   virtual int addPage(ModuleBase_PageBase* theWidget,
25                       const QString& theName, const QString& theCaseId);
26   // ModuleBase_ModelWidget
27   virtual QList<QWidget*> getControls() const;
28   virtual bool focusTo();
29   virtual void setHighlighted(bool isHighlighted);
30   virtual void enableFocusProcessing();
31   virtual bool restoreValue();
32
33  protected:
34   virtual int currentPageIndex() const = 0;
35   virtual void setCurrentPageIndex(int ) = 0;
36   // ModuleBase_ModelWidget
37   virtual void activateCustom();
38   virtual bool storeValueCustom() const;
39
40  protected slots:
41   void onPageChanged();
42
43  private:
44   bool myIsFocusOnCurrentPage;
45   QStringList myCaseIds;
46   QList<ModuleBase_PageBase*> myPages;
47
48 };
49
50 #endif /* MODULEBASE_PAGEDCONTAINER_H_ */