]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
*** empty log message ***
authorvsr <vsr@opencascade.com>
Thu, 12 Jul 2007 07:45:38 +0000 (07:45 +0000)
committervsr <vsr@opencascade.com>
Thu, 12 Jul 2007 07:45:38 +0000 (07:45 +0000)
src/GLViewer/GLViewer_ViewFrame.cxx
src/OCCViewer/OCCViewer_ViewWindow.cxx
src/Qtx/QtxMultiAction.cxx
src/Qtx/QtxMultiAction.h
src/QxGraph/QxGraph_ViewWindow.cxx
src/SVTK/SVTK_MainWindow.cxx
src/SVTK/SVTK_ViewWindow.cxx

index d871fa313bf78309398824cdcb24284b31846615..a783cf79b94a75f273c2cfe1ee0c028db369dd20 100644 (file)
 #include "GLViewer_ViewPort2d.h"
 
 #include <QtxToolBar.h>
+#include <QtxMultiAction.h>
 
 #include <SUIT_Desktop.h>
 #include <SUIT_Session.h>
-#include <SUIT_ToolButton.h>
 #include <SUIT_ResourceMgr.h>
 #include <SUIT_MessageBox.h>
 
@@ -159,17 +159,17 @@ void GLViewer_ViewFrame::createToolBar()
 {
   myToolBar->addAction( myActionsMap[DumpId] );
 
-  SUIT_ToolButton* aScaleBtn = new SUIT_ToolButton(myToolBar);
-  aScaleBtn->AddAction(myActionsMap[FitAllId]);
-  aScaleBtn->AddAction(myActionsMap[FitRectId]);
-  aScaleBtn->AddAction(myActionsMap[FitSelectId]);
-  aScaleBtn->AddAction(myActionsMap[ZoomId]);
-  myToolBar->addWidget( aScaleBtn );
-
-  SUIT_ToolButton* aPanBtn = new SUIT_ToolButton(myToolBar);
-  aPanBtn->AddAction(myActionsMap[PanId]);
-  aPanBtn->AddAction(myActionsMap[GlobalPanId]);
-  myToolBar->addWidget( aPanBtn );
+  QtxMultiAction* aScaleAction = new QtxMultiAction( this );
+  aScaleAction->insertAction( myActionsMap[FitAllId] );
+  aScaleAction->insertAction( myActionsMap[FitRectId] );
+  aScaleAction->insertAction( myActionsMap[FitSelectId] );
+  aScaleAction->insertAction( myActionsMap[ZoomId] );
+  myToolBar->addAction( aScaleAction );
+
+  QtxMultiAction* aPanAction = new QtxMultiAction( this );
+  aPanAction->insertAction( myActionsMap[PanId] );
+  aPanAction->insertAction( myActionsMap[GlobalPanId] );
+  myToolBar->addAction( aPanAction );
 
   myToolBar->addAction( myActionsMap[ResetId] );
 }
index 8ca50a10f34efcc9a05af391578e11e95660bc0d..748e2f6f89f303b446da3b9d31fcc8dbb1778c8c 100755 (executable)
@@ -16,8 +16,9 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
-// OCCViewer_ViewWindow.cxx: implementation of the OCCViewer_ViewWindow class.
-
+// File   : OCCViewer_ViewWindow.cxx
+// Author :
+//
 
 #include "OCCViewer_ViewWindow.h"
 #include "OCCViewer_ViewModel.h"
 #include "OCCViewer_ClippingDlg.h"
 #include "OCCViewer_SetRotationPointDlg.h"
 
-#include "SUIT_Desktop.h"
-#include "SUIT_Session.h"
-#include "SUIT_ToolButton.h"
-#include "SUIT_ViewManager.h"
-
-#include "SUIT_Tools.h"
-#include "SUIT_ResourceMgr.h"
-#include "SUIT_MessageBox.h"
+#include <SUIT_Desktop.h>
+#include <SUIT_Session.h>
+#include <SUIT_ViewManager.h>
+#include <SUIT_Tools.h>
+#include <SUIT_ResourceMgr.h>
+#include <SUIT_MessageBox.h>
 
 #include <QtxToolBar.h>
+#include <QtxMultiAction.h>
 
 #include <QPainter>
 #include <QTime>
@@ -60,7 +60,6 @@
 #include <Graphic3d_MapOfStructure.hxx>
 #include <Graphic3d_Structure.hxx>
 
