00001 /****************************************************************************************************** 00002 * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released * 00003 * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file * 00004 * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. * 00005 ******************************************************************************************************/ 00006 00007 #ifndef DIGITIZE_STATE_AXIS_H 00008 #define DIGITIZE_STATE_AXIS_H 00009 00010 #include "DigitizeStateAbstractBase.h" 00011 00012 class QTimer; 00013 00016 class DigitizeStateAxis : public DigitizeStateAbstractBase 00017 { 00018 public: 00020 DigitizeStateAxis(DigitizeStateContext &context); 00021 virtual ~DigitizeStateAxis(); 00022 00023 virtual QString activeCurve () const; 00024 virtual void begin(CmdMediator *cmdMediator, 00025 DigitizeState previousState); 00026 virtual QCursor cursor (CmdMediator *cmdMediator) const; 00027 virtual void end(); 00028 virtual void handleCurveChange(CmdMediator *cmdMediator); 00029 virtual void handleKeyPress (CmdMediator *cmdMediator, 00030 Qt::Key key, 00031 bool atLeastOneSelectedItem); 00032 virtual void handleMouseMove (CmdMediator *cmdMediator, 00033 QPointF posScreen); 00034 virtual void handleMousePress (CmdMediator *cmdMediator, 00035 QPointF posScreen); 00036 virtual void handleMouseRelease (CmdMediator *cmdMediator, 00037 QPointF posScreen); 00038 virtual QString state() const; 00039 virtual void updateModelDigitizeCurve (CmdMediator *cmdMediator, 00040 const DocumentModelDigitizeCurve &modelDigitizeCurve); 00041 virtual void updateModelSegments(const DocumentModelSegments &modelSegments); 00042 00043 private: 00044 DigitizeStateAxis(); 00045 00046 void createTemporaryPoint (CmdMediator *cmdMediator, 00047 const QPointF &posScreen); 00048 }; 00049 00050 #endif // DIGITIZE_STATE_AXIS_H