20#include "kspread_toolbox.h"
21#include "KoDocumentChild.h"
27#include <tqobjectlist.h>
31ToolBox::ToolBox( TQWidget* parent,
const char* name )
32 : TQFrame( parent, name, WType_TopLevel | WStyle_Tool )
34 KWin::setType( winId(), NET::Tool );
36 setFrameShape( Panel );
37 setFrameShadow( Raised );
39 m_layout =
new TQVBoxLayout(
this, 2, 2 );
43void ToolBox::setEnabled(
bool enable )
47 TQObjectList clo = childrenListObject();
50 TQObjectListIt it( clo );
52 while( (w=(TQWidget *)it.current()) != 0 )
55 if ( w->isWidgetType() )
56 w->setEnabled(
true );
62 if ( focusWidget() ==
this )
63 focusNextPrevChild(
true );
64 TQObjectList clo = childrenListObject();
67 TQObjectListIt it( clo );
69 while( (w=(TQWidget *)it.current()) != 0 )
72 if ( w->isWidgetType() )
74 w->setEnabled(
false );
96void ToolBox::childEvent( TQChildEvent* ev )
98 if ( ev->inserted() && ev->child()->isWidgetType() )
99 m_layout->addWidget( (TQWidget*)ev->child() );
100 resize( sizeHint() );
103void ToolBox::mousePressEvent( TQMouseEvent* ev )
105 m_startPos = geometry().topLeft();
106 m_mousePos = ev->globalPos();
109void ToolBox::mouseMoveEvent( TQMouseEvent* ev )
111 setGeometry( m_startPos.x() - m_mousePos.x() + ev->globalPos().x(),
112 m_startPos.y() - m_mousePos.y() + ev->globalPos().y(),
118KoTransformToolBox::KoTransformToolBox( KoDocumentChild* ch, TQWidget* parent,
const char* name )
119 : ToolBox( parent, name )
123 m_rotation =
new TQSpinBox( 0, 360, 5,
this );
124 m_rotation->setSuffix(
" deg" );
125 m_scale =
new TQSpinBox( 10, 400, 10,
this );
126 m_scale->setSuffix(
"%" );
127 m_shearX =
new TQSpinBox( -100, 100, 1,
this );
128 m_shearX->setSuffix(
" px" );
129 m_shearY =
new TQSpinBox( -100, 100, 1,
this );
130 m_shearY->setSuffix(
" px" );
132 setDocumentChild( ch );
134 connect( m_rotation, TQ_SIGNAL( valueChanged(
int ) ),
135 this, TQ_SLOT( slotRotationChanged(
int ) ) );
136 connect( m_scale, TQ_SIGNAL( valueChanged(
int ) ),
137 this, TQ_SLOT( slotScalingChanged(
int ) ) );
138 connect( m_shearX, TQ_SIGNAL( valueChanged(
int ) ),
139 this, TQ_SLOT( slotXShearingChanged(
int ) ) );
140 connect( m_shearY, TQ_SIGNAL( valueChanged(
int ) ),
141 this, TQ_SLOT( slotYShearingChanged(
int ) ) );
144void KoTransformToolBox::setDocumentChild( KoDocumentChild* ch )
153 setRotation( m_child->rotation() );
154 setScaling( m_child->xScaling() );
155 setXShearing( m_child->xShearing() );
156 setYShearing( m_child->yShearing() );
160double KoTransformToolBox::rotation()
const
162 return m_rotation->text().toDouble();
165double KoTransformToolBox::scaling()
const
167 return m_scale->text().toDouble() / 100.0;
170double KoTransformToolBox::xShearing()
const
172 return m_shearX->text().toDouble() / 10.0;
175double KoTransformToolBox::yShearing()
const
177 return m_shearY->text().toDouble() / 10.0;
180void KoTransformToolBox::slotRotationChanged(
int v )
183 m_child->setRotation(
double( v ) );
185 emit rotationChanged(
double( v ) );
188void KoTransformToolBox::slotScalingChanged(
int v )
191 m_child->setScaling(
double( v ) / 100.0,
double( v ) / 100.0 );
193 emit scalingChanged(
double( v ) / 100.0 );
196void KoTransformToolBox::slotXShearingChanged(
int v )
199 m_child->setShearing(
double( v ) / 10.0, m_child->yShearing() );
201 emit xShearingChanged(
double( v ) / 10.0 );
204void KoTransformToolBox::slotYShearingChanged(
int v )
207 m_child->setShearing( m_child->xShearing(),
double( v ) / 10.0 );
209 emit yShearingChanged(
double( v ) / 10.0 );
212void KoTransformToolBox::setRotation(
double v )
214 m_rotation->setValue(
int( v ) );
217void KoTransformToolBox::setScaling(
double v )
219 m_scale->setValue(
int( v * 100.0 ) );
222void KoTransformToolBox::setXShearing(
double v )
224 m_shearX->setValue(
int( v * 10.0 ) );
227void KoTransformToolBox::setYShearing(
double v )
229 m_shearY->setValue(
int( v * 10.0 ) );
232#include "kspread_toolbox.moc"