+ /// Fills given container with selection modes if the widget has it
+ /// \param [out] theModuleSelectionModes module additional modes, -1 means all default modes
+ /// \param [out] theModes a container of modes
+ virtual void selectionModes(int& theModuleSelectionModes, QIntList& theModes);
+
+ /// Appends into container of workshop selection filters
+ /// \param [out] theModuleSelectionFilters module additional modes, -1 means all default modes
+ /// \param [out] theSelectionFilters selection filters
+ virtual void selectionFilters(QIntList& theModuleSelectionFilters,
+ SelectMgr_ListOfFilter& theSelectionFilters);
+
+ /// Returns true, if default value of the widget should be computed
+ /// on operation's execute, like radius for circle's constraint (can not be zero)
+ bool isComputedDefault() const { return myIsComputedDefault; }
+
+ /// Returns true, if default value of the widget is defined in the XML and it is not the
+ /// computed value
+ /// \return the boolean result
+ std::string getDefaultValue() const { return myDefaultValue; }
+
+ /// Returns true, if widget is internal
+ /// \return the boolean result
+ bool isInternal() const { return myIsInternal; }
+
+ /// Returns true, if the obligatory value of the widget is
+ /// not defined in the XML or has true value
+ /// \return the boolean result
+ bool isObligatory() const { return myIsObligatory; }
+
+ /// Returns true, if the widget value is enabled and might be modified manualy.
+ /// It returns false if the application preferences allow having disabled value
+ /// and the internal state tells to disable
+ /// \return the boolean result
+ virtual bool isValueEnabled() const;
+
+ /// Returns this parameter value in the xml file
+ /// \return the boolean result
+ bool isUseReset() const { return myUseReset; }
+
+ /// Returns this parameter value in the xml file
+ /// \return the boolean result
+ std::string isModifiedInEdit() const { return myIsModifiedInEdit; }
+
+ /// Returns this widget value state
+ /// \return the enumeration result
+ ValueState getValueState() const { return myState; }
+
+ /// Stores the widget value if it is modified
+ void processValueState();
+
+ /// Returns an attribute error according to the value state
+ /// It exists in all cases excepring the "Store" case
+ Events_InfoMessage getValueStateError() const;
+
+ /// Defines if it is supposed that the widget should interact with the viewer.
+ virtual bool isViewerSelector() { return false; }
+
+ /// Defines if it is supported to set the value in this widget
+ /// By default it returns true
+ virtual bool canAcceptFocus() const { return true; };
+
+ //! Returns the widget error, get it from the attribute validator and state of the widget
+ //! If the feature is correct, it returns an empty value
+ //! \param theValueStateChecked the boolean flag if the state of the widget should be checked
+ //! \return string value
+ QString getError(const bool theValueStateChecked = true) const;
+
+ /// Set the given wrapped value to the current widget
+ /// This value should be processed in the widget according to the needs
+ /// \param theValues the wrapped selection values
+ /// \param theToValidate the boolean value whether the value should be checked by filters
+ virtual bool setSelection(QList<std::shared_ptr<ModuleBase_ViewerPrs>>& theValues,
+ const bool theToValidate)