+ emit mousePress(theWnd, theEvent);
+}
+
+void XGUI_ViewerProxy::onMouseRelease(AppElements_ViewWindow* theWnd, QMouseEvent* theEvent)
+{
+ emit mouseRelease(theWnd, theEvent);
+}
+
+void XGUI_ViewerProxy::onMouseDoubleClick(AppElements_ViewWindow* theWnd, QMouseEvent* theEvent)
+{
+ emit mouseDoubleClick(theWnd, theEvent);
+}
+
+void XGUI_ViewerProxy::onMouseMove(AppElements_ViewWindow* theWnd, QMouseEvent* theEvent)
+{
+ emit mouseMove(theWnd, theEvent);
+}
+
+void XGUI_ViewerProxy::onKeyPress(AppElements_ViewWindow* theWnd, QKeyEvent* theEvent)
+{
+ emit keyPress(theWnd, theEvent);
+}
+
+void XGUI_ViewerProxy::onKeyRelease(AppElements_ViewWindow* theWnd, QKeyEvent* theEvent)
+{
+ emit keyRelease(theWnd, theEvent);
+}
+
+
+
+//***************************************
+void XGUI_ViewerProxy::enableSelection(bool isEnabled)
+{
+ if (myWorkshop->isSalomeMode()) {
+ myWorkshop->salomeConnector()->viewer()->enableSelection(isEnabled);
+ } else {
+ myWorkshop->mainWindow()->viewer()->setSelectionEnabled(isEnabled);
+ }
+}
+
+//***************************************
+bool XGUI_ViewerProxy::isSelectionEnabled() const
+{
+ if (myWorkshop->isSalomeMode()) {
+ return myWorkshop->salomeConnector()->viewer()->isSelectionEnabled();
+ } else {
+ return myWorkshop->mainWindow()->viewer()->isSelectionEnabled();
+ }
+}
+
+//***************************************
+void XGUI_ViewerProxy::enableMultiselection(bool isEnable)
+{
+ if (myWorkshop->isSalomeMode()) {
+ myWorkshop->salomeConnector()->viewer()->enableMultiselection(isEnable);
+ } else {
+ myWorkshop->mainWindow()->viewer()->setMultiSelectionEnabled(isEnable);
+ }
+}
+
+//***************************************
+bool XGUI_ViewerProxy::isMultiSelectionEnabled() const
+{
+ if (myWorkshop->isSalomeMode()) {
+ return myWorkshop->salomeConnector()->viewer()->isMultiSelectionEnabled();
+ } else {
+ return myWorkshop->mainWindow()->viewer()->isMultiSelectionEnabled();
+ }
+}
+
+//***************************************
+void XGUI_ViewerProxy::addSelectionFilter(const Handle(SelectMgr_Filter)& theFilter)
+{
+ myWorkshop->displayer()->addSelectionFilter(theFilter);
+}
+
+//***************************************
+void XGUI_ViewerProxy::removeSelectionFilter(const Handle(SelectMgr_Filter)& theFilter)
+{
+ myWorkshop->displayer()->removeSelectionFilter(theFilter);
+}
+
+//***************************************
+void XGUI_ViewerProxy::clearSelectionFilters()
+{
+ myWorkshop->displayer()->removeFilters();
+}
+
+//***************************************
+void XGUI_ViewerProxy::update()
+{
+ myWorkshop->displayer()->updateViewer();
+}
+
+//***************************************
+bool XGUI_ViewerProxy::canDragByMouse() const
+{
+ if (myWorkshop->isSalomeMode()) {
+ ModuleBase_IViewer* aViewer = myWorkshop->salomeConnector()->viewer();
+ return aViewer->canDragByMouse();
+ } else {
+ return true;
+ }