Salome HOME
Merge branch 'master' of newgeom:newgeom
[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 <QObject>
13
14 class ModuleBase_IModule;
15 class ModuleBase_ISelection;
16 class ModuleBase_IViewer;
17 class ModuleBase_Operation;
18
19 /**
20  * Class which provides access to Workshop object serveces
21  */
22 class MODULEBASE_EXPORT ModuleBase_IWorkshop : public QObject
23 {
24 Q_OBJECT
25  public:
26   ModuleBase_IWorkshop(QObject* theParent)
27       : QObject(theParent)
28   {}
29
30   virtual ~ModuleBase_IWorkshop()
31   {}
32
33   virtual ModuleBase_ISelection* selection() const = 0;
34
35   //! Returns instance of loaded module
36   virtual ModuleBase_IModule* module() const = 0;
37
38   //! Returns current viewer
39   virtual ModuleBase_IViewer* viewer() const = 0;
40
41   //! Returns currently active operation
42   virtual ModuleBase_Operation* currentOperation() const = 0;
43
44 signals:
45   void selectionChanged();
46
47   void operationStarted(ModuleBase_Operation*);
48   void operationStopped(ModuleBase_Operation*);
49 };
50
51 #endif