6#include <QtCore/QObject>
7#include <QtCore/QByteArray>
8#include <QtQuick/QQuickPaintedItem>
10#include <QtGui/QPixmap>
11#include <QtGui/QPainter>
12#include <QtGui/QPainterPath>
14#include <QtGui/QFontMetrics>
16#include <istd/TDelPtr.h>
23class CCanvasItem :
public QQuickPaintedItem
27 Q_PROPERTY(
double lineWidth READ lineWidth WRITE setLineWidth NOTIFY lineWidthChanged)
28 Q_PROPERTY(QString fillStyle READ fillStyle WRITE setFillStyle NOTIFY fillStyleChanged)
29 Q_PROPERTY(QString strokeStyle READ strokeStyle WRITE setStrokeStyle NOTIFY strokeStyleChanged)
30 Q_PROPERTY(QString font READ font WRITE setFont NOTIFY fontChanged)
31 Q_PROPERTY(QString lineCap READ lineCap WRITE setLineCap NOTIFY lineCapChanged)
32 Q_PROPERTY(QString lineJoin READ lineJoin WRITE setLineJoin NOTIFY lineJoinChanged)
33 Q_PROPERTY(
double globalAlpha READ globalAlpha WRITE setGlobalAlpha NOTIFY globalAlphaChanged)
36 CCanvasItem(QQuickItem *parent =
nullptr);
37 Q_INVOKABLE
void paint(QPainter *painter);
38 Q_INVOKABLE
void draw();
39 Q_INVOKABLE
void fillRect(
double x,
double y,
double width,
double height);
40 Q_INVOKABLE
void moveTo(
double x,
double y);
41 Q_INVOKABLE
void lineTo(
double x,
double y);
42 Q_INVOKABLE
void fillText(QString text,
double x,
double y);
43 Q_INVOKABLE
void text(QString text,
double x,
double y);
44 Q_INVOKABLE
void arc(
double x,
double y,
double radius,
double startAngle,
double endAngle,
bool anticlockwise);
45 Q_INVOKABLE
void setPixmapSize(
double width,
double height);
46 Q_INVOKABLE QSize measureText(QString
string);
47 Q_INVOKABLE
void stroke();
48 Q_INVOKABLE
void fill();
49 Q_INVOKABLE
void beginPath();
50 Q_INVOKABLE
void closePath();
51 Q_INVOKABLE
void save();
52 Q_INVOKABLE
void restore();
53 Q_INVOKABLE
void clip();
54 Q_INVOKABLE
void requestPaint();
57 double lineWidth()
const;
58 void setLineWidth(
double newLineWidth);
60 QString fillStyle()
const;
61 void setFillStyle(
const QString &newFillStyle);
63 QString strokeStyle()
const;
64 void setStrokeStyle(
const QString &newStrokeStyle);
67 void setFont(
const QString &newFont);
69 QString lineCap()
const;
70 void setLineCap(
const QString &newLineCap);
72 QString lineJoin()
const;
73 void setLineJoin(
const QString &newLineJoin);
75 double globalAlpha()
const;
76 void setGlobalAlpha(
double newGlobalAlpha);
81 void lineWidthChanged();
83 void fillStyleChanged();
85 void strokeStyleChanged();
89 void lineCapChanged();
91 void lineJoinChanged();
93 void globalAlphaChanged();
96 void onWidthChanged();
97 void onHeightChanged();
103 QPointF m_startPoint;
105 QPainterPath m_painterPath;
106 QString m_strokeStyle;
111 double m_globalAlpha;
118Q_DECLARE_METATYPE(imtqml::CCanvasItem*)