-
 const char* imageZoomCursor[] = { 
 "32 32 3 1",
 ". c None",
@@ -177,12 +176,13 @@ const char* imageCrossCursor[] = {
 
 
 /*!
-  Constructor
-  \param theDesktop main window of application
-  \param theModel OCC 3D viewer
+  \brief Constructor
+  \param theDesktop main window of application
+  \param theModel OCC 3D viewer
 */
-OCCViewer_ViewWindow::OCCViewer_ViewWindow(SUIT_Desktop* theDesktop, OCCViewer_Viewer* theModel)
-: SUIT_ViewWindow(theDesktop)
+OCCViewer_ViewWindow::OCCViewer_ViewWindow( SUIT_Desktop*     theDesktop, 
+                                           OCCViewer_Viewer* theModel )
+: SUIT_ViewWindow( theDesktop )
 {
   myModel = theModel;
   myRestoreFlag = 0;
@@ -202,7 +202,7 @@ OCCViewer_ViewWindow::~OCCViewer_ViewWindow()
 }
 
 /*!
-  Initialization of view window
+  \brief Internal initialization.
 */
 void OCCViewer_ViewWindow::initLayout()
 {
@@ -227,10 +227,13 @@ void OCCViewer_ViewWindow::initLayout()
 }
 
 /*!
-  \return type of operation by states of mouse and keyboard buttons
-  \param theEvent - mouse event
+  \brief Detect viewer operation according the the mouse button pressed
+  and key modifiers used.
+  \param theEvent mouse event
+  \return type of the operation
 */
-OCCViewer_ViewWindow::OperationType OCCViewer_ViewWindow::getButtonState(QMouseEvent* theEvent)
+OCCViewer_ViewWindow::OperationType 
+OCCViewer_ViewWindow::getButtonState( QMouseEvent* theEvent )
 {
   OperationType aOp = NOTHING;
   if( (theEvent->modifiers() == SUIT_ViewModel::myStateMap[SUIT_ViewModel::ZOOM]) &&
@@ -247,9 +250,12 @@ OCCViewer_ViewWindow::OperationType OCCViewer_ViewWindow::getButtonState(QMouseE
 }
 
 /*!
-  Custom event handler
+  \brief Customize event handling
+  \param watched event receiver object
+  \param e event
+  \return \c true if the event processing should be stopped
 */
-bool OCCViewer_ViewWindow::eventFilter(QObject* watched, QEvent* e)
+bool OCCViewer_ViewWindow::eventFilter( QObject* watched, QEvent* e )
 {
   if ( watched == myViewPort ) {
     int aType = e->type();
@@ -295,7 +301,7 @@ bool OCCViewer_ViewWindow::eventFilter(QObject* watched, QEvent* e)
 }
 
 /*!
-  Updates state of enable draw mode state
+  \brief Update state of enable draw mode state.
 */
 void OCCViewer_ViewWindow::updateEnabledDrawMode()
 {
@@ -304,9 +310,10 @@ void OCCViewer_ViewWindow::updateEnabledDrawMode()
 }
 
 /*!
-  Handler of mouse press event
+  \brief Handle mouse press event
+  \param theEvent mouse event
 */
-void OCCViewer_ViewWindow::vpMousePressEvent(QMouseEvent* theEvent)
+void OCCViewer_ViewWindow::vpMousePressEvent( QMouseEvent* theEvent )
 {
   myStartX = theEvent->x();
   myStartY = theEvent->y();
@@ -399,7 +406,9 @@ void OCCViewer_ViewWindow::vpMousePressEvent(QMouseEvent* theEvent)
 
 
 /*!
-  Starts zoom operation, sets corresponding cursor
+  \brief Start zooming operation.
+
+  Sets the corresponding cursor for the widget.
 */
 void OCCViewer_ViewWindow::activateZoom()
 {
@@ -416,7 +425,9 @@ void OCCViewer_ViewWindow::activateZoom()
 
 
 /*!
-  Starts panning operation, sets corresponding cursor
+  \brief Start panning operation.
+  
+  Sets the corresponding cursor for the widget.
 */
 void OCCViewer_ViewWindow::activatePanning()
 {
@@ -431,7 +442,9 @@ void OCCViewer_ViewWindow::activatePanning()
 }
 
 /*!
-  Starts rotation operation, sets corresponding cursor
+  \brief Start rotation operation
+
+  Sets the corresponding cursor for the widget.
 */
 void OCCViewer_ViewWindow::activateRotation()
 {
@@ -447,7 +460,11 @@ void OCCViewer_ViewWindow::activateRotation()
 }
 
 /*!
-  Compute the gravity center
+  \brief Compute the gravity center.
+  \param theX used to return X coordinate of the gravity center
+  \param theY used to return Y coordinate of the gravity center
+  \param theZ used to return Z coordinate of the gravity center
+  \return \c true if the gravity center is computed
 */
 bool OCCViewer_ViewWindow::computeGravityCenter( double& theX, double& theY, double& theZ )
 {
@@ -515,7 +532,7 @@ bool OCCViewer_ViewWindow::computeGravityCenter( double& theX, double& theY, dou
 }
 
 /*!
-  Set the gravity center as a rotation point
+  \brief Set the gravity center as a rotation point.
 */
 void OCCViewer_ViewWindow::activateSetRotationGravity()
 {
@@ -538,7 +555,8 @@ void OCCViewer_ViewWindow::activateSetRotationGravity()
 }
 
 /*!
-  Update gravity center in the SetRotationPointDlg
+  \brief Update gravity center in the "Set Rotation Point" dialog box.
+  \sa OCCViewer_SetRotationPointDlg class
 */
 void OCCViewer_ViewWindow::updateGravityCoords()
 {
@@ -551,9 +569,12 @@ void OCCViewer_ViewWindow::updateGravityCoords()
 }
 
 /*!
-  Set the point selected by user as a rotation point
+  \brief Set the point selected by the user as a rotation point.
+  \param theX X coordinate of the rotation point
+  \param theY Y coordinate of the rotation point
+  \param theZ Z coordinate of the rotation point
 */
-void OCCViewer_ViewWindow::activateSetRotationSelected(double theX, double theY, double theZ)
+void OCCViewer_ViewWindow::activateSetRotationSelected( double theX, double theY, double theZ )
 {
   if ( myRotationPointSelection )
   {
@@ -571,7 +592,7 @@ void OCCViewer_ViewWindow::activateSetRotationSelected(double theX, double theY,
 }
 
 /*!
-  Start the point selection process
+  \brief Start the point selection process.
 */
 void OCCViewer_ViewWindow::activateStartPointSelection()
 {
@@ -608,7 +629,9 @@ void OCCViewer_ViewWindow::activateStartPointSelection()
 }
 
 /*!
-  Starts global panning operation, sets corresponding cursor
+  \brief Start global panning operation
+
+  Sets the corresponding cursor for the widget.
 */
 void OCCViewer_ViewWindow::activateGlobalPanning()
 {
@@ -626,7 +649,9 @@ void OCCViewer_ViewWindow::activateGlobalPanning()
 }
 
 /*!
-  Starts fit operation, sets corresponding cursor
+  \brief Starts fit operation.
+
+  Sets the corresponding cursor for the widget.
 */
 void OCCViewer_ViewWindow::activateWindowFit()
 {
@@ -642,9 +667,9 @@ void OCCViewer_ViewWindow::activateWindowFit()
 }
 
 /*!
-  Stores which viewer operation is requesting
+  \brief Start delayed viewer operation.
 */
-void OCCViewer_ViewWindow::setTransformRequested ( OperationType op )
+void OCCViewer_ViewWindow::setTransformRequested( OperationType op )
 {    
   myOperation = op;
   myViewPort->setMouseTracking( myOperation == NOTHING );
@@ -652,9 +677,10 @@ void OCCViewer_ViewWindow::setTransformRequested ( OperationType op )
 
 
 /*!
-  Handler of mouse move event
+  \brief Handle mouse move event.
+  \param theEvent mouse event
 */
-void OCCViewer_ViewWindow::vpMouseMoveEvent(QMouseEvent* theEvent)
+void OCCViewer_ViewWindow::vpMouseMoveEvent( QMouseEvent* theEvent )
 {
   myCurrX = theEvent->x();
   myCurrY = theEvent->y();
@@ -710,7 +736,8 @@ void OCCViewer_ViewWindow::vpMouseMoveEvent(QMouseEvent* theEvent)
 }
 
 /*!
-  Handler of mouse release event
+  \brief Handle mouse release event.
+  \param theEvent mouse event
 */
 void OCCViewer_ViewWindow::vpMouseReleaseEvent(QMouseEvent* theEvent)
 {
@@ -769,7 +796,7 @@ void OCCViewer_ViewWindow::vpMouseReleaseEvent(QMouseEvent* theEvent)
 }
 
 /*!
-  Sets the viewport to its initial state
+  \brief Reset the viewport to its initial state
   ( no transformations in process etc. )
 */
 void OCCViewer_ViewWindow::resetState()
@@ -797,7 +824,7 @@ void OCCViewer_ViewWindow::resetState()
 
 
 /*!
-  Draws rectangle by starting and current points
+  \brief Draw rubber band rectangle.
 */
 void OCCViewer_ViewWindow::drawRect()
 {
@@ -815,7 +842,7 @@ void OCCViewer_ViewWindow::drawRect()
 }
 
 /*!
-  \brief Delete rubber band on the end on the dragging operation.
+  \brief Clear rubber band rectangle on the end on the dragging operation.
 */
 void OCCViewer_ViewWindow::endDrawRect()
 {
@@ -824,7 +851,7 @@ void OCCViewer_ViewWindow::endDrawRect()
 }
 
 /*!
-  Creates actions of OCC view window
+  \brief Create actions.
 */
 void OCCViewer_ViewWindow::createActions()
 {
@@ -971,7 +998,7 @@ void OCCViewer_ViewWindow::createActions()
 }
 
 /*!
-  Creates toolbar of OCC view window
+  \brief Create toolbar.
 */
 void OCCViewer_ViewWindow::createToolBar()
 {
@@ -979,36 +1006,36 @@ void OCCViewer_ViewWindow::createToolBar()
   if ( myModel->trihedronActivated() ) 
     myToolBar->addAction( myActionsMap[TrihedronShowId] );
 
-  SUIT_ToolButton* aScaleBtn = new SUIT_ToolButton(myToolBar, "scale");
-  aScaleBtn->AddAction(myActionsMap[FitAllId]);
-  aScaleBtn->AddAction(myActionsMap[FitRectId]);
-  aScaleBtn->AddAction(myActionsMap[ZoomId]);
-  myToolBar->addWidget( aScaleBtn );
+  QtxMultiAction* aScaleAction = new QtxMultiAction( this );
+  aScaleAction->insertAction( myActionsMap[FitAllId] );
+  aScaleAction->insertAction( myActionsMap[FitRectId] );
+  aScaleAction->insertAction( myActionsMap[ZoomId] );
+  myToolBar->addAction( aScaleAction );
 
-  SUIT_ToolButton* aPanningBtn = new SUIT_ToolButton(myToolBar, "pan");
-  aPanningBtn->AddAction(myActionsMap[PanId]);
-  aPanningBtn->AddAction(myActionsMap[GlobalPanId]);
-  myToolBar->addWidget( aPanningBtn );
+  QtxMultiAction* aPanningAction = new QtxMultiAction( this );
+  aPanningAction->insertAction( myActionsMap[PanId] );
+  aPanningAction->insertAction( myActionsMap[GlobalPanId] );
+  myToolBar->addAction( aPanningAction );
 
   myToolBar->addAction( myActionsMap[ChangeRotationPointId] );
 
   myToolBar->addAction( myActionsMap[RotationId] );
 
-  SUIT_ToolButton* aViewsBtn = new SUIT_ToolButton(myToolBar, "projection");
-  aViewsBtn->AddAction(myActionsMap[FrontId]);
-  aViewsBtn->AddAction(myActionsMap[BackId]);
-  aViewsBtn->AddAction(myActionsMap[TopId]);
-  aViewsBtn->AddAction(myActionsMap[BottomId]);
-  aViewsBtn->AddAction(myActionsMap[LeftId]);
-  aViewsBtn->AddAction(myActionsMap[RightId]);
-  myToolBar->addWidget( aViewsBtn );
+  QtxMultiAction* aViewsAction = new QtxMultiAction( this );
+  aViewsAction->insertAction( myActionsMap[FrontId] );
+  aViewsAction->insertAction( myActionsMap[BackId] );
+  aViewsAction->insertAction( myActionsMap[TopId] );
+  aViewsAction->insertAction( myActionsMap[BottomId] );
+  aViewsAction->insertAction( myActionsMap[LeftId] );
+  aViewsAction->insertAction( myActionsMap[RightId] );
+  myToolBar->addAction( aViewsAction );
 
   myToolBar->addAction( myActionsMap[ResetId] );
 
-  SUIT_ToolButton* aMemBtn = new SUIT_ToolButton(myToolBar, "view");
-  aMemBtn->AddAction(myActionsMap[MemId]);
-  aMemBtn->AddAction(myActionsMap[RestoreId]);
-  myToolBar->addWidget( aMemBtn );
+  QtxMultiAction* aMemAction = new QtxMultiAction( this );
+  aMemAction->insertAction( myActionsMap[MemId] );
+  aMemAction->insertAction( myActionsMap[RestoreId] );
+  myToolBar->addAction( aMemAction );
 
   myToolBar->addSeparator();
   myToolBar->addAction( myActionsMap[CloneId] );
@@ -1018,7 +1045,7 @@ void OCCViewer_ViewWindow::createToolBar()
 }
 
 /*!
-  Processes operation fit all
+  \brief Perform 'fit all' operation.
 */
 void OCCViewer_ViewWindow::onViewFitAll()
 {
@@ -1026,7 +1053,7 @@ void OCCViewer_ViewWindow::onViewFitAll()
 }
 
 /*!
-  Processes transformation "front view"
+  \brief Perform "front view" transformation.
 */
 void OCCViewer_ViewWindow::onFrontView()
 {
@@ -1037,7 +1064,7 @@ void OCCViewer_ViewWindow::onFrontView()
 }
 
 /*!
-  Processes transformation "back view"
+  \brief Perform "back view" transformation.
 */
 void OCCViewer_ViewWindow::onBackView()
 {
@@ -1048,7 +1075,7 @@ void OCCViewer_ViewWindow::onBackView()
 }
 
 /*!
-  Processes transformation "top view"
+  \brief Perform "top view" transformation.
 */
 void OCCViewer_ViewWindow::onTopView()
 {
@@ -1059,7 +1086,7 @@ void OCCViewer_ViewWindow::onTopView()
 }
 
 /*!
-  Processes transformation "bottom view"
+  \brief Perform "bottom view" transformation.
 */
 void OCCViewer_ViewWindow::onBottomView()
 {
@@ -1070,7 +1097,7 @@ void OCCViewer_ViewWindow::onBottomView()
 }
 
 /*!
-  Processes transformation "left view"
+  \brief Perform "left view" transformation.
 */
 void OCCViewer_ViewWindow::onLeftView()
 {
@@ -1081,7 +1108,7 @@ void OCCViewer_ViewWindow::onLeftView()
 }
 
 /*!
-  Processes transformation "right view"
+  \brief Perform "right view" transformation.
 */
 void OCCViewer_ViewWindow::onRightView()
 {
@@ -1092,7 +1119,9 @@ void OCCViewer_ViewWindow::onRightView()
 }
 
 /*!
-  Processes transformation "reset view": sets default orientation of viewport camera
+  \brief Perform "reset view" transformation.
+
+  Sets default orientation of the viewport camera.
 */
 void OCCViewer_ViewWindow::onResetView()
 {
@@ -1105,7 +1134,7 @@ void OCCViewer_ViewWindow::onResetView()
 }
 
 /*!
-  Processes transformation "fit all"
+  \brief Perform "fit all" transformation.
 */
 void OCCViewer_ViewWindow::onFitAll()
 {
@@ -1114,7 +1143,8 @@ void OCCViewer_ViewWindow::onFitAll()
 }
 
 /*!
-  SLOT: called if change rotation point operation is activated
+  \brief Called if 'change rotation point' operation is activated.
+  \param on action state
 */
 void OCCViewer_ViewWindow::onSetRotationPoint( bool on )
 {
@@ -1145,7 +1175,7 @@ void OCCViewer_ViewWindow::onSetRotationPoint( bool on )
 }
 
 /*!
-  Creates one more window with same content
+   \brief Create one more window with same content.
 */
 void OCCViewer_ViewWindow::onCloneView()
 {
@@ -1154,7 +1184,11 @@ void OCCViewer_ViewWindow::onCloneView()
 }
 
 /*!
-  SLOT: called if clipping operation is activated, enables/disables of clipping plane
+  \brief called if clipping operation is activated.
+
+  Enables/disables clipping plane displaying.
+
+  \parma on action state
 */
 void OCCViewer_ViewWindow::onClipping( bool on )
 {
@@ -1184,7 +1218,7 @@ void OCCViewer_ViewWindow::onClipping( bool on )
 }
 
 /*!
-  Stores view parameters
+  \brief Store view parameters.
 */
 void OCCViewer_ViewWindow::onMemorizeView()
 {
@@ -1192,47 +1226,48 @@ void OCCViewer_ViewWindow::onMemorizeView()
 }
 
 /*!
-  Restores view parameters
+  \brief Restore view parameters.
 */
 void OCCViewer_ViewWindow::onRestoreView()
 {
-       OCCViewer_CreateRestoreViewDlg* aDlg = new OCCViewer_CreateRestoreViewDlg( centralWidget(), myModel );
-       connect( aDlg, SIGNAL( dlgOk() ), this, SLOT( setRestoreFlag() ) );
-       aDlg->exec();
-       myModel->updateViewAspects( aDlg->parameters() );
-       if( myRestoreFlag && aDlg->parameters().count() )
-               performRestoring( aDlg->currentItem() );
+  OCCViewer_CreateRestoreViewDlg* aDlg = new OCCViewer_CreateRestoreViewDlg( centralWidget(), myModel );
+  connect( aDlg, SIGNAL( dlgOk() ), this, SLOT( setRestoreFlag() ) );
+  aDlg->exec();
+  myModel->updateViewAspects( aDlg->parameters() );
+  if( myRestoreFlag && aDlg->parameters().count() )
+    performRestoring( aDlg->currentItem() );
 }
 
 /*!
-  Restores view parameters from structure viewAspect
+  \brief Restore view parameters.
+  \param anItem view parameters
 */
 void OCCViewer_ViewWindow::performRestoring( const viewAspect& anItem )
 {
-       Handle(V3d_View) aView3d = myViewPort->getView();
-
-       Standard_Boolean prev = aView3d->SetImmediateUpdate( Standard_False );
-       aView3d->SetScale( anItem.scale );
-       aView3d->SetCenter( anItem.centerX, anItem.centerY );
-       aView3d->SetTwist( anItem.twist );
-       aView3d->SetAt( anItem.atX, anItem.atY, anItem.atZ );
-       aView3d->SetImmediateUpdate( prev );
-       aView3d->SetEye( anItem.eyeX, anItem.eyeY, anItem.eyeZ );
-       aView3d->SetProj( anItem.projX, anItem.projY, anItem.projZ );
-               
-       myRestoreFlag = 0;
+  Handle(V3d_View) aView3d = myViewPort->getView();
+       
+  Standard_Boolean prev = aView3d->SetImmediateUpdate( Standard_False );
+  aView3d->SetScale( anItem.scale );
+  aView3d->SetCenter( anItem.centerX, anItem.centerY );
+  aView3d->SetTwist( anItem.twist );
+  aView3d->SetAt( anItem.atX, anItem.atY, anItem.atZ );
+  aView3d->SetImmediateUpdate( prev );
+  aView3d->SetEye( anItem.eyeX, anItem.eyeY, anItem.eyeZ );
+  aView3d->SetProj( anItem.projX, anItem.projY, anItem.projZ );
+  
+  myRestoreFlag = 0;
 }
 
 /*!
-  Sets restore flag
+  \brief Set restore flag.
 */
 void OCCViewer_ViewWindow::setRestoreFlag()
 {
-       myRestoreFlag = 1;
+  myRestoreFlag = 1;
 }
 
 /*!
-  SLOT: called when action "show/hide" trihedron is activated
+  \brief Called when action "show/hide trihedron" is activated.
 */
 void OCCViewer_ViewWindow::onTrihedronShow()
 {
@@ -1240,7 +1275,8 @@ void OCCViewer_ViewWindow::onTrihedronShow()
 }
 
 /*!
-  \return QImage, containing all scene rendering in window
+  \brief Dump view window contents to the pixmap.
+  \return pixmap containing all scene rendered in the window
 */
 QImage OCCViewer_ViewWindow::dumpView()
 {
@@ -1249,17 +1285,17 @@ QImage OCCViewer_ViewWindow::dumpView()
 }
 
 /*!
-  Sets parameters of cutting plane
-  \param on - is cutting plane enabled
-  \param x - x-position of plane point 
-  \param y - y-position of plane point 
-  \param z - z-position of plane point 
-  \param dx - x-coordinate of plane normal
-  \param dy - y-coordinate of plane normal
-  \param dz - z-coordinate of plane normal
+  \brief Set parameters of the cutting plane
+  \param on if \c true, cutting plane is enabled
+  \param x position of plane point 
+  \param y position of plane point 
+  \param z position of plane point 
+  \param dx coordinate of plane normal
+  \param dy coordinate of plane normal
+  \param dz coordinate of plane normal
 */
-void  OCCViewer_ViewWindow::setCuttingPlane( bool on, const double x,  const double y,  const double z,
-                                                     const double dx, const double dy, const double dz )
+void OCCViewer_ViewWindow::setCuttingPlane( bool on, const double x,  const double y,  const double z,
+                                           const double dx, const double dy, const double dz )
 {
   Handle(V3d_View) view = myViewPort->getView();
   if ( view.IsNull() )
@@ -1292,7 +1328,8 @@ void  OCCViewer_ViewWindow::setCuttingPlane( bool on, const double x,  const dou
 }
 
 /*!
-  \return true if there is at least one cutting plane
+  \brief Check if any cutting plane is enabled
+  \return \c true if at least one cutting plane is enabled
 */
 bool OCCViewer_ViewWindow::isCuttingPlane()
 {
@@ -1302,7 +1339,8 @@ bool OCCViewer_ViewWindow::isCuttingPlane()
 }
 
 /*!
-  The method returns the visual parameters of this view as a viewAspect object
+  \brief Get the visual parameters of the view window.
+  \return visual parameters of view window
 */
 viewAspect OCCViewer_ViewWindow::getViewParams() const
 {
@@ -1340,7 +1378,8 @@ viewAspect OCCViewer_ViewWindow::getViewParams() const
 
 
 /*!
-  The method returns the visual parameters of this view as a formated string
+  \brief Get visual parameters of this view window.
+  \return visual parameters of view window
 */
 QString OCCViewer_ViewWindow::getVisualParameters()
 {
@@ -1353,7 +1392,8 @@ QString OCCViewer_ViewWindow::getVisualParameters()
 }
 
 /*!
-  The method restors visual parameters of this view from a formated string
+  \brief Restore visual parameters of the view window.
+  \param parameters visual parameters of view window
 */
 void OCCViewer_ViewWindow::setVisualParameters( const QString& parameters )
 {
@@ -1379,17 +1419,25 @@ void OCCViewer_ViewWindow::setVisualParameters( const QString& parameters )
 }
 
 /*!
-  Custom show event handler
+  \brief Handle show event.
+  Emits Show() signal.
+  
+  \param theEvent show event
 */
-void OCCViewer_ViewWindow::showEvent( QShowEvent * theEvent ) 
+void OCCViewer_ViewWindow::showEvent( QShowEvent* theEvent ) 
 {
   emit Show( theEvent );
 }
 
 /*!
-  Custom hide event handler
+  \brief Handle hide event.
+  Emits Hide() signal.
+  
+  \param theEvent hide event
 */
-void OCCViewer_ViewWindow::hideEvent( QHideEvent * theEvent ) 
+void OCCViewer_ViewWindow::hideEvent( QHideEvent* theEvent ) 
 {
   emit Hide( theEvent );
 }
index 30b0c55509e9b10e76d9d13d7e362f890eba321f..89c4420442ae367de04008fd3dae34efa743d7db 100644 (file)
@@ -162,6 +162,27 @@ QtxMultiAction::~QtxMultiAction()
 {
 }
 
+/*!
+  \brief Set current action.
+  \param a action to be set current
+*/
+void QtxMultiAction::setActiveAction( QAction* a )
+{
+  if ( a && actions().contains( a ) && a != myCurrent ) {
+    myCurrent = a;
+    updateAction();
+  }
+}
+
+/*!
+  \brief Get current action.
+  \return current action (0 if there is no active action)
+*/
+QAction* QtxMultiAction::activeAction() const
+{
+  return myCurrent;
+}
+
 /*!
   \brief Called when the user activates the current action 
   (for example by clicking the tool button).
index fbf239836860bce1769e5e00f5c8ab22dfd96824..fa2ea58671c2bf2b40914a90b8ec299f1c7dd215 100644 (file)
@@ -40,6 +40,9 @@ public:
   QtxMultiAction( const QIcon&, const QString&, QObject* parent = 0 );
   virtual ~QtxMultiAction();
 
+  void             setActiveAction( QAction* );
+  QAction*         activeAction() const;
+
 public slots:
   void             onClicked( bool );
   void             onTriggered( QAction* );
index 1e64a8b064ce0539c22135561d9f941c8bde24fd..3cc14b5d8e4885c19162997139febfa34713278d 100644 (file)
@@ -27,7 +27,8 @@
 
 #include <SUIT_ResourceMgr.h>
 #include <SUIT_Session.h>
-#include <SUIT_ToolButton.h>
+
+#include <QtxMultiAction.h>
 
 //QT Include
 #include <qlayout.h>
@@ -171,16 +172,18 @@ void QxGraph_ViewWindow::createActions()
 */
 void QxGraph_ViewWindow::createToolBar()
 {
-  SUIT_ToolButton* aScaleBtn = new SUIT_ToolButton(myToolBar, "scale");
-  aScaleBtn->AddAction(myActionsMap[FitAllId]);
-  aScaleBtn->AddAction(myActionsMap[FitRectId]);
-  aScaleBtn->AddAction(myActionsMap[ZoomId]);
-
-  SUIT_ToolButton* aPanningBtn = new SUIT_ToolButton(myToolBar, "pan");
-  aPanningBtn->AddAction(myActionsMap[PanId]);
-  aPanningBtn->AddAction(myActionsMap[GlobalPanId]);
-
-  myActionsMap[ResetId]->addTo(myToolBar);
+  QtxMultiAction* aScaleAction = new QtxMultiAction( this );
+  aScaleAction->insertAction( myActionsMap[FitAllId] );
+  aScaleAction->insertAction( myActionsMap[FitRectId] );
+  aScaleAction->insertAction( myActionsMap[ZoomId] );
+  myToolBar->addAction( aScaleAction );
+
+  QtxMultiAction* aPanningAction = new QtxMultiAction( this );
+  aPanningAction->insertAction( myActionsMap[PanId] );
+  aPanningAction->insertAction( myActionsMap[GlobalPanId] );
+  myToolBar->addAction( aPanningAction );
+
+  myToolBar->addAction( myActionsMap[ResetId] );
 }
 
 /*!
index ba988183e050545a8ae22cae4e7792cd148bdc4a..7c09aac5ee4ce1df479eb02ac4f543378db8472f 100644 (file)
@@ -34,9 +34,9 @@
 #include <vtkRenderer.h>
 
 #include <QtxAction.h>
+#include <QtxMultiAction.h>
 #include <QtxToolBar.h>
 
-#include <SUIT_ToolButton.h>
 #include <SUIT_MessageBox.h>
 #include <SUIT_ViewWindow.h>
 #include <SUIT_Tools.h>
@@ -586,29 +586,29 @@ SVTK_MainWindow
   myToolBar->addAction( myActionsMap[DumpId] );
   myToolBar->addAction( myActionsMap[ViewTrihedronId] );
 
-  SUIT_ToolButton* aScaleBtn = new SUIT_ToolButton(myToolBar);
-  aScaleBtn->AddAction(myActionsMap[FitAllId]);
-  aScaleBtn->AddAction(myActionsMap[FitRectId]);
-  aScaleBtn->AddAction(myActionsMap[ZoomId]);
-  myToolBar->addWidget( aScaleBtn );
+  QtxMultiAction* aScaleAction = new QtxMultiAction( this );
+  aScaleAction->insertAction( myActionsMap[FitAllId] );
+  aScaleAction->insertAction( myActionsMap[FitRectId] );
+  aScaleAction->insertAction( myActionsMap[ZoomId] );
+  myToolBar->addAction( aScaleAction );
 
-  SUIT_ToolButton* aPanningBtn = new SUIT_ToolButton(myToolBar);
-  aPanningBtn->AddAction(myActionsMap[PanId]);
-  aPanningBtn->AddAction(myActionsMap[GlobalPanId]);
-  myToolBar->addWidget( aPanningBtn );
+  QtxMultiAction* aPanningAction = new QtxMultiAction( this );
+  aPanningAction->insertAction( myActionsMap[PanId] );
+  aPanningAction->insertAction( myActionsMap[GlobalPanId] );
+  myToolBar->addAction( aPanningAction );
 
   myToolBar->addAction( myActionsMap[ChangeRotationPointId] );
 
   myToolBar->addAction( myActionsMap[RotationId] );
 
-  SUIT_ToolButton* aViewsBtn = new SUIT_ToolButton(myToolBar);
-  aViewsBtn->AddAction(myActionsMap[FrontId]);
-  aViewsBtn->AddAction(myActionsMap[BackId]);
-  aViewsBtn->AddAction(myActionsMap[TopId]);
-  aViewsBtn->AddAction(myActionsMap[BottomId]);
-  aViewsBtn->AddAction(myActionsMap[LeftId]);
-  aViewsBtn->AddAction(myActionsMap[RightId]);
-  myToolBar->addWidget( aViewsBtn );
+  QtxMultiAction* aViewsAction = new QtxMultiAction( this );
+  aViewsAction->insertAction( myActionsMap[FrontId] );
+  aViewsAction->insertAction( myActionsMap[BackId] );
+  aViewsAction->insertAction( myActionsMap[TopId] );
+  aViewsAction->insertAction( myActionsMap[BottomId] );
+  aViewsAction->insertAction( myActionsMap[LeftId] );
+  aViewsAction->insertAction( myActionsMap[RightId] );
+  myToolBar->addAction( aViewsAction );
 
   myToolBar->addAction( myActionsMap[ResetId] );
 
index c7da479d0a7a402204dbf7b900c3870647fc5dfc..1d2d78754611191ff1df4c655e98740a88ed78d0 100755 (executable)
@@ -33,7 +33,6 @@
 #include "QtxAction.h"
 
 #include "SUIT_Session.h"
-#include "SUIT_ToolButton.h"
 #include "SUIT_MessageBox.h"
 #include "SUIT_Accel.h"