1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
3 // File: ModuleBase_ToolBox.cpp
4 // Created: 10 August 2015
5 // Author: Alexandre SOLOVYOV
7 #include <ModuleBase_ToolBox.h>
8 #include <QButtonGroup>
9 #include <QStackedWidget>
10 #include <QHBoxLayout>
11 #include <QVBoxLayout>
12 #include <QToolButton>
14 ModuleBase_ToolBox::ModuleBase_ToolBox( QWidget* theParent )
17 QVBoxLayout* aMainLayout = new QVBoxLayout( this );
18 aMainLayout->setMargin( 0 );
19 aMainLayout->setSpacing( 0 );
21 myButtonsFrame = new QFrame( this );
22 myStack = new QStackedWidget( this );
23 aMainLayout->addWidget( myButtonsFrame, 0 );
24 aMainLayout->addWidget( myStack, 1 );
26 myButtonsGroup = new QButtonGroup(this);
27 myButtonsGroup->setExclusive( true );
28 myButtonsLayout = new QHBoxLayout( myButtonsFrame );
29 myButtonsLayout->setMargin( 0 );
30 myButtonsLayout->setSpacing( 5 );
31 myButtonsLayout->addStretch( 1 );
33 connect( myStack, SIGNAL( currentChanged( int ) ), this, SIGNAL( currentChanged( int ) ) );
34 connect( myButtonsGroup, SIGNAL( buttonPressed( int ) ), this, SLOT( onButton( int ) ) );
37 ModuleBase_ToolBox::~ModuleBase_ToolBox()
41 void ModuleBase_ToolBox::addItem( QWidget* thePage, const QString& theName, const QPixmap& theIcon )
43 int anOldCount = myStack->count();
45 myStack->addWidget( thePage );
47 QToolButton* aButton = new QToolButton( myButtonsFrame );
48 aButton->setCheckable( true );
49 aButton->setIcon( theIcon );
50 aButton->setIconSize( theIcon.size() );
51 aButton->setToolTip( theName );
52 myButtonsGroup->addButton( aButton, anOldCount );
53 myButtonsLayout->insertWidget( anOldCount, aButton );
56 int ModuleBase_ToolBox::count() const
58 return myStack->count();
61 int ModuleBase_ToolBox::currentIndex() const
63 return myStack->currentIndex();
66 void ModuleBase_ToolBox::setCurrentIndex( const int theIndex )
68 myStack->setCurrentIndex( theIndex );
69 myButtonsGroup->button( theIndex )->setChecked( true );
72 void ModuleBase_ToolBox::onButton( int theIndex )
74 myStack->setCurrentIndex( theIndex );