Salome HOME
Issue #127: Create processing of events only in Workshop
[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)
26       : QObject(theParent)
27   {
28   }
29
30   virtual ~ModuleBase_IWorkshop()
31   {
32   }
33   ;
34
35   //! Returns AIS_InteractiveContext from current OCCViewer
36   virtual Handle(AIS_InteractiveContext) AISContext() const = 0;
37
38   //! Returns list of currently selected data objects
39   virtual QList<ObjectPtr> selectedObjects() const = 0;
40
41   //! Returns instance of loaded module
42   virtual ModuleBase_IModule* module() const = 0;
43
44 signals:
45   void selectionChanged();
46 };
47
48 #endif