class ModuleBase_ISelection
{
public:
+ /// Types of the selection place, where the selection is obtained
+ enum SelectionPlace { Browser, Viewer, AllControls };
/// Returns a list of viewer selected presentations
/// \return list of presentations
- virtual QList<ModuleBase_ViewerPrs> getSelected() const = 0;
+ virtual QList<ModuleBase_ViewerPrs> getSelected(const SelectionPlace& thePlace = Browser) const = 0;
+
+ /// The values are appended to the first parameter list if the first list does not contain an item
+ /// with the same object
+ /// \param theValues a list of new values
+ /// \param theValuesTo a list, that will be changed
+ static void appendSelected(const QList<ModuleBase_ViewerPrs> theValues,
+ QList<ModuleBase_ViewerPrs>& theValuesTo);
/// Returns a list of viewer highlited presentations
/// \return list of presentations
*/
virtual QObjectPtrList selectedObjects() const = 0;
+ virtual void setSelectedObjects( const QObjectPtrList& ) const = 0;
+
/**
* Returns list of currently selected results
*/
//! \return a shape
MODULEBASE_EXPORT GeomShapePtr getShape(const ModuleBase_ViewerPrs& thePrs);
+ //! Return the IO from the viewer presentation.
+ //! \param thePrs a selected object
+ //! \return an interactive object
+ virtual MODULEBASE_EXPORT Handle(AIS_InteractiveObject) getIO(const ModuleBase_ViewerPrs& thePrs) = 0;
+
//! Wraps the object list into the viewer prs list
//! \param theObjects a list of objects
//! \return a list of prs, where only object is not empty