Salome HOME
Merge branch 'master' of newgeom:newgeom.git
[modules/shaper.git] / src / ModuleBase / ModuleBase_IWorkshop.h
1 // File:        ModuleBase_IWorkshop.h
2 // Created:     2 June 2014
3 // Author:      Vitaly Smetannikov
4
5 #ifndef ModuleBase_IWorkshop_H
6 #define ModuleBase_IWorkshop_H
7
8 #include "ModuleBase.h"
9
10 #include <ModelAPI_Object.h>
11
12 #include <AIS_InteractiveContext.hxx>
13
14 #include <QObject>
15
16 class ModuleBase_IModule;
17
18 /**
19 * Class which provides access to Workshop object serveces
20 */
21 class MODULEBASE_EXPORT ModuleBase_IWorkshop: public QObject
22 {
23 Q_OBJECT
24 public:
25   ModuleBase_IWorkshop(QObject* theParent):QObject(theParent) {}
26
27   virtual ~ModuleBase_IWorkshop() {};
28
29   //! Returns AIS_InteractiveContext from current OCCViewer
30   virtual Handle(AIS_InteractiveContext) AISContext() const = 0;
31
32   //! Returns list of currently selected data objects
33   virtual QList<ObjectPtr> selectedObjects() const = 0; 
34
35   //! Returns instance of loaded module
36   virtual ModuleBase_IModule* module() const = 0;
37
38 signals:
39   void selectionChanged();
40 };
41
42 #endif