1 #ifndef XGUI_VIEWERPROXY_H
2 #define XGUI_VIEWERPROXY_H
5 #include <ModuleBase_IViewer.h>
11 * Proxy class which repersents or XGUI_Viewer or Salome Viewer
12 * dependently on current launching environment.
13 * It is reccomennded to use this class in operation for accessing to viewer
14 * functionality instead of direct access to a viewer
16 class XGUI_EXPORT XGUI_ViewerProxy : public ModuleBase_IViewer
20 XGUI_ViewerProxy(XGUI_Workshop* theParent);
22 //! Returns AIS_InteractiveContext from current OCCViewer
23 virtual Handle(AIS_InteractiveContext) AISContext() const;
25 //! Retrurns V3d_Vioewer from current viewer
26 virtual Handle(V3d_Viewer) v3dViewer() const;
28 //! Returns Vsd_View object from currently active view window
29 virtual Handle(V3d_View) activeView() const;
31 //! Enable or disable selection in the viewer
32 virtual void enableSelection(bool isEnabled);
34 //! Returns true if selection is enabled
35 virtual bool isSelectionEnabled() const;
37 //! Enable or disable multiselection in the viewer
38 virtual void enableMultiselection(bool isEnable);
40 //! Returns true if multiselection is enabled
41 virtual bool isMultiSelectionEnabled() const;
43 //! Sets the view projection
44 /// \param theX the X projection value
45 /// \param theY the Y projection value
46 /// \param theZ the Z projection value
47 virtual void setViewProjection(double theX, double theY, double theZ);
49 //! Sets the view fitted all
50 virtual void fitAll();
52 /// Connects to a viewer according to current environment
53 void connectToViewer();
56 void onMousePress(XGUI_ViewWindow*, QMouseEvent*);
57 void onMouseRelease(XGUI_ViewWindow*, QMouseEvent*);
58 void onMouseDoubleClick(XGUI_ViewWindow*, QMouseEvent*);
59 void onMouseMove(XGUI_ViewWindow*, QMouseEvent*);
60 void onKeyPress(XGUI_ViewWindow*, QKeyEvent*);
61 void onKeyRelease(XGUI_ViewWindow*, QKeyEvent*);
64 XGUI_Workshop* myWorkshop;