Salome HOME
Merge branch 'Dev_0.6.1' of newgeom:newgeom into Dev_0.6.1
[modules/shaper.git] / src / XGUI / XGUI_SelectionMgr.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D -->
2
3 #ifndef XGUI_SelectionMgr_H
4 #define XGUI_SelectionMgr_H
5
6 #include "XGUI.h"
7 #include <ModuleBase_Definitions.h>
8 #include <QObject>
9 #include <QModelIndexList>
10
11 #include <AIS_ListOfInteractive.hxx>
12 #include <NCollection_List.hxx>
13 #include <TopoDS_Shape.hxx>
14 #include <SelectMgr_IndexedMapOfOwner.hxx>
15
16 class XGUI_Workshop;
17 class XGUI_ObjectsBrowser;
18 class XGUI_Selection;
19
20 /**\class XGUI_SelectionMgr
21  * \ingroup GUI
22  * \brief Selection manager. Provides selection event on selection in 
23  * Object Browser and Viewer
24  */
25 class XGUI_EXPORT XGUI_SelectionMgr : public QObject
26 {
27 Q_OBJECT
28  public:
29   XGUI_SelectionMgr(XGUI_Workshop* theParent);
30   virtual ~XGUI_SelectionMgr();
31
32   XGUI_Selection* selection() const
33   {
34     return mySelection;
35   }
36
37   //! Connects the manager to all viewers accessible by Workshop
38   void connectViewers();
39
40   //! Selects the owners in the context.
41   //! \param theSelectedOwners a container of owners
42   void setSelectedOwners(const SelectMgr_IndexedMapOfOwner& theSelectedOwners);
43
44 signals:
45   //! Emited when selection in a one of viewers was changed
46   void selectionChanged();
47
48  private slots:
49   void onObjectBrowserSelection();
50   void onViewerSelection();
51
52  private:
53   XGUI_Workshop* myWorkshop;
54   XGUI_Selection* mySelection;
55 };
56
57 #endif