00001
00002
00003
00004
00005
00006
00007 #ifndef DIGITIZE_STATE_SCALE_H
00008 #define DIGITIZE_STATE_SCALE_H
00009
00010 #include "DigitizeStateAbstractBase.h"
00011 #include <QObject>
00012
00013 class GraphicsPoint;
00014 class QGraphicsLineItem;
00015 class QPointF;
00016
00023 class DigitizeStateScale : public QObject, public DigitizeStateAbstractBase
00024 {
00025 public:
00027 DigitizeStateScale(DigitizeStateContext &context);
00028 virtual ~DigitizeStateScale();
00029
00030 virtual QString activeCurve () const;
00031 virtual void begin(CmdMediator *cmdMediator,
00032 DigitizeState previousState);
00033 virtual bool canPaste (const Transformation &transformation,
00034 const QSize &viewSize) const;
00035 virtual QCursor cursor (CmdMediator *cmdMediator) const;
00036 virtual void end();
00037 virtual void handleContextMenuEventAxis (CmdMediator *cmdMediator,
00038 const QString &pointIdentifier);
00039 virtual void handleContextMenuEventGraph (CmdMediator *cmdMediator,
00040 const QStringList &pointIdentifiers);
00041 virtual void handleCurveChange(CmdMediator *cmdMediator);
00042 virtual void handleKeyPress (CmdMediator *cmdMediator,
00043 Qt::Key key,
00044 bool atLeastOneSelectedItem);
00045 virtual void handleMouseMove (CmdMediator *cmdMediator,
00046 QPointF posScreen);
00047 virtual void handleMousePress (CmdMediator *cmdMediator,
00048 QPointF posScreen);
00049 virtual void handleMouseRelease (CmdMediator *cmdMediator,
00050 QPointF posScreen);
00051 virtual QString state() const;
00052 virtual void updateAfterPointAddition ();
00053 virtual void updateModelDigitizeCurve (CmdMediator *cmdMediator,
00054 const DocumentModelDigitizeCurve &modelDigitizeCurve);
00055 virtual void updateModelSegments(const DocumentModelSegments &modelSegments);
00056
00057 private:
00058 DigitizeStateScale();
00059
00060 void removeTemporaryPointsAndLine();
00061 void updateLineGeometry ();
00062
00063 QString m_pointIdentifier0;
00064 QString m_pointIdentifier1;
00065 GraphicsPoint *m_temporaryPoint0;
00066 GraphicsPoint *m_temporaryPoint1;
00067
00068 QGraphicsLineItem *m_line;
00069 };
00070
00071 #endif // DIGITIZE_STATE_SCALE_H