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();
55 /// Add selection filter to the viewer
56 virtual void addSelectionFilter(const Handle(SelectMgr_Filter)& theFilter);
58 /// Remove selection filter from the viewer
59 virtual void removeSelectionFilter(const Handle(SelectMgr_Filter)& theFilter);
61 /// Remove all selection filters from the viewer
62 virtual void clearSelectionFilters();
65 void onTryCloseView(XGUI_ViewWindow*);
66 void onDeleteView(XGUI_ViewWindow*);
67 void onViewCreated(XGUI_ViewWindow*);
68 void onActivated(XGUI_ViewWindow*);
70 void onMousePress(XGUI_ViewWindow*, QMouseEvent*);
71 void onMouseRelease(XGUI_ViewWindow*, QMouseEvent*);
72 void onMouseDoubleClick(XGUI_ViewWindow*, QMouseEvent*);
73 void onMouseMove(XGUI_ViewWindow*, QMouseEvent*);
75 void onKeyPress(XGUI_ViewWindow*, QKeyEvent*);
76 void onKeyRelease(XGUI_ViewWindow*, QKeyEvent*);
79 XGUI_Workshop* myWorkshop;