diff options
author | Michele Calgaro <michele.calgaro@yahoo.it> | 2021-05-23 20:48:35 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2021-05-29 15:16:28 +0900 |
commit | 8b78a8791bc539bcffe7159f9d9714d577cb3d7d (patch) | |
tree | 1328291f966f19a22d7b13657d3f01a588eb1083 /karbon/vtool.cpp | |
parent | 95834e2bdc5e01ae1bd21ac0dfa4fa1d2417fae9 (diff) | |
download | koffice-8b78a8791bc539bcffe7159f9d9714d577cb3d7d.tar.gz koffice-8b78a8791bc539bcffe7159f9d9714d577cb3d7d.zip |
Renaming of files in preparation for code style tools.
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'karbon/vtool.cpp')
-rw-r--r-- | karbon/vtool.cpp | 279 |
1 files changed, 279 insertions, 0 deletions
diff --git a/karbon/vtool.cpp b/karbon/vtool.cpp new file mode 100644 index 00000000..140d6513 --- /dev/null +++ b/karbon/vtool.cpp @@ -0,0 +1,279 @@ +/* This file is part of the KDE project + Copyright (C) 2001, 2002, 2003 The Karbon Developers + + 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 <tqevent.h> +#include <tqlabel.h> + +#include <kdebug.h> +#include <kiconloader.h> + +#include "karbon_view.h" +#include "karbon_part.h" +#include "vtoolcontroller.h" +#include "KoContextCelp.h" +#include "vtool.h" +#include "vtool.moc" + + +VTool::VTool( KarbonView *view, const char *name ) : TQObject( 0, name ), m_view( view ) +{ + m_mouseButtonIsDown = false; + m_isDragging = false; + m_shiftPressed = false; + m_ctrlPressed = false; + m_altPressed = false; + m_action = 0; +} + +VTool::~VTool() +{ + if (toolController()) + toolController()->unregisterTool( this ); + + delete m_action; + //kdDebug(38000) << "Deleting : " << name().latin1() << endl; +} + +void +VTool::registerTool( VTool *tool ) +{ + toolController()->registerTool( tool ); +} + +VToolController * +VTool::toolController() const +{ + return m_view->toolController(); +} + +KarbonView * +VTool::view() const +{ + return m_view; +} + +bool +VTool::mouseEvent( TQMouseEvent* mouseEvent, const KoPoint &canvasCoordinate ) +{ + if( !view() || !view()->part() || !view()->part()->isReadWrite() ) + return false; + + m_lastPoint.setX( canvasCoordinate.x() ); + m_lastPoint.setY( canvasCoordinate.y() ); + + setCursor(); + + m_altPressed = mouseEvent->state() & TQt::AltButton; + m_shiftPressed = mouseEvent->state() & TQt::ShiftButton; + m_ctrlPressed = mouseEvent->state() & TQt::ControlButton; + + // Mouse events: + if( mouseEvent->type() == TQEvent::MouseButtonDblClick ) + { + mouseButtonDblClick(); + + return true; + } + + if( mouseEvent->type() == TQEvent::MouseButtonPress ) + { + m_firstPoint.setX( canvasCoordinate.x() ); + m_firstPoint.setY( canvasCoordinate.y() ); + + if( mouseEvent->button() == Qt::RightButton ) + rightMouseButtonPress(); + else + mouseButtonPress(); + + m_mouseButtonIsDown = true; + + return true; + } + + if( mouseEvent->type() == TQEvent::MouseMove ) + { + //setCursor(); + + if( m_mouseButtonIsDown ) + { + mouseDrag(); + + m_isDragging = true; + } + else + mouseMove(); + + return true; + } + + if( mouseEvent->type() == TQEvent::MouseButtonRelease ) + { + if( m_isDragging ) + { + mouseDragRelease(); + + m_isDragging = false; + } + else if( m_mouseButtonIsDown ) // False if canceled. + if( mouseEvent->button() == Qt::RightButton ) + rightMouseButtonRelease(); + else + mouseButtonRelease(); + + m_mouseButtonIsDown = false; + + return true; + } + + return false; +} + +bool +VTool::keyEvent( TQEvent* event ) +{ + // Key press events. + if( event->type() == TQEvent::KeyPress ) + { + TQKeyEvent* keyEvent = TQT_TQKEYEVENT( event ); + + // Terminate the current drawing with the Enter-key: + if( + ( keyEvent->key() == TQt::Key_Enter || + keyEvent->key() == TQt::Key_Return ) + && !m_isDragging ) + { + accept(); + + return true; + } + + // Terminate the current drawing with the Enter-key: + if( keyEvent->key() == TQt::Key_Backspace && !m_isDragging ) + { + cancelStep(); + + return true; + } + + // Cancel dragging with ESC-key: + if( keyEvent->key() == TQt::Key_Escape ) + { + cancel(); + + m_isDragging = false; + m_mouseButtonIsDown = false; + + return true; + } + + // If SHIFT is pressed, some tools create a "square" object while dragging: + if( keyEvent->key() == TQt::Key_Shift ) + { + m_shiftPressed = true; + if( m_isDragging ) + { + mouseDragShiftPressed(); + + return true; + } + } + + // If Ctrl is pressed, some tools create a "centered" object while dragging: + if( keyEvent->key() == TQt::Key_Control ) + { + m_ctrlPressed = true; + if( m_isDragging ) + { + mouseDragCtrlPressed(); + + return true; + } + } + + } + + // Key release events: + if( event->type() == TQEvent::KeyRelease ) + { + TQKeyEvent* keyEvent = TQT_TQKEYEVENT( event ); + + TQt::Key key = (TQt::Key)keyEvent->key(); + if( key == TQt::Key_Shift ) + { + m_shiftPressed = false; + if( m_isDragging ) + { + mouseDragShiftReleased(); + + return true; + } + } + + if( key == TQt::Key_Control ) + { + m_ctrlPressed = false; + if( m_isDragging ) + { + mouseDragCtrlReleased(); + + return true; + } + } + + if( key == TQt::Key_Left || key == TQt::Key_Right || key == TQt::Key_Up || key == TQt::Key_Down ) + { + arrowKeyReleased( key ); + return true; + } + + return keyReleased( key ); + } + + return false; +} + +void +VTool::activate() +{ + kdDebug() << k_funcinfo << endl; + refreshUnit(); + TQPixmap Icon = BarIcon( icon() ); + view()->contextHelpAction()->updateHelp( uiname(), contextHelp(), &Icon ); + view()->statusMessage()->setText( statusText() ); + toolController()->setCurrentTool( this ); +#if 0 + if( toolController()->activeTool() ) + { + toolController()->activeTool()->action()->setChecked( false ); + toolController()->activeTool()->deactivate(); + } + + if( toolController()->activeTool() == this ) + showDialog(); + else + { + refreshUnit(); + TQPixmap Icon = BarIcon( icon() ); + view()->contextHelpAction()->updateHelp( uiname(), contextHelp(), &Icon ); + view()->statusMessage()->setText( statusText() ); + toolController()->activeTool()->action()->setChecked( true ); + } +#endif +} + |