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_CURVE_H 00008 #define DIGITIZE_STATE_CURVE_H 00009 00010 #include "DigitizeStateAbstractBase.h" 00011 00013 class DigitizeStateCurve : public DigitizeStateAbstractBase 00014 { 00015 public: 00017 DigitizeStateCurve(DigitizeStateContext &context); 00018 virtual ~DigitizeStateCurve(); 00019 00020 virtual QString activeCurve () const; 00021 virtual void begin(CmdMediator *cmdMediator, 00022 DigitizeState previousState); 00023 virtual QCursor cursor (CmdMediator *cmdMediator) const; 00024 virtual void end(); 00025 virtual void handleContextMenuEventAxis (CmdMediator *cmdMediator, 00026 const QString &pointIdentifier); 00027 virtual void handleContextMenuEventGraph (CmdMediator *cmdMediator, 00028 const QStringList &pointIdentifiers); 00029 virtual void handleCurveChange(CmdMediator *cmdMediator); 00030 virtual void handleKeyPress (CmdMediator *cmdMediator, 00031 Qt::Key key, 00032 bool atLeastOneSelectedItem); 00033 virtual void handleMouseMove (CmdMediator *cmdMediator, 00034 QPointF posScreen); 00035 virtual void handleMousePress (CmdMediator *cmdMediator, 00036 QPointF posScreen); 00037 virtual void handleMouseRelease (CmdMediator *cmdMediator, 00038 QPointF posScreen); 00039 virtual QString state() const; 00040 virtual void updateAfterPointAddition (); 00041 virtual void updateModelDigitizeCurve (CmdMediator *cmdMediator, 00042 const DocumentModelDigitizeCurve &modelDigitizeCurve); 00043 virtual void updateModelSegments(const DocumentModelSegments &modelSegments); 00044 00045 private: 00046 DigitizeStateCurve(); 00047 }; 00048 00049 #endif // DIGITIZE_STATE_CURVE_H