Salome HOME
According to "operation-widget_factory-property"
[modules/shaper.git] / src / XGUI / XGUI_ViewerProxy.cpp
index ff95ecff63b1e5ade0f9a4b3d83a76d693f01688..19453efdb3a4719691ba02a5952c86c9a4cf14fe 100644 (file)
@@ -41,6 +41,27 @@ Handle(V3d_View) XGUI_ViewerProxy::activeView() const
   }
 }
  
+void XGUI_ViewerProxy::setViewProjection(double theX, double theY, double theZ)
+{
+  Handle(V3d_View) aView3d = activeView();
+  if ( !aView3d.IsNull() ) {
+    aView3d->SetProj(theX, theY, theZ);
+    aView3d->FitAll( 0.01, true, true );
+    aView3d->SetZSize(0.);
+  }
+}
+
+void XGUI_ViewerProxy::fitAll()
+{
+  if (myWorkshop->isSalomeMode()) {
+    myWorkshop->salomeConnector()->viewer()->fitAll();
+  }
+  else {
+    XGUI_Viewer* aViewer = myWorkshop->mainWindow()->viewer();
+    aViewer->activeViewWindow()->viewPort()->fitAll();
+  }
+}
+
 void XGUI_ViewerProxy::connectToViewer()
 {
   if (myWorkshop->isSalomeMode()) {
@@ -57,18 +78,28 @@ void XGUI_ViewerProxy::connectToViewer()
     connect(aViewer, SIGNAL(activated()),
             this, SIGNAL(activated()));
 
-    connect(aViewer, SIGNAL(mousePress(QMouseEvent* theEvent)),
-            this, SIGNAL(mousePress(QMouseEvent* theEvent)));
-    connect(aViewer, SIGNAL(mouseRelease(QMouseEvent* theEvent)),
-            this, SIGNAL(mouseRelease(QMouseEvent* theEvent)));
-    connect(aViewer, SIGNAL(mouseDoubleClick(QMouseEvent* theEvent)),
-            this, SIGNAL(mouseDoubleClick(QMouseEvent* theEvent)));
-    connect(aViewer, SIGNAL(mouseMove(QMouseEvent* theEvent)),
-            this, SIGNAL(mouseMove(QMouseEvent* theEvent)));
-    connect(aViewer, SIGNAL(keyPress(QKeyEvent* theEvent)),
-            this, SIGNAL(keyPress(QKeyEvent* theEvent)));
-    connect(aViewer, SIGNAL(keyRelease(QKeyEvent* theEvent)),
-            this, SIGNAL(keyRelease(QKeyEvent* theEvent)));
+    connect(aViewer, SIGNAL(mousePress(QMouseEvent*)),
+            this, SIGNAL(mousePress(QMouseEvent*)));
+
+    connect(aViewer, SIGNAL(mouseRelease(QMouseEvent*)),
+            this, SIGNAL(mouseRelease(QMouseEvent*)));
+    
+    connect(aViewer, SIGNAL(mouseDoubleClick(QMouseEvent*)),
+            this, SIGNAL(mouseDoubleClick(QMouseEvent*)));
+    
+    connect(aViewer, SIGNAL(mouseMove(QMouseEvent*)),
+            this, SIGNAL(mouseMove(QMouseEvent*)));
+    
+    connect(aViewer, SIGNAL(keyPress(QKeyEvent*)),
+            this, SIGNAL(keyPress(QKeyEvent*)));
+    
+    connect(aViewer, SIGNAL(keyRelease(QKeyEvent*)),
+            this, SIGNAL(keyRelease(QKeyEvent*)));
+
+    connect(aViewer, SIGNAL(selectionChanged()), this, SIGNAL(selectionChanged()));
+    connect(aViewer, SIGNAL(contextMenuRequested(QContextMenuEvent*)), 
+            this, SIGNAL(contextMenuRequested(QContextMenuEvent*)));
+
   } else {
     XGUI_Viewer* aViewer = myWorkshop->mainWindow()->viewer();
 
@@ -95,6 +126,10 @@ void XGUI_ViewerProxy::connectToViewer()
             this, SLOT(onKeyPress(XGUI_ViewWindow*, QKeyEvent*)));
     connect(aViewer, SIGNAL(keyRelease(XGUI_ViewWindow*, QKeyEvent*)),
             this, SLOT(onKeyRelease(XGUI_ViewWindow*, QKeyEvent*)));
+
+    connect(aViewer, SIGNAL(selectionChanged()), this, SIGNAL(selectionChanged()));
+    connect(aViewer, SIGNAL(contextMenuRequested(QContextMenuEvent*)), 
+            this, SIGNAL(contextMenuRequested(QContextMenuEvent*)));
   }
 }
 
@@ -127,3 +162,43 @@ void XGUI_ViewerProxy::onKeyRelease(XGUI_ViewWindow*, QKeyEvent* theEvent)
 {
   emit keyRelease(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();
+  }
+}