Salome HOME
refs #30 - Sketch base GUI: create, draw lines
[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 signals:
45   void lastViewClosed();
46   void tryCloseView();
47   void deleteView();
48   void viewCreated();
49   void mousePress(QMouseEvent* theEvent);
50   void mouseRelease(QMouseEvent* theEvent);
51   void mouseDoubleClick(QMouseEvent* theEvent);
52   void mouseMove(QMouseEvent* theEvent);
53   void keyPress(QKeyEvent* theEvent);
54   void keyRelease(QKeyEvent* theEvent);
55   void activated();
56
57 };
58
59 #endif