Salome HOME
Constriction type for all sketch entities
[modules/shaper.git] / src / ModuleBase / ModuleBase_WidgetShapeSelector.h
index 755714ffdfdd04fcc509a5bc8914eba30a00d8e6..98a1e4c34c02c35e8e5aee81ef10e0feb989a7d7 100644 (file)
@@ -15,6 +15,7 @@
 #include <GeomAPI_Shape.h>
 
 #include <TopAbs_ShapeEnum.hxx>
+#include <SelectMgr_ListOfFilter.hxx>
 
 #include <QStringList>
 
@@ -26,6 +27,7 @@ class QToolButton;
 class ModuleBase_IWorkshop;
 
 /**
+* \ingroup GUI
 * Implementation of widget for shapes selection.
 * This type of widget can be defined in XML file with 'shape_selector' keyword.
 * For example:
@@ -70,17 +72,10 @@ Q_OBJECT
 
   virtual ~ModuleBase_WidgetShapeSelector();
 
-  /// Saves the internal parameters to the given feature
-  virtual bool storeValue() const;
-
   virtual bool restoreValue();
 
-  /// Returns the internal parent wiget control, that can be shown anywhere
-  /// \returns the widget
-  QWidget* getControl() const
-  {
-    return myContainer;
-  }
+  /// Defines if it is supposed that the widget should interact with the viewer.
+  virtual bool isViewerSelector() { return true; }
 
   /// Returns list of widget controls
   /// \return a control list
@@ -98,9 +93,6 @@ Q_OBJECT
   virtual bool setSelection(ModuleBase_ViewerPrs theValue);
 
 
-  /// The methiod called when widget is activated
-  virtual void activate();
-
   /// The methiod called when widget is deactivated
   virtual void deactivate();
 
@@ -115,7 +107,14 @@ Q_OBJECT
   void onSelectionChanged();
 
  protected:
-   /// Computes and updates name of selected object in the widget
+  /// Saves the internal parameters to the given feature
+  /// \return True in success
+  virtual bool storeValueCustom() const;
+
+  /// The methiod called when widget is activated
+  virtual void activateCustom();
+
+  /// Computes and updates name of selected object in the widget
   void updateSelectionName();
 
   /// Raise panel which contains this widget
@@ -144,12 +143,14 @@ Q_OBJECT
   /// Clear attribute
   void clearAttribute();
 
+  /// Fills the given list with all widget filters. It can be used by activation widget for the viewer
+  /// or by checking the selection parameter in addition to check validity of the selection argument
+  /// It creates an object type filter if it has not been created yet and save it in the class field
+  /// \param theFilters a list of filter
+  void selectionFilters(SelectMgr_ListOfFilter& theFilters);
+
   //----------- Class members -------------
  protected:
-
-   /// Container of the widget's control
-  QWidget* myContainer;
-
   /// Label of the widget
   QLabel* myLabel;