20#include "karbon_tool_registry.h"
21#include "karbon_part.h"
22#include <vselection.h>
23#include "vtoolcontroller.h"
27VToolController::VToolController( KarbonView *view ) : m_view( view ), m_currentTool( 0L ), m_setup( false )
29 m_tools.setAutoDelete(
true );
33VToolController::init()
37VToolController::~VToolController()
42VToolController::setCurrentTool(
VTool *tool )
46 m_currentTool->action()->setChecked(
false );
47 m_currentTool->deactivate();
50 if( m_currentTool && m_currentTool == tool )
51 m_currentTool->showDialog();
59 m_currentTool->
action()->setChecked(
true );
60 m_currentTool->action()->activate();
62 m_toolBox->slotSetTool( tool->name() );
66VToolController::registerTool(
VTool *tool )
68 if( !m_tools.find( tool->name() ) )
69 m_tools.insert( tool->name(), tool );
74VToolController::unregisterTool(
VTool *tool )
77 TQDictIterator<VTool> it( m_tools );
78 for( ; it.current(); ++it )
79 if (it.current() == tool)
81 m_tools.remove(it.currentKey());
87VToolController::mouseEvent( TQMouseEvent* event,
const KoPoint &p )
89 if( !m_currentTool ) {
93 return m_currentTool->mouseEvent( event, p );
97VToolController::keyEvent( TQEvent* event )
99 if( !m_currentTool ) {
103 return m_currentTool->keyEvent( event );
107VToolController::setUp( TDEActionCollection *ac,
VToolBox * toolbox )
111 resetToolBox( toolbox);
115 KarbonToolRegistry::instance()->createTools( ac, m_view );
119 TQDictIterator<VTool> it( m_tools );
120 for( ; it.current(); ++it )
121 toolbox->registerTool( it.current() );
123 toolbox->setupTools();
125 VTool *t = findTool(
"tool_select" );
132VToolController::resetToolBox(
VToolBox * toolbox )
136 TQDictIterator<VTool> it( m_tools );
137 for( ; it.current(); ++it )
138 toolbox->registerTool( it.current() );
140 toolbox->setupTools();
145 setCurrentTool( m_currentTool );
151VToolController::findTool(
const TQString &toolName )
const
154 TQDictIterator<VTool> it( m_tools );
155 for( ; it.current(); ++it )
156 if( it.current()->name() == toolName )
162VToolController::youAintGotNoToolBox()