22#include <tqgroupbox.h>
24#include <kdialogbase.h>
26#include <KoUnitWidgets.h>
28#include <karbon_view.h>
29#include <karbon_part.h>
30#include <shapes/vstar.h>
31#include "vpolygontool.h"
33VPolygonTool::VPolygonOptionsWidget::VPolygonOptionsWidget( KarbonView *view, TQWidget* parent,
const char* name )
34 : KDialogBase( parent, name, true, i18n(
"Insert Polygon" ), Ok | Cancel ), m_view(view)
36 TQGroupBox *group =
new TQGroupBox( 2, TQt::Horizontal, i18n(
"Properties" ),
this );
38 new TQLabel( i18n(
"Radius:" ), group );
39 m_radius =
new KoUnitDoubleSpinBox( group, 0.0, 1000.0, 0.5, 50.0, KoUnit::U_MM );
41 new TQLabel( i18n(
"Edges:" ), group );
42 m_edges =
new KIntSpinBox( group );
43 m_edges->setMinValue( 3 );
45 group->setInsideMargin( 4 );
46 group->setInsideSpacing( 2 );
48 setMainWidget( group );
53VPolygonTool::VPolygonOptionsWidget::radius()
const
55 return m_radius->value();
59VPolygonTool::VPolygonOptionsWidget::edges()
const
61 return m_edges->value();
65VPolygonTool::VPolygonOptionsWidget::setRadius(
double value )
67 m_radius->changeValue( value );
71VPolygonTool::VPolygonOptionsWidget::setEdges( uint value )
73 m_edges->setValue( value );
77VPolygonTool::VPolygonOptionsWidget::refreshUnit()
79 m_radius->setUnit( m_view->part()->unit() );
82VPolygonTool::VPolygonTool( KarbonView *
view )
83 : VShapeTool(
view,
"tool_polygon", true )
86 m_optionsWidget =
new VPolygonOptionsWidget( view );
87 m_optionsWidget->setEdges( 5 );
91VPolygonTool::~VPolygonTool()
93 delete( m_optionsWidget );
99 m_optionsWidget->refreshUnit();
103VPolygonTool::arrowKeyReleased( TQt::Key key )
106 if( key == TQt::Key_Up )
108 else if( key == TQt::Key_Down )
115 m_optionsWidget->setEdges( m_optionsWidget->edges() + change );
122VPolygonTool::shape(
bool interactive )
const
130 m_optionsWidget->radius(),
131 m_optionsWidget->radius(),
132 m_optionsWidget->edges(), 0, 0, 0, VStar::polygon );
140 m_optionsWidget->edges(),
141 m_d2, 0, 0, VStar::polygon );
147 return m_optionsWidget->exec() == TQDialog::Accepted;
151VPolygonTool::setup( TDEActionCollection *collection )
153 m_action =
static_cast<TDERadioAction *
>(collection ->
action( name() ) );
157 TDEShortcut shortcut( TQt::Key_Plus );
158 shortcut.append(TDEShortcut( TQt::Key_F9 ) );
159 m_action =
new TDERadioAction( i18n(
"Polygon Tool" ),
"14_polygon", shortcut,
this, TQ_SLOT(
activate() ), collection, name() );
160 m_action->setToolTip( i18n(
"Polygon" ) );
161 m_action->setExclusiveGroup(
"shapes" );
A composite path consists of one or many subpaths.