summaryrefslogtreecommitdiffstats
path: root/src/canvas.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/canvas.h')
-rw-r--r--src/canvas.h36
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