/* * Copyright (c) 2002 Patrick Julien * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef KIS_STRATEGY_MOVE_H_ #define KIS_STRATEGY_MOVE_H_ #include #include #include class KisCanvasController; class KisCanvasSubject; class KRITAUI_EXPORT KisStrategyMove { public: KisStrategyMove(); explicit KisStrategyMove(KisCanvasSubject *subject); virtual ~KisStrategyMove(); public: void reset(KisCanvasSubject *subject); void startDrag(const TQPoint& pos); void drag(const TQPoint& pos); void endDrag(const TQPoint& pos, bool undo = true); void simpleMove(const TQPoint& pt1, const TQPoint& pt2); void simpleMove(TQ_INT32 x1, TQ_INT32 y1, TQ_INT32 x2, TQ_INT32 y2); private: KisStrategyMove(const KisStrategyMove&); KisStrategyMove& operator=(const KisStrategyMove&); private: KisCanvasController *m_controller; KisCanvasSubject *m_subject; TQRect m_deviceBounds; TQPoint m_dragStart; TQPoint m_layerStart; TQPoint m_layerPosition; bool m_dragging; }; #endif // KIS_STRATEGY_MOVE_H_