Salome HOME
Sources formated according to the codeing standards
[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 <XGUI_SalomeViewer.h>
8
9 class SUIT_ViewWindow;
10 class QMouseEvent;
11 class QKeyEvent;
12
13 class NewGeom_OCCSelector;
14
15 class NewGeom_SalomeViewer : public XGUI_SalomeViewer
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   void setSelector(NewGeom_OCCSelector* theSel);
46
47   NewGeom_OCCSelector* selector() const
48   {
49     return mySelector;
50   }
51
52  private slots:
53   void onMousePress(SUIT_ViewWindow*, QMouseEvent*);
54   void onMouseRelease(SUIT_ViewWindow*, QMouseEvent*);
55   void onMouseDoubleClick(SUIT_ViewWindow*, QMouseEvent*);
56   void onMouseMove(SUIT_ViewWindow*, QMouseEvent*);
57   void onKeyPress(SUIT_ViewWindow*, QKeyEvent*);
58   void onKeyRelease(SUIT_ViewWindow*, QKeyEvent*);
59
60  private:
61   NewGeom_OCCSelector* mySelector;
62
63 };
64
65 #endif