21#include <tqgroupbox.h>
27#include <karbon_view.h>
28#include <karbon_part.h>
29#include <shapes/vspiral.h>
30#include "vspiraltool.h"
31#include "KoUnitWidgets.h"
34VSpiralTool::VSpiralOptionsWidget::VSpiralOptionsWidget(
KarbonPart *part, TQWidget* parent,
const char* name )
35 : KDialogBase( parent, name, true, i18n(
"Insert Spiral" ), Ok | Cancel ), m_part( part )
37 TQGroupBox *group =
new TQGroupBox( 2, TQt::Horizontal, i18n(
"Properties" ),
this );
39 new TQLabel( i18n(
"Type:" ), group );
40 m_type =
new KComboBox(
false, group );
41 m_type->insertItem( i18n(
"Round" ), 0 );
42 m_type->insertItem( i18n(
"Rectangular" ), 1 );
44 new TQLabel( i18n(
"Radius:" ), group );
45 m_radius =
new KoUnitDoubleSpinBox( group, 0.0, 1000.0, 0.5, 50.0, KoUnit::U_MM );
47 new TQLabel( i18n(
"Segments:" ), group );
48 m_segments =
new KIntSpinBox( group );
49 m_segments->setMinValue( 1 );
50 new TQLabel( i18n(
"Fade:" ), group );
51 m_fade =
new KDoubleNumInput( group );
52 m_fade->setRange( 0.0, 1.0, 0.05 );
54 new TQLabel( i18n(
"Orientation:" ), group );
55 m_clockwise =
new KComboBox(
false, group );
56 m_clockwise->insertItem( i18n(
"Clockwise" ), 0 );
57 m_clockwise->insertItem( i18n(
"Counter Clockwise" ), 1 );
59 group->setInsideMargin( 4 );
60 group->setInsideSpacing( 2 );
62 setMainWidget( group );
67VSpiralTool::VSpiralOptionsWidget::radius()
const
69 return m_radius->value();
73VSpiralTool::VSpiralOptionsWidget::segments()
const
75 return m_segments->value();
79VSpiralTool::VSpiralOptionsWidget::fade()
const
81 return m_fade->value();
85VSpiralTool::VSpiralOptionsWidget::clockwise()
const
87 return m_clockwise->currentItem() == 0;
91VSpiralTool::VSpiralOptionsWidget::type()
const
93 return m_type->currentItem();
97VSpiralTool::VSpiralOptionsWidget::setRadius(
double value )
99 m_radius->changeValue( value );
103VSpiralTool::VSpiralOptionsWidget::setSegments( uint value )
105 m_segments->setValue( value );
109VSpiralTool::VSpiralOptionsWidget::setFade(
double value )
111 m_fade->setValue( value );
115VSpiralTool::VSpiralOptionsWidget::setClockwise(
bool value )
117 m_clockwise->setCurrentItem( value ? 0 : 1 );
121VSpiralTool::VSpiralOptionsWidget::refreshUnit()
123 m_radius->setUnit( m_part->unit() );
126VSpiralTool::VSpiralTool( KarbonView *view )
127 : VShapeTool( view,
"tool_spiral", true )
130 m_optionsWidget =
new VSpiralOptionsWidget( view->part() );
131 m_optionsWidget->setSegments( 8 );
132 m_optionsWidget->setFade( 0.8 );
133 m_optionsWidget->setClockwise(
true );
134 registerTool(
this );
138VSpiralTool::arrowKeyReleased( TQt::Key key )
141 if( key == TQt::Key_Up )
143 else if( key == TQt::Key_Down )
150 m_optionsWidget->setSegments( m_optionsWidget->segments() + change );
156VSpiralTool::~VSpiralTool()
158 delete( m_optionsWidget );
162VSpiralTool::refreshUnit()
164 m_optionsWidget->refreshUnit();
168VSpiralTool::shape(
bool interactive )
const
176 m_optionsWidget->radius(),
177 m_optionsWidget->segments(),
178 m_optionsWidget->fade(),
179 m_optionsWidget->clockwise(),
180 m_d2, (VSpiral::VSpiralType)m_optionsWidget->type() );
188 m_optionsWidget->segments(),
189 m_optionsWidget->fade(),
190 m_optionsWidget->clockwise(),
191 m_d2, (VSpiral::VSpiralType)m_optionsWidget->type() );
195VSpiralTool::showDialog()
const
197 return m_optionsWidget->exec() == TQDialog::Accepted;
201VSpiralTool::setup( TDEActionCollection *collection )
203 m_action =
static_cast<TDERadioAction *
>(collection -> action( name() ) );
207 m_action =
new TDERadioAction( i18n(
"Spiral Tool" ),
"14_spiral", TQt::SHIFT+TQt::Key_H,
this, TQ_SLOT( activate() ), collection, name() );
208 m_action->setToolTip( i18n(
"Spiral" ) );
209 m_action->setExclusiveGroup(
"shapes" );
Keeps track of visual per document properties.
A composite path consists of one or many subpaths.