Salome HOME
Merge branch 'master' of newgeom:newgeom
[modules/shaper.git] / src / XGUI / XGUI_SalomeViewer.h
1 #ifndef XGUI_SALOMEVIEWER_H
2 #define XGUI_SALOMEVIEWER_H
3
4 #include "XGUI.h"
5
6 #include <QObject>
7 #include <AIS_InteractiveContext.hxx>
8 #include <V3d_View.hxx>
9
10 class QMouseEvent;
11 class QKeyEvent;
12
13 /**
14 * A Base object for definition of connector object to
15 * Salome Viewer. Reimplemented in NewGeom_SalomeViewer class
16 */
17 class XGUI_EXPORT XGUI_SalomeViewer: public QObject
18 {
19   Q_OBJECT
20 public:
21   XGUI_SalomeViewer(QObject* theParent):QObject(theParent) {}
22
23   //! Returns AIS_InteractiveContext from current OCCViewer
24   virtual Handle(AIS_InteractiveContext) AISContext() const = 0;
25
26   //! Retrurns V3d_Vioewer from current viewer
27   virtual Handle(V3d_Viewer) v3dViewer() const = 0;
28
29   //! Returns Vsd_View object from currently active view window
30   virtual Handle(V3d_View) activeView() const = 0;
31
32   //! Enable or disable selection in the viewer
33   virtual void enableSelection(bool isEnabled) = 0;
34
35   //! Returns true if selection is enabled
36   virtual bool isSelectionEnabled() const = 0;
37
38   //! Enable or disable multiselection in the viewer
39   virtual void enableMultiselection(bool isEnable) = 0;
40
41   //! Returns true if multiselection is enabled
42   virtual bool isMultiSelectionEnabled() const = 0;
43
44   //! Perfroms the fit all for the active view
45   virtual void fitAll() = 0;
46
47 signals:
48   void lastViewClosed();
49   void tryCloseView();
50   void deleteView();
51   void viewCreated();
52   void mousePress(QMouseEvent* theEvent);
53   void mouseRelease(QMouseEvent* theEvent);
54   void mouseDoubleClick(QMouseEvent* theEvent);
55   void mouseMove(QMouseEvent* theEvent);
56   void keyPress(QKeyEvent* theEvent);
57   void keyRelease(QKeyEvent* theEvent);
58   void activated();
59
60   void selectionChanged();
61 };
62
63 #endif