00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef STROKESVIEWER_H
00026 #define STROKESVIEWER_H
00027
00028
00029 #include <QWidget>
00030
00031 #include <QBrush>
00032 #include <QPainterPath>
00033 #include <QPen>
00034 #include <QTime>
00035
00036 #include "Gesture/strokelist.h"
00037 #include "DigestGuiCore/strokespainterpath.h"
00038
00039
00040 class StrokesViewer : public QWidget {
00041
00042 Q_OBJECT
00043
00044 public:
00045 StrokesViewer( QWidget* parent = 0 );
00046 StrokesViewer( const StrokeList& strokes, QWidget* parent = 0 );
00047 virtual ~StrokesViewer() {}
00048
00049 const StrokeList& strokes() const { return m_strokes; }
00050 virtual void setStrokes( const StrokeList& strokes, bool updateWidget = true );
00051
00052 const QPen& pen() const { return m_pen; }
00053 virtual void setPen( const QPen& pen, bool updateWidget = true );
00054
00055 const QBrush& backgroundBrush() const { return m_backgroundBrush; }
00056 virtual void setBackgroundBrush( const QBrush& brush, bool updateWidget = true );
00057
00058 const QPen& gridPen() const { return m_gridPen; }
00059 virtual void setGridPen( const QPen& pen, bool updateWidget= true );
00060
00061 bool isAnimating() const { return animTimerId; }
00062
00063
00064 signals:
00065 void animationStarted();
00066 void animationStopped();
00067
00068
00069 public slots:
00070 virtual void animate();
00071 virtual void stopAnimation();
00072
00073
00074 protected:
00075 StrokeList& strokesRef() { return m_strokes; }
00076 StrokesPainterPath& pathRef() { return m_path; }
00077
00078 virtual void paintEvent( QPaintEvent* event );
00079 virtual void timerEvent( QTimerEvent* event );
00080
00081
00082 private:
00083 void init();
00084
00085 StrokeList m_strokes;
00086 StrokesPainterPath m_path;
00087
00088 QPen m_pen;
00089 QBrush m_backgroundBrush;
00090 QPen m_gridPen;
00091
00092 int animTimerId;
00093 int animStrokeIndex;
00094 int animStrokePointIndex;
00095 QTime animStrokeTime;
00096 StrokePoint animQueuedPoint;
00097 bool animQueuedPointWaiting;
00098 };
00099
00100
00101 #endif // ! STROKESVIEWER_H