Salome HOME
Issue #189: Close document on study close.
[modules/shaper.git] / src / NewGeom / NewGeom_SalomeViewer.h
1
2 #ifndef NewGeom_SalomeViewer_H
3 #define NewGeom_SalomeViewer_H
4
5 #include "NewGeom.h"
6
7 #include <ModuleBase_IViewer.h>
8
9 class SUIT_ViewWindow;
10 class QMouseEvent;
11 class QKeyEvent;
12
13 class NewGeom_OCCSelector;
14
15 class NewGeom_SalomeViewer : public ModuleBase_IViewer
16 {
17 Q_OBJECT
18  public:
19   NewGeom_SalomeViewer(QObject* theParent);
20
21   //! Returns AIS_InteractiveContext from current OCCViewer
22   virtual Handle(AIS_InteractiveContext) AISContext() const;
23
24   //! Retrurns V3d_Vioewer from current viewer
25   virtual Handle(V3d_Viewer) v3dViewer() const;
26
27   //! Returns Vsd_View object from currently active view window
28   virtual Handle(V3d_View) activeView() const;
29
30   //! Enable or disable selection in the viewer
31   virtual void enableSelection(bool isEnabled);
32
33   //! Returns true if selection is enabled
34   virtual bool isSelectionEnabled() const;
35
36   //! Enable or disable multiselection in the viewer
37   virtual void enableMultiselection(bool isEnable);
38
39   //! Returns true if multiselection is enabled
40   virtual bool isMultiSelectionEnabled() const;
41
42   //! Perfroms the fit all for the active view
43   virtual void fitAll();
44
45   //! Sets the view projection
46   /// \param theX the X projection value
47   /// \param theY the Y projection value
48   /// \param theZ the Z projection value
49   virtual void setViewProjection(double theX, double theY, double theZ);
50
51   void setSelector(NewGeom_OCCSelector* theSel);
52
53   NewGeom_OCCSelector* selector() const
54   {
55     return mySelector;
56   }
57
58  private slots:
59   void onMousePress(SUIT_ViewWindow*, QMouseEvent*);
60   void onMouseRelease(SUIT_ViewWindow*, QMouseEvent*);
61   void onMouseDoubleClick(SUIT_ViewWindow*, QMouseEvent*);
62   void onMouseMove(SUIT_ViewWindow*, QMouseEvent*);
63   void onKeyPress(SUIT_ViewWindow*, QKeyEvent*);
64   void onKeyRelease(SUIT_ViewWindow*, QKeyEvent*);
65
66  private:
67   NewGeom_OCCSelector* mySelector;
68
69 };
70
71 #endif