1 #include <qpopupmenu.h>
2 #include <qcolordialog.h>
4 #include "VVTK_ViewModel.h"
5 #include "VVTK_ViewWindow.h"
8 #include "SVTK_MainWindow.h"
9 #include "SVTK_RenderWindowInteractor.h"
11 #include "VTKViewer_ViewModel.h"
13 //==========================================================
17 myTrihedronSize = 105;
25 //==========================================================
28 ::setViewManager(SUIT_ViewManager* theViewManager)
30 SUIT_ViewModel::setViewManager(theViewManager);
32 if ( !theViewManager )
35 connect(theViewManager, SIGNAL(mousePress(SUIT_ViewWindow*, QMouseEvent*)),
36 this, SLOT(onMousePress(SUIT_ViewWindow*, QMouseEvent*)));
38 connect(theViewManager, SIGNAL(mouseMove(SUIT_ViewWindow*, QMouseEvent*)),
39 this, SLOT(onMouseMove(SUIT_ViewWindow*, QMouseEvent*)));
41 connect(theViewManager, SIGNAL(mouseRelease(SUIT_ViewWindow*, QMouseEvent*)),
42 this, SLOT(onMouseRelease(SUIT_ViewWindow*, QMouseEvent*)));
46 //==========================================================
49 ::createView( SUIT_Desktop* theDesktop )
51 TViewWindow* aViewWindow = new TViewWindow(theDesktop);
52 aViewWindow->Initialize(this);
54 aViewWindow->setBackgroundColor( backgroundColor() );
55 aViewWindow->SetTrihedronSize( trihedronSize() );
61 //==========================================================
64 ::contextMenuPopup( QPopupMenu* thePopup )
66 thePopup->insertItem( VTKViewer_Viewer::tr( "MEN_DUMP_VIEW" ), this, SLOT( onDumpView() ) );
67 thePopup->insertItem( VTKViewer_Viewer::tr( "MEN_CHANGE_BACKGROUD" ), this, SLOT( onChangeBgColor() ) );
69 thePopup->insertSeparator();
71 if(TViewWindow* aView = dynamic_cast<TViewWindow*>(myViewManager->getActiveView())){
72 if ( !aView->getMainWindow()->getToolBar()->isVisible() ){
73 thePopup->insertItem( VTKViewer_Viewer::tr( "MEN_SHOW_TOOLBAR" ), this, SLOT( onShowToolbar() ) );
79 //==========================================================
84 QPtrVector<SUIT_ViewWindow> aViews = myViewManager->getViews();
85 for(int i = 0, iEnd = aViews.size(); i < iEnd; i++){
86 if(TViewWindow* aView = dynamic_cast<TViewWindow*>(aViews.at(i))){
87 aView->getMainWindow()->Repaint();
93 //==========================================================
96 ::isVisible( const Handle(SALOME_InteractiveObject)& io )
98 QPtrVector<SUIT_ViewWindow> aViews = myViewManager->getViews();
99 for(int i = 0, iEnd = aViews.size(); i < iEnd; i++)
100 if(SUIT_ViewWindow* aViewWindow = aViews.at(i))
101 if(TViewWindow* aView = dynamic_cast<TViewWindow*>(aViewWindow))
102 if(!aView->getView()->isVisible( io ))
109 //==========================================================
112 ::onMousePress(SUIT_ViewWindow* vw, QMouseEvent* event)
117 ::onMouseMove(SUIT_ViewWindow* vw, QMouseEvent* event)
122 ::onMouseRelease(SUIT_ViewWindow* vw, QMouseEvent* event)
126 //==========================================================
129 ::backgroundColor() const
136 ::setBackgroundColor( const QColor& theColor )
138 if ( !theColor.isValid() )
141 QPtrVector<SUIT_ViewWindow> aViews = myViewManager->getViews();
142 for(int i = 0, iEnd = aViews.size(); i < iEnd; i++){
143 if(SUIT_ViewWindow* aViewWindow = aViews.at(i)){
144 if(TViewWindow* aView = dynamic_cast<TViewWindow*>(aViewWindow)){
145 aView->setBackgroundColor(theColor);
150 myBgColor = theColor;
153 //==========================================================
156 ::trihedronSize() const
158 return myTrihedronSize;
163 ::setTrihedronSize( const int theSize )
165 myTrihedronSize = theSize;
166 if(SUIT_ViewManager* aViewManager = getViewManager()){
167 QPtrVector<SUIT_ViewWindow> aViews = aViewManager->getViews();
168 for ( int i = 0; i < aViews.count(); i++ ){
169 if(TViewWindow* aView = dynamic_cast<TViewWindow*>(aViews.at( i ))){
170 aView->getMainWindow()->SetTrihedronSize( theSize );
176 //==========================================================
181 if(SUIT_ViewWindow* aView = myViewManager->getActiveView())
185 //==========================================================
190 if(SUIT_ViewWindow* aView = myViewManager->getActiveView()){
191 QColor aColor = QColorDialog::getColor( backgroundColor(), aView);
192 setBackgroundColor(aColor);
196 //==========================================================
201 QPtrVector<SUIT_ViewWindow> aViews = myViewManager->getViews();
202 for(int i = 0, iEnd = aViews.size(); i < iEnd; i++){
203 if(TViewWindow* aView = dynamic_cast<TViewWindow*>(aViews.at(i))){
204 aView->getMainWindow()->getToolBar()->show();