1 #include "XGUI_ViewerProxy.h"
2 #include "XGUI_Workshop.h"
3 #include "XGUI_MainWindow.h"
4 #include "XGUI_ViewPort.h"
5 #include "XGUI_ViewWindow.h"
6 #include "XGUI_Viewer.h"
7 #include "XGUI_SalomeConnector.h"
10 XGUI_ViewerProxy::XGUI_ViewerProxy(XGUI_Workshop* theParent)
11 : XGUI_SalomeViewer(theParent), myWorkshop(theParent)
16 Handle(AIS_InteractiveContext) XGUI_ViewerProxy::AISContext() const
18 if (myWorkshop->isSalomeMode()) {
19 return myWorkshop->salomeConnector()->viewer()->AISContext();
21 return myWorkshop->mainWindow()->viewer()->AISContext();
25 Handle(V3d_Viewer) XGUI_ViewerProxy::v3dViewer() const
27 if (myWorkshop->isSalomeMode()) {
28 return myWorkshop->salomeConnector()->viewer()->v3dViewer();
30 return myWorkshop->mainWindow()->viewer()->v3dViewer();
34 Handle(V3d_View) XGUI_ViewerProxy::activeView() const
36 if (myWorkshop->isSalomeMode()) {
37 return myWorkshop->salomeConnector()->viewer()->activeView();
39 XGUI_Viewer* aViewer = myWorkshop->mainWindow()->viewer();
40 return aViewer->activeViewWindow()->viewPort()->getView();
44 void XGUI_ViewerProxy::setViewProjection(double theX, double theY, double theZ)
46 Handle(V3d_View) aView3d = activeView();
47 if ( !aView3d.IsNull() ) {
48 aView3d->SetProj(theX, theY, theZ);
49 aView3d->FitAll( 0.01, true, true );
50 aView3d->SetZSize(0.);
54 void XGUI_ViewerProxy::fitAll()
56 if (myWorkshop->isSalomeMode()) {
57 myWorkshop->salomeConnector()->viewer()->fitAll();
60 XGUI_Viewer* aViewer = myWorkshop->mainWindow()->viewer();
61 aViewer->activeViewWindow()->viewPort()->fitAll();
65 void XGUI_ViewerProxy::connectToViewer()
67 if (myWorkshop->isSalomeMode()) {
68 XGUI_SalomeViewer* aViewer = myWorkshop->salomeConnector()->viewer();
70 connect(aViewer, SIGNAL(lastViewClosed()),
71 this, SIGNAL(lastViewClosed()));
72 connect(aViewer, SIGNAL(tryCloseView()),
73 this, SIGNAL(tryCloseView()));
74 connect(aViewer, SIGNAL(deleteView()),
75 this, SIGNAL(deleteView()));
76 connect(aViewer, SIGNAL(viewCreated()),
77 this, SIGNAL(viewCreated()));
78 connect(aViewer, SIGNAL(activated()),
79 this, SIGNAL(activated()));
81 connect(aViewer, SIGNAL(mousePress(QMouseEvent*)),
82 this, SIGNAL(mousePress(QMouseEvent*)));
84 connect(aViewer, SIGNAL(mouseRelease(QMouseEvent*)),
85 this, SIGNAL(mouseRelease(QMouseEvent*)));
87 connect(aViewer, SIGNAL(mouseDoubleClick(QMouseEvent*)),
88 this, SIGNAL(mouseDoubleClick(QMouseEvent*)));
90 connect(aViewer, SIGNAL(mouseMove(QMouseEvent*)),
91 this, SIGNAL(mouseMove(QMouseEvent*)));
93 connect(aViewer, SIGNAL(keyPress(QKeyEvent*)),
94 this, SIGNAL(keyPress(QKeyEvent*)));
96 connect(aViewer, SIGNAL(keyRelease(QKeyEvent*)),
97 this, SIGNAL(keyRelease(QKeyEvent*)));
99 XGUI_Viewer* aViewer = myWorkshop->mainWindow()->viewer();
101 connect(aViewer, SIGNAL(lastViewClosed()),
102 this, SIGNAL(lastViewClosed()));
103 connect(aViewer, SIGNAL(tryCloseView(XGUI_ViewWindow*)),
104 this, SIGNAL(tryCloseView()));
105 connect(aViewer, SIGNAL(deleteView(XGUI_ViewWindow*)),
106 this, SIGNAL(deleteView()));
107 connect(aViewer, SIGNAL(viewCreated(XGUI_ViewWindow*)),
108 this, SIGNAL(viewCreated()));
109 connect(aViewer, SIGNAL(activated(XGUI_ViewWindow*)),
110 this, SIGNAL(activated()));
112 connect(aViewer, SIGNAL(mousePress(XGUI_ViewWindow*, QMouseEvent*)),
113 this, SLOT(onMousePress(XGUI_ViewWindow*, QMouseEvent*)));
114 connect(aViewer, SIGNAL(mouseRelease(XGUI_ViewWindow*, QMouseEvent*)),
115 this, SLOT(onMouseRelease(XGUI_ViewWindow*, QMouseEvent*)));
116 connect(aViewer, SIGNAL(mouseDoubleClick(XGUI_ViewWindow*, QMouseEvent*)),
117 this, SLOT(onMouseDoubleClick(XGUI_ViewWindow*, QMouseEvent*)));
118 connect(aViewer, SIGNAL(mouseMove(XGUI_ViewWindow*, QMouseEvent*)),
119 this, SLOT(onMouseMove(XGUI_ViewWindow*, QMouseEvent*)));
120 connect(aViewer, SIGNAL(keyPress(XGUI_ViewWindow*, QKeyEvent*)),
121 this, SLOT(onKeyPress(XGUI_ViewWindow*, QKeyEvent*)));
122 connect(aViewer, SIGNAL(keyRelease(XGUI_ViewWindow*, QKeyEvent*)),
123 this, SLOT(onKeyRelease(XGUI_ViewWindow*, QKeyEvent*)));
127 void XGUI_ViewerProxy::onMousePress(XGUI_ViewWindow*, QMouseEvent* theEvent)
129 emit mousePress(theEvent);
132 void XGUI_ViewerProxy::onMouseRelease(XGUI_ViewWindow*, QMouseEvent* theEvent)
134 emit mouseRelease(theEvent);
137 void XGUI_ViewerProxy::onMouseDoubleClick(XGUI_ViewWindow*, QMouseEvent* theEvent)
139 emit mouseDoubleClick(theEvent);
142 void XGUI_ViewerProxy::onMouseMove(XGUI_ViewWindow*, QMouseEvent* theEvent)
144 emit mouseMove(theEvent);
147 void XGUI_ViewerProxy::onKeyPress(XGUI_ViewWindow*, QKeyEvent* theEvent)
149 emit keyPress(theEvent);
152 void XGUI_ViewerProxy::onKeyRelease(XGUI_ViewWindow*, QKeyEvent* theEvent)
154 emit keyRelease(theEvent);
157 //***************************************
158 void XGUI_ViewerProxy::enableSelection(bool isEnabled)
160 if (myWorkshop->isSalomeMode()) {
161 myWorkshop->salomeConnector()->viewer()->enableSelection(isEnabled);
163 myWorkshop->mainWindow()->viewer()->setSelectionEnabled(isEnabled);
167 //***************************************
168 bool XGUI_ViewerProxy::isSelectionEnabled() const
170 if (myWorkshop->isSalomeMode()) {
171 return myWorkshop->salomeConnector()->viewer()->isSelectionEnabled();
173 return myWorkshop->mainWindow()->viewer()->isSelectionEnabled();
177 //***************************************
178 void XGUI_ViewerProxy::enableMultiselection(bool isEnable)
180 if (myWorkshop->isSalomeMode()) {
181 myWorkshop->salomeConnector()->viewer()->enableMultiselection(isEnable);
183 myWorkshop->mainWindow()->viewer()->setMultiSelectionEnabled(isEnable);
187 //***************************************
188 bool XGUI_ViewerProxy::isMultiSelectionEnabled() const
190 if (myWorkshop->isSalomeMode()) {
191 return myWorkshop->salomeConnector()->viewer()->isMultiSelectionEnabled();
193 return myWorkshop->mainWindow()->viewer()->isMultiSelectionEnabled();