diff options
Diffstat (limited to 'src/canvas.h')
-rw-r--r-- | src/canvas.h | 36 |
1 files changed, 29 insertions, 7 deletions
diff --git a/src/canvas.h b/src/canvas.h index c20f29f..b492f80 100644 --- a/src/canvas.h +++ b/src/canvas.h @@ -43,25 +43,47 @@ #include <QDeclarativeItem> #include "context2d.h" -class Context2D; - class Canvas : public QDeclarativeItem { Q_OBJECT + Q_ENUMS(FillMode) + Q_PROPERTY(int canvasWidth READ canvasWidth WRITE setCanvasWidth NOTIFY canvasWidthChanged); + Q_PROPERTY(int canvasHeight READ canvasHeight WRITE setCanvasHeight NOTIFY canvasHeightChanged); + Q_PROPERTY(FillMode fillMode READ fillMode WRITE setFillMode NOTIFY fillModeChanged) + public: + Canvas(QDeclarativeItem *parent = 0); + enum FillMode { Stretch, PreserveAspectFit, PreserveAspectCrop, Tile, TileVertically, TileHorizontally }; + void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry); - Canvas(QDeclarativeItem *parent = 0); + void setCanvasWidth(int newWidth); + int canvasWidth() {return m_canvasWidth;} + + void setCanvasHeight(int canvasHeight); + int canvasHeight() {return m_canvasHeight;} -public slots: + void componentComplete(); + +public Q_SLOTS: + Context2D *getContext(); void updateCanvas(); -signals: - void paint(Context2D *ctx); + FillMode fillMode() const; + void setFillMode(FillMode); + +Q_SIGNALS: + void fillModeChanged(); + void canvasWidthChanged(); + void canvasHeightChanged(); private: - QPixmap m_cache; + Context2D *m_context; + int m_canvasWidth; + int m_canvasHeight; + FillMode m_fillMode; }; #endif |