1 #include "VTKViewer_ViewModel.h"
2 #include "VTKViewer_ViewWindow.h"
3 #include "VTKViewer_ViewManager.h"
4 #include "VTKViewer_RenderWindowInteractor.h"
6 #include "SUIT_ViewWindow.h"
7 #include "SUIT_Desktop.h"
8 #include "SUIT_Session.h"
11 #include <qapplication.h>
12 #include <qcolordialog.h>
14 #include <qpopupmenu.h>
16 //****************************************************************
17 VTKViewer_Viewer::VTKViewer_Viewer()
22 //****************************************************************
23 VTKViewer_Viewer::~VTKViewer_Viewer()
27 //****************************************************************
28 SUIT_ViewWindow* VTKViewer_Viewer::createView(SUIT_Desktop* theDesktop)
30 return new VTKViewer_ViewWindow(theDesktop, this);
33 //*********************************************************************
34 void VTKViewer_Viewer::setViewManager(SUIT_ViewManager* theViewManager)
36 SUIT_ViewModel::setViewManager(theViewManager);
37 connect(theViewManager, SIGNAL(mousePress(SUIT_ViewWindow*, QMouseEvent*)),
38 this, SLOT(onMousePress(SUIT_ViewWindow*, QMouseEvent*)));
40 connect(theViewManager, SIGNAL(mouseMove(SUIT_ViewWindow*, QMouseEvent*)),
41 this, SLOT(onMouseMove(SUIT_ViewWindow*, QMouseEvent*)));
43 connect(theViewManager, SIGNAL(mouseRelease(SUIT_ViewWindow*, QMouseEvent*)),
44 this, SLOT(onMouseRelease(SUIT_ViewWindow*, QMouseEvent*)));
47 //*********************************************************************
48 void VTKViewer_Viewer::contextMenuPopup(QPopupMenu* thePopup)
50 thePopup->insertItem( tr( "MEN_DUMP_VIEW" ), this, SLOT( onDumpView() ) );
51 thePopup->insertItem( tr( "MEN_CHANGE_BACKGROUD" ), this, SLOT( onChangeBgColor() ) );
53 thePopup->insertSeparator();
55 VTKViewer_ViewWindow* aView = (VTKViewer_ViewWindow*)(myViewManager->getActiveView());
56 if ( aView && !aView->getToolBar()->isVisible() )
57 thePopup->insertItem( tr( "MEN_SHOW_TOOLBAR" ), this, SLOT( onShowToolbar() ) );
60 //*********************************************************************
61 void VTKViewer_Viewer::onMousePress(SUIT_ViewWindow* vw, QMouseEvent* event)
63 VTKViewer_RenderWindowInteractor* rwi = 0;
64 if ( vw && vw->inherits( "VTKViewer_ViewWindow" ) )
65 rwi = ((VTKViewer_ViewWindow*)vw)->getRWInteractor();
69 switch(event->button()) {
71 rwi->LeftButtonPressed(event) ;
74 rwi->MiddleButtonPressed(event) ;
77 rwi->RightButtonPressed(event) ;
84 //*********************************************************************
85 void VTKViewer_Viewer::onMouseMove(SUIT_ViewWindow* vw, QMouseEvent* event)
87 VTKViewer_RenderWindowInteractor* rwi = 0;
88 if ( vw && vw->inherits( "VTKViewer_ViewWindow" ) )
89 rwi = ((VTKViewer_ViewWindow*)vw)->getRWInteractor();
91 rwi->MouseMove( event );
94 //*********************************************************************
95 void VTKViewer_Viewer::onMouseRelease(SUIT_ViewWindow* vw, QMouseEvent* event)
97 VTKViewer_RenderWindowInteractor* rwi = 0;
98 if ( vw && vw->inherits( "VTKViewer_ViewWindow" ) )
99 rwi = ((VTKViewer_ViewWindow*)vw)->getRWInteractor();
103 switch(event->button()) {
105 rwi->LeftButtonReleased(event) ;
108 rwi->MiddleButtonReleased(event) ;
111 rwi->RightButtonReleased(event) ;
118 //*********************************************************************
119 void VTKViewer_Viewer::enableSelection(bool isEnabled)
121 mySelectionEnabled = isEnabled;
122 //!! To be done for view windows
125 //*********************************************************************
126 void VTKViewer_Viewer::enableMultiselection(bool isEnable)
128 myMultiSelectionEnabled = isEnable;
129 //!! To be done for view windows
132 void VTKViewer_Viewer::onDumpView()
134 VTKViewer_ViewWindow* aView = (VTKViewer_ViewWindow*)(myViewManager->getActiveView());
139 //*********************************************************************
140 void VTKViewer_Viewer::onChangeBgColor()
142 VTKViewer_ViewWindow* aView = (VTKViewer_ViewWindow*)(myViewManager->getActiveView());
146 QColor aColor = QColorDialog::getColor( aView->backgroundColor(), aView);
147 if ( aColor.isValid() )
148 aView->setBackgroundColor(aColor);
151 //*********************************************************************
152 void VTKViewer_Viewer::onShowToolbar() {
153 VTKViewer_ViewWindow* aView = (VTKViewer_ViewWindow*)(myViewManager->getActiveView());
155 aView->getToolBar()->show();