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 connect(aViewer, SIGNAL(selectionChanged()), this, SIGNAL(selectionChanged()));
101 XGUI_Viewer* aViewer = myWorkshop->mainWindow()->viewer();
103 connect(aViewer, SIGNAL(lastViewClosed()),
104 this, SIGNAL(lastViewClosed()));
105 connect(aViewer, SIGNAL(tryCloseView(XGUI_ViewWindow*)),
106 this, SIGNAL(tryCloseView()));
107 connect(aViewer, SIGNAL(deleteView(XGUI_ViewWindow*)),
108 this, SIGNAL(deleteView()));
109 connect(aViewer, SIGNAL(viewCreated(XGUI_ViewWindow*)),
110 this, SIGNAL(viewCreated()));
111 connect(aViewer, SIGNAL(activated(XGUI_ViewWindow*)),
112 this, SIGNAL(activated()));
114 connect(aViewer, SIGNAL(mousePress(XGUI_ViewWindow*, QMouseEvent*)),
115 this, SLOT(onMousePress(XGUI_ViewWindow*, QMouseEvent*)));
116 connect(aViewer, SIGNAL(mouseRelease(XGUI_ViewWindow*, QMouseEvent*)),
117 this, SLOT(onMouseRelease(XGUI_ViewWindow*, QMouseEvent*)));
118 connect(aViewer, SIGNAL(mouseDoubleClick(XGUI_ViewWindow*, QMouseEvent*)),
119 this, SLOT(onMouseDoubleClick(XGUI_ViewWindow*, QMouseEvent*)));
120 connect(aViewer, SIGNAL(mouseMove(XGUI_ViewWindow*, QMouseEvent*)),
121 this, SLOT(onMouseMove(XGUI_ViewWindow*, QMouseEvent*)));
122 connect(aViewer, SIGNAL(keyPress(XGUI_ViewWindow*, QKeyEvent*)),
123 this, SLOT(onKeyPress(XGUI_ViewWindow*, QKeyEvent*)));
124 connect(aViewer, SIGNAL(keyRelease(XGUI_ViewWindow*, QKeyEvent*)),
125 this, SLOT(onKeyRelease(XGUI_ViewWindow*, QKeyEvent*)));
127 connect(aViewer, SIGNAL(selectionChanged()), this, SIGNAL(selectionChanged()));
131 void XGUI_ViewerProxy::onMousePress(XGUI_ViewWindow*, QMouseEvent* theEvent)
133 emit mousePress(theEvent);
136 void XGUI_ViewerProxy::onMouseRelease(XGUI_ViewWindow*, QMouseEvent* theEvent)
138 emit mouseRelease(theEvent);
141 void XGUI_ViewerProxy::onMouseDoubleClick(XGUI_ViewWindow*, QMouseEvent* theEvent)
143 emit mouseDoubleClick(theEvent);
146 void XGUI_ViewerProxy::onMouseMove(XGUI_ViewWindow*, QMouseEvent* theEvent)
148 emit mouseMove(theEvent);
151 void XGUI_ViewerProxy::onKeyPress(XGUI_ViewWindow*, QKeyEvent* theEvent)
153 emit keyPress(theEvent);
156 void XGUI_ViewerProxy::onKeyRelease(XGUI_ViewWindow*, QKeyEvent* theEvent)
158 emit keyRelease(theEvent);
161 //***************************************
162 void XGUI_ViewerProxy::enableSelection(bool isEnabled)
164 if (myWorkshop->isSalomeMode()) {
165 myWorkshop->salomeConnector()->viewer()->enableSelection(isEnabled);
167 myWorkshop->mainWindow()->viewer()->setSelectionEnabled(isEnabled);
171 //***************************************
172 bool XGUI_ViewerProxy::isSelectionEnabled() const
174 if (myWorkshop->isSalomeMode()) {
175 return myWorkshop->salomeConnector()->viewer()->isSelectionEnabled();
177 return myWorkshop->mainWindow()->viewer()->isSelectionEnabled();
181 //***************************************
182 void XGUI_ViewerProxy::enableMultiselection(bool isEnable)
184 if (myWorkshop->isSalomeMode()) {
185 myWorkshop->salomeConnector()->viewer()->enableMultiselection(isEnable);
187 myWorkshop->mainWindow()->viewer()->setMultiSelectionEnabled(isEnable);
191 //***************************************
192 bool XGUI_ViewerProxy::isMultiSelectionEnabled() const
194 if (myWorkshop->isSalomeMode()) {
195 return myWorkshop->salomeConnector()->viewer()->isMultiSelectionEnabled();
197 return myWorkshop->mainWindow()->viewer()->isMultiSelectionEnabled();