Salome HOME
To introduce default launch mode of SALOMEDS server
[modules/gui.git] / src / SVTK / SVTK_ViewModel.cxx
index 04087ab3b08ea6e32ed298b8cc881105946df5c6..17f0ac85c997da479c1b5afc43f3a4cbffeafcd8 100644 (file)
@@ -49,33 +49,67 @@ static _PTR(Study) getStudyDS()
 }
 
 //==========================================================
-SVTK_Viewer
-::SVTK_Viewer()
+SVTK_Viewer::SVTK_Viewer()
 {
+  myTrihedronSize = 100;
 }
 
 //==========================================================
-SVTK_Viewer
-::~SVTK_Viewer() 
+SVTK_Viewer::~SVTK_Viewer() 
+{
+}
+
+QColor SVTK_Viewer::backgroundColor() const
 {
+  return myBgColor;
+}
+
+void SVTK_Viewer::setBackgroundColor( const QColor& c )
+{
+  if ( c.isValid() )
+    myBgColor = c;
 }
 
 //==========================================================
-SUIT_ViewWindow* 
-SVTK_Viewer
-::createView( SUIT_Desktop* theDesktop )
+SUIT_ViewWindow* SVTK_Viewer::createView( SUIT_Desktop* theDesktop )
 {
-  return new SVTK_ViewWindow( theDesktop, this );
+  SVTK_ViewWindow* vw = new SVTK_ViewWindow( theDesktop, this );
+  vw->setBackgroundColor( backgroundColor() );
+  vw->SetTrihedronSize( trihedronSize() );
+  return vw;
+}
+
+int SVTK_Viewer::trihedronSize() const
+{
+  return myTrihedronSize;
+}
+
+void SVTK_Viewer::setTrihedronSize( const int sz )
+{
+  myTrihedronSize = sz;
+
+  SUIT_ViewManager* vm = getViewManager();
+  if ( !vm )
+    return;
+
+  QPtrVector<SUIT_ViewWindow> vec = vm->getViews();
+  for ( int i = 0; i < vec.count(); i++ )
+  {
+    SUIT_ViewWindow* win = vec.at( i );
+    if ( !win || !win->inherits( "SVTK_ViewWindow" ) )
+      continue;
+
+    SVTK_ViewWindow* vw = (SVTK_ViewWindow*)win;
+    vw->SetTrihedronSize( sz );
+  }
 }
 
 //==========================================================
-void 
-SVTK_Viewer
-::setViewManager(SUIT_ViewManager* theViewManager)
+void SVTK_Viewer::setViewManager(SUIT_ViewManager* theViewManager)
 {
   SUIT_ViewModel::setViewManager(theViewManager);
 
-  if(!theViewManager)
+  if ( !theViewManager )
     return;
 
   connect(theViewManager, SIGNAL(mousePress(SUIT_ViewWindow*, QMouseEvent*)), 
@@ -89,26 +123,20 @@ SVTK_Viewer
 }
 
 //==========================================================
-void
-SVTK_Viewer
-::contextMenuPopup(QPopupMenu* thePopup)
+void SVTK_Viewer::contextMenuPopup( QPopupMenu* thePopup )
 {
-  if (thePopup->count() > 0) thePopup->insertSeparator();
-  thePopup->insertItem("Change background...", this, SLOT(onChangeBgColor()));
-  if(SUIT_ViewWindow* aViewWindow = myViewManager->getActiveView()){
-    if(SVTK_ViewWindow* aView = dynamic_cast<SVTK_ViewWindow*>(aViewWindow)){
-      if(!aView->getToolBar()->isVisible()){
-       thePopup->insertSeparator();
-       thePopup->insertItem("Show toolbar", this, SLOT(onShowToolbar()));
-      }
-    }
-  }
+  thePopup->insertItem( VTKViewer_Viewer::tr( "MEN_DUMP_VIEW" ), this, SLOT( onDumpView() ) );
+  thePopup->insertItem( VTKViewer_Viewer::tr( "MEN_CHANGE_BACKGROUD" ), this, SLOT( onChangeBgColor() ) );
+
+  thePopup->insertSeparator();
+
+  SVTK_ViewWindow* aView = (SVTK_ViewWindow*)(myViewManager->getActiveView());
+  if ( aView && !aView->getToolBar()->isVisible() )
+    thePopup->insertItem( VTKViewer_Viewer::tr( "MEN_SHOW_TOOLBAR" ), this, SLOT( onShowToolbar() ) );
 }
 
 //==========================================================
-void
-SVTK_Viewer
-::onMousePress(SUIT_ViewWindow* vw, QMouseEvent* event)
+void SVTK_Viewer::onMousePress(SUIT_ViewWindow* vw, QMouseEvent* event)
 {
   if(SVTK_ViewWindow* aVW = dynamic_cast<SVTK_ViewWindow*>(vw)){
     if(SVTK_RenderWindowInteractor* aRWI = aVW->getRWInteractor()){
@@ -183,10 +211,15 @@ SVTK_Viewer
   //!! To be done for view windows
 }
 
+void SVTK_Viewer::onDumpView()
+{
+  SVTK_ViewWindow* aView = (SVTK_ViewWindow*)(myViewManager->getActiveView());
+  if ( aView )
+    aView->onDumpView();
+}
+
 //==========================================================
-void
-SVTK_Viewer
-::onChangeBgColor()
+void SVTK_Viewer::onChangeBgColor()
 {
   QPtrVector<SUIT_ViewWindow> aViews = myViewManager->getViews();
   for(int i = 0, iEnd = aViews.size(); i < iEnd; i++)