1 // Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 #include "OCCViewer_ViewFrame.h"
24 #include "OCCViewer_ViewWindow.h"
25 #include "OCCViewer_ViewModel.h"
26 #include "OCCViewer_ViewPort3d.h"
28 #include <SUIT_ViewManager.h>
29 #include <SUIT_Session.h>
30 #include <SUIT_ResourceMgr.h>
32 #include <QtxResourceMgr.h>
33 #include <QtxWorkstackAction.h>
37 #include <QApplication>
39 OCCViewer_ViewFrame::OCCViewer_ViewFrame(SUIT_Desktop* theDesktop, OCCViewer_Viewer* theModel)
40 : OCCViewer_ViewWindow( theDesktop, theModel ), myPopupRequestedView(0), mySplitMode(-1)
42 QFrame* centralFrame = new QFrame( this );
43 setCentralWidget( centralFrame );
45 OCCViewer_ViewWindow* view0 = theModel->createSubWindow();
46 updateWindowTitle( view0 );
47 view0->setParent( centralFrame );
48 myViews.append( view0 ); // MAIN_VIEW
50 myLayout = new QGridLayout( centralFrame );
51 myLayout->setMargin( 0 );
52 myLayout->setSpacing( 1 );
54 myLayout->addWidget( view0, 0, 0 );
55 myMaximizedView = view0;
57 connectViewSignals(view0);
60 OCCViewer_ViewFrame::~OCCViewer_ViewFrame()
64 bool OCCViewer_ViewFrame::event( QEvent* e )
66 if ( e->type() == QEvent::WindowTitleChange ) {
67 updateWindowTitle( getView( MAIN_VIEW ) );
68 updateWindowTitle( getView( BOTTOM_LEFT ) );
69 updateWindowTitle( getView( TOP_LEFT ) );
70 updateWindowTitle( getView( TOP_RIGHT ) );
72 return OCCViewer_ViewWindow::event( e );
75 //**************************************************************************************
76 OCCViewer_ViewWindow* OCCViewer_ViewFrame::getView( const int i ) const
78 return ( i >= 0 && i < myViews.count() ) ? myViews.at( i ) : 0 ;
81 //**************************************************************************************
82 OCCViewer_ViewWindow* OCCViewer_ViewFrame::getActiveView( ) const
87 //**************************************************************************************
88 void OCCViewer_ViewFrame::setViewManager( SUIT_ViewManager* theMgr )
90 OCCViewer_ViewWindow::setViewManager(theMgr);
91 foreach (OCCViewer_ViewWindow* aView, myViews) {
92 aView->setViewManager(theMgr);
96 //**************************************************************************************
97 void OCCViewer_ViewFrame::returnTo3dView()
99 OCCViewer_ViewWindow* view = 0;
100 for (int i = BOTTOM_RIGHT; i <= TOP_RIGHT; i++ ) {
101 view = myViews.at(i);
102 view->setVisible( view->get2dMode() == No2dMode );
103 view->setMaximized( true, false );
104 if (view->get2dMode() == No2dMode) {
105 myMaximizedView = view;
109 myLayout->setColumnStretch(0, 0);
110 myLayout->setColumnStretch(1, 0);
111 myLayout->addWidget( myMaximizedView, 0, 0 );
114 myLayout->invalidate();
117 //**************************************************************************************
118 void OCCViewer_ViewFrame::onMaximizedView( OCCViewer_ViewWindow* theView, bool isMaximized)
120 myMaximizedView = theView;
121 myActiveView = theView;
123 if (myViews.count() <= 1)
125 myLayout->setColumnStretch(0, 0);
126 myLayout->setColumnStretch(1, 0);
127 myLayout->addWidget( theView, 0, 0 );
129 OCCViewer_ViewWindow* view = 0;
130 for ( i = BOTTOM_RIGHT; i <= TOP_RIGHT; i++ ) {
131 view = myViews.at(i);
132 view->setVisible( view == theView );
133 view->setMaximized( view == theView, false );
141 QtxSplitDlg CreateSubViewsDlg( this, NULL, CreateSubViews );
142 if ( CreateSubViewsDlg.exec() ) {
143 mySplitMode = CreateSubViewsDlg.getSplitMode();
144 myViewsMode = CreateSubViewsDlg.getViewsMode();
146 myMaximizedView->setMaximized(false, false);
149 myLayout->invalidate();
152 //**************************************************************************************
153 void OCCViewer_ViewFrame::createSubViews()
155 OCCViewer_Viewer* aModel = dynamic_cast<OCCViewer_Viewer*>(myManager->getViewModel());
158 if (myViews.count() == 1) {
159 //QColor aColor = myViews.at( MAIN_VIEW )->backgroundColor();
160 OCCViewer_ViewWindow* view = 0;
161 for ( i = BOTTOM_LEFT; i <= TOP_RIGHT; i++) {
162 view = aModel->createSubWindow();
163 view->set2dMode( (Mode2dType) i );
164 view->setParent( centralWidget() );
165 view->setViewManager(myManager);
166 updateWindowTitle( view );
167 myViews.append( view );
168 aModel->initView(view);
169 view->setMaximized(false, false);
170 view->setDropDownButtons( dropDownButtons() );
171 connectViewSignals(view);
172 view->setBackground(aModel->background(i));
173 setSubViewParams( view );
178 //**************************************************************************************
179 void OCCViewer_ViewFrame::setSubViewParams( OCCViewer_ViewWindow* theView )
181 Handle(V3d_View) aView = theView->getViewPort()->getView();
182 Handle(V3d_View) aMainView = myViews.at( MAIN_VIEW )->getViewPort()->getView();
184 // set ray tracing parameters
185 aView->ChangeRenderingParams() = aMainView->RenderingParams();
187 // set environment texture parameters
188 aView->SetTextureEnv( aMainView->TextureEnv() );
189 #if OCC_VERSION_LARGE <= 0x07000000
190 aView->SetSurfaceDetail( aMainView->SurfaceDetail() );
194 void OCCViewer_ViewFrame::splitSubViews()
196 if( mySplitMode == -1 )
200 if ( mySplitMode >= 0 && mySplitMode < 2)
202 else if( mySplitMode >= 2 && mySplitMode < 8 )
204 else if( mySplitMode >=8 && mySplitMode < 29 )
207 if( aNbViews != myViewsMode.count() )
210 int SubViews3Map[6][3][4] = {
211 { {0,0,1,1}, {0,1,1,1}, {0,2,1,1} },
212 { {0,0,1,1}, {1,0,1,1}, {2,0,1,1} },
213 { {0,0,1,1}, {1,0,1,1}, {0,1,2,1} },
214 { {0,0,2,1}, {0,1,1,1}, {1,1,1,1} },
215 { {0,0,1,2}, {1,0,1,1}, {1,1,1,1} },
216 { {0,0,1,1}, {0,1,1,1}, {1,0,1,2} }
219 int SubViews4Map[21][4][4] = {
220 { {0,0,1,1}, {0,1,1,1}, {0,2,1,1}, {0,3,1,1} },
221 { {0,0,1,1}, {1,0,1,1}, {2,0,1,1}, {3,0,1,1} },
222 { {0,0,1,1}, {0,1,1,1}, {1,0,1,1}, {1,1,1,1} },
223 { {0,0,1,1}, {1,0,1,1}, {0,1,2,1}, {0,2,2,1} },
224 { {0,0,2,1}, {0,1,1,1}, {1,1,1,1}, {0,2,2,1} },
225 { {0,0,2,1}, {0,1,2,1}, {0,2,1,1}, {1,2,1,1} },
226 { {0,0,1,1}, {0,1,1,1}, {1,0,1,2}, {2,0,1,2} },
227 { {0,0,1,2}, {1,0,1,1}, {1,1,1,1}, {2,0,1,2} },
228 { {0,0,1,2}, {1,0,1,2}, {2,0,1,1}, {2,1,1,1} },
229 { {0,0,1,1}, {1,0,1,1}, {0,1,2,1}, {2,0,1,2} },
230 { {0,0,2,1}, {0,1,1,1}, {1,1,1,1}, {2,0,1,2} },
231 { {0,0,1,2}, {1,0,1,1}, {2,0,1,1}, {1,1,2,1} },
232 { {0,0,1,2}, {1,0,2,1}, {1,1,1,1}, {2,1,1,1} },
233 { {0,0,2,1}, {0,1,1,1}, {0,2,1,1}, {1,1,1,2} },
234 { {0,0,2,1}, {0,1,1,2}, {1,1,1,1}, {1,2,1,1} },
235 { {0,0,1,1}, {0,1,1,1}, {1,0,1,2}, {0,2,2,1} },
236 { {0,0,1,2}, {1,0,1,1}, {1,1,1,1}, {0,2,2,1} },
237 { {0,0,1,3}, {1,0,1,1}, {1,1,1,1}, {1,2,1,1} },
238 { {0,0,1,1}, {0,1,1,1}, {0,2,1,1}, {1,0,1,3} },
239 { {0,0,1,1}, {1,0,1,1}, {2,0,1,1}, {0,1,3,1} },
240 { {0,0,3,1}, {0,1,1,1}, {1,1,1,1}, {2,1,1,1} },
243 if( aNbViews == 2 ) {
244 if( mySplitMode == 0 ) {
245 myLayout->addWidget( myViews.at(myViewsMode[0]), 0,0,2,1 );
246 myLayout->addWidget( myViews.at(myViewsMode[1]), 0,1,2,1 );
248 else if( mySplitMode == 1 ) {
249 myLayout->addWidget( myViews.at(myViewsMode[0]), 0,0,1,2 );
250 myLayout->addWidget( myViews.at(myViewsMode[1]), 1,0,1,2 );
253 else if( aNbViews == 3 ) {
254 int aSplitMode = mySplitMode - 2;
255 for( int i = 0; i < 3; i++ ) {
256 myLayout->addWidget( myViews.at(myViewsMode[i]),
257 SubViews3Map[aSplitMode][i][0],
258 SubViews3Map[aSplitMode][i][1],
259 SubViews3Map[aSplitMode][i][2],
260 SubViews3Map[aSplitMode][i][3]);
263 else if( aNbViews == 4 ) {
264 int aSplitMode = mySplitMode - 8;
265 for( int i = 0; i < 4; i++ ) {
266 myLayout->addWidget( myViews.at(myViewsMode[i]),
267 SubViews4Map[aSplitMode][i][0],
268 SubViews4Map[aSplitMode][i][1],
269 SubViews4Map[aSplitMode][i][2],
270 SubViews4Map[aSplitMode][i][3]);
274 OCCViewer_ViewWindow* view = 0;
275 bool isVisible3dView = false;
276 for ( int i = 0; i< myViews.count(); i++ ) {
277 view = myViews.at(i);
278 bool isShowed = false;
279 for( int j = 0; j < myViewsMode.count(); j++ ) {
280 OCCViewer_ViewWindow* view2 = 0;
281 view2 = myViews.at( myViewsMode[j] );
287 view->setMaximized( false, false );
288 if ( view->get2dMode() == No2dMode ) isVisible3dView = true;
289 ///////////////QApplication::processEvents(); // VSR: hangs up ?
290 if ( view != myMaximizedView )
291 view->onViewFitAll();
294 view->setVisible( false );
296 if ( !isVisible3dView ) {
297 for ( int i = 0; i< myViews.count(); i++ ){
298 view = myViews.at(i);
299 if( view->isVisible() )
300 view->setReturnedTo3dView( false );
305 //**************************************************************************************
306 OCCViewer_ViewPort3d* OCCViewer_ViewFrame::getViewPort(int theView)
308 return getView(theView)? getView(theView)->getViewPort() : 0;
311 //**************************************************************************************
312 void OCCViewer_ViewFrame::updateEnabledDrawMode()
314 foreach (OCCViewer_ViewWindow* aView, myViews) {
315 aView->updateEnabledDrawMode();
319 //**************************************************************************************
320 void OCCViewer_ViewFrame::setCuttingPlane( bool on, const double x , const double y , const double z,
321 const double dx, const double dy, const double dz)
323 foreach (OCCViewer_ViewWindow* aView, myViews) {
324 aView->setCuttingPlane(on, x, y, z, dx, dy, dz);
329 //**************************************************************************************
330 void OCCViewer_ViewFrame::setCuttingPlane( bool on, const gp_Pln thePln )
332 foreach (OCCViewer_ViewWindow* aView, myViews) {
333 aView->setCuttingPlane(on, thePln);
338 //**************************************************************************************
339 void OCCViewer_ViewFrame::setInteractionStyle( const int i )
341 foreach (OCCViewer_ViewWindow* aView, myViews) {
342 aView->setInteractionStyle(i);
346 //**************************************************************************************
347 int OCCViewer_ViewFrame::projectionType() const
349 return getView(MAIN_VIEW)->projectionType();
352 //**************************************************************************************
353 void OCCViewer_ViewFrame::setProjectionType( int t)
355 foreach (OCCViewer_ViewWindow* aView, myViews) {
356 aView->setProjectionType(t);
360 //**************************************************************************************
361 int OCCViewer_ViewFrame::stereoType() const
363 return getView(MAIN_VIEW)->stereoType();
366 //**************************************************************************************
367 void OCCViewer_ViewFrame::setStereoType( int t)
369 foreach (OCCViewer_ViewWindow* aView, myViews) {
370 aView->setStereoType(t);
374 //**************************************************************************************
375 int OCCViewer_ViewFrame::anaglyphFilter() const
377 return getView(MAIN_VIEW)->anaglyphFilter();
380 //**************************************************************************************
381 void OCCViewer_ViewFrame::setAnaglyphFilter( int t)
383 foreach (OCCViewer_ViewWindow* aView, myViews) {
384 aView->setAnaglyphFilter(t);
388 //**************************************************************************************
389 int OCCViewer_ViewFrame::stereographicFocusType() const
391 return getView(MAIN_VIEW)->stereographicFocusType();
394 //**************************************************************************************
395 double OCCViewer_ViewFrame::stereographicFocusValue() const
397 return getView(MAIN_VIEW)->stereographicFocusValue();
400 //**************************************************************************************
401 void OCCViewer_ViewFrame::setStereographicFocus( int t, double v)
403 foreach (OCCViewer_ViewWindow* aView, myViews) {
404 aView->setStereographicFocus(t, v);
408 //**************************************************************************************
409 int OCCViewer_ViewFrame::interocularDistanceType() const
411 return getView(MAIN_VIEW)->interocularDistanceType();
414 //**************************************************************************************
415 double OCCViewer_ViewFrame::interocularDistanceValue() const
417 return getView(MAIN_VIEW)->interocularDistanceValue();
420 //**************************************************************************************
421 void OCCViewer_ViewFrame::setInterocularDistance( int t, double v)
423 foreach (OCCViewer_ViewWindow* aView, myViews) {
424 aView->setInterocularDistance(t, v);
428 //**************************************************************************************
429 bool OCCViewer_ViewFrame::isReverseStereo() const
431 return getView(MAIN_VIEW)->isReverseStereo();
434 //**************************************************************************************
435 void OCCViewer_ViewFrame::setReverseStereo( bool t)
437 foreach (OCCViewer_ViewWindow* aView, myViews) {
438 aView->setReverseStereo(t);
442 //**************************************************************************************
443 bool OCCViewer_ViewFrame::isVSync() const
445 return getView(MAIN_VIEW)->isVSync();
448 //**************************************************************************************
449 void OCCViewer_ViewFrame::setVSync( bool t)
451 foreach (OCCViewer_ViewWindow* aView, myViews) {
456 //**************************************************************************************
457 bool OCCViewer_ViewFrame::isQuadBufferSupport() const
459 return getView(MAIN_VIEW)->isQuadBufferSupport();
462 //**************************************************************************************
463 void OCCViewer_ViewFrame::setQuadBufferSupport( bool t)
465 foreach (OCCViewer_ViewWindow* aView, myViews) {
466 aView->setQuadBufferSupport(t);
470 //**************************************************************************************
471 void OCCViewer_ViewFrame::setZoomingStyle( const int i )
473 foreach (OCCViewer_ViewWindow* aView, myViews) {
474 aView->setZoomingStyle(i);
478 //**************************************************************************************
479 void OCCViewer_ViewFrame::connectViewSignals(OCCViewer_ViewWindow* theView)
481 connect( theView, SIGNAL( returnedTo3d( ) ), this, SLOT( returnTo3dView( ) ) );
483 connect( theView, SIGNAL( maximized( OCCViewer_ViewWindow*, bool ) ),
484 this, SLOT( onMaximizedView( OCCViewer_ViewWindow*, bool ) ) );
486 connect( theView, SIGNAL( wheeling(SUIT_ViewWindow*, QWheelEvent*) ),
487 this, SIGNAL( wheeling(SUIT_ViewWindow*, QWheelEvent*) ) );
489 connect( theView, SIGNAL( keyReleased(SUIT_ViewWindow*, QKeyEvent*) ),
490 this, SIGNAL( keyReleased(SUIT_ViewWindow*, QKeyEvent*) ) );
491 connect( theView, SIGNAL( keyPressed(SUIT_ViewWindow*, QKeyEvent*) ),
492 this, SIGNAL( keyPressed(SUIT_ViewWindow*, QKeyEvent*) ) );
494 connect( theView, SIGNAL( mouseDoubleClicked(SUIT_ViewWindow*, QMouseEvent*) ),
495 this, SIGNAL( mouseDoubleClicked(SUIT_ViewWindow*, QMouseEvent*) ) );
496 connect( theView, SIGNAL( mousePressed(SUIT_ViewWindow*, QMouseEvent*) ),
497 this, SIGNAL( mousePressed(SUIT_ViewWindow*, QMouseEvent*) ) );
498 // The signal is used to mouse pressed for choose the current window
499 connect( theView, SIGNAL( mousePressed(SUIT_ViewWindow*, QMouseEvent*) ),
500 this, SLOT( onMousePressed(SUIT_ViewWindow*, QMouseEvent*) ) );
501 connect( theView, SIGNAL( mouseReleased(SUIT_ViewWindow*, QMouseEvent*) ),
502 this, SIGNAL( mouseReleased(SUIT_ViewWindow*, QMouseEvent*) ) );
503 connect( theView, SIGNAL( mouseMoving(SUIT_ViewWindow*, QMouseEvent*) ),
504 this, SIGNAL( mouseMoving(SUIT_ViewWindow*, QMouseEvent*) ) );
506 // The signal is used to process get/set background color from popup
507 connect( theView, SIGNAL( contextMenuRequested(QContextMenuEvent*) ),
508 this, SLOT( onContextMenuRequested(QContextMenuEvent*) ) );
510 connect( theView, SIGNAL( contextMenuRequested(QContextMenuEvent*) ),
511 this, SIGNAL( contextMenuRequested(QContextMenuEvent*) ) );
513 connect( theView, SIGNAL( viewCloned( SUIT_ViewWindow* ) ),
514 this, SIGNAL( viewCloned( SUIT_ViewWindow* ) ) );
518 void OCCViewer_ViewFrame::setBackgroundColor( const QColor& theColor )
520 if (myPopupRequestedView)
521 myPopupRequestedView->setBackgroundColor(theColor);
523 foreach (OCCViewer_ViewWindow* aView, myViews) {
524 if (aView->isVisible())
525 aView->setBackgroundColor(theColor);
529 void OCCViewer_ViewFrame::setBackground( const Qtx::BackgroundData& theBackground )
531 if (myPopupRequestedView)
532 myPopupRequestedView->setBackground(theBackground);
534 foreach (OCCViewer_ViewWindow* aView, myViews) {
535 if (aView->isVisible())
536 aView->setBackground(theBackground);
541 void OCCViewer_ViewFrame::onViewFitAll()
543 foreach (OCCViewer_ViewWindow* aView, myViews) {
544 aView->onViewFitAll();
548 void OCCViewer_ViewFrame::onFitAll()
550 foreach (OCCViewer_ViewWindow* aView, myViews) {
556 QColor OCCViewer_ViewFrame::backgroundColor() const
558 if (myPopupRequestedView)
559 return myPopupRequestedView->backgroundColor();
561 foreach (OCCViewer_ViewWindow* aView, myViews) {
562 if (aView->isVisible())
563 return aView->backgroundColor();
565 return getView(MAIN_VIEW)->backgroundColor();
568 Qtx::BackgroundData OCCViewer_ViewFrame::background() const
570 if (myPopupRequestedView)
571 return myPopupRequestedView->background();
573 foreach (OCCViewer_ViewWindow* aView, myViews) {
574 if (aView->isVisible())
575 return aView->background();
577 return getView(MAIN_VIEW)->background();
580 void OCCViewer_ViewFrame::showStaticTrihedron( bool on )
582 if ( myPopupRequestedView )
583 myPopupRequestedView->showStaticTrihedron( on );
585 foreach ( OCCViewer_ViewWindow* aView, myViews ) {
586 aView->showStaticTrihedron( on );
591 QImage OCCViewer_ViewFrame::dumpView()
593 foreach (OCCViewer_ViewWindow* aView, myViews) {
594 if (aView->isVisible())
595 return aView->dumpView();
600 bool OCCViewer_ViewFrame::dumpViewToFormat( const QImage& image, const QString& fileName, const QString& format )
602 foreach (OCCViewer_ViewWindow* aView, myViews) {
603 if (aView->isVisible())
604 return aView->dumpViewToFormat( image, fileName, format );
609 void OCCViewer_ViewFrame::onContextMenuRequested(QContextMenuEvent*)
611 myPopupRequestedView = dynamic_cast<OCCViewer_ViewWindow*>(sender());
614 void OCCViewer_ViewFrame::onMousePressed(SUIT_ViewWindow* view, QMouseEvent*)
616 myActiveView = dynamic_cast<OCCViewer_ViewWindow*>(view);
619 void OCCViewer_ViewFrame::onDumpView()
621 if (myPopupRequestedView) {
622 myPopupRequestedView->onDumpView();
625 getView(MAIN_VIEW)->onDumpView();
629 void OCCViewer_ViewFrame::setDropDownButtons( bool on )
631 foreach( OCCViewer_ViewWindow* aView, myViews ) {
632 aView->setDropDownButtons( on );
634 OCCViewer_ViewWindow::setDropDownButtons( on );
637 QString OCCViewer_ViewFrame::getVisualParameters()
640 QStringList splitParams;
641 if( mySplitMode != -1 && myViewsMode.count() != 0 ) {
642 splitParams << QString::number( mySplitMode );
643 foreach ( int aViewMode, myViewsMode )
644 splitParams << QString::number( aViewMode );
645 params.append( splitParams.join("*") );
648 params.append( QString::number( mySplitMode ) );
649 int maximizedView = 999;
650 for ( int i = BOTTOM_RIGHT; i <= TOP_RIGHT && i < myViews.count(); i++) {
651 if ( getView(i)->isVisible() )
652 maximizedView = ( maximizedView != -1 ) ? ( maximizedView == 999 ? i : -1 ) : ( maximizedView );
653 params << getView(i)->getVisualParameters();
655 params.prepend( QString::number( maximizedView ) );
656 return params.join( "|" );
659 void OCCViewer_ViewFrame::setVisualParameters( const QString& parameters )
661 QStringList params = parameters.split( "|" );
662 if ( params.count() > 1 ) {
663 int maximizedView = params[0].toInt();
664 if ( myViews.count() < params.count()-2 )
665 createSubViews(); // secondary views are not created yet, but should be
667 for ( int i = 2; i < params.count(); i++ ) {
669 getView( idx )->setVisualParameters( params[i] );
672 QStringList aSplitParams = params[1].split("*");
673 if( aSplitParams.count() > 1 ) {
674 mySplitMode = aSplitParams[0].toInt();
675 for( int i = 1; i < aSplitParams.count(); i++ )
676 myViewsMode << aSplitParams[i].toInt();
678 if( mySplitMode != -1 )
681 onMaximizedView( getView( maximizedView ), true ); // set proper sub-window maximized
684 // handle obsolete versions - no parameters for xy, yz, xz views
685 getView(MAIN_VIEW)->setVisualParameters( parameters );
689 SUIT_CameraProperties OCCViewer_ViewFrame::cameraProperties()
691 // view frame does not have camera properties
692 return SUIT_CameraProperties();
695 void OCCViewer_ViewFrame::updateWindowTitle(OCCViewer_ViewWindow* theView)
700 switch ( theView->get2dMode() ) {
712 if ( !title.isEmpty() )
713 theView->setWindowTitle( windowTitle() + " - " + title );
716 void OCCViewer_ViewFrame::enableSelection( bool isEnabled )
718 foreach (OCCViewer_ViewWindow* aView, myViews) {
719 aView->enableSelection(isEnabled);
723 void OCCViewer_ViewFrame::enablePreselection( bool isEnabled )
725 foreach (OCCViewer_ViewWindow* aView, myViews) {
726 aView->enablePreselection(isEnabled);
730 bool OCCViewer_ViewFrame::enableDrawMode( bool on )
733 foreach (OCCViewer_ViewWindow* aView, myViews) {
734 prev = prev || aView->enableDrawMode( on );