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::connectToViewer()
46 if (myWorkshop->isSalomeMode()) {
47 XGUI_SalomeViewer* aViewer = myWorkshop->salomeConnector()->viewer();
49 connect(aViewer, SIGNAL(lastViewClosed()),
50 this, SIGNAL(lastViewClosed()));
51 connect(aViewer, SIGNAL(tryCloseView()),
52 this, SIGNAL(tryCloseView()));
53 connect(aViewer, SIGNAL(deleteView()),
54 this, SIGNAL(deleteView()));
55 connect(aViewer, SIGNAL(viewCreated()),
56 this, SIGNAL(viewCreated()));
57 connect(aViewer, SIGNAL(activated()),
58 this, SIGNAL(activated()));
60 connect(aViewer, SIGNAL(mousePress(QMouseEvent* theEvent)),
61 this, SIGNAL(mousePress(QMouseEvent* theEvent)));
62 connect(aViewer, SIGNAL(mouseRelease(QMouseEvent* theEvent)),
63 this, SIGNAL(mouseRelease(QMouseEvent* theEvent)));
64 connect(aViewer, SIGNAL(mouseDoubleClick(QMouseEvent* theEvent)),
65 this, SIGNAL(mouseDoubleClick(QMouseEvent* theEvent)));
66 connect(aViewer, SIGNAL(mouseMove(QMouseEvent* theEvent)),
67 this, SIGNAL(mouseMove(QMouseEvent* theEvent)));
68 connect(aViewer, SIGNAL(keyPress(QKeyEvent* theEvent)),
69 this, SIGNAL(keyPress(QKeyEvent* theEvent)));
70 connect(aViewer, SIGNAL(keyRelease(QKeyEvent* theEvent)),
71 this, SIGNAL(keyRelease(QKeyEvent* theEvent)));
73 XGUI_Viewer* aViewer = myWorkshop->mainWindow()->viewer();
75 connect(aViewer, SIGNAL(lastViewClosed()),
76 this, SIGNAL(lastViewClosed()));
77 connect(aViewer, SIGNAL(tryCloseView(XGUI_ViewWindow*)),
78 this, SIGNAL(tryCloseView()));
79 connect(aViewer, SIGNAL(deleteView(XGUI_ViewWindow*)),
80 this, SIGNAL(deleteView()));
81 connect(aViewer, SIGNAL(viewCreated(XGUI_ViewWindow*)),
82 this, SIGNAL(viewCreated()));
83 connect(aViewer, SIGNAL(activated(XGUI_ViewWindow*)),
84 this, SIGNAL(activated()));
86 connect(aViewer, SIGNAL(mousePress(XGUI_ViewWindow*, QMouseEvent*)),
87 this, SLOT(onMousePress(XGUI_ViewWindow*, QMouseEvent*)));
88 connect(aViewer, SIGNAL(mouseRelease(XGUI_ViewWindow*, QMouseEvent*)),
89 this, SLOT(onMouseRelease(XGUI_ViewWindow*, QMouseEvent*)));
90 connect(aViewer, SIGNAL(mouseDoubleClick(XGUI_ViewWindow*, QMouseEvent*)),
91 this, SLOT(onMouseDoubleClick(XGUI_ViewWindow*, QMouseEvent*)));
92 connect(aViewer, SIGNAL(mouseMove(XGUI_ViewWindow*, QMouseEvent*)),
93 this, SLOT(onMouseMove(XGUI_ViewWindow*, QMouseEvent*)));
94 connect(aViewer, SIGNAL(keyPress(XGUI_ViewWindow*, QKeyEvent*)),
95 this, SLOT(onKeyPress(XGUI_ViewWindow*, QKeyEvent*)));
96 connect(aViewer, SIGNAL(keyRelease(XGUI_ViewWindow*, QKeyEvent*)),
97 this, SLOT(onKeyRelease(XGUI_ViewWindow*, QKeyEvent*)));
101 void XGUI_ViewerProxy::onMousePress(XGUI_ViewWindow*, QMouseEvent* theEvent)
103 emit mousePress(theEvent);
106 void XGUI_ViewerProxy::onMouseRelease(XGUI_ViewWindow*, QMouseEvent* theEvent)
108 emit mouseRelease(theEvent);
111 void XGUI_ViewerProxy::onMouseDoubleClick(XGUI_ViewWindow*, QMouseEvent* theEvent)
113 emit mouseDoubleClick(theEvent);
116 void XGUI_ViewerProxy::onMouseMove(XGUI_ViewWindow*, QMouseEvent* theEvent)
118 emit mouseMove(theEvent);
121 void XGUI_ViewerProxy::onKeyPress(XGUI_ViewWindow*, QKeyEvent* theEvent)
123 emit keyPress(theEvent);
126 void XGUI_ViewerProxy::onKeyRelease(XGUI_ViewWindow*, QKeyEvent* theEvent)
128 emit keyRelease(theEvent);