diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-01-20 01:29:50 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-01-20 01:29:50 +0000 |
commit | 8362bf63dea22bbf6736609b0f49c152f975eb63 (patch) | |
tree | 0eea3928e39e50fae91d4e68b21b1e6cbae25604 /kspread/kspread_toolbox.cc | |
download | koffice-8362bf63dea22bbf6736609b0f49c152f975eb63.tar.gz koffice-8362bf63dea22bbf6736609b0f49c152f975eb63.zip |
Added old abandoned KDE3 version of koffice
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/koffice@1077364 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kspread/kspread_toolbox.cc')
-rw-r--r-- | kspread/kspread_toolbox.cc | 230 |
1 files changed, 230 insertions, 0 deletions
diff --git a/kspread/kspread_toolbox.cc b/kspread/kspread_toolbox.cc new file mode 100644 index 00000000..e7ddd632 --- /dev/null +++ b/kspread/kspread_toolbox.cc @@ -0,0 +1,230 @@ +/* This file is part of the KDE project + Copyright (C) 1998, 1999, 2000 Torben Weis <[email protected]> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. +*/ + +#include "kspread_toolbox.h" +#include "KoDocumentChild.h" + +#include <kwin.h> + +#include <qlayout.h> +#include <qspinbox.h> +#include <qobjectlist.h> + +using namespace KSpread; + +ToolBox::ToolBox( QWidget* parent, const char* name ) + : QFrame( parent, name, WType_TopLevel | WStyle_Tool ) +{ + KWin::setType( winId(), NET::Tool ); + + setFrameShape( Panel ); + setFrameShadow( Raised ); + + m_layout = new QVBoxLayout( this, 2, 2 ); + // m_layout->addSpacing( 12 ); +} + +void ToolBox::setEnabled( bool enable ) +{ + if ( enable ) + { + if ( children() ) + { + QObjectListIt it( *children() ); + QWidget *w; + while( (w=(QWidget *)it.current()) != 0 ) + { + ++it; + if ( w->isWidgetType() ) + w->setEnabled( TRUE ); + } + } + } + else + { + if ( focusWidget() == this ) + focusNextPrevChild( TRUE ); + if ( children() ) + { + QObjectListIt it( *children() ); + QWidget *w; + while( (w=(QWidget *)it.current()) != 0 ) + { + ++it; + if ( w->isWidgetType() ) + { + w->setEnabled( FALSE ); + // w->clearWState( WState_ForceDisabled ); + } + } + } + } +} + +/* +void ToolBox::paintEvent( QPaintEvent* ev ) +{ + QPainter painter; + painter.begin( this ); + + painter.fillRect( 0, 0, width(), 12, darkBlue ); + + painter.end(); + + QFrame::paintEvent( ev ); +} +*/ + +void ToolBox::childEvent( QChildEvent* ev ) +{ + if ( ev->inserted() && ev->child()->isWidgetType() ) + m_layout->addWidget( (QWidget*)ev->child() ); + resize( sizeHint() ); +} + +void ToolBox::mousePressEvent( QMouseEvent* ev ) +{ + m_startPos = geometry().topLeft(); + m_mousePos = ev->globalPos(); +} + +void ToolBox::mouseMoveEvent( QMouseEvent* ev ) +{ + setGeometry( m_startPos.x() - m_mousePos.x() + ev->globalPos().x(), + m_startPos.y() - m_mousePos.y() + ev->globalPos().y(), + width(), height() ); +} + +// --------------------------------------------- + +KoTransformToolBox::KoTransformToolBox( KoDocumentChild* ch, QWidget* parent, const char* name ) + : ToolBox( parent, name ) +{ + m_child = 0; + + m_rotation = new QSpinBox( 0, 360, 5, this ); + m_rotation->setSuffix( " deg" ); + m_scale = new QSpinBox( 10, 400, 10, this ); + m_scale->setSuffix( "%" ); + m_shearX = new QSpinBox( -100, 100, 1, this ); + m_shearX->setSuffix( " px" ); + m_shearY = new QSpinBox( -100, 100, 1, this ); + m_shearY->setSuffix( " px" ); + + setDocumentChild( ch ); + + connect( m_rotation, SIGNAL( valueChanged( int ) ), + this, SLOT( slotRotationChanged( int ) ) ); + connect( m_scale, SIGNAL( valueChanged( int ) ), + this, SLOT( slotScalingChanged( int ) ) ); + connect( m_shearX, SIGNAL( valueChanged( int ) ), + this, SLOT( slotXShearingChanged( int ) ) ); + connect( m_shearY, SIGNAL( valueChanged( int ) ), + this, SLOT( slotYShearingChanged( int ) ) ); +} + +void KoTransformToolBox::setDocumentChild( KoDocumentChild* ch ) +{ + if ( m_child == ch ) + return; + + m_child = ch; + + if ( m_child ) + { + setRotation( m_child->rotation() ); + setScaling( m_child->xScaling() ); + setXShearing( m_child->xShearing() ); + setYShearing( m_child->yShearing() ); + } +} + +double KoTransformToolBox::rotation() const +{ + return m_rotation->text().toDouble(); +} + +double KoTransformToolBox::scaling() const +{ + return m_scale->text().toDouble() / 100.0; +} + +double KoTransformToolBox::xShearing() const +{ + return m_shearX->text().toDouble() / 10.0; +} + +double KoTransformToolBox::yShearing() const +{ + return m_shearY->text().toDouble() / 10.0; +} + +void KoTransformToolBox::slotRotationChanged( int v ) +{ + if ( m_child ) + m_child->setRotation( double( v ) ); + + emit rotationChanged( double( v ) ); +} + +void KoTransformToolBox::slotScalingChanged( int v ) +{ + if ( m_child ) + m_child->setScaling( double( v ) / 100.0, double( v ) / 100.0 ); + + emit scalingChanged( double( v ) / 100.0 ); +} + +void KoTransformToolBox::slotXShearingChanged( int v ) +{ + if ( m_child ) + m_child->setShearing( double( v ) / 10.0, m_child->yShearing() ); + + emit xShearingChanged( double( v ) / 10.0 ); +} + +void KoTransformToolBox::slotYShearingChanged( int v ) +{ + if ( m_child ) + m_child->setShearing( m_child->xShearing(), double( v ) / 10.0 ); + + emit yShearingChanged( double( v ) / 10.0 ); +} + +void KoTransformToolBox::setRotation( double v ) +{ + m_rotation->setValue( int( v ) ); +} + +void KoTransformToolBox::setScaling( double v ) +{ + m_scale->setValue( int( v * 100.0 ) ); +} + +void KoTransformToolBox::setXShearing( double v ) +{ + m_shearX->setValue( int( v * 10.0 ) ); +} + +void KoTransformToolBox::setYShearing( double v ) +{ + m_shearY->setValue( int( v * 10.0 ) ); +} + +#include "kspread_toolbox.moc" |