Salome HOME
refs #836: the icons of extrusion options with size 32x32
[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,
26                        const QString& theCaseId,
27                        const QPixmap& theIcon );
28
29   // ModuleBase_ModelWidget
30   virtual QList<QWidget*> getControls() const;
31   virtual bool focusTo();
32   virtual void setHighlighted(bool isHighlighted);
33   virtual void enableFocusProcessing();
34
35  protected:
36   virtual int currentPageIndex() const = 0;
37   virtual void setCurrentPageIndex(int ) = 0;
38   // ModuleBase_ModelWidget
39   virtual void activateCustom();
40   virtual bool storeValueCustom() const;
41   virtual bool restoreValueCustom();
42
43  protected slots:
44   void onPageChanged();
45
46  private:
47   bool myIsFocusOnCurrentPage;
48   QStringList myCaseIds;
49   QList<ModuleBase_PageBase*> myPages;
50
51 };
52
53 #endif /* MODULEBASE_PAGEDCONTAINER_H_ */