Salome HOME
Spell-checking
[modules/shaper.git] / src / ModuleBase / ModuleBase_WidgetSwitch.h
index f7a442e41ad12b9cf8528b3dd80909b14f204a3f..fe89a0749366ca7db0f82a0cdc65ba4b4d212757 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 /*
  * ModuleBase_WidgetSwitch.h
  *
@@ -5,49 +7,50 @@
  *      Author: sbh
  */
 
-#ifndef ModuleBase_WidgetSwitch_H_
-#define ModuleBase_WidgetSwitch_H_
+#ifndef MODULEBASE_WIDGETSWITCH_H_
+#define MODULEBASE_WIDGETSWITCH_H_
 
 #include <ModuleBase.h>
-#include <QFrame>
+#include <ModuleBase_PagedContainer.h>
 
 class QComboBox;
-class QVBoxLayout;
+class QStackedLayout;
 
-class MODULEBASE_EXPORT ModuleBase_WidgetSwitch : public QFrame
+/**
+* \ingroup GUI
+* Implements a model widget for switch as a container widget. It can be defined in XML with "switch" keyword
+*/
+class MODULEBASE_EXPORT ModuleBase_WidgetSwitch : public ModuleBase_PagedContainer
 {
-Q_OBJECT
+  Q_OBJECT
  public:
-  ModuleBase_WidgetSwitch(QWidget* parent = NULL);
+   /// Constructor
+   /// \param parent a parent widget
+  ModuleBase_WidgetSwitch(QWidget* theParent,
+                          const Config_WidgetAPI* theData,
+                          const std::string& theParentId);
   virtual ~ModuleBase_WidgetSwitch();
 
-  int addPage(QWidget * theWidget, const QString & theName);
-  int count() const;
-  int currentIndex() const;
-  QWidget * currentWidget() const;
-  int indexOf(QWidget * theWidget) const;
-  int insertPage(int index, QWidget * theWidget, const QString & theName);
-  bool isPageEnabled(int index) const;
-  QString pageText(int index) const;
-  QString pageToolTip(int index) const;
-  void removePage(int index);
-  void setPageEnabled(int index, bool enabled);
-  void setPageName(int index, const QString & text);
-  void setPageToolTip(int index, const QString & toolTip);
-
- public slots:
-  void setCurrentIndex(int index);
-
-signals:
-  void currentPageChanged(int);
+  /// Defines if it is supported to set the value in this widget
+  /// It returns false because this is an info widget
+  virtual bool canSetValue() const { return false; };
+
+  /// Add a page to the widget
+  /// \param theWidget a page widget
+  /// \param theName a name of page
+  virtual int addPage(ModuleBase_PageBase* theWidget,
+                        const QString& theName, const QString& theCaseId);
 
  protected:
-  void refresh();
+  virtual int currentPageIndex() const;
+   /// Set current page by index
+  /// \param index index of the page
+  virtual void setCurrentPageIndex(int index);
 
  private:
-  QVBoxLayout* myMainLay;
+  /// Combo box
   QComboBox* myCombo;
-  QWidgetList myCases;
+  QStackedLayout* myPagesLayout;
 };
 
 #endif /* ModuleBase_WidgetSwitch_H_ */