X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FDisplayGUI%2FDisplayGUI.cxx;h=3e7b44dd6f0b32a46bd5067d87564634e84f311a;hb=6e638ed22140cb8c1a65e73c43541e44b2aa3bf5;hp=94400653a05726b525ad6888cf94db49b65def4e;hpb=8ace3710d83025a4b9d857072b5c1df2e7287880;p=modules%2Fgeom.git diff --git a/src/DisplayGUI/DisplayGUI.cxx b/src/DisplayGUI/DisplayGUI.cxx index 94400653a..3e7b44dd6 100644 --- a/src/DisplayGUI/DisplayGUI.cxx +++ b/src/DisplayGUI/DisplayGUI.cxx @@ -17,7 +17,7 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // // @@ -35,8 +35,6 @@ #include #include -#include -#include #include #include #include @@ -44,14 +42,16 @@ #include #include -#include +#include #include #include #include #include +#include + #include -#include +#include #include #include @@ -99,23 +99,30 @@ DisplayGUI::~DisplayGUI() bool DisplayGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent) { DisplayGUI* myDisplayGUI = GetDisplayGUI( getGeometryGUI() ); + LightApp_SelectionMgr *Sel = getGeometryGUI()->getApp()->selectionMgr(); + SALOME_ListIO selected; + Sel->selectedObjects( selected ); switch (theCommandID) { case 211: // MENU VIEW - WIREFRAME/SHADING { myDisplayGUI->InvertDisplayMode(); int newMode = myDisplayGUI->GetDisplayMode(); - SUIT_Session::session()->activeApplication()->desktop()->menuBar()-> - changeItem( 211, newMode == 1 ? tr( "GEOM_MEN_WIREFRAME" ) : tr("GEOM_MEN_SHADING") ); + getGeometryGUI()->action( 211 )->setMenuText( newMode == 1 ? tr( "GEOM_MEN_WIREFRAME" ) : tr("GEOM_MEN_SHADING") ); + getGeometryGUI()->menuMgr()->update(); +// SUIT_Session::session()->activeApplication()->desktop()->menuBar()-> +// changeItem( 211, newMode == 1 ? tr( "GEOM_MEN_WIREFRAME" ) : tr("GEOM_MEN_SHADING") ); break; } case 212: // MENU VIEW - DISPLAY ALL { + getGeometryGUI()->EmitSignalDeactivateDialog(); myDisplayGUI->DisplayAll(); break; } case 213: // MENU VIEW - DISPLAY ONLY { + getGeometryGUI()->EmitSignalDeactivateDialog(); myDisplayGUI->DisplayOnly(); break; } @@ -131,6 +138,7 @@ bool DisplayGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent) } case 216: // MENU VIEW - DISPLAY { + getGeometryGUI()->EmitSignalDeactivateDialog(); myDisplayGUI->Display(); break; } @@ -150,6 +158,7 @@ bool DisplayGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent) break; } } + Sel->setSelectedObjects( selected ); return true; } @@ -199,7 +208,7 @@ void DisplayGUI::EraseAll() SalomeApp_Study* appStudy = dynamic_cast( app->activeStudy() ); SUIT_ViewManager* vman = vw->getViewManager(); if ( vman->getType() == OCCViewer_Viewer::Type() || - vman->getType() == VTKViewer_Viewer::Type() ) { + vman->getType() == SVTK_Viewer::Type() ) { GEOM_Displayer( appStudy ).EraseAll(); } } @@ -231,7 +240,7 @@ void DisplayGUI::Display() if ( !anActiveStudy ) return; //get SalomeApp selection manager - SalomeApp_SelectionMgr* aSelMgr = app->selectionMgr(); + LightApp_SelectionMgr* aSelMgr = app->selectionMgr(); if ( !aSelMgr ) return; SALOME_ListIO aList; @@ -287,7 +296,7 @@ void DisplayGUI::Erase() if ( !anActiveStudy ) return; //get SalomeApp selection manager - SalomeApp_SelectionMgr* aSelMgr = app->selectionMgr(); + LightApp_SelectionMgr* aSelMgr = app->selectionMgr(); if ( !aSelMgr ) return; SALOME_ListIO aList; @@ -338,9 +347,9 @@ void DisplayGUI::SetDisplayMode( const int mode, SUIT_ViewWindow* viewWindow ) if ( !viewWindow ) viewWindow = SUIT_Session::session()->activeApplication()->desktop()->activeWindow(); - if ( viewWindow->getViewManager()->getType() == VTKViewer_Viewer::Type() ) { - VTKViewer_RenderWindowInteractor* myRenderInter= ((VTKViewer_ViewWindow*)viewWindow)->getRWInteractor(); - myRenderInter->SetDisplayMode( mode ); + if ( viewWindow->getViewManager()->getType() == SVTK_Viewer::Type() ) { + SVTK_View* aView = ((SVTK_ViewWindow*)viewWindow)->getView(); + aView->SetDisplayMode( mode ); } else if ( viewWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() ) { OCCViewer_Viewer* v3d = ((OCCViewer_ViewManager*)(viewWindow->getViewManager()))->getOCCViewer(); @@ -374,9 +383,9 @@ int DisplayGUI::GetDisplayMode( SUIT_ViewWindow* viewWindow ) int dispMode = 0; if ( !viewWindow ) viewWindow = SUIT_Session::session()->activeApplication()->desktop()->activeWindow(); - if ( viewWindow->getViewManager()->getType() == VTKViewer_Viewer::Type() ) { - VTKViewer_RenderWindowInteractor* myRenderInter= ((VTKViewer_ViewWindow*)viewWindow)->getRWInteractor(); - dispMode = myRenderInter->GetDisplayMode(); + if ( viewWindow->getViewManager()->getType() == SVTK_Viewer::Type() ) { + SVTK_View* aView = ((SVTK_ViewWindow*)viewWindow)->getView(); + dispMode = aView->GetDisplayMode(); } else if ( viewWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() ) { OCCViewer_Viewer* v3d = ((OCCViewer_ViewManager*)(viewWindow->getViewManager()))->getOCCViewer(); @@ -410,31 +419,31 @@ void DisplayGUI::ChangeDisplayMode( const int mode, SUIT_ViewWindow* viewWindow SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() ); if ( !app ) return; - SalomeApp_SelectionMgr* aSelMgr = app->selectionMgr(); + LightApp_SelectionMgr* aSelMgr = app->selectionMgr(); if ( !aSelMgr ) return; SUIT_OverrideCursor(); SALOME_ListIO aList; - if ( viewWindow->getViewManager()->getType() == VTKViewer_Viewer::Type() ) { + if ( viewWindow->getViewManager()->getType() == SVTK_Viewer::Type() ) { SVTK_ViewWindow* vw = dynamic_cast( viewWindow ); - SVTK_RenderWindowInteractor* rwi = vw->getRWInteractor(); + SVTK_View* aView = vw->getView(); aSelMgr->selectedObjects( aList ); SALOME_ListIteratorOfListIO It( aList ); for( ;It.More(); It.Next() ) { - SVTK_Viewer* stvkViewer = (SVTK_Viewer*)(vw->getViewManager()->getViewModel()); - SVTK_Prs* vtkPrs = dynamic_cast( stvkViewer->CreatePrs( It.Value()->getEntry() ) ); + SVTK_Viewer* stvkViewer = dynamic_cast(vw->getViewManager()->getViewModel()); + SVTK_Prs* vtkPrs = stvkViewer ? dynamic_cast( stvkViewer->CreatePrs( It.Value()->getEntry() ) ) : 0; if ( vtkPrs && !vtkPrs->IsNull() ) { if ( mode == 0 ) - rwi->ChangeRepresentationToWireframe( vtkPrs->GetObjects() ); + aView->ChangeRepresentationToWireframe( vtkPrs->GetObjects() ); else if ( mode == 1 ) - rwi->ChangeRepresentationToSurface( vtkPrs->GetObjects() ); + aView->ChangeRepresentationToSurface( vtkPrs->GetObjects() ); } } - rwi->Render(); + aView->Repaint(); } else if ( viewWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() ) { OCCViewer_Viewer* v3d = ((OCCViewer_ViewManager*)(viewWindow->getViewManager()))->getOCCViewer(); @@ -466,6 +475,9 @@ void DisplayGUI::ChangeDisplayMode( const int mode, SUIT_ViewWindow* viewWindow //===================================================================================== extern "C" { +#ifdef WNT + __declspec( dllexport ) +#endif GEOMGUI* GetLibGUI( GeometryGUI* parent ) { return DisplayGUI::GetDisplayGUI( parent );