hsqml-0.3.1.1: cbits/Canvas.h
#ifndef HSQML_CANVAS_H
#define HSQML_CANVAS_H
#include <QtCore/QExplicitlySharedDataPointer>
#include <QtQuick/QQuickItem>
#include "hsqml.h"
class HsQMLCanvasBackEnd;
class HsQMLGLDelegateImpl;
class HsQMLGLDelegate
{
public:
HsQMLGLDelegate(HsQMLGLPaintCb);
~HsQMLGLDelegate();
private:
QExplicitlySharedDataPointer<HsQMLGLDelegateImpl> mImpl;
};
class HsQMLCanvas : public QQuickItem
{
Q_OBJECT
Q_ENUMS(DisplayMode)
Q_PROPERTY(DisplayMode displayMode READ displayMode WRITE setDisplayMode
NOTIFY displayModeChanged)
Q_PROPERTY(qreal canvasWidth READ canvasWidth WRITE setCanvasWidth
RESET unsetCanvasWidth NOTIFY canvasWidthChanged)
Q_PROPERTY(qreal canvasHeight READ canvasHeight WRITE setCanvasHeight
RESET unsetCanvasHeight NOTIFY canvasHeightChanged)
public:
enum DisplayMode {Above, Below, Inline};
HsQMLCanvas(QQuickItem* = NULL);
~HsQMLCanvas();
private:
Q_DISABLE_COPY(HsQMLCanvas);
void geometryChanged(const QRectF&, const QRectF&) Q_DECL_OVERRIDE;
void detachBackEnd();
DisplayMode displayMode() const;
void setDisplayMode(DisplayMode);
qreal canvasWidth() const;
void setCanvasWidth(qreal, bool = true);
void unsetCanvasWidth();
qreal canvasHeight() const;
void setCanvasHeight(qreal, bool = true);
void unsetCanvasHeight();
Q_SIGNAL void displayModeChanged();
Q_SIGNAL void canvasWidthChanged();
Q_SIGNAL void canvasHeightChanged();
Q_SLOT void doWindowChanged(QQuickWindow*);
Q_SLOT void doPreSynchronise();
QQuickWindow* mWindow;
HsQMLCanvasBackEnd* mBackEnd;
DisplayMode mDisplayMode;
qreal mCanvasWidth;
bool mCanvasWidthSet;
qreal mCanvasHeight;
bool mCanvasHeightSet;
};
class HsQMLGLControl : public QQuickItem
{
Q_OBJECT
public:
HsQMLGLControl(QQuickItem* = NULL);
private:
Q_DISABLE_COPY(HsQMLGLControl);
};
#endif //HSQML_CANVAS_H