? 2colToolbar.diff Index: karbon_view.cc =================================================================== RCS file: /home/kde/koffice/karbon/karbon_view.cc,v retrieving revision 1.256 diff -u -3 -p -b -r1.256 karbon_view.cc --- karbon_view.cc 2002/09/27 11:06:57 1.256 +++ karbon_view.cc 2002/09/27 22:30:10 @@ -250,11 +250,11 @@ KarbonView::createContainer( QWidget *pa { if( element.attribute( "name" ) == "toolbox" ) { - QWidget *toolbar = KXMLGUIBuilder::createContainer( parent, index, element, id ); + //QWidget *toolbar = KXMLGUIBuilder::createContainer( parent, index, element, id ); //if( !m_toolbox ) //{ - kdDebug() << "GOT IT! toolbar :" << toolbar << endl; - m_toolbox = new VToolBox( m_part, toolbar ); + //kdDebug() << "GOT IT! toolbar :" << toolbar << endl; + m_toolbox = new VToolBox( m_part, mainWindow(), "toolbox"); connect( m_toolbox, SIGNAL( selectToolActivated() ), this, SLOT( selectTool() ) ); connect( m_toolbox, SIGNAL( selectNodesToolActivated() ), this, SLOT( selectNodesTool() ) ); connect( m_toolbox, SIGNAL( rotateToolActivated() ), this, SLOT( rotateTool() ) ); @@ -280,7 +280,7 @@ KarbonView::createContainer( QWidget *pa selectionChanged(); } //} - return toolbar; + return m_toolbox; } return KXMLGUIBuilder::createContainer( parent, index, element, id ); Index: widgets/vtoolbox.cc =================================================================== RCS file: /home/kde/koffice/karbon/widgets/vtoolbox.cc,v retrieving revision 1.2 diff -u -3 -p -b -r1.2 vtoolbox.cc --- widgets/vtoolbox.cc 2002/09/22 22:33:02 1.2 +++ widgets/vtoolbox.cc 2002/09/27 22:30:10 @@ -19,8 +19,11 @@ */ #include +#include #include +#include #include +#include #include #include @@ -36,125 +39,97 @@ #include "vtoolbox.h" #include "vstrokefillpreview.h" -VToolBox::VToolBox( KarbonPart* part, QWidget* parent, const char* /*name*/ ) : QWidget( parent ) +VToolBox::VToolBox( KarbonPart* part, KMainWindow *mainWin, const char* name ) : QToolBar( mainWin ) { - //setOrientation( Vertical ); - QToolButton *button; - - m_btngroup = new QButtonGroup( 2, Horizontal, this ); - m_btngroup->setExclusive( true ); - m_btngroup->setInsideSpacing( 2 ); - m_btngroup->setInsideMargin( 5 ); + setName(name); + QBoxLayout::Direction d=orientation()==Qt::Vertical?QBoxLayout::LeftToRight:QBoxLayout::TopToBottom; + base= new QButtonGroup(this); + base->setExclusive (true); + buttonsLayouter = new QBoxLayout(base, d); + + d=orientation()==Qt::Horizontal?QBoxLayout::LeftToRight:QBoxLayout::TopToBottom; + left= new QWidget(base); + leftLayout = new QBoxLayout(left, d); + buttonsLayouter->addWidget(left); + + right= new QWidget(base); + rightLayout = new QBoxLayout(right, d); + buttonsLayouter->addWidget(right); - button = new QToolButton( m_btngroup ); - QPixmap pixmap = BarIcon( "14_select", KarbonFactory::instance() ); - button->setPixmap( pixmap ); - button->setToggleButton( true ); + insertLeft=true; + QToolButton *button = addButton("14_select", i18n("Select tool")); button->toggle(); connect( button, SIGNAL( clicked() ), this, SIGNAL( selectToolActivated() ) ); - m_btngroup->insert( button ); - button = new QToolButton( m_btngroup ); - pixmap = BarIcon( "14_selectnodes", KarbonFactory::instance() ); - button->setPixmap( pixmap ); - button->setToggleButton( true ); + button = addButton("14_selectnodes", i18n("Select nodes tool")); connect( button, SIGNAL( clicked() ), this, SIGNAL( selectNodesToolActivated() ) ); - m_btngroup->insert( button ); - button = new QToolButton( m_btngroup ); - pixmap = BarIcon( "14_rotate", KarbonFactory::instance() ); - button->setPixmap( pixmap ); - button->setToggleButton( true ); + button = addButton("14_rotate", i18n("rotate tool")); connect( button, SIGNAL( clicked() ), this, SIGNAL( rotateToolActivated() ) ); - m_btngroup->insert( button ); - button = new QToolButton( m_btngroup ); - pixmap = BarIcon( "14_shear", KarbonFactory::instance() ); - button->setPixmap( pixmap ); - button->setToggleButton( true ); + button = addButton("14_shear", i18n("shear tool")); connect( button, SIGNAL( clicked() ), this, SIGNAL( shearToolActivated() ) ); - m_btngroup->insert( button ); - button = new QToolButton( m_btngroup ); - pixmap = BarIcon( "14_rectangle", KarbonFactory::instance() ); - button->setPixmap( pixmap ); - button->setToggleButton( true ); + button = addButton("14_rectangle", i18n("create rectangle tool")); connect( button, SIGNAL( clicked() ), this, SIGNAL( rectangleToolActivated() ) ); - m_btngroup->insert( button ); - button = new QToolButton( m_btngroup ); - pixmap = BarIcon( "14_roundrect", KarbonFactory::instance() ); - button->setPixmap( pixmap ); - button->setToggleButton( true ); + button = addButton("14_roundrect", i18n("create rounded rectangle tool")); connect( button, SIGNAL( clicked() ), this, SIGNAL( roundRectToolActivated() ) ); - m_btngroup->insert( button ); - button = new QToolButton( m_btngroup ); - pixmap = BarIcon( "14_ellipse", KarbonFactory::instance() ); - button->setPixmap( pixmap ); - button->setToggleButton( true ); + button = addButton("14_ellipse", i18n("create ellipse tool")); connect( button, SIGNAL( clicked() ), this, SIGNAL( ellipseToolActivated() ) ); - m_btngroup->insert( button ); - button = new QToolButton( m_btngroup ); - pixmap=BarIcon( "14_polygon", KarbonFactory::instance() ); - button->setPixmap( pixmap ); - button->setToggleButton( true ); + button = addButton("14_polygon", i18n("create poligon tool")); connect( button, SIGNAL( clicked() ), this, SIGNAL( polygonToolActivated() ) ); - m_btngroup->insert( button ); - button = new QToolButton( m_btngroup ); - pixmap = BarIcon( "14_star", KarbonFactory::instance() ); - button->setPixmap( pixmap ); - button->setToggleButton( true ); + button = addButton("14_star", i18n("create star tool")); connect( button, SIGNAL( clicked() ), this, SIGNAL( starToolActivated() ) ); - m_btngroup->insert( button ); - button = new QToolButton( m_btngroup ); - pixmap = BarIcon( "14_sinus", KarbonFactory::instance() ); - button->setPixmap( pixmap ); - button->setToggleButton( true ); + button = addButton("14_sinus", i18n("create sinus wave tool")); connect( button, SIGNAL( clicked() ), this, SIGNAL( sinusToolActivated() ) ); - m_btngroup->insert( button ); - button = new QToolButton( m_btngroup ); - pixmap = BarIcon( "14_spiral", KarbonFactory::instance() ); - button->setPixmap( pixmap ); - button->setToggleButton( true ); + button = addButton("14_spiral", i18n("create spiral tool")); connect( button, SIGNAL( clicked() ), this, SIGNAL( spiralToolActivated() ) ); - m_btngroup->insert( button ); - button = new QToolButton( m_btngroup ); - pixmap = BarIcon( "14_gradient", KarbonFactory::instance() ); - button->setPixmap( pixmap ); - button->setToggleButton( true ); + button = addButton("14_gradient", i18n("fill with gradient tool")); connect( button, SIGNAL( clicked() ), this, SIGNAL( gradToolActivated() ) ); - m_btngroup->insert( button ); - button = new QToolButton( m_btngroup ); - pixmap=BarIcon( "14_polyline", KarbonFactory::instance() ); - button->setPixmap( pixmap ); - button->setToggleButton( true ); + button = addButton("14_polyline", i18n("create polyline tool")); connect( button, SIGNAL( clicked() ), this, SIGNAL( polylineToolActivated() ) ); - m_btngroup->insert( button ); + + button = addButton("14_clipart", i18n("insert clipart tool")); + connect( button, SIGNAL( clicked() ), this, SIGNAL( clipartToolActivated() ) ); - button = new QToolButton( m_btngroup ); - pixmap=BarIcon( "14_clipart", KarbonFactory::instance() ); + m_strokeFillPreview = new VStrokeFillPreview( part,this ); +} + +QToolButton * +VToolBox::addButton(const char* iconName, QString tooltip) +{ + QToolButton *button = new QToolButton( insertLeft?left:right ); + QPixmap pixmap=BarIcon( iconName, KarbonFactory::instance() ); button->setPixmap( pixmap ); button->setToggleButton( true ); - connect( button, SIGNAL( clicked() ), this, SIGNAL( clipartToolActivated() ) ); - m_btngroup->insert( button ); + QToolTip::add(button, tooltip); + if(insertLeft) + leftLayout->addWidget( button ); + else + rightLayout->addWidget( button ); - m_strokeFillPreview = new VStrokeFillPreview( part, this ); + base->insert(button); + insertLeft=!insertLeft; +} - QVBoxLayout *mainWidgetLayout = new QVBoxLayout( this, 2 ); - mainWidgetLayout->addWidget( m_btngroup ); - mainWidgetLayout->addWidget( m_strokeFillPreview ); - mainWidgetLayout->activate(); - //mainWidget->setMaximumHeight( 164 ); - //mainWidget->setMinimumWidth( 194 ); - //setWidget( mainWidget ); +void +VToolBox::setOrientation ( Qt::Orientation o ) +{ + QBoxLayout::Direction d=orientation()==Qt::Vertical?QBoxLayout::LeftToRight:QBoxLayout::TopToBottom; + buttonsLayouter->setDirection(d); + d=o==Qt::Horizontal?QBoxLayout::LeftToRight:QBoxLayout::TopToBottom; + leftLayout->setDirection(d); + rightLayout->setDirection(d); + QDockWindow::setOrientation(o); } VStrokeFillPreview * Index: widgets/vtoolbox.h =================================================================== RCS file: /home/kde/koffice/karbon/widgets/vtoolbox.h,v retrieving revision 1.2 diff -u -3 -p -b -r1.2 vtoolbox.h --- widgets/vtoolbox.h 2002/09/22 22:33:02 1.2 +++ widgets/vtoolbox.h 2002/09/27 22:30:10 @@ -20,17 +20,18 @@ #ifndef __VTOOLBOX_H__ #define __VTOOLBOX_H__ +#include class QWidget; class KarbonPart; class VStrokeFillPreview; -class VToolBox : public QWidget +class VToolBox : public QToolBar { Q_OBJECT public: - VToolBox( KarbonPart* part, QWidget* parent = 0L, const char* name = 0L ); + VToolBox( KarbonPart* part, KMainWindow *mainWin, const char* name = 0L ); VStrokeFillPreview *strokeFillPreview(); @@ -50,10 +51,18 @@ signals: void gradToolActivated(); void clipartToolActivated(); +public slots: + virtual void setOrientation ( Orientation o ); + private: - QButtonGroup *m_btngroup; KarbonPart *m_part; VStrokeFillPreview *m_strokeFillPreview; + QBoxLayout *leftLayout,*rightLayout,*buttonsLayouter; + QWidget *left, *right; + QButtonGroup *base; + bool insertLeft; + + QToolButton *addButton(const char* iconName, QString tooltip); }; #endif